openstudio-model-articulation 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -1
  3. data/CHANGELOG.md +13 -0
  4. data/Gemfile +2 -2
  5. data/README.md +14 -0
  6. data/lib/measures/SetWindowToWallRatioByFacade/measure.rb +10 -3
  7. data/lib/measures/SetWindowToWallRatioByFacade/measure.xml +10 -4
  8. data/lib/measures/add_empd_material_properties/LICENSE.md +27 -0
  9. data/lib/measures/add_empd_material_properties/README.md +116 -0
  10. data/lib/measures/add_empd_material_properties/README.md.erb +42 -0
  11. data/lib/measures/add_empd_material_properties/docs/.gitkeep +0 -0
  12. data/lib/measures/add_empd_material_properties/measure.rb +247 -0
  13. data/lib/measures/add_empd_material_properties/measure.xml +201 -0
  14. data/lib/measures/create_DOE_prototype_building/measure.xml +2 -2
  15. data/lib/measures/create_bar_from_building_type_ratios/README.md +109 -35
  16. data/lib/measures/create_bar_from_building_type_ratios/README.md.erb +54 -35
  17. data/lib/measures/create_bar_from_building_type_ratios/measure.rb +5 -0
  18. data/lib/measures/create_bar_from_building_type_ratios/measure.xml +16 -16
  19. data/lib/measures/create_bar_from_deer_building_type_ratios/README.md +301 -79
  20. data/lib/measures/create_bar_from_deer_building_type_ratios/README.md.erb +62 -79
  21. data/lib/measures/create_bar_from_deer_building_type_ratios/measure.rb +6 -1
  22. data/lib/measures/create_bar_from_deer_building_type_ratios/measure.xml +19 -63
  23. data/lib/measures/create_bar_from_doe_building_type_ratios/README.md +298 -57
  24. data/lib/measures/create_bar_from_doe_building_type_ratios/README.md.erb +54 -57
  25. data/lib/measures/create_bar_from_doe_building_type_ratios/measure.rb +6 -1
  26. data/lib/measures/create_bar_from_doe_building_type_ratios/measure.xml +16 -20
  27. data/lib/measures/create_bar_from_space_type_ratios/README.md +94 -42
  28. data/lib/measures/create_bar_from_space_type_ratios/README.md.erb +60 -42
  29. data/lib/measures/create_bar_from_space_type_ratios/measure.rb +5 -0
  30. data/lib/measures/create_bar_from_space_type_ratios/measure.xml +19 -19
  31. data/lib/measures/create_baseline_building/measure.xml +2 -2
  32. data/lib/measures/create_deer_prototype_building/measure.xml +2 -2
  33. data/lib/measures/create_typical_building_from_model/README.md +81 -16
  34. data/lib/measures/create_typical_building_from_model/README.md.erb +36 -16
  35. data/lib/measures/create_typical_building_from_model/measure.rb +5 -0
  36. data/lib/measures/create_typical_building_from_model/measure.xml +19 -19
  37. data/lib/measures/create_typical_deer_building_from_model/README.md +173 -53
  38. data/lib/measures/create_typical_deer_building_from_model/README.md.erb +57 -53
  39. data/lib/measures/create_typical_deer_building_from_model/measure.rb +6 -1
  40. data/lib/measures/create_typical_deer_building_from_model/measure.xml +25 -25
  41. data/lib/measures/create_typical_doe_building_from_model/README.md +182 -44
  42. data/lib/measures/create_typical_doe_building_from_model/README.md.erb +58 -44
  43. data/lib/measures/create_typical_doe_building_from_model/measure.rb +6 -1
  44. data/lib/measures/create_typical_doe_building_from_model/measure.xml +25 -25
  45. data/lib/measures/radiant_slab_with_doas/measure.rb +5 -1
  46. data/lib/measures/radiant_slab_with_doas/measure.xml +9 -9
  47. data/lib/openstudio/model_articulation/version.rb +1 -1
  48. data/openstudio-model-articulation.gemspec +2 -2
  49. metadata +13 -7
@@ -12,33 +12,34 @@ The building floor area can be described as a footprint size or as a total build
12
12
  ## Measure Type
13
13
  ModelMeasure
14
14
 
