ifc-occurrence
Authoring for the concrete built-element and distribution occurrence classes, with the schema's occurrence-to-type pairing enforced: a pump typed by a valve type is refused rather than written. The catalogue is generated from the IFC4X3 ADD2 schema.
The openbim-ifc facade also provides it behind its
occurrence feature.
- API documentation: docs.rs/ifc-occurrence
- Reference page: openbimrs.github.io/ifc
- Source and issues: github.com/openbimrs/ifc
Design notes
- A class is left out of the catalogue only when another crate authors
it (the generic distribution classes, which
ifc-systemsowns). Test fixtures and doc examples elsewhere never count as authoring a class, which is why common classes such asIfcWallare generated here. - The catalogue names the classes; the model's declared release lays each
record out.
createandcreate_with_owner_historytake slots, thePredefinedTypeenumeration and required attributes from that release's table, so a class IFC4 lacks is refused in an IFC4 model, and IFC2X3, which requiresIfcRoot.OwnerHistory, needs the owner-history variant. - The type pairing is the declared release's own: the IFC4X3 and IFC4
CorrectTypeAssignedrules, and IFC2X3's documented pairing, which types anIfcDoorby anIfcDoorStyle. The catalogue records one column per release, generated from each release's EXPRESS source. OccurrenceDraftis#[non_exhaustive]: build it withnew()and the setters named after its fields. It carries what IFC2X3 requires of a few classes (ShapeType, the reinforcement bar measures,BarRole).