buildingSMART / IDS

Computer interpretable (XML) standard to define Information Delivery Specifications for BIM (mainly used for IFC)
https://www.buildingsmart.org/standards/bsi-standards/information-delivery-specification-ids/
Other
215 stars 66 forks source link

Clarify relation recursion and cardinality #155

Open pasi-paasiala opened 1 year ago

pasi-paasiala commented 1 year ago

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.

Moult commented 1 year ago

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.

berlotti commented 1 year ago

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

CBenghi commented 1 year ago

The current proposal, to be properly documented, is:

relation is not required

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

AnthonyKononov commented 6 months ago

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);