IFC4.3.x-development
IFC4.3.x-development copied to clipboard
Pset templates missing applicability to material category
This was a bit of a special behaviour back in IFC4, but in IFC4 there were definitions such as:
#22910= IFCPROPERTYSETTEMPLATE('3EWsy0qUqHuO00025QrE$V',$,'Pset_MaterialSteel','A set of extended mechanical properties related to steel (or other metallic and isotropic) materials.',.PSET_TYPEDRIVENOVERRIDE.,'IfcMaterial/Steel',(#22913,#22916,#22919,#22922,#22925,#22928,#22931));
#22784= IFCPROPERTYSETTEMPLATE('3Zgyu0qUmHuO00025QrE$V',$,'Pset_MaterialConcrete','A set of extended mechanical properties related to concrete materials.',.PSET_TYPEDRIVENOVERRIDE.,'IfcMaterial/Concrete',(#22787,#22790,#22793,#22796,#22799,#22802));
i.e. the Pset_MaterialConcrete only applies to IfcMaterial which has a Category attribute of Concrete.
One issue is that the capitalisation of Concrete is a mismatch with the docs which suggest concrete, and inconsistent with every other predefined type which is CONCRETE...
... but the bigger issue is that in IFC4X3, this category applicability seems to have been lost. The definition now looks like this:
<?xml version="1.0" ?>
<PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" temp
latetype="PSET_MATERIALDRIVEN" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
<IfcVersion version="IFC4X3_ADD2"/>
<Name>Pset_MaterialConcrete</Name>
<Definition>A set of extended mechanical properties related to concrete materials.</Definition>
<Applicability/>
<ApplicableClasses>
<ClassName>IfcMaterial</ClassName>
</ApplicableClasses>
<ApplicableTypeValue>IfcMaterial</ApplicableTypeValue>
<PropertyDefs>
<PropertyDef>
<Name>CompressiveStrength</Name>
<Definition>The compressive strength of the object or material.</Definition>
<PropertyType>
... etc
This is what it looked like in 4X2: https://github.com/buildingSMART/IFC4.3.x-development/blob/master/reference_schemas/psd_IFC4x2/Pset_MaterialConcrete.xml#L10
Is this intentional? (e.g. to clean up an anomaly in the predefined type applicability?)