Skip to content

ifc-properties ​

Property sets, quantities, and unit resolution. No geometry.

StatusImplemented
Latest release0.6.0 (2026-09-29)
Registriescrates.io ifc-properties
Via the facadeopenbim-ifc feature properties
API documentationrustdoc · docs.rs
Sourcecrates/ifc-properties/

Overview ​

ifc-properties -- Property sets, quantities and units -- the non-geometric payload most

consumers actually want.

references/ifc-spec/ ships the official property set definitions as XML: 317 for IFC2x3 and 420 for IFC4. That is a machine-readable catalogue, so standard Psets are data here rather than hand-written tables.

Depends on ​

Changes ​

Latest release, 0.6.0 (2026-09-29):

Changed (breaking) ​

  • Comparison is #[non_exhaustive]: a match needs a wildcard arm.
  • The read results ExactProperty, ExactPropertyEntry, ExactTableRow, Property, PropertySet, QuantitySet, ResolvedSet and PropertySetTemplate are #[non_exhaustive]; compare their fields instead of building one with a struct literal.
  • Every authoring draft is #[non_exhaustive], so a struct literal no longer compiles outside the crate. Each gains new(required…) and one builder setter per other field, named after the field and taking the unwrapped value: TableValueDraft::new(name), DoorLiningDraft::new(), WindowLiningDraft::new(), ReinforcementBarDraft::new(total_cross_section_area, steel_grade), SectionReinforcementDraft::new(longitudinal_start_position, longitudinal_end_position, reinforcement_role, section_definition, cross_section_reinforcement_definitions), SiUnitDraft::new(unit_type, name), MonetaryUnitDraft::new(currency) and ConversionBasedUnitDraft::new(unit_type, name, conversion_factor, dimensions). Fields stay public.

Changed ​

  • Depends on ifc-schema with its default features named explicitly (every bundled release), now that the workspace dependency turns them off for the facade's per-release features (#112).
  • The unique-member-name rule of complex properties and quantities is labelled per verified release only; another release is refused with UnsupportedSchema rather than given the IFC4 label.
  • A model whose header declares IFC4X1 or IFC4X2 is refused with the existing unsupported-schema error. ifc-schema now bundles both releases, but no layout here is verified against them, so they are never read as IFC4 or IFC4X3.
  • Exact value checks treat a type declaration form ifc-schema adds later as not matching; follows ifc_schema::TypeKind becoming #[non_exhaustive].

Full history: crates/ifc-properties/CHANGELOG.md

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