8.8.3.38 IfcTriangulatedFaceSet

Ensemble de faces triangulées

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 an index into an ordered list of Cartesian points provided by the two-dimensional list CoordIndex, where

Optional the normals at each vertex, being perpendicular to the face for that triangle, can be provided by the two-dimensional list NormalIndex, where

Figure 854 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 855 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))
IfcCartesianPointList: ((0.,0.,0.), (1.,0.,0.), (1.,1.,0.), (0.,1.,0.), (0.,0.,2.), (1.,0.,2.), (1.,1.,2.), (0.,1.,2.))

IfcTriangulatedFaceSet_01
IfcTriangulatedFaceSet_Example-01

Figure 854 — Triangulated face set

Figure 855 — 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.

Figure 856 illustrates an instance diagram.

IfcTriangulatedFaceSetIfcTriangulatedFaceSet

Figure 856 — IfcTriangulatedFaceSet

EXPRESS Specification:

ENTITY IfcTriangulatedFaceSet
SUBTYPE OF IfcTessellatedFaceSet;
CoordIndex : LIST [1:?] OF LIST [3:3] OF INTEGER;
NormalIndex : OPTIONAL LIST [1:?] OF LIST [3:3] OF INTEGER;
DERIVE
NumberOfTriangles : INTEGER := SIZEOF(CoordIndex);
END_ENTITY;

Link to EXPRESS-G diagram

Attribute Definitions:

CoordIndex : 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.
NormalIndex : 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.DirectionList.
NumberOfTriangles : Derived number of triangles used for this triangulation.

Inheritance Graph:

ENTITY IfcTriangulatedFaceSet
ENTITY IfcRepresentationItem
INVERSE
LayerAssignment : SET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItems;
StyledByItem : SET [0:1] OF IfcStyledItem FOR Item;
ENTITY IfcGeometricRepresentationItem
ENTITY IfcTessellatedItem
ENTITY IfcTessellatedFaceSet
Coordinates : IfcCartesianPointList;
Normals : OPTIONAL IfcDirectionList;
Closed : OPTIONAL BOOLEAN;
INVERSE
HasColours : SET [0:1] OF IfcIndexedColourMap FOR MappedTo;
HasTextures : SET [0:?] OF IfcIndexedTextureMap FOR MappedTo;
ENTITY IfcTriangulatedFaceSet
CoordIndex : LIST [1:?] OF LIST [3:3] OF INTEGER;
NormalIndex : OPTIONAL LIST [1:?] OF LIST [3:3] OF INTEGER;
DERIVE
NumberOfTriangles : INTEGER := SIZEOF(CoordIndex);
END_ENTITY;

XSD Specification:

<xs:element substitutionGroup="ifc:IfcTessellatedFaceSet" name="IfcTriangulatedFaceSet" nillable="true" type="ifc:IfcTriangulatedFaceSet"> </xs:element> <xs:complexType name="IfcTriangulatedFaceSet"> <xs:complexContent> <xs:extension base="ifc:IfcTessellatedFaceSet"> <xs:attribute use="optional" name="CoordIndex"> <xs:simpleType> <xs:restriction> <xs:simpleType> <xs:list itemType="xs:long"> </xs:list> </xs:simpleType> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute use="optional" name="NormalIndex"> <xs:simpleType> <xs:restriction> <xs:simpleType> <xs:list itemType="xs:long"> </xs:list> </xs:simpleType> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType>

Examples: