The ways property sets and quantity sets relate to elements seems to lack in standardisation. For instance:
An object (wall, resource, task, etc) uses IsDefinedBy.
A type object (wall type, resource type, task type, etc) uses HasPropertySets
A material definition uses HasProperties.
A profile definition uses HasProperties.
It would be good to clean it up
Profiles and materials use IfcExtendedProperties. Can this be deleted in favour of just regular psets like most objects? I havenโt looked closely, but at the surface level it seems like a logical move.
This summarizes the current state well. The underlying problem is that Material and Profile are non-rooted elements. IfcRelDefinesByProperties links IfcObject in IFC2X3 (so also not IfcTypeObject) but links to IfcObjectDefinition in IFC4.
I think the solution would look along the lines of somehow moving Material and Profile to be subtypes of IfcObjectDefinition (this may further break the dependencies between current schema modules though) and provide the property linking mechanism on that level as well.
@aothms agreed - I think there is merit in making them rooted under IfcObjectDefinition. Lately, in implementing IFC project libraries and more structural analysis support, it seems extremely important to have material libraries and profile libraries, and moving to an IfcObjectDefinition seems to improve both library support, and standardise pset assignment both