Skip to content

openbim-ifcPure-Rust IFC infrastructure

An entity graph that round-trips data it does not understand, codecs that never import domain semantics, and geometry that lowers into a neutral kernel. No C++ in the dependency graph.

openbim-ifc

Install

toml
[dependencies]
openbim-ifc = { git = "https://github.com/openbimrs/ifc.git", rev = "a7c4949bb941504ce874bdec13bd81d33491b5cb" }

The workspace crates are not published on crates.io yet. Cargo locks this immutable Git source in Cargo.lock.

The library target is named ifc, so call sites read as a facade:

rust
use ifc::{Codec, Model, StepCodec};

let model = StepCodec.read_bytes(source)?;
println!("{} entities", model.len());
# Ok::<(), ifc::ModelError>(())

Before you build on this

This project publishes a capability matrix that separates implemented behaviour from reserved module ownership. Some domain crates are currently scaffolds: files that own a name and a doc comment so the architecture is reviewable, without implementing the entity.

Read the matrix before scoping work. No capability should be inferred from a crate name, a module path, or an IFC entity appearing in the schema.

If you are evaluating this crate for a specific application, the use cases section works an end-to-end scenario against the real current state of the code, including what the application author must still build themselves.

Released under the AGPL-3.0-or-later licence. ISO and CEN standards material is not redistributed.