IFC4.3.x-development
IFC4.3.x-development copied to clipboard
IfcMaterialProfileSetUsageTapering cannot work with a type and an occurrence
The way profiles (and layer) sets work is that assuming you have:
IfcElementType <- IfcRelAssociatesMaterial -> IfcMaterialProfileSetX -> IfcMaterialProfile(s)
Then all occurrences of that type share that profile set. For example:
IfcElement <- IfcRelDefinesByType -> IfcElementType
And then
IfcElement <- IfcRelAssociatesMaterial -> IfcMaterialProfileSetUsage -> IfcMaterialProfileSetX
I labeled it IfcMaterialProfileSetX to emphasize how the profile set is shared between the IfcElementType and the IfcElement occurrence.
Great. So now let's try the same exercise with a IfcMaterialProfileSetUsageTapering.
IfcElement <- IfcRelAssociatesMaterial -> IfcMaterialProfileSetUsageTapering -> IfcMaterialProfileSetX
What happens with IfcMaterialProfileSetUsageTapering.ForProfileEndSet? How is it defined on the type?
Option 1. Deprecate IfcMaterialProfileSetUsageTapering. If someone wants a fancy shaped profile, the profile set usage isn't the way to go.
Option 2. Fix it? One option might be to introduce IfcMaterialProfileSetTapering?