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

Default value for IfcAxis2PlacementLinear.Axis is not defined #125

Open
RickBrice opened this issue Nov 15, 2023 · 2 comments
Open

Default value for IfcAxis2PlacementLinear.Axis is not defined #125

RickBrice opened this issue Nov 15, 2023 · 2 comments

Comments

@RickBrice
Copy link

When trying to compute placements for comparison with https://github.com/buildingSMART/IFC4.x-IF/tree/main/IFC-files/Linear-placement-sleepers/ACCA#readme the following issue is noted.

Problem
The default value of IfcAxis2PlacementLinear.Axis is not defined. Using IfcAxis2Placement3D for inspiration, you could say that the default Axis is (0,0,1). However, IfcAxis2PlacementLinear.RefDirection, when omitted, is taken from the curve tangent at IfcAxis2PlacementLinear.Location so you could infer that Axis should be derived from the IfcPointByDistanceExpression.BasisCurve as the direction perpendicular to the curve in the "Distance Along - Elevation" plane.

See further discussion and illustrations in buildingSMART/IFC4.3.x-development#732

Additionally, the question as to whether both or neither IfcAxis2PlacementLinear.Axis and RefDirection are needed similar to IfcAxis2Placement3D requirements. See buildingSMART/IFC4.3.x-development#731.

Solution(s)

Require schema changes?

  • yes
  • no
  • don't know

Require documentation changes?

  • yes
  • no
  • don't know
@RickBrice
Copy link
Author

A solution has been proposed in buildingSMART/IFC4.3.x-development#732 (comment).

To summarize the proposal:

  • Augment IfcAxis2PlacementLinear documentation to state clearly that orthogonalization is implemented opposite as it is for IfcAxis2Placement3D
  • Provide clear semantics on permutations of existence of the two direction vectors (and possibly constrain, eg for 3d we have a formal prop "Either both, Axis and RefDirection are not given and therefore defaulted, or both shall be given.", edit: see Are both or neither Axis and RefDirection required for IfcAxis2PlacementLinear IFC4.3.x-development#731)
  • Provide derived attribute referencing IfcBuildAxes as DERIVE P : LIST [3:3] OF IfcDirection := IfcBuildAxes(RefDirection,Axis) in Section 8.9.3.3.5

Is there sufficient agreement to draft an Implementation Agreement for https://standards.buildingsmart.org/documents/Implementation/IFC_Implementation_Agreements/.

I'm guessing implementation agreements are a very difficult thing to do since the last two listed are from 2014 and are still proposals in progress. If there is agreement on the path forward, I willing to help bring this proposal to a formal conclusion.

@RickBrice
Copy link
Author

Based on recent discussions in jwouellette/TPF-5_372-Unit_Test_Suite#15, perhaps the problem and solution should be restated:

Problem
The default value of IfcAxis2PlacementLinear.Axis is not defined. Using IfcAxis2Placement3D for inspiration, you could say that the default Axis is (0,0,1). However, IfcAxis2PlacementLinear.RefDirection, when omitted, is taken from the curve tangent at IfcAxis2PlacementLinear.Location so you could infer that Axis should be derived from the IfcPointByDistanceExpression.BasisCurve as the direction perpendicular to the curve in the "Distance Along - Elevation" plane.

See further discussion and illustrations in buildingSMART/IFC4.3.x-development#732

Solution(s)

  • Clarify documentation regarding default values for Axis.

Axis = The exact direction of the local Z Axis. If Axis is omitted, the direction is taken perpendicular to the tangent of the basis curve in the plane of the basis curve.

Require schema changes?

  • yes
  • no
  • don't know

Require documentation changes?

  • yes
  • no
  • don't know

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

1 participant