8.8.3.28 IfcPolygonalFaceSet
8.8.3.28.1 Semantic definition
The IfcPolygonalFaceSet is a tessellated face set with all faces being bound by polygons. The planar faces are constructed by implicit polylines defined by three or more Cartesian points. Each planar face is defined by an instance of IfcIndexedPolygonalFace, or in case of faces with inner loops by IfcIndexedPolygonalFaceWithVoids.
Depending on the value of the inherited attribute Closed the instance of IfcPolygonalFaceSet represents:
- if TRUE, a boundary representation (or B-rep);
- if FALSE, a face based surface representation.
The attribute Faces refers to a list of IfcIndexedPolygonalFace's having an one-based CoordIndex that provides three or more indices. If the face has inner loops, the IfcIndexedPolygonalFaceWithVoids has a two-dimensional, one-based list, where: * the first dimension of the two-dimensional list addresses the list of inner loops; * the second dimension of the two-dimensional list provides three or more indices each being a vertex of the planar polygon representing the inner loop.
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 8.8.3.28.A for the handling of point index.


Figure 8.8.3.28.B shows an IfcPolygonalFaceSet represented by:
#1 IfcIndexedPolygonalFace: ((1, 2, 6, 5) #2 IfcIndexedPolygonalFace: ((6, 2, 3, 7) #3 IfcIndexedPolygonalFace: ((7, 3, 4, 8) #4 IfcIndexedPolygonalFace: ((8, 4, 1, 5) #5 IfcIndexedPolygonalFace: ((1, 4, 3, 2) #6 IfcIndexedPolygonalFace: ((6, 7, 8, 5) #7 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.))
Informal Propositions
- If Closed = TRUE, the same topological constraints as imposed by an faceted boundary representation shall be safisfied. In particular:
- each face shall be unique;
- each edge shall be used by exactly two outer or inner boundaries of faces;
- the topological normal at each point on the boundary of the polygonal face set shall point away from the material of the solid.
8.8.3.28.2 Entity inheritance
-
- IfcTessellatedItem
- IfcAnnotationFillArea
- IfcBooleanResult
- IfcBoundingBox
- IfcCartesianPointList
- IfcCartesianTransformationOperator
- IfcCsgPrimitive3D
- IfcCurve
- IfcDirection
- IfcFaceBasedSurfaceModel
- IfcFillAreaStyleHatching
- IfcFillAreaStyleTiles
- IfcGeometricSet
- IfcHalfSpaceSolid
- IfcLightSource
- IfcPlacement
- IfcPlanarExtent
- IfcPoint
- IfcSectionedSpine
- IfcSegment
- IfcShellBasedSurfaceModel
- IfcSolidModel
- IfcSurface
- IfcTextLiteral
- IfcVector
8.8.3.28.3 Attributes
# | Attribute | Type | Description |
---|---|---|---|
IfcRepresentationItem (2) | |||
IfcTessellatedFaceSet (4) | |||
Click to show 6 hidden inherited attributes Click to hide 6 inherited attributes | |||
IfcPolygonalFaceSet (3) | |||
2 | Closed | OPTIONAL IfcBoolean |
Indication whether the face set is a closed shell (TRUE) or an open shell (FALSE). If omitted no such information can be asserted. |
3 | Faces | LIST [1:?] OF UNIQUE IfcIndexedPolygonalFace |
The list of polygonal faces, with or without inner loops, that bound the faceted face set. |
4 | PnIndex | OPTIONAL LIST [1:?] OF IfcPositiveInteger |
The list of integers defining the locations in the IfcCartesianPointList3D to obtain the point coordinates for the indices at the indexed polygonal faces. If the PnIndex is not provided the indices at the indexed polygonal faces point directly into the IfcCartesianPointList3D. |
8.8.3.28.4 Examples
8.8.3.28.5 Formal representation
ENTITY IfcPolygonalFaceSet SUBTYPE OF (IfcTessellatedFaceSet); Closed : OPTIONAL IfcBoolean; Faces : LIST [1:?] OF UNIQUE IfcIndexedPolygonalFace; PnIndex : OPTIONAL LIST [1:?] OF IfcPositiveInteger; END_ENTITY;