Skip to content

ifc-structural ​

Structural analysis model: members, connections, actions, reactions, loads.

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

Overview ​

ifc-structural -- bounded structural-analysis semantics.

This crate exposes schema-resolved borrowed projections for analysis models, load/result groups, idealized members and connections, applied actions, static load values, surface reinforcement areas, and their relationship graph across IFC2X3, IFC4 and IFC4X3. Selected analysis models, loads, members, connections, actions, and member/activity relationships can be staged through ifc_model::Transaction.

It does not solve structures, generate FEM meshes, evaluate geometry, or claim computed reaction/result authoring.

Depends on ​

Changes ​

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

Changed (breaking) ​

  • MemberConnection and ActivityAssignment are #[non_exhaustive].
  • Every public draft is #[non_exhaustive], so struct literals no longer compile outside the crate. Each gains a constructor taking its required fields and one builder setter per other field, named after the field and taking the unwrapped value (.name("Frame") sets Some; String fields take impl Into<String>):
    • AnalysisModelDraft::new(global_id, predefined_type)
    • StructuralRootDraft::new(global_id)
    • RelationshipRootDraft::new(global_id)
    • MemberDraft::new(root, kind), ConnectionDraft::new(root, kind)
    • ActionDraft::new(root, applied_load, coordinate_system, kind)
    • ReactionDraft::new(root, applied_load, coordinate_system, kind)
    • LoadGroupDraft::new(global_id, action_type, action_source, kind)
    • ResultGroupDraft::new(global_id, theory_type, is_linear)
    • MemberConnectionDraft::new(root, member, connection)
    • ActivityAssignmentDraft::new(root, relating_element, activity)
    • BoundaryConditionDraft::new()

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).
  • 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.
  • Enumeration checks treat a type declaration form ifc-schema adds later as not matching; follows ifc_schema::TypeKind becoming #[non_exhaustive].

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

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