Skip to content

Latest commit

 

History

230 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

OpenBIM.rs IFC

Pure-Rust IFC infrastructure: schema metadata, entity graph storage, STEP and ifcXML codecs, typed domain projections, schema-aware validation, and explicit bridges to the format-neutral Axiolid geometry contracts.

This is the canonical IFC-family repository for OpenBIM.rs. The integration repository pins a verified commit here as packages/ifc.

📖 Documentationcapabilities and status · architecture · roadmap

🤝 Contributeready tasks · work board · discussions · support

Status

Read the capability matrix before planning work against this repository. It states, per capability, whether behaviour is implemented, partial, scaffold, or absent, with the file that proves it.

Implemented foundations include:

  • schema-agnostic entity/value graph with unknown-data round-tripping and transactional structural edits;
  • STEP and ifcXML parsing/writing;
  • schema-checked construction and transactional editing by attribute name (ifc-author);
  • bundled IFC2x3 TC1, IFC4 ADD2 TC1, and IFC4X3 ADD2 structural schema metadata;
  • declared-schema validation against exact version tables, with selected native semantic rules and explicit unsupported reporting for unevaluated semantics;
  • borrowed classification, document, library, approval, constraint, property, quantity, material, cost, schedule, construction-resource, systems, spatial, and bounded structural-analysis views;
  • classification, document, library, approval, constraint, material, quantity, cost, selected construction-resource, and selected structural-analysis authoring staged through transactions;
  • geometry selection/lowering foundations and versioned PSD/QTO catalogs.

Some domain crates remain partial and contain private architecture scaffolds: their module trees reserve ownership without exposing unimplemented behavior. Their README, AGENTS.md, and PLAN.md files distinguish compiled behavior from reserved module ownership, and the capability matrix reports crate status. No capability should be inferred from a module or crate name alone.

Use

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

The workspace crates are not published on crates.io yet. This immutable Git revision is the supported installation source for now; Cargo records Git revisions in Cargo.lock.

The library target is named ifc:

use ifc::{Model, StepCodec};

The default facade feature enables STEP only. Add domain and geometry features explicitly.

Geometry comes in two sizes, because a drawing consumer should not compile a solid modeller:

Feature Gets you Links a kernel
geometry-select representation contexts, plan/body selection, placements, units no
geometry the above plus lowering into the neutral geometry DAG yes

Using ifc-geometry directly, default-features = false is the same split. Both are checked against the resolved dependency graph, not the manifest.

Develop

Requires Rust 1.88 or newer.

git clone https://github.com/openbimrs/ifc.git
cd ifc
./scripts/gate.sh

The official IFC schema artifacts are not vendored. Tests which need locally checked-out normative references skip honestly when those references are absent; committed generated manifests and redistributable regression fixtures remain self-contained.

Architecture

  • ifc-model owns the serialization-independent record graph.
  • ifc-schema interprets EXPRESS schema metadata.
  • ifc-step and ifc-xml are codecs over the model.
  • domain crates expose borrowed projections rather than duplicate object graphs.
  • only ifc-geometry, ifc-georef, and ifc-alignment may depend on neutral Axiolid representation crates; no IFC crate selects a CPU/GPU backend.
  • ifc-geometry keeps those crates optional: representation selection is slot reading over ifc-model and links no geometry code at all.
  • openbim-ifc is the optional-feature facade.

See HERMES.md, AGENTS.md, and the nested context files for executable boundaries and verification commands.

License

Code is AGPL-3.0-or-later licensed. Embedded catalog data carries the license declared by its own package and data notices.

About

Pure-Rust IFC model, codecs, schema metadata, validation, and typed domain projections

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages