IFC 4.3.0.1 (IFC4X3) development

# 8.20.3.13 IfcOrientedEdge

## 8.20.3.13.1 Semantic definition

The IfcOrientedEdge represents an IfcEdge with an Orientation flag applied. It allows to reuse the same IfcEdge when traversed exactly twice, once forwards and once backwards.

The reused edge with a geometric representation as IfcEdgeCurve defines the edge in 3D coordinate space. In some cases, particularly when using elementary or swept surfaces, there is the risk of imprecise mapping of the 3D (x, y, z) IfcEdgeCurve onto the adjacent surfaces to determine the boundaries of these surfaces. The optional CurveOnSurface defines the 2D (u, v) edge within the parametric space of the surface. It could be used to determine the correctness of the mapping of the 3D IfcEdgeCurve onto this surface.

## 8.20.3.13.5 Formal representation

ENTITY IfcOrientedEdge
SUBTYPE OF (IfcEdge);
EdgeElement : IfcEdge;
Orientation : IfcBoolean;
DERIVE
SELF\IfcEdge.EdgeStart : IfcVertex := IfcBooleanChoose
(Orientation, EdgeElement.EdgeStart, EdgeElement.EdgeEnd);
SELF\IfcEdge.EdgeEnd : IfcVertex := IfcBooleanChoose
(Orientation, EdgeElement.EdgeEnd, EdgeElement.EdgeStart);
WHERE
EdgeElementNotOriented : NOT('IFC4X3_DEV_70ce626d.IFCORIENTEDEDGE' IN TYPEOF(EdgeElement));
END_ENTITY;