IFC4.3.x-development icon indicating copy to clipboard operation
IFC4.3.x-development copied to clipboard

Standardise cardinality of material set items attribute

Open Moult opened this issue 3 years ago • 3 comments

MaterialLayerSet has MaterialLayers | LIST [1:?] OF IfcMaterialLayer

MaterialProfileSet has MaterialProfiles | LIST [1:?] OF IfcMaterialProfile

MaterialConstituentSet has MaterialConstituents | OPTIONAL SET [1:?] OF IfcMaterialConstituent

Why are constituents special? Why does it have optionality? What should the correct cardinality be?

Edit: to clarify I'm only asking about optionality. The list vs set makes total sense.

Moult avatar Mar 19 '22 09:03 Moult

good point - I can't see a use of IfcMaterialConstituentSet without providing at least one IfcMaterialConstituent. So removing the OPTIONAL (with minor risk for incompatibility) could be proposed.

SET instead of LIST is justified, since there is no order implied in providing the constituents (as you say in your edit).

PS: yes, there was already the issue, why it isn't IfcMaterialLayerList (instead of ...Set), but this is legacy and backward compatibility and we simply have to live with in until IFC5 (maybe).

TLiebich avatar Mar 20 '22 18:03 TLiebich

Maybe the line of thinking was similar to how we have notdefined/notknown distinctions in various cases. A MCS without an MC is the only way to associate some sort of 'null' material. I'm thinking really hard now for a justification, I'm perfectly fine with the proposal to make MaterialConstituents non optional.

aothms avatar Mar 20 '22 20:03 aothms

... some sort of 'null' material

I'll really be stretching my imagination here.

Cheers, that makes three of us happy to make it non optional.

Moult avatar Mar 20 '22 23:03 Moult