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

Proposed documentation change and rules for IfcOffsetCurveByDistances #733

Open
RickBrice opened this issue Nov 17, 2023 · 4 comments
Open

Comments

@RickBrice
Copy link

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:

IfcOffsetCurveByDistances as a 2D or 3D curve defined relative to an IfcCompositeCurve or IfcGradientCurve, respectively, or another IfcOffsetCurveByDistances.

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.

@peterrdf
Copy link

Agree, however I would even say IfcCompositeCurve, IfcGradientCurve or IfcSegmentedReferenceCurve. So in short IfcCompositeCurve and all entities inheriting from it.

@RickBrice
Copy link
Author

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?

@aothms
Copy link
Collaborator

aothms commented Nov 21, 2023 via email

@RickBrice
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants