Skip to content

Crate map ​

The workspace is 33 crates, versioned and released independently. Dependencies point down the tiers described in System design:

  • L0, the record core. ifc-model owns the entity graph and the Codec trait, and knows no schema, codec or domain.
  • L1, schema and codecs. ifc-schema holds the bundled EXPRESS tables; ifc-step and ifc-xml implement Codec. Codecs never import domain semantics.
  • L2, views, validation, authoring and geometry. Each domain crate is a borrowed projection over the model, and sibling domains never depend on one another. ifc-geometry, ifc-georef and ifc-alignment lower geometry into the neutral Axiolid model.
  • L3, the facade. openbim-ifc re-exports the crates above behind cargo features, with a thin default.
  • L4, the bindings. JavaScript, Python and C wrap the facade through a shared host-independent core.

The map below is generated from each crate's manifest, so the dependency column is what cargo resolves, not what anyone remembers. Each crate's reference page has its overview, features and latest changes; the capability matrix says what each implements.

Facade ​

CrateStatusDepends onDescription
openbim-ifcImplementedthe core, domain and geometry crates, each behind a featureFacade for the openBIM IFC crates: pick codecs and domains as features.

Model, codecs, schema, authoring and validation ​

CrateStatusDepends onDescription
ifc-authorImplementedifc-model, ifc-schemaSchema-checked IFC authoring: construct entities by attribute name with arity and type validation.
ifc-modelImplemented—The IFC entity graph: storage and structural queries, free of domain semantics and serialization.
ifc-schemaImplemented—IFC schema as data: entity table, supertype chain, attribute names.
ifc-stepImplementedifc-modelSTEP physical file (ISO 10303-21) codec for the IFC model.
ifc-validateImplementedifc-model, ifc-schemaSchema conformance: WHERE rules, cardinality, GUID and reference integrity.
ifc-xmlImplementedifc-model, ifc-schemaifcXML (ISO 10303-28) codec for the IFC model.

Domain views ​

CrateStatusDepends onDescription
ifc-approvalImplementedifc-model, ifc-schemaBounded IFC4 approval resource semantics.
ifc-classificationImplementedifc-model, ifc-schemaClassification systems, document references, libraries, external references.
ifc-constraintImplementedifc-model, ifc-schemaBounded IFC4 metric, objective, and constraint relationships.
ifc-controlImplementedifc-model, ifc-schemaBounded IFC control semantics: permits, project orders, action requests, and performance history.
ifc-costImplementedifc-model, ifc-schemaCost semantics as a borrowed view over the IFC model.
ifc-element-typeImplementedifc-model, ifc-schemaElement, resource, and process type definitions: the IfcTypeObject catalogue.
ifc-materialImplementedifc-model, ifc-schemaMaterial definitions: layer sets, profile sets, constituents, usage.
ifc-occurrenceImplementedifc-model, ifc-schemaBuilt element and distribution occurrence classes and their type pairing.
ifc-propertiesImplementedifc-model, ifc-schemaProperty sets, quantities, and unit resolution. No geometry.
ifc-resourceImplementedifc-model, ifc-schemaConstruction resources: labour, equipment, material, crew, subcontract.
ifc-scheduleImplementedifc-model, ifc-schemaIFC scheduling: IfcTask/IfcWorkSchedule, sequencing, 4D linkage.
ifc-spatialImplementedifc-model, ifc-schemaIFC spatial containment and objectified relationship traversal: project, site, building, storey, element.
ifc-structuralImplementedifc-model, ifc-schemaStructural analysis model: members, connections, actions, reactions, loads.
ifc-styleImplementedifc-model, ifc-schemaPresentation: styles, colours, textures, layers, annotation.
ifc-systemsImplementedifc-model, ifc-schemaDistribution systems, ports, and connectivity between elements.
ifc-tabularImplementedifc-model, ifc-schemaStructured IFC value containers indexed by position or time.
ifc-template-catalogImplementedifc-schemaVersioned IFC PSD/QTO catalog definitions and correction overlays

Geometry, georeferencing and alignment ​

CrateStatusDepends onDescription
ifc-alignmentImplementedifc-model, ifc-schemaIFC4x3 linear positioning: alignments, referents, linear placement, spirals.
ifc-geometryPartialifc-alignment, ifc-model, ifc-schemaIFC semantic views lowered into the format-neutral geometry DAG.
ifc-georefImplementedifc-model, ifc-schemaGeoreferencing: map conversion, coordinate reference systems, site placement.

Language bindings ​

CrateStatusDepends onDescription
openbim-ifc-binding-coreImplementedopenbim-ifcHost-independent core shared by the openbim-ifc language bindings (WebAssembly, C ABI, Python).
openbim-ifc-capiImplementedopenbim-ifc-binding-coreVersioned, memory-safe C ABI for openbim-ifc: read, edit and write IFC STEP files from C and C++.
openbim-ifc-dotnetImplemented—The OpenBim.Ifc NuGet package: .NET bindings for openbim-ifc over its versioned C ABI.
openbim-ifc-pyImplementedopenbim-ifc-binding-corePython bindings for openbim-ifc: read, edit and write IFC STEP files from Python.
openbim-ifc-wasmImplementedopenbim-ifc-binding-coreWebAssembly bindings for openbim-ifc: read, edit and write IFC STEP files from JavaScript.

Command-line tool ​

CrateStatusDepends onDescription
openbim-ifc-cliPartialopenbim-ifcThe openbim-ifc command: validate, convert, inspect, query and edit IFC files (STEP, ifcXML and ifcZIP), and exchange their values as CSV, TSV or XLSX tables, from a shell or CI.

Not in this repository ​

  • The generic ISO 10303-21 STEP and ISO 10303-11 EXPRESS machinery lives in openbim-step, shared with the other standard families.
  • Geometry evaluation (meshing, booleans, sections) lives in Axiolid; see the Axiolid boundary.
  • Other openBIM standards (IDS, BCF, bSDD, …) are separate repositories under openbimrs.

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