openbim 0.1.0

Facade for the openBIM standards: enable only the standards you need.
Documentation

openbim

A facade over the openBIM standards, in pure Rust.

openbim = { version = "0.1", features = ["ids"] }

Available features

Feature Crate Standard
dt openbim-dt ISO 23387 data templates
ids openbim-ids buildingSMART IDS
bcf openbim-bcf BCF (BIM Collaboration Format)
icdd openbim-icdd ISO 21597 ICDD
idm openbim-idm ISO 29481-3 idmXML
loin openbim-loin ISO 7817-3 / EN 17412-3 LOIN
full all of the above

loin implies dt, because the LOIN schema imports ISO 23387.

No feature is on by default. Depending on openbim costs only the shared vocabulary — outcomes, element references, version detection.

Why the standards are separate crates

Cargo features are additive across the whole dependency graph. If every standard were a feature of a single crate, any dependency anywhere enabling icdd would make everyone compile an RDF stack — including a consumer that only wanted to read a .ids file.

Separate packages make that structurally impossible: a crate not named in your feature set is never built. This facade exists so that one dependency line is still available when you want it, and it re-exports only.

The claim is enforced, not asserted: the repository's gate builds each crate in isolation and each facade feature separately.

Status

Scaffold. The shared vocabulary is real and tested; the standard crates are name reservations that do not parse files yet. Nothing here silently pretends to validate a model — the distinction between applicable and passed, applicable and failed, and not applicable is built into the core type, because an audit that treats missing data as compliance is worse than no audit.

No ISO/CEN schema is vendored. Types are written from the schemas; the schema files are referenced out of tree, because possessing a copy of a standard does not establish the right to redistribute it.

Part of nehirde

A pure-Rust IFC and openBIM toolchain: https://github.com/GeneralPawz/nehirde

Design rationale: docs/adr/0015.

License

MIT