An open-source IFC 4.3 to structural engineering analytical and detailed design exporter
Project description
bridge-io 🌉
bridge-io is a production-grade, highly extensible open-source Python library designed to act as an interoperability translation layer. It parses bridge models represented in the international building information modeling standard IFC 4.3 (Industry Foundation Classes for Infrastructure) and exports them into standard structural engineering analytical and detailed design packages.
🚀 The Translation Pipeline
graph LR
A[IFC 4.3 File] --> B[bridge-io Parser]
B --> C[In-Memory Spatial Tree]
C --> D[Target Exporter]
D --> E[Target Design File]
style A fill:#34495e,stroke:#2c3e50,stroke-width:2px,color:#fff
style B fill:#3498db,stroke:#2980b9,stroke-width:2px,color:#fff
style C fill:#2ecc71,stroke:#27ae60,stroke-width:2px,color:#fff
style D fill:#f39c12,stroke:#d35400,stroke-width:2px,color:#fff
style E fill:#e74c3c,stroke:#c0392b,stroke-width:2px,color:#fff
By reading standard structural alignment curves, deck sections, girder distributions, pier cap geometries, and materials via the ifcopenshell framework, bridge-io builds a highly cohesive intermediate spatial tree which is then mapped and serialized by specialized exporters.
🔌 Target Integrations
| Target Software | Exporter Key | Export Format | Status |
|---|---|---|---|
| CSiBridge | csibridge |
.b2k / SAP2000 Text Format |
Production |
| PGSuper | pgsuper |
.pgt / XML Project Template |
Production |
| Bentley OpenBridge | openbridge |
.xml / .landxml LandXML Schema |
Production |
| midas Civil | midas |
.mxt Midas Exchange Command File |
Production |
| STAAD.Pro | staad |
.std STAAD Structural Commands |
Production |
| LUSAS | lusas |
.cmd LUSAS CMD Automation Script |
Production |
| LARSA 4D | larsa4d |
.csv / .txt Copy-Paste Data & COM Script |
Production |
📦 Installation
To install bridge-io from PyPI, run:
pip install bridge-io
Alternatively, to install from source using Poetry or Hatch:
git clone https://github.com/bridgecopilot/bridge-io.git
cd bridge-io
pip install .
💻 Programmatic API Usage
Translate models programmatically using Python:
from bridge_io import IFCParser, get_exporter
# 1. Parse your IFC 4.3 infrastructure file
parser = IFCParser()
bridge_def = parser.parse("my_bridge_model.ifc")
print(f"Parsed Bridge: {bridge_def.name}")
print(f"Total Spans count: {len(bridge_def.spans)}")
# 2. Re-route structural parameters to PGSuper XML templates
pgsuper_exporter = get_exporter("pgsuper")
pgsuper_exporter.export(bridge_def, "outputs/pgsuper_model.pgt")
# 3. Export to analytical CSiBridge B2K command file
csibridge_exporter = get_exporter("csibridge")
csibridge_exporter.export(bridge_def, "outputs/csibridge_model.b2k")
🛠️ CLI Usage
bridge-io includes a rich command-line interface for batch processing and automated translation pipelines:
# List all registered exporters and their target extensions
bridge-io list
# Translate an IFC 4.3 model to CSiBridge B2K
bridge-io translate input_bridge.ifc --target csibridge --output translated_model.b2k
# Translate an IFC 4.3 model to PGSuper XML
bridge-io translate input_bridge.ifc -t pgsuper
🤝 Extensibility & Contributions
bridge-io was architected with a developer-first mindset. If you wish to write and register a new exporter for a structural package not listed here (e.g. Ansys APDL, Abaqus, Autodesk Robot, or SAP2000), please consult our CONTRIBUTING.md manual.
We highly encourage engineering firms and BIM developers to showcase their custom translators by contributing upstream!
📄 License
This project is licensed under the Mozilla Public License 2.0 (MPL 2.0) - see the LICENSE file for details. ops@bridgecopilot.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bridge_io-0.1.1.tar.gz.
File metadata
- Download URL: bridge_io-0.1.1.tar.gz
- Upload date:
- Size: 35.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7337deac0697263d8e54fd5fd2d701d7a4d712d29ad2baeb5641971d6ef632c6
|
|
| MD5 |
9cfd267c72bb6272add8c3a81200d8b1
|
|
| BLAKE2b-256 |
57bfe85c44a52f25f510b020749170a9f43965de9acf10baceac8d5861d4e75a
|
Provenance
The following attestation bundles were made for bridge_io-0.1.1.tar.gz:
Publisher:
publish.yml on bridge-copilot/bridge-io
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bridge_io-0.1.1.tar.gz -
Subject digest:
7337deac0697263d8e54fd5fd2d701d7a4d712d29ad2baeb5641971d6ef632c6 - Sigstore transparency entry: 1833276110
- Sigstore integration time:
-
Permalink:
bridge-copilot/bridge-io@51710e5bae00c73733ad9bf5fff9920ba00dc5b7 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/bridge-copilot
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@51710e5bae00c73733ad9bf5fff9920ba00dc5b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file bridge_io-0.1.1-py3-none-any.whl.
File metadata
- Download URL: bridge_io-0.1.1-py3-none-any.whl
- Upload date:
- Size: 39.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5e89b0da0d016ddaddc0a9c55bc6f44af99d3f4ecf161c1239ea3ad09768c23
|
|
| MD5 |
438d61b76fab6588dcf018818b21fbd1
|
|
| BLAKE2b-256 |
1e526873e0d4546fa49a2f6c087f0e6c4a24632a36e9e96da637d4291c10bb41
|
Provenance
The following attestation bundles were made for bridge_io-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on bridge-copilot/bridge-io
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bridge_io-0.1.1-py3-none-any.whl -
Subject digest:
b5e89b0da0d016ddaddc0a9c55bc6f44af99d3f4ecf161c1239ea3ad09768c23 - Sigstore transparency entry: 1833276391
- Sigstore integration time:
-
Permalink:
bridge-copilot/bridge-io@51710e5bae00c73733ad9bf5fff9920ba00dc5b7 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/bridge-copilot
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@51710e5bae00c73733ad9bf5fff9920ba00dc5b7 -
Trigger Event:
push
-
Statement type: