4.7.7.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
ProfileType
[1:1]
ProfileName
[0:1]
HasExternalReference
[0:?]
HasProperties
[0:?]
OuterCurve
[1:1]
InnerCurves
[1:?]
IfcProfileTypeEnum
IfcProfileTypeEnum
IfcArbitraryProfileDefWithVoids :ProfileType1->IfcProfileTypeEnum :IfcProfileTypeEnum0
IfcLabel
IfcLabel
IfcArbitraryProfileDefWithVoids :ProfileName1->IfcLabel :IfcLabel0
IfcCompositeCurve_0
IfcCompositeCurve
LayerAssignment
[0:1]
StyledByItem
[0:1]
Segments
[1:?]
SelfIntersect
[1:1]
IfcArbitraryProfileDefWithVoids :OuterCurve1->IfcCompositeCurve_0:IfcCompositeCurve0
IfcCompositeCurve_1
IfcCompositeCurve
LayerAssignment
[0:1]
StyledByItem
[0:1]
Segments
[1:?]
SelfIntersect
[1:1]
IfcArbitraryProfileDefWithVoids :InnerCurves1->IfcCompositeCurve_1:IfcCompositeCurve0
IfcCompositeCurveSegment
IfcCompositeCurveSegment
LayerAssignment
[0:1]
StyledByItem
[0:1]
Transition
[1:1]
UsingCurves
[1:?]
SameSense
[1:1]
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]
BasisCurve
[1:1]
Trim1
[1:2]
Trim2
[1:2]
SenseAgreement
[1:1]
MasterRepresentation
[1:1]
IfcCompositeCurveSegment :ParentCurve1->IfcTrimmedCurve :IfcTrimmedCurve0
IfcPolyline
IfcPolyline
LayerAssignment
[0:1]
StyledByItem
[0:1]
Points
[2:?]
IfcTrimmedCurve :BasisCurve1->IfcPolyline :IfcPolyline0
IfcCircle
IfcCircle
LayerAssignment
[0:1]
StyledByItem
[0:1]
Position
[1:1]
Radius
[1:1]
IfcTrimmedCurve :BasisCurve1->IfcCircle :IfcCircle0
IfcEllipse
IfcEllipse
LayerAssignment
[0:1]
StyledByItem
[0:1]
Position
[1:1]
SemiAxis1
[1:1]
SemiAxis2
[1:1]
IfcTrimmedCurve :BasisCurve1->IfcEllipse :IfcEllipse0
IfcCartesianPoint_1
IfcCartesianPoint
LayerAssignment
[0:1]
StyledByItem
[0: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]
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]
Coordinates
[1:3]
IfcPolyline :Points1->IfcCartesianPoint_0:IfcCartesianPoint0
IfcAxis2Placement2D_0
IfcAxis2Placement2D
LayerAssignment
[0:1]
StyledByItem
[0:1]
Location
[1:1]
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]
Location
[1:1]
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.7.7.1.2.A