4.2.8.1.2 CompositeCurve Profile Definition
Composite curve profile definitions define the closed two-dimensional curve used for the cross-section by a composite curve, consisting of multiple composite curve segments. Each composite curve segment has a parent curve, being either a polyline or a trimmed curve. Trimmed curves have basis curves of type line, circle or ellipse.
The following diagram shows the generic classes and relationships used when applying this concept.
G
IfcArbitraryProfileDefWithVoids
IfcArbitraryProfileDefWithVoids
1. ProfileType
[1:1]
2. ProfileName
[0:1]
HasExternalReference
[0:?]
HasProperties
[0:?]
3. OuterCurve
[1:1]
4. InnerCurves
[1:?]
IfcProfileTypeEnum
IfcProfileTypeEnum
IfcArbitraryProfileDefWithVoids :ProfileType1->IfcProfileTypeEnum :IfcProfileTypeEnum0
IfcLabel
IfcLabel
IfcArbitraryProfileDefWithVoids :ProfileName1->IfcLabel :IfcLabel0
IfcCompositeCurve_0
IfcCompositeCurve
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Segments
[1:?]
2. SelfIntersect
[1:1]
IfcArbitraryProfileDefWithVoids :OuterCurve1->IfcCompositeCurve_0:IfcCompositeCurve0
IfcCompositeCurve_1
IfcCompositeCurve
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Segments
[1:?]
2. SelfIntersect
[1:1]
IfcArbitraryProfileDefWithVoids :InnerCurves1->IfcCompositeCurve_1:IfcCompositeCurve0
IfcCompositeCurveSegment
IfcCompositeCurveSegment
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Transition
[1:1]
UsingCurves
[1:?]
2. SameSense
[1:1]
3. ParentCurve
[1:1]
IfcCompositeCurve_0:Segments1->IfcCompositeCurveSegment :IfcCompositeCurveSegment0
IfcTransitionCode
IfcTransitionCode
IfcCompositeCurveSegment :Transition1->IfcTransitionCode :IfcTransitionCode0
IfcBoolean_0
IfcBoolean
IfcCompositeCurveSegment :SameSense1->IfcBoolean_0:IfcBoolean0
IfcTrimmedCurve
IfcTrimmedCurve
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. BasisCurve
[1:1]
2. Trim1
[1:2]
3. Trim2
[1:2]
4. SenseAgreement
[1:1]
5. MasterRepresentation
[1:1]
IfcCompositeCurveSegment :ParentCurve1->IfcTrimmedCurve :IfcTrimmedCurve0
IfcPolyline
IfcPolyline
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Points
[2:?]
IfcTrimmedCurve :BasisCurve1->IfcPolyline :IfcPolyline0
IfcCircle
IfcCircle
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Position
[1:1]
2. Radius
[1:1]
IfcTrimmedCurve :BasisCurve1->IfcCircle :IfcCircle0
IfcEllipse
IfcEllipse
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Position
[1:1]
2. SemiAxis1
[1:1]
3. SemiAxis2
[1:1]
IfcTrimmedCurve :BasisCurve1->IfcEllipse :IfcEllipse0
IfcCartesianPoint_1
IfcCartesianPoint
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Coordinates
[1:3]
IfcTrimmedCurve :Trim11->IfcCartesianPoint_1:IfcCartesianPoint0
IfcParameterValue_0
IfcParameterValue
IfcTrimmedCurve :Trim11->IfcParameterValue_0:IfcParameterValue0
IfcCartesianPoint_2
IfcCartesianPoint
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Coordinates
[1:3]
IfcTrimmedCurve :Trim21->IfcCartesianPoint_2:IfcCartesianPoint0
IfcParameterValue_1
IfcParameterValue
IfcTrimmedCurve :Trim21->IfcParameterValue_1:IfcParameterValue0
IfcBoolean_1
IfcBoolean
IfcTrimmedCurve :SenseAgreement1->IfcBoolean_1:IfcBoolean0
IfcTrimmingPreference
IfcTrimmingPreference
IfcTrimmedCurve :MasterRepresentation1->IfcTrimmingPreference :IfcTrimmingPreference0
IfcCartesianPoint_0
IfcCartesianPoint
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Coordinates
[1:3]
IfcPolyline :Points1->IfcCartesianPoint_0:IfcCartesianPoint0
IfcAxis2Placement2D_0
IfcAxis2Placement2D
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Location
[1:1]
2. RefDirection
[0:1]
IfcCircle :Position1->IfcAxis2Placement2D_0:IfcAxis2Placement2D0
IfcPositiveLengthMeasure_0
IfcPositiveLengthMeasure
IfcCircle :Radius1->IfcPositiveLengthMeasure_0:IfcPositiveLengthMeasure0
IfcAxis2Placement2D_1
IfcAxis2Placement2D
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Location
[1:1]
2. RefDirection
[0:1]
IfcEllipse :Position1->IfcAxis2Placement2D_1:IfcAxis2Placement2D0
IfcPositiveLengthMeasure_1
IfcPositiveLengthMeasure
IfcEllipse :SemiAxis11->IfcPositiveLengthMeasure_1:IfcPositiveLengthMeasure0
IfcPositiveLengthMeasure_2
IfcPositiveLengthMeasure
IfcEllipse :SemiAxis21->IfcPositiveLengthMeasure_2:IfcPositiveLengthMeasure0
Figure 4.2.8.1.2.A