4.1.7.1.1.3 Alignment Geometry - Horizontal, Vertical and Cant
This concept template applies to alignments defined by an horizontal, a vertical and a cant layouts.
For the IfcCompositeCurve :
* RepresentationIdentifier = 'FootPrint'
* RepresentationType = 'Curve2D'
For the IfcSegmentedReferenceCurve :
* RepresentationIdentifier = 'Axis'
* RepresentationType = 'Curve3D'
When defining the list of segments for the business logic (i.e., IfcAlignmentHorizontalSegment , IfcAlignmentVerticalSegment , IfcAlignmentCantSegment ):
A zero-length segment shall be added, at the end of the list of segments for IfcAlignmentSegment .DesignParameters .
If the geometry definition is also present, then each of the zero-length segments shall have a IfcCurveSegment counterpart - of length zero.
The following diagram shows the generic classes and relationships used when applying this concept.
In addition, concepts may have particular importance to common or standardised industry practices and scenarios. For these specific usage scenarios, the table below shows a recommended list of general usage patterns that users may adopt.
G
IfcAlignment
IfcAlignment
1. GlobalId
[1:1]
2. OwnerHistory
[0:1]
3. Name
[0:1]
4. Description
[0:1]
HasAssignments
[0:?]
Nests
[0:1]
IsNestedBy
[0:?]
HasContext
[0:1]
IsDecomposedBy
[0:?]
Decomposes
[0:1]
HasAssociations
[0:?]
5. ObjectType
[0:1]
IsDeclaredBy
[0:1]
Declares
[0:?]
IsTypedBy
[0:1]
IsDefinedBy
[0:?]
6. ObjectPlacement
[0:1]
7. Representation
[0:1]
ReferencedBy
[0:?]
PositionedRelativeTo
[0:?]
ReferencedInStructures
[0:?]
ContainedInStructure
[0:1]
Positions
[0:?]
8. PredefinedType
[0:1]
IfcProductDefinitionShape
IfcProductDefinitionShape
1. Name
[0:1]
2. Description
[0:1]
3. Representations
[1:?]
ShapeOfProduct
[1:?]
HasShapeAspects
[0:?]
IfcAlignment :Representation1->IfcProductDefinitionShape :IfcProductDefinitionShape0
IfcShapeRepresentation_0
IfcShapeRepresentation
1. ContextOfItems
[1:1]
Identifier
2. RepresentationIdentifier
[0:1]
Type
3. RepresentationType
[0:1]
4. Items
[1:?]
RepresentationMap
[0:1]
LayerAssignments
[0:?]
OfProductRepresentation
[0:?]
OfShapeAspect
[0:1]
IfcProductDefinitionShape :Representations1->IfcShapeRepresentation_0:IfcShapeRepresentation0
IfcShapeRepresentation_1
IfcShapeRepresentation
1. ContextOfItems
[1:1]
Identifier
2. RepresentationIdentifier
[0:1]
Type
3. RepresentationType
[0:1]
4. Items
[1:?]
RepresentationMap
[0:1]
LayerAssignments
[0:?]
OfProductRepresentation
[0:?]
OfShapeAspect
[0:1]
IfcProductDefinitionShape :Representations1->IfcShapeRepresentation_1:IfcShapeRepresentation0
IfcLabel_2
IfcLabel
IfcShapeRepresentation_0:RepresentationIdentifier1->IfcLabel_2:IfcLabel0
IfcLabel_3
IfcLabel
IfcShapeRepresentation_0:RepresentationType1->IfcLabel_3:IfcLabel0
IfcCompositeCurve
IfcCompositeCurve
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Segments
[1:?]
2. SelfIntersect
[1:1]
IfcShapeRepresentation_0:Items1->IfcCompositeCurve :IfcCompositeCurve0
IfcLabel_0
IfcLabel
IfcShapeRepresentation_1:RepresentationIdentifier1->IfcLabel_0:IfcLabel0
IfcLabel_1
IfcLabel
IfcShapeRepresentation_1:RepresentationType1->IfcLabel_1:IfcLabel0
IfcSegmentedReferenceCurve
IfcSegmentedReferenceCurve
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Segments
[1:?]
2. SelfIntersect
[1:1]
3. BaseCurve
[1:1]
4. EndPoint
[0:1]
IfcShapeRepresentation_1:Items1->IfcSegmentedReferenceCurve :IfcSegmentedReferenceCurve0
constraint_2
='FootPrint'
IfcLabel_2->constraint_2
constraint_3
='Curve2D'
IfcLabel_3->constraint_3
IfcCurveSegment_0
IfcCurveSegment
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Transition
[1:1]
UsingCurves
[1:?]
2. Placement
[1:1]
3. SegmentStart
[1:1]
4. SegmentLength
[1:1]
5. ParentCurve
[1:1]
IfcCompositeCurve :Segments1->IfcCurveSegment_0:IfcCurveSegment0
constraint_0
='Axis'
IfcLabel_0->constraint_0
constraint_1
='Curve3D'
IfcLabel_1->constraint_1
IfcGradientCurve
IfcGradientCurve
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Segments
[1:?]
2. SelfIntersect
[1:1]
3. BaseCurve
[1:1]
4. EndPoint
[0:1]
IfcSegmentedReferenceCurve :BaseCurve1->IfcGradientCurve :IfcGradientCurve0
IfcCurveSegment_1
IfcCurveSegment
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Transition
[1:1]
UsingCurves
[1:?]
2. Placement
[1:1]
3. SegmentStart
[1:1]
4. SegmentLength
[1:1]
5. ParentCurve
[1:1]
IfcSegmentedReferenceCurve :Segments1->IfcCurveSegment_1:IfcCurveSegment0
IfcGradientCurve :BaseCurve1->IfcCompositeCurve :IfcCompositeCurve0
IfcCurveSegment_3
IfcCurveSegment
LayerAssignment
[0:1]
StyledByItem
[0:1]
1. Transition
[1:1]
UsingCurves
[1:?]
2. Placement
[1:1]
3. SegmentStart
[1:1]
4. SegmentLength
[1:1]
5. ParentCurve
[1:1]
IfcGradientCurve :Segments1->IfcCurveSegment_3:IfcCurveSegment0
Figure 4.1.7.1.1.3.A
General UsageTable 4.1.7.1.1.3.B