-
Notifications
You must be signed in to change notification settings - Fork 20
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
IfcCompositeCurve missing Derive: Dim attribute #74
Comments
Can you post the checker message? IfcCurve has the derived Dim. The IfcCurve.DIm calls IfcCurveDim, so I am not sure what the checker is complaining about. |
Looks like it is connected to the "dim" warning. Errors:
Warnings (maybe one per curve segment?):
|
This is not IfcCompositeCurve though. It is IfcCurveSegment. This was addressed though in c5a9282615009b56fb6b2e8eb6faf25f7241d2db. I guess Andreas did not use the latest exp file to insert the new WRs. I have not inserted the new WRs into ifcdoc as we were testing. I have to do that first and then regenerate the exp for him. Probably some time next week, unless it is super urgent. |
Right, I see. So just an update on the checker is necessary? |
Please let me know when the checker has been updated. |
I tested with new alignments and new checker and got this message. It happens for the IfcGradientCurve and I suspect that it has to do with IfcPolynomialCurve...
|
Do your segments have a dim of 2? I think I have to update the CurveDim for IfcPolynomialCurve then. It currently returns 3. Probably should return 2 if one of the coefficient lists is '$'. |
Thanks @larswik. Compiling this function is going to be interesting. :) |
Here my proposal:
Looking forward to feedback. |
Needs at least X/Y, X/Z or Y/Z and if one of X, Y or Z is missing then dim=2, else 3. Looks ok to me! |
Probably should fix the where clause to: |
As the polynomial has a placement, seems to me it should also validate if the placement is 2d or 3d. |
Yep, that was my first thought also. But IfcAxis2PlacementLinear gets its Dim from its basis curve. Then we could have a problem. Probably a polynomial would not be placed on itself, but you never know. :) Seemed to be more explicit to do it based on coefficients because there is no other restriction in setting the Coefficients. Possible scenario: Could be that I have a dataset where IfcPolynomialCurve.Placement is Dim 2 but all three Coefficients are set. It would not be forbidden, but how to interpret it? |
Any objections? |
Discussion during the tech call - proposal:
Reasoning:
This works well with the
This rule assumes that as soon as we have a z-dimension, the curve is 3D. This argumentation is based on the way conics handle their dimension. |
Is this Resolved, by This Commit, if so can we close the issue?? |
By itself, this rule does not enforce the same Dim of placement and curve. It states that if one of the coefficients is missing Placement.Dim does not have to be 3. To actually enforce the dims to be the same, we would have to look at it from a different direction. We have two valid Position.Dim values. If we are enforcing those, we need to cover that one case where Position.Dim is 2. In my view, a valid definition looks like this: either Position.Dim equals 2 and CoefficientsZ is empty or Position.Dim is 3. So, my proposal would be:
Or fix text of where rule. |
Correction for my post above:
Should read:
|
Proposed documentation for the where rule:
Possible namings:
|
Closing. See commit bSI-InfraRoom/IFC-Specification@c6c3aa8 |
Looking at the code below, though: there is no
DERIVE: Dim
parameter specified that would returnSegments[0].Dim
or something similar. So it makes sense, that the checker returns false.https://github.com/bSI-InfraRoom/IFC-Specification/blob/64f1fc0e8cdf8aba82d2b99a423ddefae2f5a2ba/IFC4x3_RC3.exp#L5105-L5119
Originally posted by @pjanck in #73 (comment)
The text was updated successfully, but these errors were encountered: