IFC 4.3.2.20240423 (IFC4X3_ADD2) under development

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

  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 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 Usage

ApplicableEntity
IfcAlignment
Table 4.1.7.1.1.3.B

Edit on Github


Is this page difficult to understand? Let us know!