IDS icon indicating copy to clipboard operation
IDS copied to clipboard

[Question] Regarding IfcRelFillsElement and IfcRelVoidsElement check in PartOf-Facet

Open MarcelStepien opened this issue 1 year ago • 4 comments

Hello everyone,

in the current IDS version (0.9.6) the relations IfcRelFillsElement and IfcRelVoidsElement are included in the partOf-Facet. The documentation says:

The IFCRELVOIDSELEMENT relationship describes how a void belongs to an element.
The IFCRELFILLSELEMENT relationship describes how an element fills an a void, potentially making it part .

So, I am trying to understand the descriptions. Does the check stops at the IfcOpeningElement? If yes, would'nt it render the entity-check included in the partOf-Facet useless (since it always would be IfcOpeningElement in most cases)?

Usually I would consider the important information to be the elements behind the openings. Lets look at the following example:

OpeningKonzept

In my opinion, a valid check would be:

  1. Which wall elements are containing windows with type XY?
  2. Are the doors leading to apartment entries inserted in a partition wall? (which must be the case and may require additional properties)

Is my understanding of the partOf-facet check correct? Or can someone give me practical example in IDS that utilizes the IfcOpeningElements directly? The description in the documentation may need a bit more context, describing how the openings are utilized specifically. Personally I would recommend avoiding the entity use of an IfcOpeningElement and refer directly to the elements behind the relation.

Kind regards, Marcel Stepien

MarcelStepien avatar Sep 14 '23 13:09 MarcelStepien

That's well spotted, and worth discussing.

I see two options to solve this

User friendly option

Assuming that IfcOpenings are not interesting in most scenarios we keep a single value of the relation that includes IFCRELFILLSELEMENT and IFCRELVOIDSELEMENT so that the connection from wall to window is transparent to the end user.

Tech savvy option

We allow users to specify multiple relations to consider, so that they can stop at multiple points in the chain of relations. E.g. in the following case, if relation was CNT only wall would be selected, with CNT/VDS/FLS we could get to the door, and with CNT/VDS/FLS/AGG we would also include the Sensor.

image

CBenghi avatar Oct 03 '23 11:10 CBenghi

This is resolved now, right? The solution is that it's now transparent to the user.

Moult avatar Mar 28 '24 10:03 Moult

I think it probably is resolved. @MarcelStepien?

CBenghi avatar Apr 19 '24 07:04 CBenghi

Do we have any updated PartOf test cases covering this new update to Relations traversal @CBenghi ?

andyward avatar Apr 19 '24 08:04 andyward

The current solution is, that IFCRELVOIDSELEMENT and IFCRELFILLSELEMENT relations had been combined into one single option "IFCRELVOIDSELEMENT_IFCRELFILLSELEMENT". This option performs a two steps iteration through the relations and checks for Elements behind a IfcOpeningElement, skipping to the relevant element.

However, this will only be a temporary solution. A concept will be worked on in the future to provide clarity on multi-steps iteration through the relation. Allowing to check the relating elements for elements attached to certain related combination.

MarcelStepien avatar May 10 '24 08:05 MarcelStepien

wasn't it "IFCRELVOIDSELEMENT IFCRELFILLSELEMENT"? (with a space instead of a _) That allows it to become an xml list in the future.

berlotti avatar May 10 '24 08:05 berlotti

@berlotti yes, my bad. Depending on how you generate the class structure from the xsd, it automatically adds a '_' inbetween (since its translated to an enumeration). The option is labeled as "IFCRELVOIDSELEMENT IFCRELFILLSELEMENT" though.

MarcelStepien avatar May 10 '24 11:05 MarcelStepien