4.1.4.4.1.2 Alignment Layout - Reusing Horizontal Layout
Nesting and aggregation relationships between IfcAlignment 's and their layouts, in the case where multiple alignments re-use the same horizontal layout definition.
In the diagram below is an example of a parent alignment, with the horizontal layout, and two child alignments, one with a vertical layout, and the other with a vertical and a cant layout; both re-using the definition of the horizontal layout from the parent alignment.
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_0
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]
IfcRelNests_0
IfcRelNests
1. GlobalId
[1:1]
2. OwnerHistory
[0:1]
3. Name
[0:1]
4. Description
[0:1]
5. RelatingObject
[1:1]
6. RelatedObjects
[1:?]
IfcAlignment_0:IsNestedBy1->IfcRelNests_0:RelatingObject0
IfcRelAggregates_0
IfcRelAggregates
1. GlobalId
[1:1]
2. OwnerHistory
[0:1]
3. Name
[0:1]
4. Description
[0:1]
5. RelatingObject
[1:1]
6. RelatedObjects
[1:?]
IfcAlignment_0:IsDecomposedBy1->IfcRelAggregates_0:RelatingObject0
IfcAlignmentHorizontal
IfcAlignmentHorizontal
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:?]
IfcRelNests_0:RelatedObjects1->IfcAlignmentHorizontal :IfcAlignmentHorizontal0
IfcAlignment_1
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]
IfcRelAggregates_0:RelatedObjects1->IfcAlignment_1:IfcAlignment0
IfcAlignment_2
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]
IfcRelAggregates_0:RelatedObjects1->IfcAlignment_2:IfcAlignment0
IfcRelNests_2
IfcRelNests
1. GlobalId
[1:1]
2. OwnerHistory
[0:1]
3. Name
[0:1]
4. Description
[0:1]
5. RelatingObject
[1:1]
6. RelatedObjects
[1:?]
IfcAlignment_1:IsNestedBy1->IfcRelNests_2:RelatingObject0
IfcRelNests_4
IfcRelNests
1. GlobalId
[1:1]
2. OwnerHistory
[0:1]
3. Name
[0:1]
4. Description
[0:1]
5. RelatingObject
[1:1]
6. RelatedObjects
[1:?]
IfcAlignment_2:IsNestedBy1->IfcRelNests_4:RelatingObject0
IfcRelNests_1
IfcRelNests
1. GlobalId
[1:1]
2. OwnerHistory
[0:1]
3. Name
[0:1]
4. Description
[0:1]
5. RelatingObject
[1:1]
6. RelatedObjects
[1:?]
IfcAlignmentHorizontal :IsNestedBy1->IfcRelNests_1:RelatingObject0
IfcAlignmentSegment_0
IfcAlignmentSegment
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:?]
8. DesignParameters
[1:1]
IfcRelNests_1:RelatedObjects1->IfcAlignmentSegment_0:IfcAlignmentSegment0
IfcAlignmentHorizontalSegment
IfcAlignmentHorizontalSegment
1. StartTag
[0:1]
2. EndTag
[0:1]
3. StartPoint
[1:1]
4. StartDirection
[1:1]
5. StartRadiusOfCurvature
[1:1]
6. EndRadiusOfCurvature
[1:1]
7. SegmentLength
[1:1]
8. GravityCenterLineHeight
[0:1]
9. PredefinedType
[1:1]
IfcAlignmentSegment_0:DesignParameters1->IfcAlignmentHorizontalSegment :IfcAlignmentHorizontalSegment0
IfcAlignmentVertical_1
IfcAlignmentVertical
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:?]
IfcRelNests_2:RelatedObjects1->IfcAlignmentVertical_1:IfcAlignmentVertical0
IfcRelNests_3
IfcRelNests
1. GlobalId
[1:1]
2. OwnerHistory
[0:1]
3. Name
[0:1]
4. Description
[0:1]
5. RelatingObject
[1:1]
6. RelatedObjects
[1:?]
IfcAlignmentVertical_1:IsNestedBy1->IfcRelNests_3:RelatingObject0
IfcAlignmentSegment_1
IfcAlignmentSegment
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:?]
8. DesignParameters
[1:1]
IfcRelNests_3:RelatedObjects1->IfcAlignmentSegment_1:IfcAlignmentSegment0
IfcAlignmentVerticalSegment_1
IfcAlignmentVerticalSegment
1. StartTag
[0:1]
2. EndTag
[0:1]
3. StartDistAlong
[1:1]
4. HorizontalLength
[1:1]
5. StartHeight
[1:1]
6. StartGradient
[1:1]
7. EndGradient
[1:1]
8. RadiusOfCurvature
[0:1]
9. PredefinedType
[1:1]
IfcAlignmentSegment_1:DesignParameters1->IfcAlignmentVerticalSegment_1:IfcAlignmentVerticalSegment0
IfcAlignmentVertical_2
IfcAlignmentVertical
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:?]
IfcRelNests_4:RelatedObjects1->IfcAlignmentVertical_2:IfcAlignmentVertical0
IfcAlignmentCant
IfcAlignmentCant
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:?]
8. RailHeadDistance
[1:1]
IfcRelNests_4:RelatedObjects1->IfcAlignmentCant :IfcAlignmentCant0
IfcRelNests_6
IfcRelNests
1. GlobalId
[1:1]
2. OwnerHistory
[0:1]
3. Name
[0:1]
4. Description
[0:1]
5. RelatingObject
[1:1]
6. RelatedObjects
[1:?]
IfcAlignmentVertical_2:IsNestedBy1->IfcRelNests_6:RelatingObject0
IfcAlignmentSegment_3
IfcAlignmentSegment
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:?]
8. DesignParameters
[1:1]
IfcRelNests_6:RelatedObjects1->IfcAlignmentSegment_3:IfcAlignmentSegment0
IfcAlignmentVerticalSegment_2
IfcAlignmentVerticalSegment
1. StartTag
[0:1]
2. EndTag
[0:1]
3. StartDistAlong
[1:1]
4. HorizontalLength
[1:1]
5. StartHeight
[1:1]
6. StartGradient
[1:1]
7. EndGradient
[1:1]
8. RadiusOfCurvature
[0:1]
9. PredefinedType
[1:1]
IfcAlignmentSegment_3:DesignParameters1->IfcAlignmentVerticalSegment_2:IfcAlignmentVerticalSegment0
IfcRelNests_5
IfcRelNests
1. GlobalId
[1:1]
2. OwnerHistory
[0:1]
3. Name
[0:1]
4. Description
[0:1]
5. RelatingObject
[1:1]
6. RelatedObjects
[1:?]
IfcAlignmentCant :IsNestedBy1->IfcRelNests_5:RelatingObject0
IfcAlignmentSegment_2
IfcAlignmentSegment
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:?]
8. DesignParameters
[1:1]
IfcRelNests_5:RelatedObjects1->IfcAlignmentSegment_2:IfcAlignmentSegment0
IfcAlignmentCantSegment
IfcAlignmentCantSegment
1. StartTag
[0:1]
2. EndTag
[0:1]
3. StartDistAlong
[1:1]
4. HorizontalLength
[1:1]
5. StartCantLeft
[1:1]
6. EndCantLeft
[0:1]
7. StartCantRight
[1:1]
8. EndCantRight
[0:1]
9. PredefinedType
[1:1]
IfcAlignmentSegment_2:DesignParameters1->IfcAlignmentCantSegment :IfcAlignmentCantSegment0
Figure 4.1.4.4.1.2.A
General UsageTable 4.1.4.4.1.2.B