ifc-alignment
IFC4x3 linear positioning: alignments, referents, linear placement, spirals.
| Status | Partial |
| Latest release | 0.4.0 (2026-09-29) |
| Registries | crates.io ifc-alignment |
| Via the facade | openbim-ifc feature alignment |
| API documentation | rustdoc · docs.rs |
| Source | crates/ifc-alignment/ |
Overview
ifc-alignment -- Linear referencing and alignment -- the IFC4x3 civil layer.
IFC4x3 adds 14 alignment entities plus spiral curve types (IfcClothoid, IfcCosineSpiral). Isolated in its own crate because building-only consumers should never compile spiral curve laws.
Depends on
Changes
Latest release, 0.4.0 (2026-09-29):
Fixed
read_vertical_segment,read_cant_segmentandCantLayout::resolve(RailHeadDistance) read a typed parameter such asIFCLENGTHMEASURE(1.)exactly like the bare number, asread_horizontal_segmentalready did; they refused it as the wrong kind (#140).
Changed (breaking)
- The authoring drafts
HorizontalSegmentDraft,VerticalSegmentDraftandCantSegmentDraftare#[non_exhaustive]: build them withHorizontalSegmentDraft::new(start_point, start_direction, start_radius, end_radius, segment_length, predefined_type),VerticalSegmentDraft::new(start_dist_along, horizontal_length, start_height, start_gradient, end_gradient, predefined_type)orCantSegmentDraft::new(start_dist_along, horizontal_length, start_cant_left, start_cant_right, predefined_type)and the settersgravity_center_line_height,radius_of_curvature,end_cant_leftandend_cant_right. Fields stay public. - The read-side
HorizontalSegment,CantSegment,CantLayout,CantAtStation,LinearPlacement,StationEquation,LoweredAlignmentCurve,PartialHorizontalLayoutandRefusedSegmentare#[non_exhaustive]; they can no longer be built with a struct literal outside the crate.
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). - Pinned by test:
AlignmentView::for_modelrefusesIFC4X1andIFC4X2(their alignment model differs from IFC4X3).
Full history: crates/ifc-alignment/CHANGELOG.md