Definition from ISO/CD 10303-42:1992: A poly loop is a loop with straight edges bounding a planar region in space. A poly loop is a loop of genus 1 where the loop is represented by an ordered coplanar collection of points forming the vertices of the loop. The loop is composed of straight line segments joining a point in the collection to the succeeding point in the collection. The closing segment is from the last to the first point in the collection.
The direction of the loop is in the direction of the line segments.
NOTE This entity exists primarily to facilitate the efficient communication of faceted B-rep models.
A poly loop shall conform to the following topological constraints:
The IfcPolyLoop is always closed and the last segment is from the last IfcCartesianPoint in the list of Polygon's to the first IfcCartesianPoint. Therefore the first point shall not be repeated at the end of the list, neither by referencing the same instance, nor by using an additional instance of IfcCartesianPoint having the coordinates as the first point.
NOTE Corresponding STEP entity: poly_loop. Please refer to ISO/IS 10303-42:1994, p. 138 for the final definition of the formal standard. Due to the general IFC model specification rule not to use multiple inheritance, the subtype relationship to geometric_representation_item is not included. The derived attribute Dim has been added at this level.
HISTORY New class in IFC Release 1.0
Informal propositions:
# | Attribute | Type | Cardinality | Description | A |
---|---|---|---|---|---|
1 | Polygon | IfcCartesianPoint | ~L[3:?] | List of points defining the loop. There are no repeated points in the list. | X |
Rule | Description |
---|---|
WR21 | The space dimensionality of all Points shall be the same. |
# | Attribute | Type | Cardinality | Description | A |
---|---|---|---|---|---|
IfcRepresentationItem | |||||
IfcTopologicalRepresentationItem | |||||
IfcLoop | |||||
IfcPolyLoop | |||||
1 | Polygon | IfcCartesianPoint | ~L[3:?] | List of points defining the loop. There are no repeated points in the list. | X |
<xs:element name="IfcPolyLoop" type="ifc:IfcPolyLoop" substitutionGroup="ifc:IfcLoop" nillable="true"/>
<xs:complexType name="IfcPolyLoop">
<xs:complexContent>
<xs:extension base="ifc:IfcLoop">
<xs:sequence>
<xs:element name="Polygon">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcCartesianPoint" minOccurs="3" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcCartesianPoint"/>
<xs:attribute ref="ifc:cType" fixed="list-unique"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
ENTITY IfcPolyLoop
SUBTYPE OF (IfcLoop);
Polygon : LIST [3:?] OF UNIQUE IfcCartesianPoint;
WHERE
WR21 : SIZEOF(QUERY(Temp <* Polygon | Temp.Dim <> Polygon[1].Dim)) = 0;
END_ENTITY;