IfcIndexedPolyCurve

IfcIndexedPolyCurve是一条有界曲线,仅包含由笛卡尔点列表和可选线段列表定义的直线段和圆弧段,为笛卡尔点列表提供索引。如果没有提供段列表,则IfcCartesianPointList中的所有点都按它们在IfcCartesianPointList中出现的顺序由直线段连接。

在提供段列表的情况下,应将其解释为:

①IfcLineIndex类型的线段:第一个索引是多边形线段的起点,最后一个索引是多边形线段的终点。如果包含两个以上的索引,则所有中间索引按索引的出现顺序定义连接的多段线的中间点;

②IfcArcIndex型线段:第一个索引是圆弧的起点,第二个索引是圆弧上的一个点,第三个索引是圆弧的终点。这三个点不应共线。如果不保留此非正式提议,则弧段应视为多段线段。

③下图显示了一条有界开放的IfcIndexedPolyCurve,该曲线具有直线段和圆弧段。在本例中,直线段只有两个点和一条边,但是笛卡尔点列表中可以包含两个以上的索引,从而定义一个多边多段线线段。

 

带直线段和圆弧段的有界开IfcIndexedPolyCurve

下图示例了一个只有直线段的有界开放IfcIndexedPolyCurve。在本例中,没有提供线段列表,因此将按照它们在IfcCartesianPointList中的出现顺序绘制点。

 

仅含直线段的有界开IfcIndexedPolyCurve

IfcIndexedPolyCurve表示开放或闭合曲线,具体取决于以下条件:

①在提供线段列表的情况下:如果最后一个线段的最后一个索引和第一个线段的第一个索引相同,则多边形曲线是闭合曲线,否则为开放曲线。

②在未提供线段列表的情况下:如果笛卡尔点列表中的第一个和最后一个笛卡尔点相同,则多边形曲线为闭合曲线,否则为开放曲线。

IFC4 中增加的新实体

 

非正式提议:

①考虑到适用的IfcGeometricRepresentationContext给出的精度因子后,IfcIndexedPolyCurve的任何两个连续点不得重合。

②在考虑了由适用的IfcGeometricRepresentationContext给出的精度因子后,IfcIndexedPolyCurve的任何IfcArcIndex段的三个点不得共线。

 

#AttributeTypeCardinalityDescriptionC
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. X
  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. X
IfcGeometricRepresentationItem
IfcCurve
  Dim
:=IfcCurveDim(SELF)
IfcDimensionCount [1:1] The space dimensionality of this abstract class, defined differently for all subtypes, i.e. for IfcLine, IfcConic and IfcBoundedCurve. X
IfcBoundedCurve
IfcIndexedPolyCurve
1 Points IfcCartesianPointList [1:1] A list of points, provided by a point list of either two, or three dimensions, that is used to define the poly curve. If the attribute Segments is not provided, the poly curve is generated as a poly line by connecting the points in the order of their appearance in the point list. If the attribute Segments is provided, the segments determine, how the points are to be used to create straigth and circular arc segments. X
2 Segments IfcSegmentIndexSelect L[1:?] List of straight line and circular arc segments, each providing a list of indices into the Cartesian point list. Indices should preserve consecutive connectivity between the segments, the start index of the next segment shall be identical with the end index of the previous segment. X
3 SelfIntersect IfcBoolean [0:1] Indication of whether the curve intersects itself or not; this is for information only. X
EXPRESS Specification
ENTITY IfcIndexedPolyCurve
 SUBTYPE OF (IfcBoundedCurve);
  Points : IfcCartesianPointList;
  Segments : OPTIONAL LIST [1:?] OF IfcSegmentIndexSelect;
  SelfIntersect : OPTIONAL IfcBoolean;
 WHERE
  Consecutive : (SIZEOF(Segments) = 0) OR IfcConsecutiveSegments(Segments);
END_ENTITY;

 

posted @ 2020-07-06 09:34  西北逍遥  阅读(267)  评论(0编辑  收藏  举报