-
Notifications
You must be signed in to change notification settings - Fork 73
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
Proposed documentation change and rules for IfcOffsetCurveByDistances #733
Comments
Agree, however I would even say IfcCompositeCurve, IfcGradientCurve or IfcSegmentedReferenceCurve. So in short IfcCompositeCurve and all entities inheriting from it. |
Additional clarification is needed for IfcOffsetCurveByDistance. The description of the OffsetValues attribute is:
Item 1There are clear requirements when the size of OffsetValues is equal to 1. What is to be done in the case when there are more than one OffsetValues and the first offset value is after the start of the BasisCurve and similarly, when the last offset value is before the end of the BasisCurve? Does the first OffsetValue implicitly continue with the same value towards the head of the basis curve? Item 2The description of OffsetValues says that the lateral and vertical offsets are implicitly continued along the curve. That creates uncertainty about the longitudinal offset. Is the IfcPointByDistanceExpression.OffsetLongitudinal value ignored altogether for offset curves? Should there be a rule that says IfcPointByDistanceExpress.OffsetLongitudinal is not used in the context of IfcOffsetCurveByDistance. Item 3What happens if IfcPointByDistanceExpression.DistanceAlong is a negative value? This would indicate offsets occur before the start of the BasisCurve. What happens if IfcPointByDistanceExpression.DistanceAlong is more than the length of the BasisCurve? This would indicate offsets occur after the end of the BasisCurve. Should there be a rule that says IfcPointByDistanceExpression.Distance along must be a non-negative length measure not to exceed the length of the BasisCurve? |
Great points.
I would say offset values implicitly extend over the full domain of the
curve also in the case of n>1. So we generalize the case of n=1. Hereby
explicitly stating whether that value is clamped or extrapolated (don't
know which makes the most sense).
Is the longitudinal offset the curve tangent direction vector or is this an
offset along the curve. I find that not completely clear. In both cases it
needs to be understood what is the domain of the resulting curve. I would
say it is easiest to disallow longitudinal offsets for now.
For out of bounds values we need to specify whether they are forbidden,
ignored or used for interpolation. No strong preference as long as a clear
decision is formulated.
Sent from a mobile device, excuse my brevity. Kind regards, Thomas
Op di 21 nov. 2023 00:26 schreef Richard Brice ***@***.***>:
… Additional clarification is needed for IfcOffsetCurveByDistance. The
description of the OffsetValues attribute is:
List of sequential points described relative to the basis curve. If the
offsets do not span the full extent of the basis curve (e.g. if the list
contains only one item), then the lateral and vertical offsets implicitly
continue with the same value towards the head and tail of the basis curve.
Item 1
There are clear requirements when the size of OffsetValues is equal to 1.
What is to be done in the case when there are more than one OffsetValues
and the first offset value is after the start of the BasisCurve and
similarly, when the last offset value is before the end of the BasisCurve?
Does the first OffsetValue implicitly continue with the same value towards
the head of the basis curve?
Does the last OffsetValue implicitly continue with the same value towards
the tail of the basis curve?
Is the offset curve constrained by the first and last offset value thereby
resulting in a shorter curve than the basis curve?
Item 2
The description of OffsetValues says that the lateral and vertical offsets
are implicitly continued along the curve. That creates uncertainty about
the longitudinal offset.
Is the IfcPointByDistanceExpression.OffsetLongitudinal value ignored
altogether for offset curves?
Is it only ignored for the special case of one OffsetValue provided?
Should there be a rule that says
IfcPointByDistanceExpress.OffsetLongitudinal is not used in the context of
IfcOffsetCurveByDistance.
Item 3
What happens if IfcPointByDistanceExpression.DistanceAlong is a negative
value? This would indicate offsets occur before the start of the BasisCurve.
What happens if IfcPointByDistanceExpression.DistanceAlong is more than
the length of the BasisCurve? This would indicate offsets occur after the
end of the BasisCurve.
Should there be a rule that says IfcPointByDistanceExpression.Distance
along must be a non-negative length measure not to exceed the length of the
BasisCurve?
—
Reply to this email directly, view it on GitHub
<#733 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAILWV25T7KO4F4S6QOWN7LYFPRMBAVCNFSM6AAAAAA7PERAQ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMJZHE3DMMZXG4>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
As I think more deeply about this, there is a case for the offset curve to be a subset of the basis curve in the case of n>1. Examples of things that are offset from an alignment and don't run the full length are safety railings, bridge deck edges, bridge beams, sidewalks... and probably many more things. Given that an alignment can be very long and can span over multiple sites, the geometry might be challenging if all offset curves cover the full domain of the basis curve. Locating things with respect to the offset curve could be overly difficult as well. Consider modeling a safety railing that followed a curve which is offset and parallel to a curved alignment and starts 10 m after the start of the alignment. To place the safety railing relative to the offset curve, I would need to compute the distance along the offset curve to the start of the safety railing, which would be different than 10 m because of the curves. This isn't very convenient. If the offset curve where a subset of the base curve, the placement relative to the offset curve could start at 0. |
In 5.4.3.1 IfcOffsetCurveByDistances is described as
IfcOffsetCurveByDistances as a 2D or 3D curve defined relative to an IfcGradientCurve or another IfcOffsetCurveByDistances.
IfcGradientCurve is 3D so 2D doesn't make sense. Suggest the following:
Proposed rules:
8.9.3.42 IfcOffsetCurveByDistances
IfcOffsetCurveByDistance.BasisCurve must be IfcCompositeCurve or IfcGradientCurve.
IfcOffsetCurveByDistance.BasisCurve and all IfcOffsetCurveByDistance.OffsetValues.BasisCurve must be the same curve.
The text was updated successfully, but these errors were encountered: