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

Clarify relation recursion and cardinality #155

Open
pasi-paasiala opened this issue Apr 20, 2023 · 4 comments
Open

Clarify relation recursion and cardinality #155

pasi-paasiala opened this issue Apr 20, 2023 · 4 comments
Assignees
Milestone

Comments

@pasi-paasiala
Copy link
Contributor

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
Copy link
Contributor

Moult commented Apr 24, 2023

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.

@CBenghi CBenghi added this to the 1.0 milestone May 31, 2023
@berlotti
Copy link
Member

berlotti commented Jul 5, 2023

@CBenghi CBenghi self-assigned this Oct 3, 2023
@CBenghi
Copy link
Contributor

CBenghi commented Oct 3, 2023

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.

@AnthonyKononov
Copy link

AnthonyKononov commented May 14, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants