buildingSMART / IFC4.x-IF

IFC4.x Implementers Forum
30 stars 34 forks source link

Discrepancy in requirements for IfcAlignment representation identifiers #133

Open RickBrice opened 10 months ago

RickBrice commented 10 months ago

Problem Possible discrepancy in requirements for IfcAlignment representation identifiers.

In CT 4.1.7.1.1.1 the RepresentationIdentifier for horizontal alignment is Axis. In CT 4.1.7.1.1.2 and .3 it is FootPrint.

This leads to three representation contexts needed to comply with the Alignment Geometry concept templates (two for horizontal, one for vertical).

See https://github.com/buildingSMART/IFC4.3.x-development/issues/742 for further discussion.

Solution(s) If the documentation is as intended, then no action required. If documentation has a discrepancy, update documentation as needed. Either change "Axis" to "FootPrint" in CT 4.1.7.1.1.1 or change "FootPrint" to "Axis" in CT 4.1.7.1.1.2 and .3.

Require schema changes?

Require documentation changes?

civilx64 commented 9 months ago

My understanding: If an IfcAlignment contains horizontal only then it uses a single representation of type IfcCompositeCurve with representation type and identifier of Axis - 2D. If it contains horizontal and vertical, it has two representations: Axis - 3D for the IfcGradientCurve and FootPrint - 2D for the IfcCompositeCurve. If it contains horizontal, vertical, and cant, it also has two representations: Axis - 3D for the IfcSegmentedReferenceCurve and FootPrint - 2D for the IfcCompositeCurve.

This understanding is based on review of sample files from a few vendors and seems to be consistent with what you have noted in buildingSMART/IFC4.3.x-development#742. For an alignment defined in 3D then the Axis should correspond to the GradientCurve or SegmentedReferenceCurve as that's where the roadway template would be placed so to speak. The projection of Axis to the XY plane is then considered the FootPrint.

In summary, I believe the documentation is correct but would likely benefit from some examples showing the three cases:

  1. Horizontal Only
  2. Horizontal & Vertical
  3. Horizontal & Vertical & Cant
RickBrice commented 9 months ago

@civilx64 after stubbing my toes a few times trying to understand representations, I think you are correct. My post is basically incorrect.

Documentation should be provided somewhere that states CT 4.1.7.1.1.1 (horizontal only) cannot be applied to an IfcAlignment when CT 4.1.7.1.1.2 (H+V) or 4.1.7.1.1.3 (H+V+C) are applied.