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.
A common practice is solid modelling systems is to have an entity that represents the "use" or "traversal" of an edge. This "use" entity explicitly represents the requirement in a manifold solid that each edge must be traversed exactly twice, once in each direction. The "use" functionality is provided by the edge subtype oriented edge.
8.20.3.13.2 Entity inheritance
8.20.3.13.3 Attributes
#  Attribute  Type  Description 

IfcRepresentationItem (2)  
LayerAssignment  SET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItems 
Assignment of the representation item to a single or multiple layer(s). The LayerAssignments can override a LayerAssignments of the IfcRepresentation it is used within the list of Items. 

StyledByItem  SET [0:1] OF IfcStyledItem FOR Item 
Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve. 

IfcEdge (2)  
1  EdgeStart  IfcVertex 
Start point (vertex) of the edge. 
2  EdgeEnd  IfcVertex 
End point (vertex) of the edge. The same vertex can be used for both EdgeStart and EdgeEnd. 
Click to show 4 hidden inherited attributes Click to hide 4 inherited attributes  
IfcOrientedEdge (4)  
3  EdgeElement  IfcEdge 
Edge entity used to construct this oriented edge. 
4  Orientation  IfcBoolean 
BOOLEAN, If TRUE the topological orientation as used coincides with the orientation from start vertex to end vertex of the edge element. If FALSE otherwise. 
1*  EdgeStart  IfcVertex 
This attribute is formally derived.
The start vertex of the oriented edge. It derives from the vertices of the edge element after taking account of the orientation. 
2*  EdgeEnd  IfcVertex 
This attribute is formally derived.
The end vertex of the oriented edge. It derives from the vertices of the edge element after taking account of the orientation. 
8.20.3.13.4 Formal propositions
Name  Description 

EdgeElementNotOriented 
The edge element shall not be an oriented edge. 

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_9f90c1f0.IFCORIENTEDEDGE' IN TYPEOF(EdgeElement));
END_ENTITY;