tesselliertes Element aus Dreiecksflächen  
Triangulated Face Set  
Ensemble de faces triangulées 
Item  SPF  XML  Change  Description 

4.0.0.0  
IfcTriangulatedFaceSet  ADDED  
4.0.1.0  
IfcTriangulatedFaceSet  
Closed  MODIFIED  Type changed from BOOLEAN to IfcBoolean.  
CoordIndex  MODIFIED  Type changed from INTEGER to IfcPositiveInteger.  
NormalIndex  MODIFIED  Type changed from INTEGER to IfcPositiveInteger.  
4.0.2.0  
IfcTriangulatedFaceSet  
Normals  X  MODIFIED  Xsdformat changed from Content to Default. Xsdtagless changed from True to False.  
PnIndex  X  MODIFIED  Name changed from NormalIndex to PnIndex. 
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. Depending on the value of the attribute Closed the instance of IfcTriangulatedFaceSet represents:
The coordinates of each point are provided by a onebased index into an ordered list of Cartesian points provided by the twodimensional list CoordIndex, where
Depending on the provision of PnIndex the indices point either directly into the IfcCartesianPointList3D referenced by Coordinates defined at the supertype IfcTessellatedFaceSet, or they point into the PnIndex where the integer values at that position provides the location of the coordinate values within the IfcCartesianPointList3D. See Figure 170 for the handling of point index.
Figure 170 — Use of PnIndex 
See Figure 171 for using the IfcTriangulatedFaceSet without (as default) and with using the PnIndex.
Figure 171 — Triangulated face set 
Optionally normals can be provided. Only normals per vector are supported allowing for visually curved triangles when the three normals of the corresponding three vertices of a triangle are not colinear to the normal of the triangular face. If they are identical, normals shall be omited.
NOTE In case of a body representation having triangular faces with curvature, different normals for all three vertices in context of this triangles are exported, describing the curvature for smooth visualisation. In case of triangular faces with no curvature, the three vertexbased normals are identical and could always be computed from the face. Therefore vertices should only be exported to support smooth visualisation by curvature of triangles. In case of faceted representation no vertices should be exported.
Normals are provided by the twodimensional list Normals, where
The indices in the CoordIndex point into the list of Normals. The indices of CoordIndex are applied to both points, either directly directly, or via the PnIndex and normals. See Figure 172 for handling of normals.
Figure 172 — Triangulated face set with 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 nonunique collections of vertices.
Figure 173 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.
Figure 171 shows an IfcTriangulatedFaceSet represented by 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 173 — Triangulated face set geometry 
NOTE The definition of IfcTriangulatedFaceSet is based on the indexedFaceSet and indexedTriangleSet defined in ISO/IEC 197751. The use of PnIndex has been adopted from triangulated_surface_set defined in ISO1030342.
HISTORY New entity in IFC4.
Informal Propositions:
#  Attribute  Type  Cardinality  Description  R 

2  Normals  IfcParameterValue  ? L[1:?] L[3:3] 
An ordered list of three directions for normals. It is a twodimensional list of directions provided by three parameter
values.
 X 
3  Closed  IfcBoolean  ?  Indication whether the IfcTriangulatedFaceSet is a closed shell or not. If omited no such information can be provided.  X 
4  CoordIndex  IfcPositiveInteger  L[1:?] L[3:3] 
Twodimensional list for the indexedbased triangles, where
NOTE The coordinates of the vertices are provided by the indexed list of SELF\IfcTessellatedFaceSet.Coordinates.CoordList.  X 
5  PnIndex  IfcPositiveInteger  ? L[1:?]  The list of integers defining the locations in the IfcCartesianPointList3D to obtain the point coordinates for the indices withint the CoordIndex. If the PnIndex is not provided the indices point directly into the IfcCartesianPointList3D.  X 
NumberOfTriangles :=SIZEOF(CoordIndex)  IfcInteger  Derived number of triangles used for this triangulation.  X 
#  Attribute  Type  Cardinality  Description  R 

IfcRepresentationItem  
LayerAssignment  IfcPresentationLayerAssignment @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.  
StyledByItem  IfcStyledItem @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  
IfcGeometricRepresentationItem  
IfcTessellatedItem  
IfcTessellatedFaceSet  
1  Coordinates  IfcCartesianPointList3D  An ordered list of Cartesian points used by the coordinate index defined at the subtypes of IfcTessellatedFaceSet.  X  
HasColours  IfcIndexedColourMap @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  
Dim :=3  IfcDimensionCount  The space dimensionality of this geometric representation item, it is always 3.  X  
IfcTriangulatedFaceSet  
2  Normals  IfcParameterValue  ? L[1:?] L[3:3] 
An ordered list of three directions for normals. It is a twodimensional list of directions provided by three parameter
values.
 X 
3  Closed  IfcBoolean  ?  Indication whether the IfcTriangulatedFaceSet is a closed shell or not. If omited no such information can be provided.  X 
4  CoordIndex  IfcPositiveInteger  L[1:?] L[3:3] 
Twodimensional list for the indexedbased triangles, where
NOTE The coordinates of the vertices are provided by the indexed list of SELF\IfcTessellatedFaceSet.Coordinates.CoordList.  X 
5  PnIndex  IfcPositiveInteger  ? L[1:?]  The list of integers defining the locations in the IfcCartesianPointList3D to obtain the point coordinates for the indices withint the CoordIndex. If the PnIndex is not provided the indices point directly into the IfcCartesianPointList3D.  X 
NumberOfTriangles :=SIZEOF(CoordIndex)  IfcInteger  Derived number of triangles used for this triangulation.  X 
<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="Normals" use="optional">
<xs:simpleType>
<xs:restriction>
<xs:simpleType>
<xs:list itemType="ifc:IfcParameterValue"/>
</xs:simpleType>
<xs:minLength value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Closed" type="ifc:IfcBoolean" use="optional"/>
<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="PnIndex" use="optional">
<xs:simpleType>
<xs:restriction>
<xs:simpleType>
<xs:list itemType="ifc:IfcPositiveInteger"/>
</xs:simpleType>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
ENTITY IfcTriangulatedFaceSet
SUBTYPE OF (IfcTessellatedFaceSet);
Normals : OPTIONAL LIST [1:?] OF LIST [3:3] OF IfcParameterValue;
Closed : OPTIONAL IfcBoolean;
CoordIndex : LIST [1:?] OF LIST [3:3] OF IfcPositiveInteger;
PnIndex : OPTIONAL LIST [1:?] OF IfcPositiveInteger;
DERIVE
NumberOfTriangles : IfcInteger := SIZEOF(CoordIndex);
END_ENTITY;