while I was working on extracting data from the IFC, it came to my attention that there is not really a logical connection between the IfcBuildingElement and IfcBuildingElementPart or maybe I lack the knowlegde in this department
What do I mean by that?
An IfcBuildingElement as a structure can be composed out of multiple layers and has a Pset appendet to it. This Pset controls the attributes at the entity level of the building element and has no connection to the building element part. In a simple example, a wall (Masonry + Insulation) as a whole can be LoadBearing, but has no definition which of the layers from that composition is LoadBearing. It is human-readable, since a human can identify that layer either by name, color or even texture, but not machine-readable.
Wouldn’t it be more transparent if the attributes of the Pset could be connected to the IfcBuildingElementPart? Or even better, that the Pset are composed out of the level of IfcBuildingElementPart. This way the IFC structure would understand which layer is responsible for which criteria at the Pset Level of the entity, whether it is LoadBearing, Accoustical, FireRating, etc…
Therefore, if one Part of the Element is LoadBearing, it automatically gets transported to the whole entity. In the IfcBoolean world, this would mean that the TRUE statement always wins over the FALSE. In the numerical value, it simply gets transported to a higher instance.
Does this concept sound plausible to you?