IfcTriangulatedFaceSet

Natural language names
detesselliertes Element aus Dreiecksflächen
enTriangulated Face Set
frEnsemble de faces triangulées
Change log
ItemSPFXMLChangeDescription
IFC2x3 to IFC4
    IfcTriangulatedFaceSetADDED
IFC4 Addendum 1
    IfcTriangulatedFaceSet
      ClosedMODIFIEDType changed from BOOLEAN to IfcBoolean.
      CoordIndexMODIFIEDType changed from INTEGER to IfcPositiveInteger.
      NormalIndexMODIFIEDType changed from INTEGER to IfcPositiveInteger.
Semantic definitions at the entity
Entity definition

The IfcTriangulatedFaceSet is a tessellated face set with all faces being bound by triangles. The faces are constructed by implicit polylines defined by three Cartesian points. The coordinates of each point are provided by a one-based index into an ordered list of Cartesian points provided by the two-dimensional list CoordIndex, where

Optional the normals at each vertex can be provided by the two-dimensional list NormalIndex, where

In case of corresponding lists of points and normals where the order of the points in the CoordList is identical to the order of the normals in Normals, a single index list shall be used. The the list of CoordIndex will be applied to both points and normals, and the list of NormalIndex shall be empty. In other words, if the list of Normals in not empty and the list of NormalIndex is empty, then the list of CoordIndex shall be used to point to the corresponding positions in the list of CoordList and Normals.

NOTE  Using corresponding lists of points and normals allows to use only a single list of indices into both at the expense of having non-unique collections of points and vertices.

Figure 334 shows the use of IfcTriangulatedFaceSet without annotation. The diagram of the IfcTriangulatedFaceSet represents the indices and the ordered list into which the indices point. The index starts with 1 (indexed as 1 to N), if the greatest index in CoordIndex in N, then the IfcCartesianPointList shall have N lists of 3:3 coordinates.

IfcTriangulatedFaceSet_01

There are three possibilities to instantiate the IfcTriangulatedFaceSet, in addition to the mandatory attributes CoordList through Coordinates and CoordIndex the optional attributes have the following combination:

  • Normals and NormalIndex are both provided, then the NormalIndex points into Normals
  • Normals provided and NormalIndex is not provided, then the CoordIndex also points into the Normals
  • Normals and NormalIndex are both not provided, then the normals have to be recalculated.

Figure 334 — Triangulated face set

 

IfcTriangulatedFaceSet_Example-01

Figure 335 shows an IfcTriangulatedFaceSet represented by

CoordIndex: ((1,6,5), (1,2,6), (6,2,7), (7,2,3), (7,8,6), (6,8,5), (5,8,1), (1,8,4), (4,2,1), (2,4,3), (4,8,7), (7,3,4))
IfcCartesianPointList3D: ((0.,0.,0.), (1.,0.,0.), (1.,1.,0.), (0.,1.,0.), (0.,0.,2.), (1.,0.,2.), (1.,1.,2.), (0.,1.,2.))

