IFC 4.3.2.20240706 (IFC4X3_ADD2) under development

# 8.9.3.20 IfcCompositeCurve

RV ⓘ
AbV ⓘ

## 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

1. 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.6 Formal representation

ENTITY IfcCompositeCurve
SUPERTYPE OF (ONEOF
(IfcCompositeCurveOnSurface
,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;

## 8.9.3.20.7 References

Is this page difficult to understand? Let us know!

### 8.9.3.20.8 Changelog

#### 8.9.3.20.8.1 IFC4

• where rule, CurveContinuous
• where rule, SameDim
• where rule, WR41
• where rule, WR42
• attribute SelfIntersect type, Changed from "logical" to "IfcLogical"