IfcOrientedEdge

Natural language names
Gerichtete Kante - Topologie
Oriented Edge
Arête orientée
Change log
ItemSPFXMLChangeDescription
IFC4 Addendum 1 4.0.1.0
    IfcOrientedEdge
      OrientationMODIFIEDType changed from BOOLEAN to IfcBoolean.
Semantic definitions at the entity
Entity 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.

NOTE  The sense of the normal to the IfcFace is solely determined from the edges. If all the edges of the face are connected in a counter clockwise manner following the edge orientations the face normal will point outward. The normal to the underlying IfcFaceSurface representing the geometry of that face has no relevance to this. The purpose of the IfcFaceSurface.SameSense attribute is to give additional information for verification purposes. SameSense TRUE means surface normal and face normal are the same, SameSense FALSE means they are in opposite directions.

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.


example
EXAMPLE  Figure 589 illustrates an example where the CurveOnSurface is provided in addition to the curve geometry of the IfcEdgeCurve.

Figure 589 — Curve on surface representation of an IfcOrientedEdge

  

NOTE  Definition according to ISO/CD 10303-42:1992
An oriented edge is an edge constructed from another edge and contains a BOOLEAN direction flag to indicate whether or not the orientation of the constructed edge agrees with the orientation of the original edge. Except for perhaps orientation, the oriented edge is equivalent to the original edge.

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.

NOTE  Entity adapted from oriented_edge defined in ISO 10303-42.

HISTORY  New entity in IFC2.0.

IFC4 Add2 CHANGE  The attribute CurveOnSurface has been added.

Attribute definitions
#AttributeTypeCardinalityDescription G
3EdgeElementIfcEdge Edge entity used to construct this oriented edge. X
4OrientationIfcBoolean 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. X
EdgeStart
:=IfcBooleanChoose (Orientation, EdgeElement.EdgeStart, EdgeElement.EdgeEnd)
IfcVertexThe start vertex of the oriented edge. It derives from the vertices of the edge element after taking account of the orientation. X
EdgeEnd
:=IfcBooleanChoose (Orientation, EdgeElement.EdgeEnd, EdgeElement.EdgeStart)
IfcVertexThe end vertex of the oriented edge. It derives from the vertices of the edge element after taking account of the orientation. X
Formal Propositions
RuleDescription
EdgeElementNotOrientedThe edge element shall not be an oriented edge.
Inherited definitions from supertypes
Entity inheritance IfcEdge IfcTopologicalRepresentationItem IfcRepresentationItem
Attribute inheritance
#AttributeTypeCardinalityDescriptionG
IfcRepresentationItem
LayerAssignmentIfcPresentationLayerAssignment
@AssignedItems
S[0:1]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.
IFC2x3 CHANGE  The inverse attribute LayerAssignments has been added.
IFC4 CHANGE  The inverse attribute LayerAssignment has been restricted to max 1. Upward compatibility for file based exchange is guaranteed.
X
StyledByItemIfcStyledItem
@Item
S[0:1]Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve.
IFC2x3 CHANGE  The inverse attribute StyledByItem has been added.
X
IfcTopologicalRepresentationItem
IfcEdge
IfcOrientedEdge
3EdgeElementIfcEdge Edge entity used to construct this oriented edge. X
4OrientationIfcBoolean 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. X
EdgeStart
:=IfcBooleanChoose (Orientation, EdgeElement.EdgeStart, EdgeElement.EdgeEnd)
IfcVertexThe start vertex of the oriented edge. It derives from the vertices of the edge element after taking account of the orientation. X
EdgeEnd
:=IfcBooleanChoose (Orientation, EdgeElement.EdgeEnd, EdgeElement.EdgeStart)
IfcVertexThe end vertex of the oriented edge. It derives from the vertices of the edge element after taking account of the orientation. X
Formal representations
XML Specification
 <xs:complexType name="IfcOrientedEdge-temp" abstract="true">
  <xs:complexContent>
   <xs:restriction base="ifc:IfcEdge">
    <xs:sequence/>
   </xs:restriction>
  </xs:complexContent>
 </xs:complexType>
 <xs:element name="IfcOrientedEdge" type="ifc:IfcOrientedEdge" substitutionGroup="ifc:IfcEdge" nillable="true"/>
 <xs:complexType name="IfcOrientedEdge">
  <xs:complexContent>
   <xs:extension base="ifc:IfcOrientedEdge-temp">
    <xs:sequence>
     <xs:element name="EdgeElement" type="ifc:IfcEdge" nillable="true"/>
    </xs:sequence>
    <xs:attribute name="Orientation" type="ifc:IfcBoolean" use="optional"/>
   </xs:extension>
  </xs:complexContent>
 </xs:complexType>
EXPRESS Specification
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('IFCTOPOLOGYRESOURCE.IfcOrientedEdge' IN TYPEOF(EdgeElement));
END_ENTITY;

Link to EXPRESS-G diagram EXPRESS-G diagram

References  References: IfcEdgeLoop IfcPath

Link to this page  Link to this page