If you mean how to specify such geometry, I’d suggest using
IfcSectionedSolidHorizontal. Note, though, that these are still in the finalization stage.
If you mean positioning elements along the alignment, I’d use
I’m newbie at IFC but I’ll give a response I think is helpful.
IfcAlignment2DHorizontal (4x1) and
IfcAlignmentHorizontal (4x3rc2) have a
StartDistAlong attribute. My guess is this attribute is defines starting station of the alignment.
Since an alignment is a
distance along/offset coordinate system the range of
distance along values is StartDistAlong to StartDistAlong+Sum of length of each
I’ve been working with alignments and positioning elements along an alignment with
IfcLinearPlacement and it doesn’t seem to work as specified (or at least my interpretation of the spec).
For example, I have a horizontal alignment defined with
IfcAlignment2DHorizontal.StartDistAlong = 500. Let’s say that the sum of the alignment segment lengths is 3000ft. That would make the range of IfcDistanceExpression.DistanceAlong ordinate be 5+00 to 35+00 (US Stationing) relative to the basis curve.
To place an object at Station 15+00 I would use an
IfcDistanceExpression.DistanceAlong = 1500. This should place the object 1500-500=1000ft from the start of the alignment.
Using ODA’s Open IFC Viewer 22.5, this is not the case. The object is placed 1500ft from the start of the alignment curve.
What is the correct interpretation of the specifications -
IfcDistanceExpression.DistanceAlong is relative to 0.0 or
IfcDistanceExpression.DistanceAlong is the distance relative to
If it’s the former, what is the purpose of
The ODA’s interpretation is correct. If you check IFC4.3_RC4, you will find that IfcAlignmentHorizontal.StartDistAlong is removed.
IfcPointByDistanceExpression.DistanceAlong defines the geometric measurement, which is independent from Stationing.
The Station is considered as semantic information that is defined using IfcReferent.PredefinedType=STATION.
The start station of an alignment is defined by positioning an IfcReferent.PredefinedType=STATION at the start of alignment through IfcLinearPlacement. The station value is defined using the property set Pset_Stationing. The conventional representation of station can be defined in Name of IfcReferent.
In your case that start station is 5+00, to place an object at Station 15+00, then IfcPointByDistanceExpression.DistanceAlong should be 1000.
Thanks. This is great information. I’ve been looking for an example of defining stationing on a highway alignment.