8.9.3.20 IfcCompositeCurve
8.9.3.20.1 Semantic definition
An IfcCompositeCurve is a continuous curve composed of curve segments.
Figure 8.9.3.20.A illustrates an example of a composite curve.
Consider an IfcCompositeCurve having line segment and an arc segment. The line should be parameterized:
- IfcPolyline with start= 0.,0. end= 0.,1., SameSense= TRUE, parametric length = 1.
The arch should be parameterized:
- IfcTrimmedCurve with start= 180', end= 90', SameSense= FALSE, parametric length = 90.
Then the parameterization of the composite curve is:
- IfcCompositeCurve with 0. ≤ T ≤ 1. (line segment) and 1. ≤ T ≤ 91. (arc segment), parametric length = 91.
Informal Propositions
- The SameSense attribute of each segment correctly specifies the senses of the component curves. When traversed in the direction indicated by SameSense, the segments shall join end-to-end.
8.9.3.20.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.20.3 Attributes
# | Attribute | Type | Description |
---|---|---|---|
IfcRepresentationItem (2) | |||
LayerAssignment | SET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItems |
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. |
|
StyledByItem | SET [0:1] OF IfcStyledItem FOR Item |
Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve. |
|
IfcCurve (1) | |||
* | Dim | IfcDimensionCount |
This attribute is formally derived.
The space dimensionality of this abstract class, defined differently for all subtypes, i.e. for IfcLine, IfcConic and IfcBoundedCurve. |
Click to show 3 hidden inherited attributes Click to hide 3 inherited attributes | |||
IfcCompositeCurve (4) | |||
1 | Segments | LIST [1:?] OF IfcSegment |
The component bounded curves, their transitions and senses. The transition attribute for the last segment defines the transition between the end of the last segment and the start of the first; this transition attribute may take the value discontinuous, which indicates an open curve. |
2 | SelfIntersect | IfcLogical |
Indication of whether the curve intersects itself or not; this is for information only. |
* | NSegments | IfcInteger |
This attribute is formally derived.
The number of component curves. |
* | ClosedCurve | IfcLogical |
This attribute is formally derived.
Indication whether the curve is closed or not; this is derived from the transition code of the last segment. |
8.9.3.20.4 Formal propositions
Name | Description |
---|---|
CurveContinuous |
No transition code should be Discontinuous, except for the last code of an open curve. |
|
|
SameDim |
Ensures, that all segments used in the curve have the same dimensionality. |
|
8.9.3.20.5 Examples
8.9.3.20.6 Formal representation
ENTITY IfcCompositeCurve
SUPERTYPE OF (ONEOF
(IfcCompositeCurveOnSurface
,IfcGradientCurve
,IfcSegmentedReferenceCurve))
SUBTYPE OF (IfcBoundedCurve);
Segments : LIST [1:?] OF IfcSegment;
SelfIntersect : IfcLogical;
DERIVE
NSegments : IfcInteger := SIZEOF(Segments);
ClosedCurve : IfcLogical := Segments[NSegments].Transition <> Discontinuous;
WHERE
CurveContinuous : ((NOT ClosedCurve) AND (SIZEOF(QUERY(Temp <* Segments | Temp.Transition = Discontinuous)) = 1)) OR ((ClosedCurve) AND (SIZEOF(QUERY(Temp <* Segments | Temp.Transition = Discontinuous)) = 0));
SameDim : SIZEOF( QUERY( Temp <* Segments | Temp.Dim <> Segments[1].Dim)) = 0;
END_ENTITY;