IFC4.3.x-development
IFC4.3.x-development copied to clipboard
Inconsistency in cardinality of property sets vs material properties
This situation is valid for IfcPropertySet:
IfcWallX, IfcSlabX <- IfcRelDefinesByProperties -> IfcPropertySetX
I.e. a single property set may be shared by multiple entities.
Material properties cannot be shared.
IfcMaterial -> IfcMaterialProperties
I suspect that this is more of an "IFC5" issue, but it would be really nice to make this cardinality consistent. Right now it adds an edge case whenever anybody wants to write code that manipulates properties.
Yes, note that the arrow points the other way.
IfcMaterial <- IfcMaterialProperties
One way to solve this is to do the same that was done with psets
https://github.com/buildingSMART/IFC4.3.x-output/blob/1793ac5b29e55962edb8fa6a146596d8c5fc6ca4/IFC.exp#L3657-L3660
TYPE IfcMaterialDefinitionSet = SET [1:?] OF IfcMaterialDefinition;
END_TYPE;
TYPE IfcMaterialDefinitionSetSelect = SELECT
(IfcMaterialDefinition
,IfcMaterialDefinitionSet);
END_TYPE;
ENTITY IfcMaterialProperties;
Material : IfcMaterialDefinitionSetSelect;
END_ENTITY;
I don't think anybody would be in favour of this? So not sure why I bring this up. But if this is a really important issue than this is the way to resolve this in a spf-serialization compatible manner.