I have a question concerning custom Properties and their custom PropertySets.
In my knowlegde a PropertySet with its Properties is going to be applicable for the whole entity with its all Enumerations. Therefore, I question if my statement is correct since not all properties are applicable to all enumerations of the entity.
For ex. a Custom Property called “ElectricOpener” is going to be applicable for only IfcDoor.DOOR, whereas all other Enums are not required, respectivelly don’t have values to populate this property. The later are going to carry a ND value (Not Defined). I have many other examples especially by IfcCovering CEILING and FLOORING. These enumerations have many properties that are not applicble to the other one and vice versa.
Therefore, I was wondering, if it is allowed to differentiate custom Properties between Enumerations. Meaning, the same propertyset is going to be applicable for the whole entity, but the number of properties is going to depend on the enumeration. The FLOORING will have only the properties that make sense for FLOORING and are not going to be visible in CEILING.
This problem gets even worse (in my opinion) with IfcLengthMeassures. Here there is no possibility to define an ND Value but rather a “0”. Personally, I consider this either a not defined or a not correctly defined value.
So far I have managed to define such custom properties only in the enumeration level. But is this legal?
Can someone guide me with a proper solution to this case?
thank you in advance…
To my knowledge, I don’t think it’s possible in IFC alone.
A property set template has an ApplicableEntity, which can filter by class and predefined type. However property templates themselves have no such applicability filter.
However you have options:
Use IDS to require particular properties for particular applicabilities.
Use bSDD to help document the property. I believe bSDD specifies applicability at the property level (ping @artur_tomczak in case I got this wrong).
hi @Moult
I am aware of the property set template, but a property template?
this is actually where the whole story began, at the applicability of properties. When creating a new USERDEFINED ObjectType, do all standard properties (LoadBearing, IsExternal, etc) automatically apply to it, or can it be filtered out? Is this allowed in the IFC Schema?
Regarding the custom properties and custom property sets, as far as I interpret the documentation about the IfcPropertySetDefinition:
" * Assignment to object types - an DefinesType direct relationship to IfcTypeObject that applies the property set, with all included properties, to the object type. Those properties apply to all object occurrences having the same object type."
My interpretation:
The Property_1, 2, 3, 4 from Cset_X will be applied to all object occurrences of ObjectType_X. But Projerty_5, 6, 7 and 8 from the same Cset_X will not be applied to ObjectType_1, because it does not apply for that ObjectType. The later rather applies to all occurrences of ObjectType_Y. Therefore, one custom property set with 8 properties, which are applied differently at the object type level.
For this reason, I was am IDS to precisely define at which level and especially object type the property apply. Still, I am not able to find the correct definition of this convention in the documentation.