ifc-lite
High-performance Python bindings for the ifc-lite IFC parser.
Relationship with upstream
This Python version is not released or maintained by the original authors of ifc-lite. It is a modified version, released under the same licence.
The Rust code is basically copied from upstream, but with some changes:
- The
MeshDataobject exposesproperty_setsas an attribute, and the Rust code has been changed to populate this for all elements. - Added
include_geometryoption toStreamingOptionsin the processing crate. Whenfalse, geometry extraction is skipped andMeshDataobjects are returned with empty geometry but fully populated metadata. - Added
process_ifc_text_with_optionsandprocess_ifc_file_with_optionsto the engine crate for non-streaming use withinclude_propertiesandinclude_geometryflags.
These changes are based on the current needs of the maintainers, and are provisional, while we are still in the evaluation stage for this new library.
Installation
pip install ifc-lite
Quick Start
import ifc_lite
# Load an IFC file
model = ifc_lite.process_file("building.ifc")
# List all IFC types in the model
print(model.ifc_types)
# Get all reinforcing bars
bars = model.elements_by_type("IfcReinforcingBar")
for bar in bars:
print(f"{bar.name}: {bar.vertex_count} vertices, {bar.triangle_count} triangles")
print(f" Properties: {bar.properties}")
# Access geometry (vertex positions, normals, triangle indices)
for mesh in model.meshes:
positions = mesh.positions # flat list of x,y,z triplets
normals = mesh.normals # flat list of nx,ny,nz triplets
indices = mesh.indices # triangle indices
color = mesh.color # RGBA tuple
# Load metadata + properties only (skip expensive geometry extraction)
model = ifc_lite.process_file("building.ifc", load_geometry=False)
# Load geometry only (skip property set parsing)
model = ifc_lite.process_file("building.ifc", load_properties=False)
# Fastest: metadata only (no geometry, no properties)
model = ifc_lite.process_file(
"building.ifc", load_geometry=False, load_properties=False
)
API
Module-level functions
ifc_lite.process_file(path, *, load_geometry=True, load_properties=True)– Load and process an IFC file from diskifc_lite.process_text(content, *, load_geometry=True, load_properties=True)– Process IFC content from a stringifc_lite.version()– Get the native library version
Optional keyword arguments:
load_geometry– WhenFalse, skip geometry extraction.MeshDataelements will have emptypositions/normals/indicesbut full metadata. Significantly faster for large files.load_properties– WhenFalse, skip property set parsing.MeshDataelements will haveproperties=Noneandproperty_sets=None.
IfcModel
model.meshes– List of allMeshDataelementsmodel.ifc_types– All distinct IFC type namesmodel.elements_by_type(type_name)– Filter elements by IFC typemodel.element_by_express_id(id)– Lookup by express IDmodel.element_by_global_id(gid)– Lookup by IFC GlobalIdmodel.metadata– Schema version, entity counts, coordinate infomodel.stats– Processing timing statistics
MeshData
mesh.express_id,mesh.ifc_type,mesh.global_id,mesh.namemesh.positions,mesh.normals,mesh.indices,mesh.colormesh.properties– IFC property set values (dict or None)mesh.vertex_count,mesh.triangle_count
License
MPL-2.0 (same as upstream ifc-lite)
Metadata
Release files for ifc-lite 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ifc_lite-0.4.0.tar.gz | 1.1 MB | With provenance | Details for ifc_lite-0.4.0.tar.gz |
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| ifc_lite-0.4.0-cp312-abi3-win_amd64.whl | CPython 3.12 | abi3 | Windows x86-64 | Details for ifc_lite-0.4.0-cp312-abi3-win_amd64.whl |
| ifc_lite-0.4.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.17+ x86-64 | Details for ifc_lite-0.4.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
| ifc_lite-0.4.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.12 | abi3 | Linux glibc 2.17+ ARM64 | Details for ifc_lite-0.4.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
| ifc_lite-0.4.0-cp312-abi3-macosx_11_0_arm64.whl | CPython 3.12 | abi3 | macOS 11.0+ ARM64 | Details for ifc_lite-0.4.0-cp312-abi3-macosx_11_0_arm64.whl |
| ifc_lite-0.4.0-cp312-abi3-macosx_10_12_x86_64.whl | CPython 3.12 | abi3 | macOS 10.12+ x86-64 | Details for ifc_lite-0.4.0-cp312-abi3-macosx_10_12_x86_64.whl |
Total release size: 8.8 MB
Release files / ifc_lite-0.4.0.tar.gz
| Download URL | ifc_lite-0.4.0.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fa550dfd98204e16b592796b93b974aeb20f08da4d4081c9ad0d5dae9252ab57
|
|
BLAKE2b-256 checksum How to use checksums |
83c4af9d7b8f3bd031911ecfcd77a3099212f3dfbe1c24068f236f43f2e56ad8
|
| 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 Aug 5, 2026.
Transparency logRelease files / ifc_lite-0.4.0-cp312-abi3-win_amd64.whl
| Download URL | ifc_lite-0.4.0-cp312-abi3-win_amd64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.12 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
7efcd297c6ba35b165fc38e1209855aeeac90e1d4b25caa2a355072439d4946c
|
|
BLAKE2b-256 checksum How to use checksums |
915875af294cb608cb3a5b89ab9ee1d0dcb2526f7d13788d44db8486b3a119e2
|
| 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 Aug 5, 2026.
Transparency logRelease files / ifc_lite-0.4.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ifc_lite-0.4.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
49ee9ff994d31427ec271abe2d0e6a4df154eeb2b5453004a68747bb755477f5
|
|
BLAKE2b-256 checksum How to use checksums |
de86c753877005b2807315982aaf96ee06e5b7703d31b5a9dfe2b3f60c44294e
|
| 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 Aug 5, 2026.
Transparency logRelease files / ifc_lite-0.4.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | ifc_lite-0.4.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
075d2b4020af993c34ff14963224fb26ceaade1e30b22f89b9bbf9a8ed2182da
|
|
BLAKE2b-256 checksum How to use checksums |
35f49dd3e69fef08e185024acb926e901d4037b213adc53bf959af086593347a
|
| 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 Aug 5, 2026.
Transparency logRelease files / ifc_lite-0.4.0-cp312-abi3-macosx_11_0_arm64.whl
| Download URL | ifc_lite-0.4.0-cp312-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.12 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
983397fecdf42526088876f728cad0a17dcf123074cf8637e943fe2f0bad10fa
|
|
BLAKE2b-256 checksum How to use checksums |
6092b8b0049d2a960f9c27772765593f35500015c0be6af775e0fcdbe6542ac7
|
| 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 Aug 5, 2026.
Transparency logRelease files / ifc_lite-0.4.0-cp312-abi3-macosx_10_12_x86_64.whl
| Download URL | ifc_lite-0.4.0-cp312-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.12 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
1a4e8622da58efe2f55e970470513e060b2b42ca0efcc4dd1b1dc3adc95d381f
|
|
BLAKE2b-256 checksum How to use checksums |
eb99360610f4aead4038c64bb5ad3c3ce2b99314d694ff69528daa10a427386e
|
| 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 Aug 5, 2026.
Transparency logSecurity for ifc-lite 0.4.0
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.
Full provenance
All 6 files in this release have been uploaded with provenance metadata.
Attestation for ifc_lite-0.4.0.tar.gz
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 Aug 5, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.