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

Update Spatial Description needed by IFC Rail #139

Conversation

MatthieuPERIN
Copy link
Collaborator

@MatthieuPERIN MatthieuPERIN commented Jul 6, 2021

Recast of #40 Pull request.

Linked issue
Resolves #111

Update IfcRelInterferesElement DocEntity & Documentation

…esElements_update

Update IfcRelInterferesElement DocEntity & Documentation
@AlexBrad1eyCT AlexBrad1eyCT added documentation Issues or pull requests relating to documentation EXPRESS Issues or pull requests relating to EXPRESS schema labels Jul 6, 2021
@MatthieuPERIN
Copy link
Collaborator Author

I have tried to follow requirement expressed in #40, to be reviewed and validated by @AlexBrad1eyCT & @SergejMuhic .

@SergejMuhic SergejMuhic self-requested a review July 6, 2021 17:27
Copy link
Collaborator

@SergejMuhic SergejMuhic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some comments and corrections and a request. Also, would appreciate the clarification of how geometry, zone and elements interact in terms of shape representation and placement.

IFC4x3/Constants/i/INTERFERENCE_1YJr7LhNL3efA_mK43uKGl.xml Outdated Show resolved Hide resolved
</DocAttribute>
<DocAttribute Name="ImpliedOrder" UniqueId="57512488-73cf-44cc-995d-d5e84df6ae44" DefinedType="IfcLogical">
<Documentation>Logical value indicating whether the interference geometry should be subtracted from the _RelatingElement_ (if TRUE), or whether it should be either subtracted from the _RelatingElement_ or the _RelatedElement_ (if FALSE), or whether no indication can be provided (if UNKNOWN).</Documentation>
<Documentation>Logical value indicating if the _RelatingElement_ has priority over the _RelatedElement_. TRUE value imply that relation is oriented from _RelatingElement_ to _RelatedElement_ (in regards of the _InterferenceType_) and that the _InterferenceGeometry_ should be subtracted from the _RelatingElement_. FASLE value imply that relation has no orientation and that _InterferenceGeometry_ may be subtracted from the _RelatingElement_ or the _RelatedElement_.UNKNOWN value imply that no information about the orientation is provided</Documentation>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The geometry part still is very vague. In my view. for such purposes IfcBooleanResult could also be used. I am struggling to see the purpose of this here. I have a few questions:

  1. Why put something like that in a sentence if there is a dedicated entity for it? Makes it harder to implement.
  2. How are the zone and interference geometry supposed to interact? Is interference geometry supposed to be the geometry of the zone?
  3. In which coordinate system is the interference geometry?
  4. Are all geometry types in IfcConnectionGeometry (point, curve, surface, volume) allowed and what do subtraction operations mean for each of them?
