8.9.3.35 IfcIndexedPolyCurve(索引多段线)
8.9.3.35.1 语义定义(Semantic definition)
IfcIndexedPolyCurve 是一种有界曲线,仅包含直线段和圆弧段,通过笛卡尔点列表和可选的线段列表定义,线段列表提供指向笛卡尔点列表的索引。如果未提供 Segments 列表,则 IfcCartesianPointList 中的所有点按照它们在 IfcCartesianPointList 中出现的顺序通过直线段连接。
如果提供了 Segments 列表,则按以下方式解释:
- IfcLineIndex 类型的线段:第一个索引是多段线段的起点,最后一个索引是多段线段的终点。如果包含两个以上的索引,则所有中间索引按照索引出现的顺序定义多段线的中间点;
- IfcArcIndex 类型的线段:第一个索引是圆弧的起点,第二个索引是圆弧上的点,第三个索引是圆弧的终点。这三个点不应共线。如果未满足此非正式命题,则圆弧段应被视为多段线段。


IfcIndexedPolyCurve 表示开放或闭合曲线,具体取决于以下条件:
- 如果提供了 Segments 列表:如果最后一个 Segment 的最后一个索引与第一个 Segment 的第一个索引相同,则多段线为闭合曲线,否则为开放曲线。
- 如果未提供 Segments 列表:如果笛卡尔点列表中的第一个和最后一个笛卡尔点相同,则多段线为闭合曲线,否则为开放曲线。
非正式命题
- 在考虑适用的 IfcGeometricRepresentationContext 给出的 Precision 因子后,IfcIndexedPolyCurve 的任何两个连续点不应重合。
- 在考虑适用的 IfcGeometricRepresentationContext 给出的 Precision 因子后,IfcIndexedPolyCurve 的任何 IfcArcIndex 线段的三个点不应共线。
8.9.3.35.2 实体继承(Entity inheritance)
-
- IfcCurve
- IfcAnnotationFillArea
- IfcBooleanResult
- IfcBoundingBox
- IfcCartesianPointList
- IfcCartesianTransformationOperator
- IfcCsgPrimitive3D
- IfcDirection
- IfcFaceBasedSurfaceModel
- IfcFillAreaStyleHatching
- IfcFillAreaStyleTiles
- IfcGeometricSet
- IfcHalfSpaceSolid
- IfcLightSource
- IfcPlacement
- IfcPlanarExtent
- IfcPoint
- IfcSectionedSpine
- IfcSegment
- IfcShellBasedSurfaceModel
- IfcSolidModel
- IfcSurface
- IfcTessellatedItem
- IfcTextLiteral
- IfcVector
8.9.3.35.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,例如,为几何曲线提供曲线样式,包括颜色和厚度。 |
|
| IfcCurve (1) | |||
| * | Dim | IfcDimensionCount |
此属性是形式化派生的
此抽象类的空间维度,所有子类(如 IfcLine、IfcConic 和 IfcBoundedCurve)的定义各不相同。 |
| 点击显示 3 个隐藏的继承特性 点击隐藏 3 个继承特性 | |||
| IfcIndexedPolyCurve (3) | |||
| 1 | Points | IfcCartesianPointList |
由二维或三维点列表提供的点列表,用于定义多段线。如果未提供属性 Segments,则通过按点列表中出现的顺序连接点来生成多段线。如果提供了属性 Segments,则线段确定如何使用点创建直线段和圆弧段。 |
| 2 | Segments | OPTIONAL LIST [1:?] OF IfcSegmentIndexSelect |
直线段和圆弧段的列表,每个段提供指向笛卡尔点列表的索引列表。索引应保持线段之间的连续连接性,下一个线段的起始索引应与前一个线段的结束索引相同。 |
| 3 | SelfIntersect | OPTIONAL IfcBoolean |
指示曲线是否自相交;这仅用于提供信息。 |
8.9.3.35.4 形式化命题(Formal propositions)
| 名称 | 描述 |
|---|---|
| Consecutive |
如果提供了索引线段列表,它们需要是连续的,这意味着除最后一个线段外的所有线段的最后一个索引应与下一个线段的第一个索引相同。 |
|
|
8.9.3.35.5 形式化表示(Formal representation)
ENTITY IfcIndexedPolyCurve
SUBTYPE OF (IfcBoundedCurve);
Points : IfcCartesianPointList;
Segments : OPTIONAL LIST [1:?] OF IfcSegmentIndexSelect;
SelfIntersect : OPTIONAL IfcBoolean;
WHERE
Consecutive : NOT(EXISTS(Segments)) OR IfcConsecutiveSegments(Segments);
END_ENTITY;