IFC 4.3.0.1 (IFC4X3) development

# 8.9.3.36 IfcIndexedPolyCurve

## 8.9.3.36.1 Semantic definition

The IfcIndexedPolyCurve is a bounded curve with only linear and circular arc segments defined by a Cartesian point list and an optional list of segments, providing indices into the Cartesian point list. In the case that the list of Segments is not provided, all points in the IfcCartesianPointList are connected by straight line segments in the order they appear in the IfcCartesianPointList.

In the case that the list of Segments is provided, it is interpreted as such:

• Segment of type IfcLineIndex: The first index is the start point of the poly line segment, the last index is the end point of the poly line segment. If more than two indices are included, then all intermediate indices define intermediate points of the polyline connected in the order of appearance of the indices;
• Segment of type IfcArcIndex: The first index is the start point of the circular arc, the second index is a point on arc, the third index is the end point of the circular arc. The three points shall not be co-linear. In case that this informal proposition is not maintained, the arc segment shall be treated as a polyline segment.

The IfcIndexedPolyCurve represents an open or a closed curve depending on the following condition:

• In the case that the list of Segments is provided: If the last index of the last Segment and the first index of the first Segment are identical, then the poly curve is a closed curve, otherwise it is an open curve.
• In the case that the list of Segments is not provided: If the first and the last Cartesian point in the Cartesian point list are identical, then the poly curve is a closed curve, otherwise it is an open curve.

Informal Propositions:

1. Any two consecutive points of the IfcIndexedPolyCurve shall not be coincident after taking the Precision factor into account, given by the applicable IfcGeometricRepresentationContext.
2. The three points of any IfcArcIndex segment of the IfcIndexedPolyCurve shall not be colinear after taking the Precision factor into account, given by the applicable IfcGeometricRepresentationContext.

## 8.9.3.36.5 Formal representation

ENTITY IfcIndexedPolyCurve
SUBTYPE OF (IfcBoundedCurve);
Points : IfcCartesianPointList;
Segments : OPTIONAL LIST [1:?] OF IfcSegmentIndexSelect;
SelfIntersect : IfcLogical;
WHERE
Consecutive : NOT(EXISTS(Segments)) OR IfcConsecutiveSegments(Segments);
END_ENTITY;

## 8.9.3.36.6 References

Is this page difficult to understand? Let us know!

### 8.9.3.36.7 Changelog

• New resource
• where rule, Consecutive
• where rule, Consecutive
• attribute SelfIntersect optional, Is no longer optional
• attribute SelfIntersect type, Changed from "IfcBoolean" to "IfcLogical"