Suggested change
<Documentation>Logical value indicating if the _RelatingElement_ has priority over the _RelatedElement_. TRUE value imply that relation is oriented from _RelatingElement_ to _RelatedElement_ (in regards of the _InterferenceType_) and that the _InterferenceGeometry_ should be subtracted from the _RelatingElement_. FASLE value imply that relation has no orientation and that _InterferenceGeometry_ may be subtracted from the _RelatingElement_ or the _RelatedElement_.UNKNOWN value imply that no information about the orientation is provided</Documentation>
<Documentation>Logical value indicating if the _RelatingElement_ has priority over the _RelatedElement_. TRUE value implies that the relation is oriented from _RelatingElement_ to _RelatedElement_ (with regards to _InterferenceType_) and that the _InterferenceGeometry_ should be subtracted from the _RelatingElement_. FALSE value implies that relation has no orientation and that _InterferenceGeometry_ may be subtracted from the _RelatingElement_ or the _RelatedElement_.UNKNOWN value imply that no information about the orientation is provided</Documentation>

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Usage been vague is copy from historical definition of ImpliedOrder attribute used to define source for geometry of interference. Added usage juste enforce Orientation of relation with specific Interference Types, I will reply only on that new usage (as the historical one is not in the scope of this PR, -> #111)

  1. to Enforce orientation of the relation, the orientation can be made default behavior if needed (thus this variable may be suppressed)
  2. Implémentation should either use geometry XOR space, not both (MVDxml rule to be added IMHO)
  3. Historical usage -> historical choice if any
  4. historical usage -> historical choice if any

For point 3 & 4 I think @TLiebich may provide answers.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, you are right. This relationship was sort of a mess already but now we are also applying it to spatial concepts. I would suggest leaving historical blunders and address:

  1. quite complicated but I trust you have the cases covered
  2. okay, we had the same conversation with @czapplitec 😄

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated in new version, resolve if OK for you.

@@ -1,12 +1,25 @@
The _IfcRelInterferesElements_ objectified relationship indicates that two elements interfere. Interference is a spatial overlap between the two elements. It is a 1 to 1 relationship. The concept of two elements interfering physically or logically is described independently from the elements. The interference may be related to the shape representation of the entities by providing an interference geometry.
The _IfcRelInterferesElements_ objectified relationship indicates that two elements interfere. Interference is a spatial and/or shape interaction between the two elements. It is a 1 to 1 relationship. The concept of two elements interfering physically or logically is described independently from the elements. The interference may be related to the shape representation of the entities by providing an interference geometry.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is a spatial interaction and how is it different from a shape interaction?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To me spatial interaction state that footprint associated with SpatialElement have an interaction, in link with the change of paradigm that SpatialElement does not have proper shapes (intrinsic geometrical representation) but only footprint (documentation-related and communication-related area/spaces representation).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we bring this logic somehow into the documentation? Otherwise, it is not specified.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in the documentation:

The interference may be related to the shape representation of the entities by providing an interference geometry or zone:
* when the interference is between two physical products, the _InterferenceGeometry_ attribute is used to define the physical interference shape, it can be part of the shape of one of the elements used in the relationship or define the interface between the two shapes using a _IfcConnectionGeometry_.
* when the interference is between two spatial objects, the _InterferenceSpace_ attribute is used to define the interference space between the two associated footprints, expressed by a specific _IfcSpatialZone_ of predefined type _IfcSpatialZoneTypeEnum_ INTERFERENCE.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what happens if the RelatingElement is a spatial element, and the RelatedElement is a physical element? Are such combinations allowed at all? Also is it legal to have InterferenceGeometry AND Interference_Space (both relations instantiated)?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TLiebich 
This is not explicitly forbidden, but the documentation express only clear homogeneous usage.
IMHO cross usage need a more deep review of this relation -> IFC Tunnel 4.4 

Both attributes should not be set together:

  • Documented on line 9 (2 lines below)
  • @SergejMuhic will add a WHERE clause to forbid this possibility

@MatthieuPERIN
Copy link
Collaborator Author

Minor changes suggested where implemented.

Copy link
Collaborator

@SergejMuhic SergejMuhic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing I am still having trouble with is the coordinate system of InterferenceGeometry. It is not your responsibility though (old sins).

Could you add the shape vs spatial interference logic to the documentation?

I would merge after.

@@ -1,12 +1,25 @@
The _IfcRelInterferesElements_ objectified relationship indicates that two elements interfere. Interference is a spatial overlap between the two elements. It is a 1 to 1 relationship. The concept of two elements interfering physically or logically is described independently from the elements. The interference may be related to the shape representation of the entities by providing an interference geometry.
The _IfcRelInterferesElements_ objectified relationship indicates that two elements interfere. Interference is a spatial and/or shape interaction between the two elements. It is a 1 to 1 relationship. The concept of two elements interfering physically or logically is described independently from the elements. The interference may be related to the shape representation of the entities by providing an interference geometry.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we bring this logic somehow into the documentation? Otherwise, it is not specified.

@SergejMuhic SergejMuhic added this to In progress in IFC4x3 via automation Jul 12, 2021
matthieu.perin added 2 commits July 12, 2021 14:28
* DocEntity for ImpliedOrder attribute have been simplified
* Documentation on IfcRelInterferesElements have been clarified
* Documentation state clearly that InterferenceGeometryis for physical product and InterferenceSpace is for spatial objects
* Documentation state the not both attribute should be set together
@MatthieuPERIN
Copy link
Collaborator Author

MatthieuPERIN commented Jul 12, 2021

Major update from 12/07 meeting:  

  • DocEntity for ImpliedOrder attribute have been simplified (@SergejMuhic have a look please)
  • Documentation on IfcRelInterferesElements have been clarified
  • Documentation state clearly that InterferenceGeometry is for physical product and InterferenceSpace is for spatial objects
  • Documentation state that not both attributes should be set together

Copy link
Collaborator

@SergejMuhic SergejMuhic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I salute you sir @MatthieuPERIN , really nice re-work.

Just one suggestion to better fit the nature of the attribute and a space removed.

MatthieuPERIN and others added 2 commits July 13, 2021 09:16
…Entities/IfcRelInterferesElements/Documentation.md

Co-authored-by: SergejMuhic <sergejs1@gmail.com>
…Entities/IfcRelInterferesElements/DocEntity.xml

Co-authored-by: SergejMuhic <sergejs1@gmail.com>
@MatthieuPERIN
Copy link
Collaborator Author

Thanks for the final review @SergejMuhic, all propositions accepted as they clearly improve overall quality !
IfcRelInterferesElements update completed 🥳

IFC4x3 automation moved this from In progress to Reviewer approved Jul 13, 2021
@SergejMuhic SergejMuhic merged commit 5626a75 into bSI-InfraRoom:develop Jul 13, 2021
IFC4x3 automation moved this from Reviewer approved to Done Jul 13, 2021
@pjanck pjanck added the IFC4x3_RC4 To be resolved before IFC4x3_RC4 label Mar 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Issues or pull requests relating to documentation EXPRESS Issues or pull requests relating to EXPRESS schema IFC4x3_RC4 To be resolved before IFC4x3_RC4
Projects
Development

Successfully merging this pull request may close these issues.

Intereference of spatial structure elements
5 participants