Orientation of cross sections in IfcSectionedSolidHorizontal defined by IfcAxis2PlacementLinear

I’m trying to understand the orientation of cross sections in IfcSectionedSolidHorizontal defined by IfcAxis2PlacementLinear, as specified in IFC4x3 (final).

There are two statements:

The profile normal is derived from the associated IfcAxis2PlacementLinear , not necessarily the tangent of the Directrix . The profile X axis is the direction of RefDirection from IfcAxis2PlacementLinear, and the profile Y axis is the direction of Axis .

The direction used to determine the direction of the local X Axis. In case both Axis and RefDirection are set and not perpendicular an adjustment is necessary to maintain orthogonality to the Axis direction. If RefDirection is omitted, the direction is taken from the curve tangent at Location.

So the X axis of the cross section is defined by IfcAxis2PlacementLinear.RefDirection and Y axis of the cross section is defined IfcAxis2PlacementLinear.RefDirection.

Such orientation of the cross section does not make any sense because the tangent vector of the directrix curve lies in the cross section plane.

I’m trying to figure out the correct orientation. The Y axis is correct, but X axis is not. I think that the orientation should be like this:

XAxis = Normalize(CrossProduct(IfcAxis2PlacementLinear.RefDirection, IfcAxis2PlacementLinear.Axis))
YAxis = IfcAxis2PlacementLinear.Axis
ZAxis = Normalize(CrossProduct(XAxis, YAxis))

Could someone confirm that this is the correct interpretation?

(I apologize, but as a new member of this forum I’m not able to attach pictures and links)

1 Like