Skip to main content

openbim-ifc (Python)

Read, edit and write IFC STEP files from Python. A thin binding over the openbim-ifc Rust crates: one abi3 wheel for CPython 3.9 and later.

pip install openbim-ifc

Documentation: Python guide · source and issues

from openbim_ifc import IfcModel, Text

with open("model.ifc", "rb") as f:
    model = IfcModel.parse(f.read())

print(model.schema, len(model))
for id in model.ids_of_type_including_subtypes("IfcWall"):
    print(id, model.attribute(id, 2))      # Name, e.g. Text('Wall')

model.set_attribute(id, 2, Text("Renamed"))
with open("out.ifc", "wb") as f:
    f.write(model.write())

Values

Attribute values are frozen dataclasses, one per STEP form: Null ($), Derived (*), Bool, Unknown (.U.), Integer, Real, Text, Binary, Enum, Ref (#42), List, and Typed (IFCLENGTHMEASURE(2.5)). They keep every distinction IFC makes, so a file read and written back through Python is unchanged.

Bare Python values are refused with TypeError: 3 could be an Integer or a Real, "x" a Text or an Enum, and the binding does not guess.

Errors

Every failure raises IfcError with a stable code: parse, write, missing-entity, invalid-value, out-of-range, unsupported-schema, io, unsupported-profile or feature-disabled. The codes are shared with the JavaScript and C bindings; a code is never renamed or reused.

Threads

parse releases the GIL while it reads. A model can be passed between threads; the GIL serialises calls on it.

Scope

The record model -- entities, attributes, the STEP codec, exact and subtype queries -- plus lenient reads (ParseOptions), the STEP header, validation, ifcXML and the reachability lint, each as frozen dataclasses. Domain views (properties, quantities, geometry) and checked multi-edit transactions are not bound yet.

Build from source

uv venv && . .venv/bin/activate
uv pip install maturin
maturin develop --release     # or: scripts/check-python.sh to build + test

Faster reading (opt-in)

maturin build --release --features rusty_alloc

Uses the pure-Rust rusty_alloc allocator for the extension's own memory: reading STEP into a model takes 18-35% less CPU time on seven real IFC files, at 1-7% less peak memory (#49). Python's own allocator is not replaced. Off by default because a global allocator is a build-time choice; the version is pinned exactly.

Metadata

Release files for openbim-ifc 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openbim-ifc 0.2.1
File Size Uploaded
openbim_ifc-0.2.1.tar.gz 4.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for openbim-ifc 0.2.1
File
openbim_ifc-0.2.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
openbim_ifc-0.2.1-cp39-abi3-manylinux_2_28_x86_64.whl CPython 3.9 abi3 Linux glibc 2.28+ x86-64 Details
openbim_ifc-0.2.1-cp39-abi3-manylinux_2_28_aarch64.whl CPython 3.9 abi3 Linux glibc 2.28+ ARM64 Details
openbim_ifc-0.2.1-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.9 abi3 macOS 11.0+ ARM64, macOS 10.12+ x86-64, macOS 10.12+ universal2 (ARM64, x86-64) Details

Total release size: 9.8 MB

Release files / openbim_ifc-0.2.1.tar.gz

Download URL openbim_ifc-0.2.1.tar.gz
Size 4.2 MB
Tags Source
SHA-256 checksum
How to use checksums
9ad804f695f878478126fd49bcdf623ec6945106ad83d6cbc000509639e1655e
BLAKE2b-256 checksum
How to use checksums
1f06152bae5366ec1928d6562a76accef8bfea3295ed3de79e8b002480e0d906
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / openbim_ifc-0.2.1-cp39-abi3-win_amd64.whl

Download URL openbim_ifc-0.2.1-cp39-abi3-win_amd64.whl
Size 1.1 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
db9953a38c52092f7f90a2d62cec2317a56031298e5d5f6e24e370d0271b0e99
BLAKE2b-256 checksum
How to use checksums
84881a660176efcfe5fb133d238872c209cebe70f77c6a1f455e696cb0ec2b93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / openbim_ifc-0.2.1-cp39-abi3-manylinux_2_28_x86_64.whl

Download URL openbim_ifc-0.2.1-cp39-abi3-manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
a8b8834ed42c2595924923fcf04d026e6b1c3b8f6991ceeda7c4b850a1b213a9
BLAKE2b-256 checksum
How to use checksums
fd8853d8ae6e9d2a153da4bc0e5d94c1192edf8b9b6c99000b84e90041fc30fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / openbim_ifc-0.2.1-cp39-abi3-manylinux_2_28_aarch64.whl

Download URL openbim_ifc-0.2.1-cp39-abi3-manylinux_2_28_aarch64.whl
Size 1.1 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
e24db49d9c778914495449176967930e09ca6fa4755b52ac66c118a1148d1f26
BLAKE2b-256 checksum
How to use checksums
b2959b0016e71337d1bf420bb5325cea28003145a294ef1171b645d31ffa301f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / openbim_ifc-0.2.1-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL openbim_ifc-0.2.1-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 2.2 MB
Tags CPython 3.9 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
dd114758914c30cb4043e719a03c7e5006f8011fb17326ac01dd4a5e5da0b6a2
BLAKE2b-256 checksum
How to use checksums
8bbbb59a3eea8f5c750e897d3c01b583b98c4dd566f11b4fd12d28d14d5b6c23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.2

5 release files

0.3.1

5 release files

0.3.0

5 release files

This release

0.2.1 This release

5 release files

0.1.0

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page