Skip to content

How can an IfcOffsetCurveByDistances be a 2D curve? #139

Open
@RickBrice

Description

@RickBrice

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?

  • yes
  • no
  • don't know

Require documentation changes?

  • yes
  • no
  • don't know

Rule required
Need for a formal rule? Describe it

  • where rule: a constraint embedded in the IFC schema
  • other normative rule: a normative check of the IFC Validation Service. Every IFC file must pass this check
  • good practice check: just triggers a warning, but the IFC file is still valid
  • don't know

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?

  • yes
  • no
  • don't know

Require documentation changes?

  • yes
  • no
  • don't know

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions