Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

See Model Object overview here, especially the inheritance section:

OpenStudio inheritance

Basically the logic is that it starts at the most specific, and goes up to the most general. Once it finds something, it stops going up.

See Model Object overview here, especially the inheritance section:

OpenStudio inheritance

Basically the logic is that it starts at the most specific, and goes up to the most general. Once it finds something, it stops going up.


Edit:

Let's take a simple use case to illustrate how you would set up a (simple) real world building. Let's say you have a 10-story building, with a basement, and you have stairwells on the perimeter of the building. All of your building has the same construction used for exterior walls, except the basement, and the stairwells. For simplicity's sake, let's say the interior floor and walls are the same throughout.

You would create a construction set with all surface types (windows, interior floor, walls, exterior walls, roofceiling, etc) and apply that to the whole building. You would then create two additional construction sets:

  • One for the basement, where you only assign the exterior wall construction that corresponds to the basement exterior walls. You apply this to the basement building story (and make sure all basement spaces are assigned this building story of course...)
  • One for the stairwells, where you only assign the exterior wall construction that corresponds to the stairwells exterior walls. You create a Space Type called "Stairwell" and assign it to all stairwells spaces. You assign the stairwell construction type to the "Stairwell" Space Type.

What OpenStudio would then do:

  • For anything but exterior walls, it won't find any construction assigned at a deeper level of inheritance than the building, so it would use the construction set you have defined at the building level (make sure all surface/subsurfacetypes used in your model do have a construction defined, otherwise it'll crash when you run the simulation).
  • For exterior walls: if it's a space that has the Stairwell Space Type, then it will use the stairwell construction, even if it's a stairwell located in the "Basement" building story (SpaceType is at a deeper level of inheritance than Story!). If it's not a stairwell, and if it's in the basement building story, then it uses the basement construction set.

This is how you would leverage inheritance to be able to define the constructions only where needed. You only had to the define exterior walls three times, and you only had to define the rest once (huge time saver!). I hope this clarifies it a bit.

Last, there's the case where the surface is adiabatic. In this case you need to hard assign the construction to the surface (there's a User Script in the Skechup Plugin to do that conveniently), since the construction set currently doesn't allow to define a surface type "Adiabatic".