Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ALS012 curve segment polynomial curves #254

Open
jmirtsch opened this issue Aug 6, 2024 · 1 comment
Open

ALS012 curve segment polynomial curves #254

jmirtsch opened this issue Aug 6, 2024 · 1 comment
Labels
rule tracker for development of a new rule/warning

Comments

@jmirtsch
Copy link

jmirtsch commented Aug 6, 2024

(https://github.com/buildingSMART/ifc-gherkin-rules/blob/f7dcaac762beb0c613d46f29fe94ca8aa778f9dd/features/ALS012_Alignment-segment-start-and-length-attribute-types.feature) requires curve segments to be use length measures to trim the basis curve. This is reasonable for line, arc and clothoid curveswhere the length is explicitly related to the parameterization.
For polynomial curves it seems much harder, which will reduce reliability. For example a parabola it seems to me that integration is needed to compute the arc length. Reversing this from length to trim point on a curve seems not to be practical.
http://calculuscourse.maa.org/sample/Chapter8/Projects/Length%20of%20a%20curve/length1.html
Parabolic transition can be frequently used on road vertical alignments (or profiles), and some regions use cubics as transitions on horizontal alignments.

I would request that the rule permit the trim to be accepted as a parameter value for polynomial basis curves.

If there are straight forward methods to determine the point on a parabola or cubic based on arc length, please let me know so I can research this.

#228= IFCAXIS2PLACEMENT2D(#226,#227); #229= IFCPOLYNOMIALCURVE(#155,(0.0,1.0),(668.533223860785,0.032660131366265,-0.00012347613018937),$); #230= IFCCURVESEGMENT(.CONTINUOUS.,#228,IFCPARAMETERVALUE(0.0),IFCPARAMETERVALUE(200.0),#229);

Attached is a test file.
If I'm overlooking a practical way to use length measure with polynomials, I'm grateful for any guidance.

Profile-2C parabolic.zip

@jmirtsch jmirtsch added the rule tracker for development of a new rule/warning label Aug 6, 2024
@evandroAlfieri
Copy link
Collaborator

Thanks Jon. If memory serves, this issue was longly discussed within the Implementers Forum. Multiple options have been proposed (a flexible yet unclear select, a where rule, and a couple more options), with pros and cons on almost every option. A complete consensus was never reached among participants in the discussion. The issue was then brought to the ISO Editorial Group, which suggested that

To guarantee future compatibility with next IFC releases, it has been decided to lighten the constraint, by removing the WR and transform the constraint into a Formal Proposition, easier to be removed in future (when documentation of parameters for all curves becomes available).

This resulted in the Formal Proposition for IfcCurveSegment (also reported below)

For the foreseeable future, until implementer agreements have resulted in a defined parametric space for all possible types in attribute ParentCurve, the values for attributes SegmentStart and SegmentStart shall be of type IfcLengthMeasure.

In conclusion, this rule of the Validation Service is merely enforcing a requirement that is already captured in the official documentation and, as specified, can only be lifted in a future release - when parametrisation of all available curves will be defined.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rule tracker for development of a new rule/warning
Projects
None yet
Development

No branches or pull requests

2 participants