8.8.3.28 IfcPolygonalFaceSet(多边形面集)
8.8.3.28.1 语义定义(Semantic definition)
IfcPolygonalFaceSet 是一种细分面集,其中所有面均由多边形界定。这些平面面由三个或更多笛卡尔点定义的隐式折线构成。每个平面面由 IfcIndexedPolygonalFace 的实例定义,对于具有内环的面,则由 IfcIndexedPolygonalFaceWithVoids 定义。
根据继承属性 Closed 的值,IfcPolygonalFaceSet 的实例表示:
- 如果为 TRUE,表示边界表示(或 B-rep);
- 如果为 FALSE,表示基于面的曲面表示。
属性 Faces 引用一个 IfcIndexedPolygonalFace 列表,这些面具有基于一的 CoordIndex,提供三个或更多索引。如果面具有内环,则 IfcIndexedPolygonalFaceWithVoids 具有一个二维的、基于一的列表,其中: * 二维列表的第一维处理内环列表; * 二维列表的第二维提供三个或更多索引,每个索引是表示内环的平面多边形的一个顶点。
根据 PnIndex 的提供情况,索引要么直接指向在超类型 IfcTessellatedFaceSet 中定义的 Coordinates 所引用的 IfcCartesianPointList3D,要么指向 PnIndex,其中该位置的整数值提供 IfcCartesianPointList3D 内坐标值的位置。有关点索引的处理,请参见图 8.8.3.28.A。

注意 如果 IfcPolygonalFaceSet 是封闭的,则从封闭壳的外部观察时,IfcIndexedPolygonalFace 的面顶点应按逆时针方向连接,以确保面法线指向壳材料的外部。由 IfcIndexedPolygonalFaceWithVoids 提供的内环应按顺时针方向连接。

图 8.8.3.28.B 展示了一个由以下内容表示的 IfcPolygonalFaceSet:
#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.))
注意 IfcPolygonalFaceSet 的定义基于 ISO/IEC 19775-1 中定义的 indexedFaceSet。
非正式命题
- 如果 Closed = TRUE,则应满足与面边界表示相同的拓扑约束。特别是:
- 每个面应是唯一的;
- 每条边应恰好被面的两个外边界或内边界使用;
- 多边形面集边界上每个点的拓扑法线应指向实体材料的外部。
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)
| # | 特性(Attributes) | 类型 | 描述 |
|---|---|---|---|
| IfcRepresentationItem (2) | |||
| LayerAssignment | SET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItems |
将表示项分配给单个或多个层。LayerAssignments 可以覆盖其所在的 IfcRepresentation 的 Items 列表中的 LayerAssignments。 |
|
| StyledByItem | SET [0:1] OF IfcStyledItem FOR Item |
引用为表示提供表现信息的 IfcStyledItem,例如,为几何曲线提供曲线样式,包括颜色和厚度。 |
|
| IfcTessellatedFaceSet (4) | |||
| 1 | Coordinates | IfcCartesianPointList3D |
在 IfcTessellatedFaceSet 的子类型中定义的坐标索引使用的有序笛卡尔点列表。 |
| HasColours | SET [0:1] OF IfcIndexedColourMap FOR MappedTo |
引用索引颜色映射,为 IfcTessellatedFaceSet 子类型的面提供相应的颜色 RGB 值。 |
|
| HasTextures | SET [0:?] OF IfcIndexedTextureMap FOR MappedTo |
引用索引纹理映射,为 IfcTessellatedFaceSet 子类型的面边界顶点提供相应的纹理坐标。 |
|
| * | Dim | IfcDimensionCount |
此属性是形式化派生的
此几何表示项的空间维度,始终为 3。 |
| 点击显示 6 个隐藏的继承特性 点击隐藏 6 个继承特性 | |||
| IfcPolygonalFaceSet (3) | |||
| 2 | Closed | OPTIONAL IfcBoolean |
指示面集是封闭壳(TRUE)还是开放壳(FALSE)。如果省略,则无法断言此类信息。 |
| 3 | Faces | LIST [1:?] OF UNIQUE IfcIndexedPolygonalFace |
多边形面的列表,带有或不带内环,用于界定细分面集。 |
| 4 | PnIndex | OPTIONAL LIST [1:?] OF IfcPositiveInteger |
整数列表,定义 IfcCartesianPointList3D 中的位置,以获取索引多边形面中索引的点坐标。如果未提供 PnIndex,则索引多边形面中的索引直接指向 IfcCartesianPointList3D。 |
8.8.3.28.4 形式化表示(Formal representation)
ENTITY IfcPolygonalFaceSet
SUBTYPE OF (IfcTessellatedFaceSet);
Closed : OPTIONAL IfcBoolean;
Faces : LIST [1:?] OF UNIQUE IfcIndexedPolygonalFace;
PnIndex : OPTIONAL LIST [1:?] OF IfcPositiveInteger;
END_ENTITY;