Skip to main content

Crate ifc_alignment

Crate ifc_alignment 

Source
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

ModuleRole
alignmentIfcAlignment and its horizontal/vertical/cant parts
horizontalHorizontal segments: line, arc, spiral transitions
verticalVertical segments: grades and parabolic curves
cantSuperelevation (IfcAlignmentCant) for rail
referentIfcReferent stationing and chainage
placementIfcLinearPlacement and distance expressions
errorWhy 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§

AlignmentUnits
Project unit conversion applied exactly once while reading a segment.
AlignmentView
A model whose declared schema has been pinned to IFC4X3 ADD2.
CantAtStation
Cant applied to each rail at one normalized position along a segment.
CantLayout
One resolved, ordered, continuity-checked cant profile.
CantSegment
Borrowed projection of one nested segment of an IfcAlignmentCant layout (IfcAlignmentCantSegment), with lengths already reduced to metres.
HorizontalSegment
Resolved IFC4x3 IfcAlignmentHorizontalSegment parameters in SI units.
LinearPlacement
Resolved IfcLinearPlacement.
LoweredAlignmentCurve
Exact neutral curve graph for one or more IFC alignment segments.
PartialHorizontalLayout
A horizontal layout lowered as far as exactness allows.
PointByDistance
Resolved IfcPointByDistanceExpression.
RefusedSegment
One segment this crate declined to lower, and why.
StationEquation
One IfcReferent carrying Pset_Stationing, resolved to its distance along the alignment and station value.
VerticalSegment
Resolved IFC4x3 IfcAlignmentVerticalSegment parameters in SI units.

Enums§

AlignmentError
Why an IFC alignment entity could not be read or lowered.
CantSegmentType
IfcAlignmentCantSegmentTypeEnum member: the cant transition law applied over one segment’s distance-along span.
CurveMeasure
DistanceAlong may be an absolute length or a normalized parameter; the two are never comparable without knowing which was authored.
HorizontalSegmentType
IFC4x3 horizontal segment kind, preserving the declaration rather than guessing.
ProfileSeam
Which quantity of a vertical profile breaks at a seam.
VerticalSegmentType
IfcAlignmentVerticalSegmentTypeEnum member: 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, an IfcAlignment.
lower_gradient_curve
Lower an IfcAlignment to 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 that lower_horizontal_segment cannot lower exactly.
lower_horizontal_layout_partial
Lower a horizontal layout as far as exactness allows, reporting refusals.
lower_horizontal_segment
Lower one IfcAlignmentHorizontalSegment to an exact neutral curve.
lower_vertical_segment
Lower one IfcAlignmentVerticalSegment to an exact neutral curve.
profile_law
The whole vertical profile as one law over distance along the plan.
read_cant_segment
Read one IfcAlignmentCantSegment referenced by id.
read_horizontal_segment
Read one IfcAlignmentHorizontalSegment referenced by id.
read_vertical_segment
Read one IfcAlignmentVerticalSegment referenced by id.
resolve_linear_placement
Resolve one IfcLinearPlacement referenced by id to its distance-along point on a basis curve.
resolve_point_by_distance
Read one IfcPointByDistanceExpression referenced by id.
station_equations
Resolve every IfcReferent in model that carries a Pset_Stationing property set into its distance-along/station mapping.

Type Aliases§

AlignmentResult
Result of an alignment read, carrying AlignmentError on failure.