ifc-resource
Construction resources: labour, equipment, material, crew, subcontract.
| Status | Partial |
| Latest release | 0.3.0 (2026-09-29) |
| Registries | crates.io ifc-resource |
| Via the facade | openbim-ifc feature resource |
| API documentation | rustdoc · docs.rs |
| Source | crates/ifc-resource/ |
Overview
ifc-resource -- bounded IFC4 construction-resource semantics.
The crate exposes schema-resolved borrowed projections for construction resource occurrences, resource types, actor and inventory metadata, authored IfcResourceTime, allocation relationships, and budgeted resource composition. Selected authoring APIs stage records through ifc_model::Transaction.
It does not schedule work, level resources, calculate costs or quantities, interpret calendars, or claim generic actor/inventory schema conformance.
Depends on
Changes
Latest release, 0.3.0 (2026-09-29):
Changed (breaking)
ActorRoleDraft,PostalAddressDraft,TelecomAddressDraft,ActorDraft,AssetDraft,InventoryDraft,AppliedValueDraft,ResourceDraft,ResourceTimeDraft,AllocationDraftand the resourceNestingDraftare#[non_exhaustive](#214). Struct literals no longer compile outside the crate: build each withnew(...)and field-named setters. New constructors:ActorRoleDraft::new(role),PostalAddressDraft::new(),TelecomAddressDraft::new(),ActorDraft::new(global_id, the_actor),AssetDraft::new(global_id),InventoryDraft::new(global_id)andAppliedValueDraft::new(), each with a setter per remaining field. The drafts that already had builders keep them unchanged. Fields stay public where they were.
Changed
- Depends on
ifc-schemawith its default features named explicitly (every bundled release), now that the workspace dependency turns them off for the facade's per-release features (#112). - A model whose header declares
IFC4X1orIFC4X2is refused with the existing unsupported-schema error.ifc-schemanow bundles both releases, but no layout here is verified against them, so they are never read as IFC4 or IFC4X3. - Enumeration checks treat a type declaration form
ifc-schemaadds later as not matching; followsifc_schema::TypeKindbecoming#[non_exhaustive].
Full history: crates/ifc-resource/CHANGELOG.md