Description
Problem
The documentation for IfcAlignment lists supported shape representations including:
IfcOffsetCurveByDistances as a 2D or 3D curve defined relative to an IfcGradientCurve or another IfcOffsetCurveByDistances.
IfcGradientCurve is a 3D curve as stated in https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/lexical/IfcGradientCurve.htm.
A three-level chain would look like:
Curve 1: IfcGradientCurve (3D)
Curve 2: IfcOffsetCurveByDistances that is offset from Curve 1 (inherits 3D from Curve 1)
Curve 3: IfcOffsetCurveByDistances that is offset from Curve 2 (inherits 3D from Curve 2)
In this scenario, there is no way that IfcOffsetCurveByDistances can be anything but a 3D curve.
Additionally, the documentation for IfcOffsetCurveByDistances defines the BasisCurve as an IfcCurve. IfcOffsetCurveByDistances does not itself impose any restrictions on the BasisCurve type.
Should the restriction that IfcOffsetCurveByOffsetDistances.BasisCurve be constrained to IfcGradientCurve and IfcOffsetCurveByDistances be stated in the documentation for IfcOffsetCurveByDistances?
Solution(s)
Alternative 1
IfcOffsetCurveByDistances must be 3D.
In IfcAlignment, replace the fourth item in the list of supported shape representations with "IfcOffsetCurveByDistances as a 3D curve defined relative to an IfcGradientCurve or another IfcOffsetCurveByDistances"
In IfcOffsetCurveByDistances revise the first paragraph of 8.9.3.42.1 Semantic definition to start as "An IfcOffsetCurveByDistances is a 3D curve defined by ..." the balance of the sentence is unchanged. Additionally, add a rule that restricts BasisCurve to IfcGradientCurve or IfcOffsetCurveByDistances.
Require schema changes?
✓
no
Require documentation changes?
✓
yes
Rule required
Need for a formal rule? Describe it
✓
where rule: a constraint embedded in the IFC schema
IfcOffsetCurveByDistances.BasisCurve must be an IfcGradientCurve or IfcOffsetCurveByDistances.
Alternative 2
IfcOffsetCurveByDistances can be 2D or 3D.
In IfcAlignment, replace the fourth item in the list of supported shape representations with "IfcOffsetCurveByDistances as a 2D or 3D curve defined relative to an IfcCompositeCurve, IfcGradientCurve or another IfcOffsetCurveByDistances"
Require schema changes?
✓
no
Require documentation changes?
✓
yes