IFC4.3.x-development
IFC4.3.x-development copied to clipboard
Standardise cardinality of material set items attribute
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.
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).
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.
... 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.