Expand description
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.
§Module map
| Module | Role |
|---|---|
alignment | IfcAlignment and its horizontal/vertical/cant parts |
horizontal | Horizontal segments: line, arc, spiral transitions |
vertical | Vertical segments: grades and parabolic curves |
cant | Superelevation (IfcAlignmentCant) for rail |
referent | IfcReferent stationing and chainage |
placement | IfcLinearPlacement and distance expressions |
error | Why an alignment operation failed |
Horizontal lines, circular arcs and transition spirals lower to exact
neutral curve graphs; a spiral is stored as its curvature law
(Curve2::Intrinsic), never integrated here. Families without an exact
law are typed refusals, tracked in GitHub issues.
Re-exports§
pub use authoring::alignment;pub use authoring::alignment_segment;pub use authoring::axis2_placement_linear;pub use authoring::cant_layout;pub use authoring::cant_segment;pub use authoring::cartesian_point;pub use authoring::horizontal_layout;pub use authoring::horizontal_segment;pub use authoring::linear_element;pub use authoring::linear_placement;pub use authoring::linear_positioning_element;pub use authoring::point_by_distance;pub use authoring::referent;pub use authoring::stationing;pub use authoring::vertical_layout;pub use authoring::vertical_segment;pub use authoring::CantSegmentDraft;pub use authoring::HorizontalSegmentDraft;pub use authoring::VerticalSegmentDraft;
Modules§
- authoring
- Author IFC4X3 alignment entities from plain numbers.
Structs§
- Alignment
Units - Project unit conversion applied exactly once while reading a segment.
- Alignment
View - A model whose declared schema has been pinned to IFC4X3 ADD2.
- Cant
AtStation - Cant applied to each rail at one normalized position along a segment.
- Cant
Layout - One resolved, ordered, continuity-checked cant profile.
- Cant
Segment - Borrowed projection of one nested segment of an
IfcAlignmentCantlayout (IfcAlignmentCantSegment), with lengths already reduced to metres. - Horizontal
Segment - Resolved IFC4x3
IfcAlignmentHorizontalSegmentparameters in SI units. - Linear
Placement - Resolved
IfcLinearPlacement. - Lowered
Alignment Curve - Exact neutral curve graph for one or more IFC alignment segments.
- Partial
Horizontal Layout - A horizontal layout lowered as far as exactness allows.
- Point
ByDistance - Resolved
IfcPointByDistanceExpression. - Refused
Segment - One segment this crate declined to lower, and why.
- Station
Equation - One
IfcReferentcarryingPset_Stationing, resolved to its distance along the alignment and station value. - Vertical
Segment - Resolved IFC4x3
IfcAlignmentVerticalSegmentparameters in SI units.
Enums§
- Alignment
Error - Why an IFC alignment entity could not be read or lowered.
- Cant
Segment Type IfcAlignmentCantSegmentTypeEnummember: the cant transition law applied over one segment’s distance-along span.- Curve
Measure DistanceAlongmay be an absolute length or a normalized parameter; the two are never comparable without knowing which was authored.- Horizontal
Segment Type - IFC4x3 horizontal segment kind, preserving the declaration rather than guessing.
- Profile
Seam - Which quantity of a vertical profile breaks at a seam.
- Vertical
Segment Type IfcAlignmentVerticalSegmentTypeEnummember: the vertical curve law applied over one segment’s distance-along span.
Functions§
- cant_at
- Evaluate a cant segment’s exact
D(ξ)for both rails. - elevation_
law - The exact elevation law for one
IfcAlignmentVerticalSegment. - gradient_
curve3 - The exact 3D centreline of
entity, anIfcAlignment. - lower_
gradient_ curve - Lower an
IfcAlignmentto an exact 3D centreline. - lower_
horizontal_ layout - Lower an
IfcAlignmentHorizontal’s nested segment chain to one exact neutral curve, refusing (rather than approximating) any segment thatlower_horizontal_segmentcannot lower exactly. - lower_
horizontal_ layout_ partial - Lower a horizontal layout as far as exactness allows, reporting refusals.
- lower_
horizontal_ segment - Lower one
IfcAlignmentHorizontalSegmentto an exact neutral curve. - lower_
vertical_ segment - Lower one
IfcAlignmentVerticalSegmentto an exact neutral curve. - profile_
law - The whole vertical profile as one law over distance along the plan.
- read_
cant_ segment - Read one
IfcAlignmentCantSegmentreferenced byid. - read_
horizontal_ segment - Read one
IfcAlignmentHorizontalSegmentreferenced byid. - read_
vertical_ segment - Read one
IfcAlignmentVerticalSegmentreferenced byid. - resolve_
linear_ placement - Resolve one
IfcLinearPlacementreferenced byidto its distance-along point on a basis curve. - resolve_
point_ by_ distance - Read one
IfcPointByDistanceExpressionreferenced byid. - station_
equations - Resolve every
IfcReferentinmodelthat carries aPset_Stationingproperty set into its distance-along/station mapping.
Type Aliases§
- Alignment
Result - Result of an alignment read, carrying
AlignmentErroron failure.