Figure 335 — Triangulated face set geometry

 
NOTE  The definition of IfcTriangulatedFaceSet is based on the indexedFaceSet, and indexedTriangleSet defined in ISO/IEC 19775-1
HISTORY  New entity in IFC4.
Attribute definitions
#AttributeTypeCardinalityDescription C
4CoordIndexIfcPositiveIntegerL[1:?]L[3:3] Two-dimensional list, where the first dimension represents the triangles (from 1 to N) and the second dimension the indices to three points defining the vertices (from 1 to 3).
NOTE  The coordinates of the vertices are provided by the indexed list of SELF\IfcTessellatedFaceSet.Coordinates.CoordList.
X
5NormalIndexIfcPositiveIntegerL[1:?]L[3:3] Two-dimensional list, where the first dimension represents the triangle (from 1 to N) and the second dimension the indices to three normals (from 1 to 3) corresponding to the vertices.
The directions of the normals are provided by the indexed list of SELF\IfcTessellatedFaceSet.Normals.
X
NumberOfTriangles
:=SIZEOF(CoordIndex)
IfcInteger[1:1]Derived number of triangles used for this triangulation. X
Inherited definitions from supertypes
Entity inheritance IfcTessellatedFaceSet IfcTessellatedItem IfcGeometricRepresentationItem IfcRepresentationItem
Attribute inheritance
#AttributeTypeCardinalityDescriptionC
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. 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. X
IfcGeometricRepresentationItem
IfcTessellatedItem
IfcTessellatedFaceSet
1CoordinatesIfcCartesianPointList3D[1:1] An ordered list of Cartesian points used by the coordinate index defined at the subtypes of IfcTessellatedFaceSet.X
2NormalsIfcParameterValueL[1:?]L[3:3] An ordered list of directions used by the normal index defined at the subtypes of IfcTessellatedFaceSet. It is a two-dimensional list of directions provided by three parameter values.X
3ClosedIfcBoolean[0:1] Indication whether the IfcTessellatedFaceSet is a closed shell or not. If omited no such information can be provided.X
HasColoursIfcIndexedColourMap
@MappedTo
S[0:1]Reference to the indexed colour map providing the corresponding colour RGB values to the faces of the subtypes of IfcTessellatedFaceSet.X
HasTexturesIfcIndexedTextureMap
@MappedTo
S[0:?]Reference to the indexed texture map providing the corresponding texture coordinates to the vertices bounding the faces of the subtypes of IfcTessellatedFaceSet.X
IfcTriangulatedFaceSet
4CoordIndexIfcPositiveIntegerL[1:?]L[3:3] Two-dimensional list, where the first dimension represents the triangles (from 1 to N) and the second dimension the indices to three points defining the vertices (from 1 to 3).
NOTE  The coordinates of the vertices are provided by the indexed list of SELF\IfcTessellatedFaceSet.Coordinates.CoordList.
X
5NormalIndexIfcPositiveIntegerL[1:?]L[3:3] Two-dimensional list, where the first dimension represents the triangle (from 1 to N) and the second dimension the indices to three normals (from 1 to 3) corresponding to the vertices.
The directions of the normals are provided by the indexed list of SELF\IfcTessellatedFaceSet.Normals.
X
NumberOfTriangles
:=SIZEOF(CoordIndex)
IfcInteger[1:1]Derived number of triangles used for this triangulation. X
Examples
Formal representations
XSD Specification
 <xs:element name="IfcTriangulatedFaceSet" type="ifc:IfcTriangulatedFaceSet" substitutionGroup="ifc:IfcTessellatedFaceSet" nillable="true"/>
 <xs:complexType name="IfcTriangulatedFaceSet">
  <xs:complexContent>
   <xs:extension base="ifc:IfcTessellatedFaceSet">
    <xs:attribute name="CoordIndex" use="optional">
     <xs:simpleType>
      <xs:restriction>
       <xs:simpleType>
        <xs:list itemType="ifc:IfcPositiveInteger"/>
       </xs:simpleType>
       <xs:minLength value="3"/>
      </xs:restriction>
     </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="NormalIndex" use="optional">
     <xs:simpleType>
      <xs:restriction>
       <xs:simpleType>
        <xs:list itemType="ifc:IfcPositiveInteger"/>
       </xs:simpleType>
       <xs:minLength value="3"/>
      </xs:restriction>
     </xs:simpleType>
    </xs:attribute>
   </xs:extension>
  </xs:complexContent>
 </xs:complexType>
EXPRESS Specification
ENTITY IfcTriangulatedFaceSet
 SUBTYPE OF (IfcTessellatedFaceSet);
  CoordIndex : LIST [1:?] OF LIST [3:3] OF IfcPositiveInteger;
  NormalIndex : OPTIONAL LIST [1:?] OF LIST [3:3] OF IfcPositiveInteger;
 DERIVE
  NumberOfTriangles : IfcInteger := SIZEOF(CoordIndex);
END_ENTITY;

Link to EXPRESS-G diagram EXPRESS-G diagram

Link to this page  Link to this page