IFC 4.3.2.20240423 (IFC4X3_ADD2) under development

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):

  1. A zero-length segment shall be added, at the end of the list of segments for IfcAlignmentSegment.DesignParameters.
  2. 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 Usage

ApplicableEntity
IfcAlignment
Table 4.1.4.4.1.2.B

Edit on Github


Is this page difficult to understand? Let us know!