15
- [//]: # (Commenting out until it works in SDK)
16
- [//]: # (## Taxonomy)
17
- [//]: # ()
15
+ [//]: # (Only finds value if taxonomy method is added to measure.rb, won't read out of measure.xml)
16
+ ## Taxonomy
17
+ Envelope.Form
18
18
 
19
19
  ___
20
20
  ## Table of Contents
21
21
  - [Measure Overview](#measure-overview)<br/>
22
22
  - [DOE and DEER Template and Building Type Mapping](#doe-and-deer-template-and-building-type-mapping)<br/>
23
- - [Space Type Ratios](#space-type-ratio)<br/>
24
- - [Floor Area](#floor-area)<br/>
25
- - [Height, Stories, and Orientation](#height-stories-and-orientation)<br/>
26
- - [Building Shape](#building-shape)<br/>
27
- - [Window to Wall Ratio](#window-to-wall-ratio)<br/>
28
- - [Party Walls and Exposure of Top and Bottom Stories](#party-walls-and-exposure-of-top-and-bottom-stories)<br/>
29
- - [Calculation Methods and Articulation Logic](#calculation-methods-and-articulation-logic)<br/>
23
+ - [Functionality and Input Overview](#functionality-and-input-overview)<br/>
24
+ - [Space Type Ratios](#space-type-ratio)<br/>
25
+ - [Floor Area](#floor-area)<br/>
26
+ - [Height, Stories, and Orientation](#height-stories-and-orientation)<br/>
27
+ - [Building Shape](#building-shape)<br/>
28
+ - [Window to Wall Ratio](#window-to-wall-ratio)<br/>
29
+ - [Party Walls and Exposure of Top and Bottom Stories](#party-walls-and-exposure-of-top-and-bottom-stories)<br/>
30
+ - [Calculation Methods and Articulation Logic](#calculation-methods-and-articulation-logic)<br/>
30
31
  - [Development Comments](#development-comments)<br/>
31
32
  - [Automatically Generated Argument List](#arguments)<br/>
32
33
 
33
34
  ## Measure Overview
34
35
 
35
- The intent of this measure is to create basic geometry given a mix of building types and high level characteristics about the building envelope like the number of stories, aspect ratio, orientation etc. This will result in one or more rectangular building elements. The spaces will have stub space type assignments but will not have any internal loads or and the surfaces will not have constructions. The stub space type ratios are based on DOE and DEER prototype buildings, depending on the building type you select. The typical workflow is to run other measures after this measure that populate the stub space types and other model elements. This measure has 38 arguments and can look intimidating, but all of them have defaults, so it will run properly without you changing any arguments; however at a minimum you will typically want to at least choose the primary building type, building floor area, and number of stories above grade. Make use of additional arguments as you have a need to.
36
+ The intent of this measure is to create basic geometry given a mix of building types and high level characteristics about the building envelope like the number of stories, aspect ratio, orientation etc. This will result in one or more rectangular building elements. The spaces will have stub space type assignments but will not have any internal loads or and the surfaces will not have constructions. The stub space type ratios are based on DOE prototype buildings, depending on the building type you select. The typical workflow is to run other measures after this measure that populate the stub space types and other model elements. This measure has more than 30 arguments and can look intimidating, but all of them have defaults, so it will run properly without you changing any arguments; however at a minimum you will typically want to at least choose the primary building type, building floor area, and number of stories above grade. Make use of additional arguments as you have a need to.
36
37
 
37
- This is generally meant to run on an empty model, but it does not activily delete any geometry or objects that may already be in the model.
38
+ This is generally meant to run on an empty model, but it does not actively delete any geometry or objects that may already be in the model.
38
39
 
39
40
  ## DOE and DEER Template and Building Type Mapping
40
41
 
41
- Note, that this particular measure has access to both DOE and DEER building types, templates (vintages). It is important for using this measure that the template chosen is in line with the selected building type(s). Below is a list of for each.
42
+ Note, that this particular measure has access to both DOE and DEER building types and templates (vintages). It is important when using this measure that the template and the selected building type(s) are all DOE or are all DEER. Below is a list of for each.
42
43
 
43
44
  #### DOE
44
45
  - Templates:
@@ -48,8 +49,16 @@ Note, that this particular measure has access to both DOE and DEER building type
48
49
  - 90.1-2007
49
50
  - 90.1-2010
50
51
  - 90.1-2013
52
+ - 90.1-2016
53
+ - 90.1-2019
51
54
  - NREL ZNE Ready 2017 (not currently complete for all building types)
52
- - Building Types: (If you pick a DOE template then space types ratios should come from one or more of these building types)
55
+ - ComStock DOE Ref Pre-1980
56
+ - ComStock DOE Ref 1980-2004
57
+ - ComStock 90.1-2004
58
+ - ComStock 90.1-2007
59
+ - ComStock 90.1-2010
60
+ - ComStock 90.1-2013
61
+ - Building Types:
53
62
  - SecondarySchool
54
63
  - PrimarySchool
55
64
  - SmallOffice
@@ -67,6 +76,11 @@ Note, that this particular measure has access to both DOE and DEER building type
67
76
  - Hospital
68
77
  - Outpatient
69
78
  - SuperMarket
79
+ - Laboratory
80
+ - LargeDataCenterLowITE
81
+ - LargeDataCenterHighITE
82
+ - SmallDataCenterLowITE
83
+ - SmallDataCenterHighITE
70
84
 
71
85
  #### DEER
72
86
  - Templates:
@@ -129,7 +143,7 @@ Note, that this particular measure has access to both DOE and DEER building type
129
143
 
130
144
  While Create Bar from Building Type Ratios pulls in a pre-determined list and ratios of space types for each building type, this measures allows the modeler to bring in any combination of space types from multiple building types. The main limitation is that the space types need to come from the same OpenStudio Standards Template. You can't mix spaces from DOE and DEER or a space type that is unique to DOE Ref Pre-1980 and another space type unique to ASHRAE 90.1 2013.
131
145
 
132
- The string is setup like a hash where the key is a concatenated BuildingType Space type combination separated by a vertical pipe and spaces " | ". Then a separated is added before the value that looks like " => ". Spaces in the string are optional except for the one after the comma that is necessary. Lastly a fractional value is added for the space type ratio. Your space type ratio fractional values should add up to 1.0.
146
+ The string is setup like a hash where the key is a concatenated BuildingType SpaceType combination separated by a vertical pipe and spaces " | ". Then a separator is added before the fractional value that looks like " => ". Spaces in the string are optional except for the one after the comma that is necessary. The space type ratio fractional values should add up to 1.0.
133
147
 
134
148
  Below are a few example use cases for this measure
135
149
  - If you want to use a space types from a prototype model but want to use a different mix of space types than the prototype building, which is generally where space type ratios in Create Bar from Building Type Ratios come from.
@@ -139,7 +153,7 @@ Below are a few example use cases for this measure
139
153
 
140
154
  #### Floor Area
141
155
 
142
- The typical use case for this measure is to set the total building floor area using the `Total Building Floor Area` argument. With this approach you can maintain a set building floor area while changing the number of stories. An alternate workflow is to set a static footprint area. This alternate workflow is enabled by seeting a non-zero value for the `Single Floor Area` argument.
156
+ The typical use case for this measure is to set the total building floor area using the `Total Building Floor Area` argument. With this approach you can maintain a set building floor area while changing the number of stories. An alternate workflow is to set a static footprint area. This alternate workflow is enabled by setting a non-zero value for the `Single Floor Area` argument.
143
157
 
144
158
  [//]: # (todo - add screenshot of same floor area on different num stories and shapes)
145
159
 
@@ -147,7 +161,7 @@ The typical use case for this measure is to set the total building floor area us
147
161
 
148
162
  The Floor to floor height for the building is controlled through the `Typical Floor to FLoor Height` argument. It is the first of a number of arguments where a value of 0 represents a **smart default**. If leave the default value of zero in place it will pick a building specific floor to floor height. For example 9' would be picked for a small hotel and 14' for a hospital.
149
163
 
150
- Some building types have space type specific definitions for height that can be enabled with the `Enable Custom Height Bar Application` argument. If I building doesn't have any custom heights defined the value of this argument will not matter. One example of where this argument would have an impact is for the gym and auditorum in the SecondarySchool which would have a height 26' instead of the default school height of 13'. This is accomplished by pulling space types with a custom height into a separate rectangular building that sits away from the main structure. If this argument is set to false then all of the space types will have the same height, which for the school would be the default of 13'
164
+ Some building types have space type specific definitions for height that can be enabled with the `Enable Custom Height Bar Application` argument. If I building doesn't have any custom heights defined the value of this argument will not matter. One example of where this argument would have an impact is for the gym and auditorium in the SecondarySchool which would have a height 26' instead of the default school height of 13'. This is accomplished by pulling space types with a custom height into a separate rectangular building that sits away from the main structure. If this argument is set to false then all of the space types will have the same height, which for the school would be the default of 13'
151
165
 
152
166
  ![No Custom Height Space Types](./docs/custom_height_false.png?raw=true)
153
167
  *Secondary school without custom space type heights enabled*
@@ -160,11 +174,11 @@ There are two arguments that control the number of stories the building has. `Nu
160
174
  ![Baesment](./docs/basement.png?raw=true)
161
175
  *Secondary school with 1 below grade story*
162
176
 
163
- The `Building Rotation` argument will rotate the building after the geometry is created. So if you for example make a bar oriented east/west and then rotate it 80 degrees, the end result will be a bar just off of being north/south orientation. A positive value rotates clockwise. If you had a party wall assigned to the south facade, after the 80 degree rotation, those party walls would not be 10 degress south of due west.
177
+ The `Building Rotation` argument will rotate the building after the geometry is created. So if you for example make a bar oriented east/west and then rotate it 80 degrees, the end result will be a bar just off of being north/south orientation. A positive value rotates clockwise. If you had a party wall assigned to the south facade, after the 80 degree rotation, those party walls would not be 10 degrees south of due west.
164
178
 
165
179
  #### Template
166
180
 
167
- The `Template` is uesed in OpenStudio measures and the OpenStudio standards gem to refer to a specific target building code standard or vintage. For exampe ASHRAE 90.1 2004 or the DOE Ref Pre-1980 vintage used for the DOE reference buildings. Template is used here along with the building types selected to define the list and ratios of space types in the model. While generally the space type ratio is the same across different templates there are exceptions to this such as the inclusion of data centers in newer LargeOffice buildings.
181
+ The `Template` is used in OpenStudio measures and the OpenStudio standards gem to refer to a specific target building code standard or vintage. For example ASHRAE 90.1 2004 or the DOE Ref Pre-1980 vintage used for the DOE reference buildings. Template is used here along with the building types selected to define the list and ratios of space types in the model. While generally the space type ratio is the same across different templates there are exceptions to this such as the inclusion of data centers in newer LargeOffice buildings.
168
182
 
169
183
  #### Building Shape
170
184
 
@@ -174,12 +188,12 @@ While the floor area and number of stories arguments determine the size of the b
174
188
  *Aspect Ratio of 2.0*
175
189
 
176
190
  ![Aspect Ratio 1.0](./docs/ar_1.png?raw=true)
177
- *Aspect Ratio of 2.0*
191
+ *Aspect Ratio of 1.0*
178
192
 
179
193
  ![Aspect Ratio 0.5](./docs/ar_05.png?raw=true)
180
194
  *Aspect Ratio of 0.5*
181
195
 
182
- The `Perimeter Multiplier` provides a mechanism to maintain your target footprint floor area and your target aspect ratio while increasing the total exterior perimeter exposure. The intent here is to support, in a simplified way, the impacts of non-rectangular buildings. This is accomplished by adding a second bar when necessary that is turned 90 degrees relative ot the primary bar but maintains the same width. These two building elements are separate from each other and from the custom height bar, if it exists. If you keep the default value of 0.0 the measure will lookup a value inferred from the prototype buidling. For most prototype buidling types this will result in a value of 1.0, because the buildings are rectangular, but for PrimarySchool, SecondarySchool, and Outpatient a value larger than 1.0 will be used. If you use or a smart default of 1.0 applied for this argument you get a single bar. As you increase the multiplier higher than 1.0 it will add a second bar to increase the building perimeter while maintaining both the floor area and the north south to east west aspect ratio. Below is an example of the calculation method. If you use a very small multiplier such as 1.05, a situation may exist that would have too small of a secondary bar to properly model. In this case the single bar will just be extended a bit to achive the target total perimeter, but will sacrifice meeting the requested north/south versus east/west aspect ratio. In some cases with when the multiplier is not high enough above 1 the ends of the secondary bar may be made adiabatic to achive target values.
196
+ The `Perimeter Multiplier` provides a mechanism to maintain your target footprint floor area and your target aspect ratio while increasing the total exterior perimeter exposure. The intent here is to support, in a simplified way, the impacts of non-rectangular buildings. This is accomplished by adding a second bar when necessary that is turned 90 degrees relative ot the primary bar but maintains the same width. These two building elements are separate from each other and from the custom height bar, if it exists. If you keep the default value of 0.0 the measure will lookup a value inferred from the prototype building. For most prototype building types this will result in a value of 1.0, because the buildings are rectangular, but for PrimarySchool, SecondarySchool, and Outpatient a value larger than 1.0 will be used. If you use or a smart default of 1.0 applied for this argument you get a single bar. As you increase the multiplier higher than 1.0 it will add a second bar to increase the building perimeter while maintaining both the floor area and the north south to east west aspect ratio. Below is an example of the calculation method. If you use a very small multiplier such as 1.05, a situation may exist that would have too small of a secondary bar to properly model. In this case the single bar will just be extended a bit to achieve the target total perimeter, but will sacrifice meeting the requested north/south versus east/west aspect ratio. In some cases with when the multiplier is not high enough above 1 the ends of the secondary bar may be made adiabatic to achieve target values.
183
197
 
184
198
  ![Perim Mult b](./docs/perim_mult_2012.png?raw=true)
185
199
  *Aspect Ratio of 2.0 with a Perimeter Multiplier of 1.2. Able to add second bar but needs to have adiabatic ends. See earlier screenshot for Aspect Ratio of 2.0 with Perimeter Multiplier of 1.0*
@@ -188,15 +202,15 @@ The `Perimeter Multiplier` provides a mechanism to maintain your target footprin
188
202
  *Aspect Ratio of 2.0 with a Perimeter Multiplier of 2.0.*
189
203
 
190
204
  `Perimeter Multiplier` example use case:
191
- - inputs are for a 10,000 ft^2 2 story building with an aspect ratio of
192
- - With a `Perimeter Multiplier` of one this would result in a single bar that is 50' by 100'. This would have a total perimeter of 300'
193
- - With a `Perimeter Multiplier` of 1.5 the target perimeter value will be increased to 450'. This would result in two bar elements that have a combined footprint area of 5000 ft^2 (per story) and a combined perimeter of 450'.
205
+ - inputs are for a 10,000 ft^2 2 story building with an aspect ratio of
206
+ - With a `Perimeter Multiplier` of one this would result in a single bar that is 50' by 100'. This would have a total perimeter of 300'
207
+ - With a `Perimeter Multiplier` of 1.5 the target perimeter value will be increased to 450'. This would result in two bar elements that have a combined footprint area of 5000 ft^2 (per story) and a combined perimeter of 450'.
194
208
 
195
- Representing for example a U shaped footprint (which might have a "Perimeter Multiplier" of 3 or higher) with a single bar would either under-estimate the perimeter if a reduced bounding box was fit around it to match the area, or over skew the orientation if a single long skinny bar was created with almost all of the exposure in only two opposing cardinal directions. A more common term that could have been used for an argument would have been a 1building perimeter to floor area ratio(P/A)`. That was considered but there could have been incompatible inputs passed in where the target P/A isn't possible for the given footprint area and aspect ratio. A 100' square has a P/A of 0.04 while a 1000' square has a ratio 0.004. In addition to changing with size it would also change with the shape of the rectangle. This measure in uses the multiplier to increase the perimeter of the foorprint(s) given a specified area and aspect ratio above the minim possible rectangular perimeter value. If you just want to make a single bar, you can leave the value at 1.0 and not worry about it. As a last note, if you also are using a custom height bar, that excluded from the calculation of the primary bar(s)
209
+ Representing for example a U shaped footprint (which might have a "Perimeter Multiplier" of 3 or higher) with a single bar would either under-estimate the perimeter if a reduced bounding box was fit around it to match the area, or over skew the orientation if a single long skinny bar was created with almost all of the exposure in only two opposing cardinal directions. A more common term that could have been used for an argument would have been a 1building perimeter to floor area ratio(P/A)`. That was considered but there could have been incompatible inputs passed in where the target P/A isn't possible for the given footprint area and aspect ratio. A 100' square has a P/A of 0.04 while a 1000' square has a ratio 0.004. In addition to changing with size it would also change with the shape of the rectangle. This measure in uses the multiplier to increase the perimeter of the foorprint(s) given a specified area and aspect ratio above the minim possible rectangular perimeter value. If you just want to make a single bar, you can leave the value at 1.0 and not worry about it. As a last note, if you also are using a custom height bar, that excluded from the calculation of the primary bar(s)
196
210
 
197
- `Bar Width` can be specified. If you know due to the layout of your building or other factors that you have a specific building width you would like to have you can enter that in the `Bar Width` argument. `Perimeter Multiplier` will be engored when a non-zero `Bar Width` is used. If you leave this argument value at the default value of 0 then it will not impact the model. A non-zero value here will also bypass the `Perimeter Multiplier` argument.
211
+ `Bar Width` can be specified. If you know due to the layout of your building or other factors that you have a specific building width you would like to have you can enter that in the `Bar Width` argument. `Perimeter Multiplier` will be ignored when a non-zero `Bar Width` is used. If you leave this argument value at the default value of 0 then it will not impact the model. A non-zero value here will also bypass the `Perimeter Multiplier` argument.
198
212
 
199
- `Bar Separation Distance Multiplier` is used when there is more than one bar, to specify the distance between the bars as a multiple of the building height. The default value is 10 x the height of the building, but that can be customized here. Currently 0 is not a valid multiplier, since all the intersection, matching, and fenestration occur in the indivdual bar elements. When two bars are required to meet the `Perimeter Multiplier` target they are in configruation of an with the vertical leg to the right of the horizontal leg, like a backwards "L". If a custom heigth bar was use that will be positioned ot the left of the other bars.
213
+ `Bar Separation Distance Multiplier` is used when there is more than one bar, to specify the distance between the bars as a multiple of the building height. The default value is 10 x the height of the building, but that can be customized here. Currently 0 is not a valid multiplier, since all the intersection, matching, and fenestration occur in the individual bar elements. When two bars are required to meet the `Perimeter Multiplier` target they are in configuration of an with the vertical leg to the right of the horizontal leg, like a backwards "L". If a custom height bar was used that will be positioned to the left of the other bars.
200
214
 
201
215
  ![Sept Dist 0.5](./docs/sep_05.png?raw=true)
202
216
  *Bar Separation Distance Multiplier of 0.5*
@@ -216,7 +230,7 @@ There is just a single `Window to Wall Ratio` argument for this measure. It has
216
230
  ![Custom WWR](./docs/wwr_custom.png?raw=true)
217
231
  *Example of space type specific WWR for warehouse model, shown with custom space type height enabled*
218
232
 
219
- Orientation specific characteristics and/or overhangs may be added to this in the future, but are currenty possible by adding existing measure to the workflow after this measure. Currently skylights are not directly supported either, but can be added outside of this measure.
233
+ Orientation specific characteristics and/or overhangs may be added to this in the future, but are currently possible by adding existing measure to the workflow after this measure. Currently skylights are not directly supported either, but can be added outside of this measure.
220
234
 
221
235
  #### Party Walls and Exposure of Top and Bottom Stories
222
236
 
@@ -226,7 +240,7 @@ There are two approaches for the party walls. One approach is a single fraction
226
240
 
227
241
  The second approach is ideal when you know more about the conditions of a specific condition and allows you to enter an integer for reach cardinal direction with arguments named `Number of North facing stories with party wall` etc. You can for example have a 5 story building that has a 1 story building to the west, a 3 story building to the east, a 2 story building to the north, and exterior exposure to the south. If you are using this as part of a parametric study where number of stories is changeling and you want all of a specific facade to be adjacent to a building that is taller, You can enter an large value such as 99 for the value; the overly large value relative to number of stories in the building will not create any issues.
228
242
 
229
- The ability to model what is essence party floor/ceilings in your model are controlled through two bool arguments named `Is the Bottom Story Exposed to Ground` and `Is the Top Story an Exterior Roof`
243
+ The ability to model what is in essence party floor/ceilings in your model are controlled through two bool arguments named `Is the Bottom Story Exposed to Ground` and `Is the Top Story an Exterior Roof`
230
244
 
231
245
  ![Party Wall](./docs/party.png?raw=true)
232
246
  *1 story Party wall on south, 2 story on east, story multipliers not enabled*
@@ -239,11 +253,11 @@ The ability to model what is essence party floor/ceilings in your model are cont
239
253
 
240
254
  #### Calculation Methods and Articulation Logic
241
255
 
242
- - `Calculation Method for Story Multiplier` is used to determine if zone multipliers should be used as story multipliers on taller buildings. This reduces the nubmer of zones and should speed up simulations, but may not be approriate in all cases. If you select a value of `None` then no (non 1) zone multipliers will be used and zones will be modeled for all building stories. The other choice currently available is `Basements Ground Mid Top` which for a building without party walls will never have more than 4 modeled stories regardless of the number of stories. The measure will evaluate uniqueness of stories taking into account party walls and may add additional stories to accommodate this. Note that while the size of space types on a story with a multiplier greater than 1 may appear smaller, they may be larger once the multiplier is applied. More options may be added in the future, specifically vacations of something like `Basements Ground Midx5 Top` that for very tall buildings would and multiple mid-stories vs. a single mid-story.
256
+ - `Calculation Method for Story Multiplier` is used to determine if zone multipliers should be used as story multipliers on taller buildings. This reduces the number of zones and should speed up simulations, but may not be appropriate in all cases. If you select a value of `None` then no (non 1) zone multipliers will be used and zones will be modeled for all building stories. The other choice currently available is `Basements Ground Mid Top` which for a building without party walls will never have more than 4 modeled stories regardless of the number of stories. The measure will evaluate uniqueness of stories taking into account party walls and may add additional stories to accommodate this. Note that while the size of space types on a story with a multiplier greater than 1 may appear smaller, they may be larger once the multiplier is applied. More options may be added in the future, specifically vacations of something like `Basements Ground Midx5 Top` that for very tall buildings would and multiple mid-stories vs. a single mid-story.
243
257
 
244
258
  - `Make Mid Story Floor Surfaces Adiabatic` determines of surface intersection and surface matching should be applied between stories (when they are adjacent and capable of being matched e.g. story multiplier not used). Setting this to true can reduce the number of surfaces in the model
245
259
 
246
- - `Division Method for Bar Space Types` is used to determine how the internal zoning and space type division of the bar(s) is approached. The default vaue of `Multiple Space Types - Individual Stories Sliced` is the primary method that should be used. It creates what looks like a core and perimeter model, but slices it up by space type, with large space types moving towards the upper stories. There is some basic logic to minimize small slivers of a space type being createe that would create thermal zones with small volumes that may not simulate well. The two largest space types will be at the ends of the bars to minimize having excessive exterior exosure on a zone with a small floor area. `Multiple Space Types - Simple Sliced` is an earlier method that pre-dates the indivdual sliced stories. The logic is similar but it puts all space types on every building story and creates multiple stories with the exact same slicing logic. `Single Space Type - Core and Perimeter` is not sliced up by space type and isn't relevant for building types with multiple space types. If you do have a building type with only a single space type, like small or medium office, the multiple space type methods will still work. The single space type method will eventually be deprecated.
260
+ - `Division Method for Bar Space Types` is used to determine how the internal zoning and space type division of the bar(s) is approached. The default value of `Multiple Space Types - Individual Stories Sliced` is the primary method that should be used. It creates what looks like a core and perimeter model, but slices it up by space type, with large space types moving towards the upper stories. There is some basic logic to minimize small slivers of a space type being created that would create thermal zones with small volumes that may not simulate well. The two largest space types will be at the ends of the bars to minimize having excessive exterior exposure on a zone with a small floor area. `Multiple Space Types - Simple Sliced` is an earlier method that pre-dates the individual sliced stories. The logic is similar but it puts all space types on every building story and creates multiple stories with the exact same slicing logic. `Single Space Type - Core and Perimeter` is not sliced up by space type and isn't relevant for building types with multiple space types. If you do have a building type with only a single space type, like small or medium office, the multiple space type methods will still work. The single space type method will eventually be deprecated.
247
261
 
248
262
  ![Individualy Sliced](./docs/bar_sliced_indiv.png?raw=true)
249
263
  *Multiple Space Types - Individual Stories Slice method that has been used through the examples above*
@@ -254,27 +268,26 @@ The ability to model what is essence party floor/ceilings in your model are cont
254
268
  ![Single Core Perimeter](./docs/bar_single_core_perim.png?raw=true)
255
269
  *Single Space Type - Core and Perimeter, should not be a reason to use this*
256
270
 
257
- - The `Double Loaded Corridor` arguemtn when enabled, take a circulation space type, when it exists, and pair it with the default space type, and will create a double loaded corridor for the space division and theral zoning, instead of the typical sliced core and perimeter zoning. This not only alters the geometry of the internal division, but creates a hybrid slice that instead of being a single space type, contains a circulation space type running down the center of the bar, surrounded by spaces of another space type. For an example, with a primary school the corridor will be paired with the classrooms. The width of the corridor is determined to achive the proper space type ratios of the two space types.
271
+ - The `Double Loaded Corridor` argument when enabled, take a circulation space type, when it exists, and pair it with the default space type, and will create a double loaded corridor for the space division and thermal zoning, instead of the typical sliced core and perimeter zoning. This not only alters the geometry of the internal division, but creates a hybrid slice that instead of being a single space type, contains a circulation space type running down the center of the bar, surrounded by spaces of another space type. For an example, with a primary school the corridor will be paired with the classrooms. The width of the corridor is determined to achieve the proper space type ratios of the two space types.
272
+ - Not enabled for the DEER Building Types as of OpenStudio 3.2.
258
273
 
259
274
  ![Double Loaded Corridor](./docs/bar_double_loaded.png?raw=true)
260
275
  *Double Loaded Corridor with classroom and corridor for secondary school.*
261
276
 
262
- - The `Choose Space Type Sorting Method` only comes into play when you are modeling a building with more than one building type. With `Size` selected the space types are organized by size, independent of the building type, with smaller space types on lower stories and larger space types on higher stories. `Building Type > Size` is a newer method that first sorts by buidling type, putting smaller building types on lower stories, and then within a buildng type will sort by size. An exmaple use case for this method is when modeling a 4 story building with 25% office and 75% large hotel. With the `Building Type > Size` value the first story will be entirly office, with the rest of the stories large hotel. If the `Size` value is selected, building types wll be mixed together.
277
+ - The `Choose Space Type Sorting Method` only comes into play when you are modeling a building with more than one building type. With `Size` selected the space types are organized by size, independent of the building type, with smaller space types on lower stories and larger space types on higher stories. `Building Type > Size` is a newer method that first sorts by building type, putting smaller building types on lower stories, and then within a building type will sort by size. An example use case for this method is when modeling a 4 story building with 25% office and 75% large hotel. With the `Building Type > Size` value the first story will be entirely office, with the rest of the stories large hotel. If the `Size` value is selected, building types wll be mixed together.
263
278
 
264
279
  ![Sort Space Types by Building Types](./docs/story_sort.png?raw=true)
265
- *Building Type > Size used to sort by buiding types, and then by space types.*
266
-
267
- - `Use Upstream Argument Values` can be left at the default value of true for most cases. This argument shows up in a number of measures, and then intent is to enable the synchronization of arguments that may be used as a variable in a parametric study across multiple measures. Generally measure ahve uqniue argument names that don't exist, but some such ase `template` are used frequently. This argument, when set to true, will use the value of `Template` from an earlier measure in the workflow, if found, in place of what is entered as the value for this measure.
280
+ *Building Type > Size used to sort by building types, and then by space types.*
268
281
 
269
- - `Climate Zone` is not used at all by this measure but is necessary for an obscure reason
282
+ - `Use Upstream Argument Values` can be left at the default value of true for most cases. This argument shows up in a number of measures, and then intent is to enable the synchronization of arguments that may be used as a variable in a parametric study across multiple measures. Generally a measures has unique argument names that don't exist in other measures, but some such ase `template` are used frequently. This argument, when set to true, will use the value of `template` from an earlier measure in the workflow, if found, in place of what is entered as the argument value for this measure.
270
283
 
271
284
  ## Development Comments
272
285
 
273
- This measure relies on the openstudio-standards gem which is included in the OpenStudio CLI as well as a number of resources files listed below that are contained in the measure's `resources` directory. Other than the arguments almost none of the measure code is in the measure.rb file. The resource files are used by a number of measures and should be udpated from the shared library and not within this measure.
274
- - os_lib_model_generation.rb
275
- - os_lib_model_simplification.rb
276
- - os_lib_geometry.rb
277
- - os_lib_helper_methods.rb
286
+ This measure relies on the openstudio-standards gem which is included in the OpenStudio CLI as well as a number of resources files listed below that are contained in the measure's `resources` directory. Other than the arguments almost none of the measure code is in the measure.rb file. The resource files are used by a number of measures and should be updated from the shared library and not within this measure.
287
+ - os_lib_model_generation.rb
288
+ - os_lib_model_simplification.rb
289
+ - os_lib_geometry.rb
290
+ - os_lib_helper_methods.rb
278
291
 
279
292
  ___
280
293
 
@@ -282,6 +295,8 @@ ___
282
295
 
283
296
  ## Arguments
284
297
 
298
+ ## Arguments
299
+
285
300
 
286
301
  ### Target Standard
287
302
 
@@ -291,6 +306,9 @@ ___
291
306
  **Required:** true,
292
307
  **Model Dependent:** false
293
308
 
309
+ **Choice Display Names** ["DOE Ref Pre-1980", "DOE Ref 1980-2004", "90.1-2004", "90.1-2007", "90.1-2010", "90.1-2013", "90.1-2016", "90.1-2019", "ComStock DOE Ref Pre-1980", "ComStock DOE Ref 1980-2004", "ComStock 90.1-2004", "ComStock 90.1-2007", "ComStock 90.1-2010", "ComStock 90.1-2013", "NREL ZNE Ready 2017", "DEER Pre-1975", "DEER 1985", "DEER 1996", "DEER 2003", "DEER 2007", "DEER 2011", "DEER 2014", "DEER 2015", "DEER 2017", "DEER 2020", "DEER 2025", "DEER 2030", "DEER 2035", "DEER 2040", "DEER 2045", "DEER 2050", "DEER 2055", "DEER 2060", "DEER 2065", "DEER 2070", "DEER 2075"]
310
+
311
+
294
312
  ### Space Type Ratios String
295
313
  Hash of Space Types with Building and Space Type name as Key and Fraction as value. All space types should come from the selected OpenStudio Standards template. Example entry is (BuildingType | SpaceType => 0.25)
296
314
  **Name:** space_type_hash_string,
@@ -299,6 +317,7 @@ Hash of Space Types with Building and Space Type name as Key and Fraction as val
299
317
  **Required:** true,
300
318
  **Model Dependent:** false
301
319
 
320
+
302
321
  ### Total Building Floor Area
303
322
 
304
323
  **Name:** total_bldg_floor_area,
@@ -307,6 +326,7 @@ Hash of Space Types with Building and Space Type name as Key and Fraction as val
307
326
  **Required:** true,
308
327
  **Model Dependent:** false
309
328
 
329
+
310
330
  ### Single Floor Area
311
331
  Non-zero value will fix the single floor area, overriding a user entry for Total Building Floor Area
312
332
  **Name:** single_floor_area,
@@ -315,6 +335,7 @@ Non-zero value will fix the single floor area, overriding a user entry for Total
315
335
  **Required:** true,
316
336
  **Model Dependent:** false
317
337
 
338
+
318
339
  ### Typical Floor to FLoor Height
319
340
  Selecting a typical floor height of 0 will trigger a smart building type default.
320
341
  **Name:** floor_height,
@@ -323,6 +344,7 @@ Selecting a typical floor height of 0 will trigger a smart building type default
323
344
  **Required:** true,
324
345
  **Model Dependent:** false
325
346
 
347
+
326
348
  ### Enable Custom Height Bar Application
327
349
  This is argument value is only relevant when smart default floor to floor height is used for a building type that has spaces with custom heights.
328
350
  **Name:** custom_height_bar,
@@ -331,6 +353,7 @@ This is argument value is only relevant when smart default floor to floor height
331
353
  **Required:** true,
332
354
  **Model Dependent:** false
333
355
 
356
+
334
357
  ### Number of Stories Above Grade
335
358
 
336
359
  **Name:** num_stories_above_grade,
@@ -339,6 +362,7 @@ This is argument value is only relevant when smart default floor to floor height
339
362
  **Required:** true,
340
363
  **Model Dependent:** false
341
364
 
365
+
342
366
  ### Number of Stories Below Grade
343
367
 
344
368
  **Name:** num_stories_below_grade,
@@ -347,6 +371,7 @@ This is argument value is only relevant when smart default floor to floor height
347
371
  **Required:** true,
348
372
  **Model Dependent:** false
349
373
 
374
+
350
375
  ### Building Rotation
351
376
  Set Building Rotation off of North (positive value is clockwise). Rotation applied after geometry generation. Values greater than +/- 45 will result in aspect ratio and party wall orientations that do not match cardinal directions of the inputs.
352
377
  **Name:** building_rotation,
@@ -355,6 +380,7 @@ Set Building Rotation off of North (positive value is clockwise). Rotation appli
355
380
  **Required:** true,
356
381
  **Model Dependent:** false
357
382
 
383
+
358
384
  ### Ratio of North/South Facade Length Relative to East/West Facade Length
359
385
  Selecting an aspect ratio of 0 will trigger a smart building type default. Aspect ratios less than one are not recommended for sliced bar geometry, instead rotate building and use a greater than 1 aspect ratio.
360
386
  **Name:** ns_to_ew_ratio,
@@ -363,6 +389,7 @@ Selecting an aspect ratio of 0 will trigger a smart building type default. Aspec
363
389
  **Required:** true,
364
390
  **Model Dependent:** false
365
391
 
392
+
366
393
  ### Perimeter Multiplier
367
394
  Selecting a value of 0 will trigger a smart building type default. This represents a multiplier for the building perimeter relative to the perimeter of a rectangular building that meets the area and aspect ratio inputs. Other than the smart default of 0.0 this argument should have a value of 1.0 or higher and is only applicable Multiple Space Types - Individual Stories Sliced division method.
368
395
  **Name:** perim_mult,
@@ -371,6 +398,7 @@ Selecting a value of 0 will trigger a smart building type default. This represen
371
398
  **Required:** true,
372
399
  **Model Dependent:** false
373
400
 
401
+
374
402
  ### Bar Width
375
403
  Non-zero value will fix the building width, overriding user entry for Perimeter Multiplier. NS/EW Aspect Ratio may be limited based on target width.
376
404
  **Name:** bar_width,
@@ -379,6 +407,7 @@ Non-zero value will fix the building width, overriding user entry for Perimeter
379
407
  **Required:** true,
380
408
  **Model Dependent:** false
381
409
 
410
+
382
411
  ### Bar Separation Distance Multiplier
383
412
  Multiplier of separation between bar elements relative to building height.
384
413
  **Name:** bar_sep_dist_mult,
@@ -387,6 +416,7 @@ Multiplier of separation between bar elements relative to building height.
387
416
  **Required:** true,
388
417
  **Model Dependent:** false
389
418
 
419
+
390
420
  ### Window to Wall Ratio
391
421
  Selecting a window to wall ratio of 0 will trigger a smart building type default.
392
422
  **Name:** wwr,
@@ -395,6 +425,7 @@ Selecting a window to wall ratio of 0 will trigger a smart building type default
395
425
  **Required:** true,
396
426
  **Model Dependent:** false
397
427
 
428
+
398
429
  ### Fraction of Exterior Wall Area with Adjacent Structure
399
430
  This will impact how many above grade exterior walls are modeled with adiabatic boundary condition.
400
431
  **Name:** party_wall_fraction,
@@ -403,6 +434,7 @@ This will impact how many above grade exterior walls are modeled with adiabatic
403
434
  **Required:** true,
404
435
  **Model Dependent:** false
405
436
 
437
+
406
438
  ### Number of North facing stories with party wall
407
439
  This will impact how many above grade exterior north walls are modeled with adiabatic boundary condition. If this is less than the number of above grade stoes, upper flor will reamin exterior
408
440
  **Name:** party_wall_stories_north,
@@ -411,6 +443,7 @@ This will impact how many above grade exterior north walls are modeled with adia
411
443
  **Required:** true,
412
444
  **Model Dependent:** false
413
445
 
446
+
414
447
  ### Number of South facing stories with party wall
415
448
  This will impact how many above grade exterior south walls are modeled with adiabatic boundary condition. If this is less than the number of above grade stoes, upper flor will reamin exterior
416
449
  **Name:** party_wall_stories_south,
@@ -419,6 +452,7 @@ This will impact how many above grade exterior south walls are modeled with adia
419
452
  **Required:** true,
420
453
  **Model Dependent:** false
421
454
 
455
+
422
456
  ### Number of East facing stories with party wall
423
457
  This will impact how many above grade exterior east walls are modeled with adiabatic boundary condition. If this is less than the number of above grade stoes, upper flor will reamin exterior
424
458
  **Name:** party_wall_stories_east,
@@ -427,6 +461,7 @@ This will impact how many above grade exterior east walls are modeled with adiab
427
461
  **Required:** true,
428
462
  **Model Dependent:** false
429
463
 
464
+
430
465
  ### Number of West facing stories with party wall
431
466
  This will impact how many above grade exterior west walls are modeled with adiabatic boundary condition. If this is less than the number of above grade stoes, upper flor will reamin exterior
432
467
  **Name:** party_wall_stories_west,
@@ -435,6 +470,7 @@ This will impact how many above grade exterior west walls are modeled with adiab
435
470
  **Required:** true,
436
471
  **Model Dependent:** false
437
472
 
473
+
438
474
  ### Is the Bottom Story Exposed to Ground
439
475
  This should be true unless you are modeling a partial building which doesn't include the lowest story. The bottom story floor will have an adiabatic boundary condition when false.
440
476
  **Name:** bottom_story_ground_exposed_floor,
@@ -443,6 +479,7 @@ This should be true unless you are modeling a partial building which doesn't inc
443
479
  **Required:** true,
444
480
  **Model Dependent:** false
445
481
 
482
+
446
483
  ### Is the Top Story an Exterior Roof
447
484
  This should be true unless you are modeling a partial building which doesn't include the highest story. The top story ceiling will have an adiabatic boundary condition when false.
448
485
  **Name:** top_story_exterior_exposed_roof,
@@ -451,6 +488,7 @@ This should be true unless you are modeling a partial building which doesn't inc
451
488
  **Required:** true,
452
489
  **Model Dependent:** false
453
490
 
491
+
454
492
  ### Calculation Method for Story Multiplier
455
493
 
456
494
  **Name:** story_multiplier,
@@ -459,6 +497,9 @@ This should be true unless you are modeling a partial building which doesn't inc
459
497
  **Required:** true,
460
498
  **Model Dependent:** false
461
499
 
500
+ **Choice Display Names** ["None", "Basements Ground Mid Top"]
501
+
502
+
462
503
  ### Make Mid Story Floor Surfaces Adiabatic
463
504
  If set to true, this will skip surface intersection and make mid story floors and celings adiabatic, not just at multiplied gaps.
464
505
  **Name:** make_mid_story_surfaces_adiabatic,
@@ -467,6 +508,7 @@ If set to true, this will skip surface intersection and make mid story floors an
467
508
  **Required:** true,
468
509
  **Model Dependent:** false
469
510
 
511
+
470
512
  ### Division Method for Bar Space Types
471
513
  To use perimeter multiplier greater than 1 selected Multiple Space Types - Individual Stories Sliced.
472
514
  **Name:** bar_division_method,
@@ -475,6 +517,9 @@ To use perimeter multiplier greater than 1 selected Multiple Space Types - Indiv
475
517
  **Required:** true,
476
518
  **Model Dependent:** false
477
519
 
520
+ **Choice Display Names** ["Multiple Space Types - Simple Sliced", "Multiple Space Types - Individual Stories Sliced", "Single Space Type - Core and Perimeter"]
521
+
522
+
478
523
  ### Double Loaded Corridor
479
524
  Add double loaded corridor for building types that have a defined circulation space type, to the selected space types.
480
525
  **Name:** double_loaded_corridor,
@@ -483,6 +528,9 @@ Add double loaded corridor for building types that have a defined circulation sp
483
528
  **Required:** true,
484
529
  **Model Dependent:** false
485
530
 
531
+ **Choice Display Names** ["None", "Primary Space Type"]
532
+
533
+
486
534
  ### Choose Space Type Sorting Method
487
535
 
488
536
  **Name:** space_type_sort_logic,
@@ -491,6 +539,9 @@ Add double loaded corridor for building types that have a defined circulation sp
491
539
  **Required:** true,
492
540
  **Model Dependent:** false
493
541
 
542
+ **Choice Display Names** ["Size", "Building Type > Size"]
543
+
544
+
494
545
  ### Use Upstream Argument Values
495
546
  When true this will look for arguments or registerValues in upstream measures that match arguments from this measure, and will use the value from the upstream measure in place of what is entered for this measure.
496
547
  **Name:** use_upstream_args,
@@ -502,3 +553,4 @@ When true this will look for arguments or registerValues in upstream measures th
502
553
 
503
554
 
504
555
 
556
+