buildingSMART / bSDD

The buildingSMART Data Dictionary repository, where we publish the documentation, examples and more. We don't publish here the data, the source code of the bSDD service or the front end of the website.
https://www.buildingsmart.org/users/services/buildingsmart-data-dictionary/
MIT License
129 stars 36 forks source link

Single property duplicated multiple times within the same class #85

Closed lfontanella closed 2 months ago

lfontanella commented 7 months ago

Hello! I wanted to ask if it is possible to associate the same property multiple times within the same class and use individual "ClassProperty" to differentiate their various limit values? I try to explain me better. I know that it wouldn't make sense, for example, to assign the "Area" property multiple times within the same "Wall" class. However, in my case, in the field of energy analysis, I wanted to use bSDD to input all the thermal transmittance limits required by regulations (which vary in Italy depending on the 6 climatic zones) in order to have a single "ThermalTransmittance" property associated with a single "Wall" class and 6 ClassProperties, one for each climatic zone, where only the limit values vary. I am attaching an example image with currently only 2 class properties for climatic zones A and B of a wall. eg climate zone

The alternative I have is to create 6 different thermal transmittance properties, one for each climatic zone, for all building envelope elements (walls, roof, floor, windows) for a total of 24 individual properties? Thank you!

Luca

atomczak commented 6 months ago

Hi @lfontanella,

Interesting use case.

The ClassProperty is an assignment of Property to a Class. The IFC schema only allows property sets to have unique properties (https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcUniquePropertyName.htm) so there can't be two with the same name (code in bSDD). After all, the property is the same, you just want to define other ranges of possible values.

Instead, consider bSDD the source of definitions but use IDS to specify the local restrictions. For example, you can create an IDS file for each zone, and all would use the same property from IFC/bSDD (ThermalTransmittance), but would have different ranges of possible values (min/maxInclusive/Exclusive restriction). While in bSDD, we define what a property is and what its limitations are (e.g. width is always >0), in IDS you can make context-specific requirements (e.g. door width > 0.90m).

By the way, please do not reupload IFC definitions (IfcWall) as those already exist in bSDD, with other code and URI. It is against the IFC license (CC BY-ND 4.0).

lfontanella commented 5 months ago

Hello @atomczak, thank you very much for your response! I will then try to set up a specific IDS with all the Thermal Transmittance limits provided by the regulations. Currently, I am trying to create a preliminary IDS to make sure that the IFC file contains all the information needed for the energy analysis of a building. Once I have passed the first preliminary check, which ensures that I have the necessary information, I intend to use an intermediary software created using Python-IfcOpenshell to read the data contained in the previously approved IFC file, the definitions contained in bSDD, and perform all the necessary calculations.

By the way, please do not reupload IFC definitions (IfcWall) as those already exist in bSDD, with other code and URI. It is against the IFC license (CC BY-ND 4.0).

I have corrected the error in the IfcWall description, thanks for the guidance. Luca

atomczak commented 5 months ago

Good!

I still don't understand why you define Thermal Transmittance property if it already exists and is standardised in IFC. https://identifier.buildingsmart.org/uri/buildingsmart/ifc/4.3/prop/ThermalTransmittance (yours: https://identifier.buildingsmart.org/uri/Iuav/UValue-CAM/0.32/prop/TT.01). Isn't it the same property?

Also, why do you define classes like: "Floor-Climate Zone - A"? Isn't this still just a floor that should have a property "Climate Zone" with a value "A"? Then in your IDS you can say that if Climate Zone == A, then it should be < 0.44.

atomczak commented 2 months ago

Closing due to lack of response from @lfontanella