IDS icon indicating copy to clipboard operation
IDS copied to clipboard

Clarify relation recursion and cardinality

Open pasi-paasiala opened this issue 2 years ago • 4 comments

Currently the partof facet seems to be recursive by default as suggested by these IDS and IFC files.

This isn't very clear for example in the case when there's an assembly that contains another assembly that contains a slab and the slab is required to be part of one assembly. Would that cardinality fail in this case, since it is indirectly contained in two?

Should there be a flag in the partof requirement explicitly saying whether it should be applied recursively? Or should the relation be traversed until a parent is found that fits the requirement and stop there?

Also now it is not possible to require a direct relationship. A flag would help also in that case.

pasi-paasiala avatar Apr 20 '23 05:04 pasi-paasiala

It seems clear to me in the testcases: https://github.com/buildingSMART/IDS/blob/master/Documentation/testcases-partof.md#pass-an-aggregate-entity-may-pass-any-ancestral-whole-passes

Whether people agree with the decision proposed by the testcases is another matter.

Moult avatar Apr 24 '23 10:04 Moult

see https://github.com/CBenghi/IDS/blob/dev/documentation/Documentation/graphics/partof-Relations.png (by @CBenghi )

berlotti avatar Jul 05 '23 08:07 berlotti

The current proposal, to be properly documented, is:

relation is not required

  • if it's not specified all possible combinations are to be considered (A|B|C|D|E|F)+
  • if it is specified then that's also recursive, but only through that type of relation (A+)

I've prepared an improved version of the document to present in the calls.

CBenghi avatar Oct 03 '23 08:10 CBenghi

The current proposal, to be properly documented, is:

relation is not required

  • if it's not specified all possible combinations are to be considered (A|B|C|D|E|F)+
  • if it is specified then that's also recursive, but only through that type of relation (A+)

I've prepared an improved version of the document to present in the calls.

The current proposal, to be properly documented, is:

relation is not required

  • if it's not specified all possible combinations are to be considered (A|B|C|D|E|F)+
  • if it is specified then that's also recursive, but only through that type of relation (A+)

I've prepared an improved version of the document to present in the calls.

Is it possible that requirements of Specification will specified for two entities or how can describe this logic in ids: I have entities: IFCBUILDING IFCBUILDINGSTOREY

  1. if IFCBUILDING propertySet ExpCheck_Building equal value = IFCTEXT('80 30 10') than need to check propertySet 'ExpCheck_BuildingStorey' in IFCBUILDINGSTOREY for 'ComfortLevel': if simpleValue == IFCBOOLEAN('T') than return status = TRUE if simpleValue != IFCBOOLEAN('T') rhan return status = FALSE

  2. if IFCBUILDING propertySet ExpCheck_Building NOT EQUAL value = IFCTEXT('80 30 10') than return Status = TRUE

#123= IFCBUILDING('31atqolsbBix6RN8sQNzEj',#42,' building',$,$,#33,$,'building',.ELEMENT.,$,$,#119); #138= IFCBUILDINGSTOREY('31atqolsbBix6RN8rbYVpb',#42,'storey',$,$,#136,$,'storey',.ELEMENT.,-4450.); #200090= IFCPROPERTYSINGLEVALUE('ComfortLevel',$,IFCBOOLEAN('T'),$); #200091= IFCPROPERTYSET('0ZcRsyVOz9TuJefjs6PwQx',#42,'ExpCheck_BuildingStorey',$,(#200090)); #200098= IFCRELDEFINESBYPROPERTIES('2MTB5KT$bBaP7DV8GVS82i',#42,$,$,(#138),#200091); #201519= IFCRELAGGREGATES('3mQBaTfuH9QBHDcYQBQvNl',#42,$,$,#123,(#138)); #201563= IFCPROPERTYSINGLEVALUE('MGE_FunctionalUse',$,IFCTEXT('80 30 10'),$); #201564= IFCPROPERTYSET('1Q0uAlb$zA8h8f37VyT5km',#42,'ExpCheck_Building',$,(#201563)); #201582= IFCRELDEFINESBYPROPERTIES('0T0qELxbvEH8oPSeHZuLC$',#42,$,$,(#123),#201564);

AnthonyKononov avatar May 14 '24 08:05 AnthonyKononov