openstudio-extension 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +29 -26
  3. data/.rspec +3 -3
  4. data/.rubocop.yml +10 -9
  5. data/CHANGELOG.md +16 -0
  6. data/Gemfile +6 -6
  7. data/Jenkinsfile +10 -10
  8. data/README.md +251 -250
  9. data/Rakefile +119 -119
  10. data/bin/console +14 -14
  11. data/bin/setup +8 -8
  12. data/doc_templates/LICENSE.md +26 -26
  13. data/doc_templates/README.md.erb +41 -41
  14. data/doc_templates/copyright_erb.txt +35 -35
  15. data/doc_templates/copyright_js.txt +3 -3
  16. data/doc_templates/copyright_ruby.txt +33 -33
  17. data/init_templates/README.md +37 -37
  18. data/init_templates/gemspec.txt +32 -32
  19. data/init_templates/openstudio_module.rb +50 -50
  20. data/init_templates/spec.rb +47 -47
  21. data/init_templates/spec_helper.rb +49 -49
  22. data/init_templates/template_gemfile.txt +17 -17
  23. data/init_templates/template_rakefile.txt +15 -15
  24. data/init_templates/version.rb +40 -40
  25. data/lib/files/openstudio-extension-gem-test.ddy +536 -536
  26. data/lib/files/openstudio-extension-gem-test.epw +8768 -8768
  27. data/lib/files/openstudio-extension-gem-test.stat +554 -554
  28. data/lib/measures/openstudio_extension_test_measure/LICENSE.md +26 -26
  29. data/lib/measures/openstudio_extension_test_measure/README.md +26 -26
  30. data/lib/measures/openstudio_extension_test_measure/README.md.erb +41 -41
  31. data/lib/measures/openstudio_extension_test_measure/measure.rb +72 -72
  32. data/lib/measures/openstudio_extension_test_measure/measure.xml +83 -83
  33. data/lib/measures/openstudio_extension_test_measure/resources/os_lib_helper_methods.rb +399 -399
  34. data/lib/measures/openstudio_extension_test_measure/tests/{OpenStudioExtensionTestMeasure_Test.rb → openstudio_extension_test_measure_test.rb} +74 -75
  35. data/lib/openstudio-extension.rb +1 -1
  36. data/lib/openstudio/extension.rb +234 -229
  37. data/lib/openstudio/extension/core/CreateResults.rb +886 -886
  38. data/lib/openstudio/extension/core/check_air_sys_temps.rb +190 -190
  39. data/lib/openstudio/extension/core/check_calibration.rb +155 -155
  40. data/lib/openstudio/extension/core/check_cond_zns.rb +84 -84
  41. data/lib/openstudio/extension/core/check_domestic_hot_water.rb +334 -334
  42. data/lib/openstudio/extension/core/check_envelope_conductance.rb +453 -453
  43. data/lib/openstudio/extension/core/check_eui_by_end_use.rb +162 -162
  44. data/lib/openstudio/extension/core/check_eui_reasonableness.rb +135 -135
  45. data/lib/openstudio/extension/core/check_fan_pwr.rb +98 -98
  46. data/lib/openstudio/extension/core/check_internal_loads.rb +393 -393
  47. data/lib/openstudio/extension/core/check_mech_sys_capacity.rb +226 -226
  48. data/lib/openstudio/extension/core/check_mech_sys_efficiency.rb +326 -326
  49. data/lib/openstudio/extension/core/check_mech_sys_part_load_eff.rb +464 -464
  50. data/lib/openstudio/extension/core/check_mech_sys_type.rb +139 -139
  51. data/lib/openstudio/extension/core/check_part_loads.rb +451 -451
  52. data/lib/openstudio/extension/core/check_placeholder.rb +75 -75
  53. data/lib/openstudio/extension/core/check_plant_cap.rb +123 -123
  54. data/lib/openstudio/extension/core/check_plant_temps.rb +159 -159
  55. data/lib/openstudio/extension/core/check_plenum_loads.rb +87 -87
  56. data/lib/openstudio/extension/core/check_pump_pwr.rb +108 -108
  57. data/lib/openstudio/extension/core/check_sch_coord.rb +241 -241
  58. data/lib/openstudio/extension/core/check_schedules.rb +311 -311
  59. data/lib/openstudio/extension/core/check_simultaneous_heating_and_cooling.rb +158 -158
  60. data/lib/openstudio/extension/core/check_supply_air_and_thermostat_temp_difference.rb +148 -148
  61. data/lib/openstudio/extension/core/check_weather_files.rb +132 -132
  62. data/lib/openstudio/extension/core/deer_vintages.rb +311 -311
  63. data/lib/openstudio/extension/core/os_lib_aedg_measures.rb +491 -491
  64. data/lib/openstudio/extension/core/os_lib_cofee.rb +258 -258
  65. data/lib/openstudio/extension/core/os_lib_constructions.rb +378 -378
  66. data/lib/openstudio/extension/core/os_lib_geometry.rb +1022 -1022
  67. data/lib/openstudio/extension/core/os_lib_helper_methods.rb +399 -399
  68. data/lib/openstudio/extension/core/os_lib_hvac.rb +2171 -2171
  69. data/lib/openstudio/extension/core/os_lib_lighting_and_equipment.rb +214 -214
  70. data/lib/openstudio/extension/core/os_lib_model_generation.rb +817 -817
  71. data/lib/openstudio/extension/core/os_lib_model_simplification.rb +1049 -1049
  72. data/lib/openstudio/extension/core/os_lib_outdoorair_and_infiltration.rb +165 -165
  73. data/lib/openstudio/extension/core/os_lib_reporting.rb +4651 -4651
  74. data/lib/openstudio/extension/core/os_lib_reporting_qaqc.rb +200 -200
  75. data/lib/openstudio/extension/core/os_lib_schedules.rb +963 -963
  76. data/lib/openstudio/extension/rake_task.rb +159 -149
  77. data/lib/openstudio/extension/runner.rb +667 -644
  78. data/lib/openstudio/extension/runner_config.rb +114 -0
  79. data/lib/openstudio/extension/version.rb +40 -40
  80. data/openstudio-extension.gemspec +34 -33
  81. metadata +39 -37
@@ -1,491 +1,491 @@
1
- # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2019, Alliance for Sustainable Energy, LLC.
3
- # All rights reserved.
4
- # Redistribution and use in source and binary forms, with or without
5
- # modification, are permitted provided that the following conditions are met:
6
- #
7
- # (1) Redistributions of source code must retain the above copyright notice,
8
- # this list of conditions and the following disclaimer.
9
- #
10
- # (2) Redistributions in binary form must reproduce the above copyright notice,
11
- # this list of conditions and the following disclaimer in the documentation
12
- # and/or other materials provided with the distribution.
13
- #
14
- # (3) Neither the name of the copyright holder nor the names of any contributors
15
- # may be used to endorse or promote products derived from this software without
16
- # specific prior written permission from the respective party.
17
- #
18
- # (4) Other than as required in clauses (1) and (2), distributions in any form
19
- # of modifications or other derivative works may not use the "OpenStudio"
20
- # trademark, "OS", "os", or any other confusingly similar designation without
21
- # specific prior written permission from Alliance for Sustainable Energy, LLC.
22
- #
23
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
24
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
25
- # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
27
- # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
28
- # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29
- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
30
- # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32
- # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33
- # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
- # *******************************************************************************
35
-
36
- module OsLib_AedgMeasures
37
- def self.getClimateZoneNumber(model, runner = nil)
38
- # get ashrae climate zone from model
39
- ashraeClimateZone = ''
40
- climateZones = model.getClimateZones
41
- climateZones.climateZones.each do |climateZone|
42
- if climateZone.institution == 'ASHRAE'
43
- ashraeClimateZone = climateZone.value
44
- if !runner.nil?
45
- # runner.registerInfo("Using ASHRAE Climate zone #{ashraeClimateZone} for AEDG recommendations.")
46
- end
47
- end
48
- end
49
-
50
- if ashraeClimateZone == '' # should this be not applicable or error?
51
- if !runner.nil?
52
- runner.registerError("Please assign an ASHRAE Climate Zone to your model using the site tab in the OpenStudio application. The measure can't make AEDG recommendations without this information.")
53
- end
54
- return false # note - for this to work need to check for false in measure.rb and add return false there as well.
55
- else
56
- climateZoneNumber = ashraeClimateZone.split(//).first
57
- end
58
-
59
- # expected climate zone number should be 1 through 8
60
- if !['1', '2', '3', '4', '5', '6', '7', '8'].include? climateZoneNumber
61
- runner.registerWarning('ASHRAE climate zone number is not within expected range of 1 to 8.')
62
- # return false # note - for this to work need to check for false in measure.rb and add return false there as well.
63
- end
64
-
65
- result = climateZoneNumber
66
- # don't add return false here, need to catch errors above
67
- end
68
-
69
- def self.getLongHowToTips(guide, aedgTips, runner)
70
- # get tips
71
- if guide == 'K12'
72
- hash = OsLib_AedgMeasures.getK12Tips
73
- elsif guide == 'SmMdOff'
74
- hash = OsLib_AedgMeasures.getSmMdOffTips
75
- else
76
- runner.registerError("#{guide} is an invalid value. Can't generate how to tip messages.")
77
- return false # note - for this to work need to check for false in measure.rb and add return false there as well.
78
- # this should only happen if measure writer passes bad values to getLongHowToTips
79
- end
80
-
81
- # array for info string
82
- string = []
83
-
84
- # create info messages
85
- aedgTips.each do |aedgtip|
86
- if hash[aedgtip] != hash[0]
87
- string << hash[aedgtip]
88
- else
89
- runner.registerWarning("#{aedgtip} is an invalid key for tip hash. Can't generate tip.")
90
- end
91
- end
92
-
93
- # see if expected number of messages created
94
- if aedgTips.size != string.size
95
- runner.registerWarning('One more more messages were not created.')
96
- end
97
-
98
- result = "#{hash[0]}: #{string.join(', ')}." # hash[0] bad key will return default value
99
- # don't add return false here, need to catch errors above
100
- end
101
-
102
- # hash of how to tips for K-12 school AEDG
103
- def self.getK12Tips
104
- # envelope tips
105
- @aedgK12HowToTipHash = Hash.new('K-12 Schools AEDG How to Implement Recommendations')
106
- @aedgK12HowToTipHash['EN01'] = 'EN1 Cool Roofs'
107
- @aedgK12HowToTipHash['EN02'] = 'EN2 Roofs-Insulation Entirely above Deck'
108
- @aedgK12HowToTipHash['EN03'] = 'EN3 Roofs-Attics, and Other Roofs'
109
- @aedgK12HowToTipHash['EN04'] = 'EN4 Roofs-Metal Buildings'
110
- @aedgK12HowToTipHash['EN05'] = 'EN5 Walls-Mass'
111
- @aedgK12HowToTipHash['EN06'] = 'EN6 Walls-Steel Framed'
112
- @aedgK12HowToTipHash['EN07'] = 'EN7 Walls-Wood Frame and Other'
113
- @aedgK12HowToTipHash['EN08'] = 'EN8 Walls-Metal Building'
114
- @aedgK12HowToTipHash['EN09'] = 'EN9 Below-Grade Walls'
115
- @aedgK12HowToTipHash['EN10'] = 'EN10 Floors-Mass'
116
- @aedgK12HowToTipHash['EN11'] = 'EN11 Floors-Metal Joist or Wood Joist/Wood Frame'
117
- @aedgK12HowToTipHash['EN12'] = 'EN12 Slab-on-Grade Floors-Unheated'
118
- @aedgK12HowToTipHash['EN13'] = 'EN13 Slab-on-Grade Floors-Heated'
119
- @aedgK12HowToTipHash['EN14'] = 'EN14 Slab Edge Insulation'
120
- @aedgK12HowToTipHash['EN15'] = 'EN15 Doors-Opaque, Swinging'
121
- @aedgK12HowToTipHash['EN16'] = 'EN16 Doors-Opaque, Roll-Up, or Sliding'
122
- @aedgK12HowToTipHash['EN17'] = 'EN17 Air Infiltration Control'
123
- @aedgK12HowToTipHash['EN18'] = 'EN18 Vestibules'
124
- @aedgK12HowToTipHash['EN19'] = 'EN19 Alternative Constructions'
125
- @aedgK12HowToTipHash['EN20'] = 'EN20 Truss Heel Heights'
126
- @aedgK12HowToTipHash['EN21'] = 'EN21 Moisture Control'
127
- @aedgK12HowToTipHash['EN22'] = 'EN22 Thermal Bridging-Opaque Components'
128
- @aedgK12HowToTipHash['EN23'] = 'EN23 Thermal Bridging-Fenestration'
129
- @aedgK12HowToTipHash['EN24'] = 'EN24 Fenestration Descriptions'
130
- @aedgK12HowToTipHash['EN25'] = 'EN25 View Window-to Floor Area Ratio (VFR)'
131
- @aedgK12HowToTipHash['EN26'] = 'EN26 Unwanted Solar Heat Gain Is Most Effectively Controlled on the Outside of the Building'
132
- @aedgK12HowToTipHash['EN27'] = 'EN27 Operable versus Fixed Windows'
133
- @aedgK12HowToTipHash['EN28'] = 'EN28 Building Form and Window Orientation'
134
- @aedgK12HowToTipHash['EN29'] = 'EN29 Glazing'
135
- @aedgK12HowToTipHash['EN30'] = 'EN30 Obstructions and Planting'
136
- @aedgK12HowToTipHash['EN31'] = 'EN31 Window Orientation'
137
- @aedgK12HowToTipHash['EN32'] = 'EN32 Passive Solar'
138
- @aedgK12HowToTipHash['EN33'] = 'EN33 Glazing'
139
-
140
- # daylighting tips
141
- @aedgK12HowToTipHash['DL01'] = 'DL1 General Principles'
142
- @aedgK12HowToTipHash['DL02'] = 'DL2 Consider Daylighting Early in the Design Process'
143
- @aedgK12HowToTipHash['DL03'] = 'DL3 Space Types'
144
- @aedgK12HowToTipHash['DL04'] = 'DL4 How to Select Daylighting Strategies'
145
- @aedgK12HowToTipHash['DL05'] = 'DL5 Recommended Daylighting Fenestration-to-Floor Area Ratios'
146
- @aedgK12HowToTipHash['DL06'] = 'DL6 View Windows Separate from Daylighting Strategy'
147
- @aedgK12HowToTipHash['DL07'] = 'DL7 Lighting Design Criteria'
148
- @aedgK12HowToTipHash['DL08'] = 'DL8 Use Daylighting Analysis Tools to Optimize Design'
149
- @aedgK12HowToTipHash['DL09'] = 'DL9 Building Orientation'
150
- @aedgK12HowToTipHash['DL10'] = 'DL10 Ceiling Height'
151
- @aedgK12HowToTipHash['DL11'] = 'DL11 Outdoor Surface Reflectance'
152
- @aedgK12HowToTipHash['DL12'] = 'DL12 Eliminate Direct Beam Radiation'
153
- @aedgK12HowToTipHash['DL13'] = 'DL13 Daylighting Control for Audio-Visual (AV) Projection Activities'
154
- @aedgK12HowToTipHash['DL14'] = 'DL14 Interior Finishes for Daylighting'
155
- @aedgK12HowToTipHash['DL15'] = 'DL15 Calibration and Commissioning'
156
- @aedgK12HowToTipHash['DL16'] = 'DL16 Dimming Controls'
157
- @aedgK12HowToTipHash['DL17'] = 'DL17 Photosensor Placement and Lighting Layout'
158
- @aedgK12HowToTipHash['DL18'] = 'DL18 Photosensor Specifications'
159
- @aedgK12HowToTipHash['DL19'] = 'DL19 Select Compatible Light Fixtures'
160
- @aedgK12HowToTipHash['DL20'] = 'DL20 Sidelighting Patterns'
161
- @aedgK12HowToTipHash['DL21'] = 'DL21 South-Facing Classrooms-Configuration of Apertures'
162
- @aedgK12HowToTipHash['DL22'] = 'DL22 South-Facing Classrooms-Glazing Area and Fenestration Type'
163
- @aedgK12HowToTipHash['DL23'] = 'DL23 View Glazing and VTs'
164
- @aedgK12HowToTipHash['DL24'] = 'DL24 South-Facing Classrooms-Make Light Shelf Durable and Reflective'
165
- @aedgK12HowToTipHash['DL25'] = 'DL25 North-Facing Classroom-Configuration of Apertures'
166
- @aedgK12HowToTipHash['DL26'] = 'DL26 North-Facing Classroom-Glazing Area and Fenestration Type'
167
- @aedgK12HowToTipHash['DL27'] = 'DL27 South-and North-Facing Classrooms-Sloped Ceilings'
168
- @aedgK12HowToTipHash['DL28'] = 'DL28 South-and North-Facing Classrooms-Recognize the Limits of Side Daylighting'
169
- @aedgK12HowToTipHash['DL29'] = 'DL29 Classroom Toplighting Pattern'
170
- @aedgK12HowToTipHash['DL30'] = 'DL30 Sizing the Roof Monitors'
171
- @aedgK12HowToTipHash['DL31'] = 'DL31 Overhang for Roof Monitor'
172
- @aedgK12HowToTipHash['DL32'] = 'DL32 Use Light-Colored Roofing in Front of Monitors'
173
- @aedgK12HowToTipHash['DL33'] = 'DL33 Use Baffles to Block Direct Beam Radiation and Diffuse Light'
174
- @aedgK12HowToTipHash['DL34'] = 'DL34 Minimize Contrast at Well-Ceiling Intersection'
175
- @aedgK12HowToTipHash['DL35'] = 'DL35 Address the Monitor Design'
176
- @aedgK12HowToTipHash['DL36'] = 'DL36 Let the Heat Stratify'
177
- @aedgK12HowToTipHash['DL37'] = 'DL37 Minimize the Depth of the Ceiling Cavity'
178
- @aedgK12HowToTipHash['DL38'] = 'DL38 Classroom Sidelighting Plus Toplighting Pattern'
179
- @aedgK12HowToTipHash['DL39'] = 'DL39 Gym Toplighting Overview'
180
- @aedgK12HowToTipHash['DL40'] = 'DL40 Gym Toplighting Sizing'
181
- @aedgK12HowToTipHash['DL41'] = 'DL41 Gym Toplighting Using South-Facing Roof Monitors'
182
- @aedgK12HowToTipHash['DL42'] = 'DL42 Gym Toplighting in Combination with North-and South-Facing Sidelighting'
183
-
184
- # electric lighting tips
185
- @aedgK12HowToTipHash['EL01'] = 'EL1 Light-Colored Interior Finishes'
186
- @aedgK12HowToTipHash['EL02'] = 'EL2 Color Rendering Index'
187
- @aedgK12HowToTipHash['EL03'] = 'EL3 Color Temperature'
188
- @aedgK12HowToTipHash['EL04'] = 'EL4 Linear Fluorescent Lamps and Ballasts'
189
- @aedgK12HowToTipHash['EL05'] = 'EL5 Compact Fluorescent'
190
- @aedgK12HowToTipHash['EL06'] = 'EL6 Metal Halide'
191
- @aedgK12HowToTipHash['EL07'] = 'EL7 Light-Emitting Diode (LED) Lighting'
192
- @aedgK12HowToTipHash['EL08'] = 'EL8 Occupancy Sensors'
193
- @aedgK12HowToTipHash['EL09'] = 'EL9 Multilevel Switching or Dimming'
194
- @aedgK12HowToTipHash['EL10'] = 'EL10 Exit Signs'
195
- @aedgK12HowToTipHash['EL11'] = 'EL11 Circuiting and Switching'
196
- @aedgK12HowToTipHash['EL12'] = 'EL12 Electrical Lighting Design for Schools'
197
- @aedgK12HowToTipHash['EL13'] = 'EL13 Classroom Lighting'
198
- @aedgK12HowToTipHash['EL14'] = 'EL14 Gym Lighting'
199
- @aedgK12HowToTipHash['EL15'] = 'EL15 Lighting for a Multipurpose Room'
200
- @aedgK12HowToTipHash['EL16'] = 'EL16 Lighting for a Library or Media Center'
201
- @aedgK12HowToTipHash['EL17'] = 'EL17 Corridor Lighting'
202
- @aedgK12HowToTipHash['EL18'] = 'EL18 Lighting for Offices and Teacher Support Rooms'
203
- @aedgK12HowToTipHash['EL19'] = 'EL19 Lighting for Locker Areas and Restrooms'
204
- @aedgK12HowToTipHash['EL20'] = 'EL20 Twenty-Four Hour Lighting'
205
- @aedgK12HowToTipHash['EL21'] = 'EL21 Exterior Lighting Power-Parking Lots and Drives'
206
- @aedgK12HowToTipHash['EL22'] = 'EL22 Exterior Lighting Power-Walkways'
207
- @aedgK12HowToTipHash['EL23'] = 'EL23 Decorative Façade Lighting'
208
- @aedgK12HowToTipHash['EL24'] = 'EL24 Sources'
209
- @aedgK12HowToTipHash['EL25'] = 'EL25 Controls'
210
-
211
- # plug load tips
212
- @aedgK12HowToTipHash['PL01'] = 'PL1 General Guidance'
213
- @aedgK12HowToTipHash['PL02'] = 'PL2 Computer (Information Technology) Equipment'
214
- @aedgK12HowToTipHash['PL03'] = 'PL3 Staff and Occupant Equipment Control'
215
- @aedgK12HowToTipHash['PL04'] = 'PL4 Phantom/Parasitic Loads'
216
- @aedgK12HowToTipHash['PL05'] = 'PL5 ENERGY STAR Appliances/Equipment'
217
- @aedgK12HowToTipHash['PL06'] = 'PL6 Electrical Distribution System'
218
-
219
- # kitchen tips
220
- @aedgK12HowToTipHash['KE01'] = 'KE1 General Guidance'
221
- @aedgK12HowToTipHash['KE02'] = 'KE2 Energy-Efficient Kitchen Equipment'
222
- @aedgK12HowToTipHash['KE03'] = 'KE3 Exhaust and Ventilation Energy Use'
223
- @aedgK12HowToTipHash['KE04'] = 'KE4 Minimize Hot-Water Use'
224
- @aedgK12HowToTipHash['KE05'] = 'KE5 High-Efficiency Walk-in Refrigeration Systems'
225
- @aedgK12HowToTipHash['KE06'] = 'KE6 Position Hooded Appliances to Achieve Lower Exhaust Rates'
226
- @aedgK12HowToTipHash['KE07'] = 'KE7 Operating Considerations'
227
-
228
- # service water heating tips
229
- @aedgK12HowToTipHash['WH01'] = 'WH1 Service Water -Heating Types'
230
- @aedgK12HowToTipHash['WH02'] = 'WH2 System Descriptions'
231
- @aedgK12HowToTipHash['WH03'] = 'WH3 Sizing'
232
- @aedgK12HowToTipHash['WH04'] = 'WH4 Equipment Efficiency'
233
- @aedgK12HowToTipHash['WH05'] = 'WH5 Location'
234
- @aedgK12HowToTipHash['WH06'] = 'WH6 Pipe Insulation'
235
- @aedgK12HowToTipHash['WH07'] = 'WH7 Solar Hot-Water Systems'
236
-
237
- # hvac tips
238
- @aedgK12HowToTipHash['HV01'] = 'HV1 Ground-Source Heat Pump System'
239
- @aedgK12HowToTipHash['HV02'] = 'HV2 Fan-Coil System'
240
- @aedgK12HowToTipHash['HV03'] = 'HV3 Multiple-Zone, Variable-Air-Volume (VAV) Air Handlers'
241
- @aedgK12HowToTipHash['HV04'] = 'HV4 Dedicated Outdoor Air System (DOAS)'
242
- @aedgK12HowToTipHash['HV05'] = 'HV5 Exhaust Air Energy Recovery'
243
- @aedgK12HowToTipHash['HV06'] = 'HV6 Chilled-Water System'
244
- @aedgK12HowToTipHash['HV07'] = 'HV7 Water Heating System'
245
- @aedgK12HowToTipHash['HV08'] = 'HV8 Condenser-Water System for GSHPs'
246
- @aedgK12HowToTipHash['HV09'] = 'HV9 Cooling and Heating Load Calculations'
247
- @aedgK12HowToTipHash['HV10'] = 'HV10 Ventilation Air'
248
- @aedgK12HowToTipHash['HV11'] = 'HV11 Cooling and Heating Equipment Efficiencies'
249
- @aedgK12HowToTipHash['HV12'] = 'HV12 Fan Power and Motor Efficiencies'
250
- @aedgK12HowToTipHash['HV13'] = 'HV13 Part-Load Dehumidification'
251
- @aedgK12HowToTipHash['HV14'] = 'HV14 Economizer'
252
- @aedgK12HowToTipHash['HV15'] = 'HV15 Demand-Controlled Ventilation'
253
- @aedgK12HowToTipHash['HV16'] = 'HV16 System-Level Control Strategies'
254
- @aedgK12HowToTipHash['HV17'] = 'HV17 Thermal Zoning'
255
- @aedgK12HowToTipHash['HV18'] = 'HV18 Ductwork Design and Construction'
256
- @aedgK12HowToTipHash['HV19'] = 'HV19 Duct Insulation'
257
- @aedgK12HowToTipHash['HV20'] = 'HV20 Duct Sealing and Leakage Testing'
258
- @aedgK12HowToTipHash['HV21'] = 'HV21 Exhaust Air Systems'
259
- @aedgK12HowToTipHash['HV22'] = 'HV22 Testing, Adjusting, and Balancing'
260
- @aedgK12HowToTipHash['HV23'] = 'HV23 Air Cleaning'
261
- @aedgK12HowToTipHash['HV24'] = 'HV24 Relief versus Return Fans'
262
- @aedgK12HowToTipHash['HV25'] = 'HV25 Zone Temperature Control'
263
- @aedgK12HowToTipHash['HV26'] = 'HV26 Heating Sources'
264
- @aedgK12HowToTipHash['HV27'] = 'HV27 Noise Control'
265
- @aedgK12HowToTipHash['HV28'] = 'HV28 Proper Maintenance'
266
- # bonus hvac tips
267
- @aedgK12HowToTipHash['HV29'] = 'HV29 Natural Ventilation and Naturally Conditioned Spaces'
268
- @aedgK12HowToTipHash['HV30'] = 'HV30 Thermal Storage'
269
- @aedgK12HowToTipHash['HV31'] = 'HV31 Thermal Mass'
270
- @aedgK12HowToTipHash['HV32'] = 'HV32 Thermal Displacement Ventilation'
271
- @aedgK12HowToTipHash['HV33'] = 'HV33 ASHRAE Standard 62.1 IAQ Procedure'
272
- @aedgK12HowToTipHash['HV34'] = 'HV34 Evaporative Cooling'
273
-
274
- # commissioning tips
275
- @aedgK12HowToTipHash['QA01'] = 'QA1 Design and Construction Team'
276
- @aedgK12HowToTipHash['QA02'] = 'QA2 Owner’s Project Requirements and Basis of Design'
277
- @aedgK12HowToTipHash['QA03'] = 'QA3 Selection of Quality Assurance Provider'
278
- @aedgK12HowToTipHash['QA04'] = 'QA4 Design and Construction Schedule'
279
- @aedgK12HowToTipHash['QA05'] = 'QA5 Design Review'
280
- @aedgK12HowToTipHash['QA06'] = 'QA6 Defining Quality Assurance at Pre-Bid'
281
- @aedgK12HowToTipHash['QA07'] = 'QA7 Verifying Building Envelope Construction'
282
- @aedgK12HowToTipHash['QA08'] = 'QA8 Verifying Lighting Construction'
283
- @aedgK12HowToTipHash['QA09'] = 'QA9 Verifying Electrical and HVAC Systems Construction'
284
- @aedgK12HowToTipHash['QA10'] = 'QA10 Functional Performance Testing'
285
- @aedgK12HowToTipHash['QA11'] = 'QA11 Substantial Completion'
286
- @aedgK12HowToTipHash['QA12'] = 'QA12 Final Acceptance'
287
- @aedgK12HowToTipHash['QA13'] = 'QA13 Establish Building Operation and Maintenance Program'
288
- @aedgK12HowToTipHash['QA14'] = 'QA14 Monitor Post-Occupancy Performance'
289
- @aedgK12HowToTipHash['QA15'] = 'QA15 M&V Electrical Panel Guidance'
290
- @aedgK12HowToTipHash['QA16'] = 'QA16 M&V Data Management and Access'
291
- @aedgK12HowToTipHash['QA17'] = 'QA17 M&V Benchmarking'
292
- @aedgK12HowToTipHash['QA18'] = 'QA18 The Building as a Teaching Tool'
293
-
294
- # renewable energy tips
295
- @aedgK12HowToTipHash['RE01'] = 'RE1 Photovoltaic (PV) Systems'
296
- @aedgK12HowToTipHash['RE02'] = 'RE2 Solar Hot Water Systems'
297
- @aedgK12HowToTipHash['RE03'] = 'RE3 Wind Turbine Power'
298
-
299
- result = @aedgK12HowToTipHash
300
- return result
301
- end
302
-
303
- # hash of how to tips for small to medium office buildings AEDG
304
- def self.getSmMdOffTips
305
- # envelope tips
306
- aedgSmMdOffHowToTipHash = Hash.new('Small and Medium Offices AEDG How to Implement Recommendations')
307
- aedgSmMdOffHowToTipHash['EN01'] = 'EN1 Cool Roofs'
308
- aedgSmMdOffHowToTipHash['EN02'] = 'EN2 Roofs-Insulation Entirely above Deck'
309
- aedgSmMdOffHowToTipHash['EN03'] = 'EN3 Roofs-Attics, and Other Roofs'
310
- aedgSmMdOffHowToTipHash['EN04'] = 'EN4 Roofs-Metal Buildings'
311
- aedgSmMdOffHowToTipHash['EN05'] = 'EN5 Walls-Mass'
312
- aedgSmMdOffHowToTipHash['EN06'] = 'EN6 Walls-Steel Framed'
313
- aedgSmMdOffHowToTipHash['EN07'] = 'EN7 Walls-Wood Frame and Other'
314
- aedgSmMdOffHowToTipHash['EN08'] = 'EN8 Walls-Metal Building'
315
- aedgSmMdOffHowToTipHash['EN09'] = 'EN9 Walls-Below-Grade'
316
- aedgSmMdOffHowToTipHash['EN10'] = 'EN10 Floors-Mass'
317
- aedgSmMdOffHowToTipHash['EN11'] = 'EN11 Floors-Metal Joist or Wood Joist/Wood Frame'
318
- aedgSmMdOffHowToTipHash['EN12'] = 'EN12 Slab-on-Grade Floors-Unheated'
319
- aedgSmMdOffHowToTipHash['EN13'] = 'EN13 Slab-on-Grade Floors-Heated'
320
- aedgSmMdOffHowToTipHash['EN14'] = 'EN14 Slab Edge Insulation'
321
- aedgSmMdOffHowToTipHash['EN15'] = 'EN15 Doors-Opaque, Swinging'
322
- aedgSmMdOffHowToTipHash['EN16'] = 'EN16 Doors-Opaque, Roll-Up, or Sliding'
323
- aedgSmMdOffHowToTipHash['EN17'] = 'EN17 Air Infiltration Control'
324
- aedgSmMdOffHowToTipHash['EN18'] = 'EN18 Vestibules'
325
- aedgSmMdOffHowToTipHash['EN19'] = 'EN19 Alternative Constructions'
326
- aedgSmMdOffHowToTipHash['EN20'] = 'EN20 Truss Heel Heights'
327
- aedgSmMdOffHowToTipHash['EN21'] = 'EN21 Moisture Control'
328
- aedgSmMdOffHowToTipHash['EN22'] = 'EN22 Thermal Bridging-Opaque Components'
329
- aedgSmMdOffHowToTipHash['EN23'] = 'EN23 Thermal Bridging-Fenestration'
330
- aedgSmMdOffHowToTipHash['EN24'] = 'EN24 Vertical Fenestration Descriptions'
331
- aedgSmMdOffHowToTipHash['EN25'] = 'EN25 Window-to-Wall Ratio (WWR)'
332
- aedgSmMdOffHowToTipHash['EN26'] = 'EN26 Unwanted Solar Heat Gain Is Most Effectively Controlled on the Outside of the Building'
333
- aedgSmMdOffHowToTipHash['EN27'] = 'EN27 Operable versus Fixed Windows'
334
- aedgSmMdOffHowToTipHash['EN28'] = 'EN28 Building Form and Window Orientation'
335
- aedgSmMdOffHowToTipHash['EN29'] = 'EN29 Glazing'
336
- aedgSmMdOffHowToTipHash['EN30'] = 'EN30 Obstructions and Planting'
337
- aedgSmMdOffHowToTipHash['EN31'] = 'EN31 Window Orientation'
338
- aedgSmMdOffHowToTipHash['EN32'] = 'EN32 Passive Solar'
339
- aedgSmMdOffHowToTipHash['EN33'] = 'EN33 Glazing'
340
- aedgSmMdOffHowToTipHash['EN34'] = 'EN34 Visible Transmittance (VT)'
341
- aedgSmMdOffHowToTipHash['EN35'] = 'EN35 Separating Views and Daylight'
342
- aedgSmMdOffHowToTipHash['EN36'] = 'EN36 Color-Neutral Glazing'
343
- aedgSmMdOffHowToTipHash['EN37'] = 'EN37 Reflectivity of Glass'
344
- aedgSmMdOffHowToTipHash['EN38'] = 'EN38 Light-to-Solar-Gain Ratio'
345
- aedgSmMdOffHowToTipHash['EN39'] = 'EN39 High Ceilings'
346
- aedgSmMdOffHowToTipHash['EN40'] = 'EN40 Light Shelves'
347
-
348
- # daylighting tips
349
- aedgSmMdOffHowToTipHash['DL01'] = 'DL1 Daylighting Early in the Design Process'
350
- aedgSmMdOffHowToTipHash['DL02'] = 'DL2 Daylighting Analysis Tools to Optimize Design'
351
- aedgSmMdOffHowToTipHash['DL03'] = 'DL3 Space Types, Layout, and Daylight'
352
- aedgSmMdOffHowToTipHash['DL04'] = 'DL4 Building Orientation and Daylight'
353
- aedgSmMdOffHowToTipHash['DL05'] = 'DL5 Building Shape and Daylight'
354
- aedgSmMdOffHowToTipHash['DL06'] = 'DL6 Window-to-Wall Ratio (WWR)'
355
- aedgSmMdOffHowToTipHash['DL07'] = 'DL7 Sidelighting-Ceiling and Window Height'
356
- aedgSmMdOffHowToTipHash['DL08'] = 'Sidelighting-Clerestory Windows'
357
- aedgSmMdOffHowToTipHash['DL09'] = 'DL9 Sidelighting-Borrowed Light'
358
- aedgSmMdOffHowToTipHash['DL10'] = 'DL10 Sidelighting-Wall-to-Wall Windows'
359
- aedgSmMdOffHowToTipHash['DL11'] = 'DL11 Sidelighting-Punched Windows'
360
- aedgSmMdOffHowToTipHash['DL12'] = 'DL12 Shading Systems to Eliminate Direct-Beam Radiation'
361
- aedgSmMdOffHowToTipHash['DL13'] = 'DL13 Daylighting Control for Audiovisual Activities'
362
- aedgSmMdOffHowToTipHash['DL14'] = 'DL14 Interior Finishes for Daylighting'
363
- aedgSmMdOffHowToTipHash['DL15'] = 'DL15 Outdoor Surface Reflectance'
364
- aedgSmMdOffHowToTipHash['DL16'] = 'DL16 Calibration and Commissioning'
365
- aedgSmMdOffHowToTipHash['DL17'] = 'DL17 Dimming Controls'
366
- aedgSmMdOffHowToTipHash['DL18'] = 'DL18 Photosensor Placement and Lighting Layout'
367
- aedgSmMdOffHowToTipHash['DL19'] = 'DL19 Photosensor Specifications'
368
- aedgSmMdOffHowToTipHash['DL20'] = 'DL20 Select Compatible Light Fixtures'
369
- # bonus daylighting tips
370
- aedgSmMdOffHowToTipHash['DL21'] = 'DL21 Toplighting'
371
- aedgSmMdOffHowToTipHash['DL22'] = 'DL22 Rooftop Monitors'
372
- aedgSmMdOffHowToTipHash['DL23'] = 'DL23 Rooftop Monitor Design'
373
- aedgSmMdOffHowToTipHash['DL24'] = 'DL24 Skylights'
374
- aedgSmMdOffHowToTipHash['DL25'] = 'DL25 Toplighting-Thermal Transmittance (Climate Zones 1-3)'
375
- aedgSmMdOffHowToTipHash['DL26'] = 'DL26 Toplighting-Thermal Transmittance (Climate Zones 4-8)'
376
- aedgSmMdOffHowToTipHash['DL27'] = 'DL27 Toplighting-Ceiling Height Differentials'
377
-
378
- # electric lighting tips
379
- aedgSmMdOffHowToTipHash['EL01'] = 'EL1 Savings and Occupant Acceptance'
380
- aedgSmMdOffHowToTipHash['EL02'] = 'EL2 Space Planning-Open Offices'
381
- aedgSmMdOffHowToTipHash['EL03'] = 'EL3 Space Planning-Private Offices, Conference Rooms, and Break Rooms'
382
- aedgSmMdOffHowToTipHash['EL04'] = 'EL4 Light-Colored Interior Finishes'
383
- aedgSmMdOffHowToTipHash['EL05'] = 'EL5 Task Lighting'
384
- aedgSmMdOffHowToTipHash['EL06'] = 'EL6 Color Rendering Index (CRI)'
385
- aedgSmMdOffHowToTipHash['EL07'] = 'EL7 Color Temperature'
386
- aedgSmMdOffHowToTipHash['EL08'] = 'EL8 Linear Fluorescent Lamps and Ballasts'
387
- aedgSmMdOffHowToTipHash['EL09'] = 'EL9 Occupancy Sensors'
388
- aedgSmMdOffHowToTipHash['EL10'] = 'EL10 Multilevel Switching'
389
- aedgSmMdOffHowToTipHash['EL11'] = 'EL11 Daylight-Responsive Controls'
390
- aedgSmMdOffHowToTipHash['EL12'] = 'EL12 Exit Signs'
391
- aedgSmMdOffHowToTipHash['EL13'] = 'EL13 Light Fixture Distribution'
392
- aedgSmMdOffHowToTipHash['EL14'] = 'EL14 Open-Plan Offices'
393
- aedgSmMdOffHowToTipHash['EL15'] = 'EL15 Private Offices'
394
- aedgSmMdOffHowToTipHash['EL16'] = 'EL16 Conference Rooms/Meeting Rooms'
395
- aedgSmMdOffHowToTipHash['EL17'] = 'EL17 Corridors'
396
- aedgSmMdOffHowToTipHash['EL18'] = 'EL18 Storage Areas'
397
- aedgSmMdOffHowToTipHash['EL19'] = 'EL19 Lobbies'
398
- aedgSmMdOffHowToTipHash['EL20'] = 'EL20 Twenty-Four Hour Lighting'
399
- aedgSmMdOffHowToTipHash['EL21'] = 'EL21 Exterior Lighting Power-Parking Lots and Drives'
400
- aedgSmMdOffHowToTipHash['EL22'] = 'EL22 Exterior Lighting Power-Walkways'
401
- aedgSmMdOffHowToTipHash['EL23'] = 'EL23 Decorative Façade Lighting'
402
- aedgSmMdOffHowToTipHash['EL24'] = 'EL24 Sources'
403
- aedgSmMdOffHowToTipHash['EL25'] = 'EL25 Controls'
404
-
405
- # plug load tips
406
- aedgSmMdOffHowToTipHash['PL01'] = 'PL1 Connected Wattage'
407
- aedgSmMdOffHowToTipHash['PL02'] = 'PL2 Laptop Computers'
408
- aedgSmMdOffHowToTipHash['PL03'] = 'PL3 Occupancy Controls'
409
- aedgSmMdOffHowToTipHash['PL04'] = 'PL4 Parasitic Loads'
410
- aedgSmMdOffHowToTipHash['PL05'] = 'PL5 Printing Equipment'
411
- aedgSmMdOffHowToTipHash['PL06'] = 'PL6 Unnecessary Equipment'
412
-
413
- # service water heating tips
414
- aedgSmMdOffHowToTipHash['WH01'] = 'WH1 Service Water Heating Types'
415
- aedgSmMdOffHowToTipHash['WH02'] = 'WH2 System Descriptions'
416
- aedgSmMdOffHowToTipHash['WH03'] = 'WH3 Sizing'
417
- aedgSmMdOffHowToTipHash['WH04'] = 'WH4 Equipment Efficiency'
418
- aedgSmMdOffHowToTipHash['WH05'] = 'WH5 Location'
419
- aedgSmMdOffHowToTipHash['WH06'] = 'WH6 Pipe Insulation'
420
-
421
- # hvac tips
422
- aedgSmMdOffHowToTipHash['HV01'] = 'HV1 Cooling and Heating Loads'
423
- aedgSmMdOffHowToTipHash['HV02'] = 'HV2 Certification of HVAC Equipment'
424
- aedgSmMdOffHowToTipHash['HV03'] = "HV3 Single-Zone, Packaged Air-Source Heat Pump Systems (or Split Heat Pump
425
- Systems) with Electric Resistance Supplemental Heat and DOASs"
426
- aedgSmMdOffHowToTipHash['HV04'] = 'HV4 Water-Source Heat Pumps (WSHPs)'
427
- aedgSmMdOffHowToTipHash['HV05'] = 'HV5 Ground-Coupled Water-Source Heat Pump (WSHP) System'
428
- aedgSmMdOffHowToTipHash['HV06'] = "HV6 Multiple-Zone, VAV Packaged DX Rooftop Units with a Hot-Water Coil,
429
- Indirect Gas Furnace, or Electric Resistance in the Rooftop Unit and
430
- Convection Heat in the Spaces"
431
- aedgSmMdOffHowToTipHash['HV07'] = "HV7 Multiple-Zone, VAV Air-Handling Units with Packaged Air-Cooled Chiller and
432
- Gas-Fired Boiler"
433
- aedgSmMdOffHowToTipHash['HV08'] = 'Fan-Coils'
434
- aedgSmMdOffHowToTipHash['HV09'] = 'HV9 Radiant Heating and Cooling and DOAS'
435
- aedgSmMdOffHowToTipHash['HV10'] = 'HV10 Dedicated Outdoor Air Systems (100% Outdoor Air Systems)'
436
- aedgSmMdOffHowToTipHash['HV11'] = 'HV11 Part-Load Dehumidification'
437
- aedgSmMdOffHowToTipHash['HV12'] = 'HV12 Exhaust Air Energy Recovery'
438
- aedgSmMdOffHowToTipHash['HV13'] = 'HV13 Indirect Evaporative Cooling'
439
- aedgSmMdOffHowToTipHash['HV14'] = 'HV14 Cooling and Heating Equipment Efficiencies'
440
- aedgSmMdOffHowToTipHash['HV15'] = 'HV15 Ventilation Air'
441
- aedgSmMdOffHowToTipHash['HV16'] = 'HV16 Economizer'
442
- aedgSmMdOffHowToTipHash['HV17'] = 'HV17 Demand-Controlled Ventilation (DCV)'
443
- aedgSmMdOffHowToTipHash['HV18'] = 'HV18 Carbon Dioxide (CO2 ) Sensors'
444
- aedgSmMdOffHowToTipHash['HV19'] = 'HV19 Exhaust Air Systems'
445
- aedgSmMdOffHowToTipHash['HV20'] = 'HV20 Ductwork Design and Construction'
446
- aedgSmMdOffHowToTipHash['HV21'] = 'HV21 Duct Insulation'
447
- aedgSmMdOffHowToTipHash['HV22'] = 'HV22 Duct Sealing and Leakage Testing'
448
- aedgSmMdOffHowToTipHash['HV23'] = 'HV23 Fan Motor Efficiencies'
449
- aedgSmMdOffHowToTipHash['HV24'] = 'HV24 Thermal Zoning'
450
- aedgSmMdOffHowToTipHash['HV25'] = 'HV25 System-Level Control Strategies'
451
- aedgSmMdOffHowToTipHash['HV26'] = 'HV26 Testing, Adjusting, and Balancing'
452
- aedgSmMdOffHowToTipHash['HV27'] = 'HV27 Commissioning (Cx)'
453
- aedgSmMdOffHowToTipHash['HV28'] = 'HV28 Filters'
454
- aedgSmMdOffHowToTipHash['HV29'] = 'HV29 Chilled-Water (CHW) System'
455
- aedgSmMdOffHowToTipHash['HV30'] = 'HV30 Water Heating Systems'
456
- aedgSmMdOffHowToTipHash['HV31'] = 'HV31 Relief versus Return Fans'
457
- aedgSmMdOffHowToTipHash['HV32'] = 'HV32 Heating Sources'
458
- aedgSmMdOffHowToTipHash['HV33'] = 'HV33 Noise Control'
459
- aedgSmMdOffHowToTipHash['HV34'] = 'HV34 Proper Maintenance'
460
- aedgSmMdOffHowToTipHash['HV35'] = 'HV35 Zone Temperature Control'
461
- aedgSmMdOffHowToTipHash['HV36'] = 'HV36 Evaporative Condensers on Rooftop Units'
462
-
463
- # commissioning tips
464
- aedgSmMdOffHowToTipHash['QA01'] = 'QA1 Selecting the Design and Construction Team'
465
- aedgSmMdOffHowToTipHash['QA02'] = 'QA2 Selecting the QA Provider'
466
- aedgSmMdOffHowToTipHash['QA03'] = 'QA3 Owner’s Project Requirements (OPR) and Basis of Design (BoD)'
467
- aedgSmMdOffHowToTipHash['QA04'] = 'QA4 Design and Construction Schedule'
468
- aedgSmMdOffHowToTipHash['QA05'] = 'QA5 Design Review'
469
- aedgSmMdOffHowToTipHash['QA06'] = 'QA6 Defining QA at Pre-Bid'
470
- aedgSmMdOffHowToTipHash['QA07'] = 'QA7 Verifying Building Envelope Construction'
471
- aedgSmMdOffHowToTipHash['QA08'] = 'QA8 Verifying Lighting Construction'
472
- aedgSmMdOffHowToTipHash['QA09'] = 'QA9 Verifying Electrical and HVAC Systems Construction'
473
- aedgSmMdOffHowToTipHash['QA10'] = 'QA10 Performance Testing'
474
- aedgSmMdOffHowToTipHash['QA11'] = 'QA11 Substantial Completion'
475
- aedgSmMdOffHowToTipHash['QA12'] = 'QA12 Final Acceptance'
476
- aedgSmMdOffHowToTipHash['QA13'] = 'QA13 Establish a Building Operation and Maintenance (O&M) Program'
477
- aedgSmMdOffHowToTipHash['QA14'] = 'QA14 Monitor Post-Occupancy Performance'
478
-
479
- # natural ventilation tips
480
- aedgSmMdOffHowToTipHash['NV01'] = 'NV1 Natural Ventilation and Naturally Conditioned Spaces'
481
-
482
- # renewable energy tips
483
- aedgSmMdOffHowToTipHash['RE01'] = 'RE1 Photovoltaic (PV) Systems'
484
- aedgSmMdOffHowToTipHash['RE02'] = 'RE2 Wind Turbine Power'
485
- aedgSmMdOffHowToTipHash['RE03'] = 'RE3 Transpired Solar Collector'
486
- aedgSmMdOffHowToTipHash['RE04'] = 'RE4 Power Purchase Agreements'
487
-
488
- result = aedgSmMdOffHowToTipHash
489
- return result
490
- end
491
- end
1
+ # *******************************************************************************
2
+ # OpenStudio(R), Copyright (c) 2008-2019, Alliance for Sustainable Energy, LLC.
3
+ # All rights reserved.
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are met:
6
+ #
7
+ # (1) Redistributions of source code must retain the above copyright notice,
8
+ # this list of conditions and the following disclaimer.
9
+ #
10
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
11
+ # this list of conditions and the following disclaimer in the documentation
12
+ # and/or other materials provided with the distribution.
13
+ #
14
+ # (3) Neither the name of the copyright holder nor the names of any contributors
15
+ # may be used to endorse or promote products derived from this software without
16
+ # specific prior written permission from the respective party.
17
+ #
18
+ # (4) Other than as required in clauses (1) and (2), distributions in any form
19
+ # of modifications or other derivative works may not use the "OpenStudio"
20
+ # trademark, "OS", "os", or any other confusingly similar designation without
21
+ # specific prior written permission from Alliance for Sustainable Energy, LLC.
22
+ #
23
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
24
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
25
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
27
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
28
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
30
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
+ # *******************************************************************************
35
+
36
+ module OsLib_AedgMeasures
37
+ def self.getClimateZoneNumber(model, runner = nil)
38
+ # get ashrae climate zone from model
39
+ ashraeClimateZone = ''
40
+ climateZones = model.getClimateZones
41
+ climateZones.climateZones.each do |climateZone|
42
+ if climateZone.institution == 'ASHRAE'
43
+ ashraeClimateZone = climateZone.value
44
+ if !runner.nil?
45
+ # runner.registerInfo("Using ASHRAE Climate zone #{ashraeClimateZone} for AEDG recommendations.")
46
+ end
47
+ end
48
+ end
49
+
50
+ if ashraeClimateZone == '' # should this be not applicable or error?
51
+ if !runner.nil?
52
+ runner.registerError("Please assign an ASHRAE Climate Zone to your model using the site tab in the OpenStudio application. The measure can't make AEDG recommendations without this information.")
53
+ end
54
+ return false # note - for this to work need to check for false in measure.rb and add return false there as well.
55
+ else
56
+ climateZoneNumber = ashraeClimateZone.split(//).first
57
+ end
58
+
59
+ # expected climate zone number should be 1 through 8
60
+ if !['1', '2', '3', '4', '5', '6', '7', '8'].include? climateZoneNumber
61
+ runner.registerWarning('ASHRAE climate zone number is not within expected range of 1 to 8.')
62
+ # return false # note - for this to work need to check for false in measure.rb and add return false there as well.
63
+ end
64
+
65
+ result = climateZoneNumber
66
+ # don't add return false here, need to catch errors above
67
+ end
68
+
69
+ def self.getLongHowToTips(guide, aedgTips, runner)
70
+ # get tips
71
+ if guide == 'K12'
72
+ hash = OsLib_AedgMeasures.getK12Tips
73
+ elsif guide == 'SmMdOff'
74
+ hash = OsLib_AedgMeasures.getSmMdOffTips
75
+ else
76
+ runner.registerError("#{guide} is an invalid value. Can't generate how to tip messages.")
77
+ return false # note - for this to work need to check for false in measure.rb and add return false there as well.
78
+ # this should only happen if measure writer passes bad values to getLongHowToTips
79
+ end
80
+
81
+ # array for info string
82
+ string = []
83
+
84
+ # create info messages
85
+ aedgTips.each do |aedgtip|
86
+ if hash[aedgtip] != hash[0]
87
+ string << hash[aedgtip]
88
+ else
89
+ runner.registerWarning("#{aedgtip} is an invalid key for tip hash. Can't generate tip.")
90
+ end
91
+ end
92
+
93
+ # see if expected number of messages created
94
+ if aedgTips.size != string.size
95
+ runner.registerWarning('One more more messages were not created.')
96
+ end
97
+
98
+ result = "#{hash[0]}: #{string.join(', ')}." # hash[0] bad key will return default value
99
+ # don't add return false here, need to catch errors above
100
+ end
101
+
102
+ # hash of how to tips for K-12 school AEDG
103
+ def self.getK12Tips
104
+ # envelope tips
105
+ @aedgK12HowToTipHash = Hash.new('K-12 Schools AEDG How to Implement Recommendations')
106
+ @aedgK12HowToTipHash['EN01'] = 'EN1 Cool Roofs'
107
+ @aedgK12HowToTipHash['EN02'] = 'EN2 Roofs-Insulation Entirely above Deck'
108
+ @aedgK12HowToTipHash['EN03'] = 'EN3 Roofs-Attics, and Other Roofs'
109
+ @aedgK12HowToTipHash['EN04'] = 'EN4 Roofs-Metal Buildings'
110
+ @aedgK12HowToTipHash['EN05'] = 'EN5 Walls-Mass'
111
+ @aedgK12HowToTipHash['EN06'] = 'EN6 Walls-Steel Framed'
112
+ @aedgK12HowToTipHash['EN07'] = 'EN7 Walls-Wood Frame and Other'
113
+ @aedgK12HowToTipHash['EN08'] = 'EN8 Walls-Metal Building'
114
+ @aedgK12HowToTipHash['EN09'] = 'EN9 Below-Grade Walls'
115
+ @aedgK12HowToTipHash['EN10'] = 'EN10 Floors-Mass'
116
+ @aedgK12HowToTipHash['EN11'] = 'EN11 Floors-Metal Joist or Wood Joist/Wood Frame'
117
+ @aedgK12HowToTipHash['EN12'] = 'EN12 Slab-on-Grade Floors-Unheated'
118
+ @aedgK12HowToTipHash['EN13'] = 'EN13 Slab-on-Grade Floors-Heated'
119
+ @aedgK12HowToTipHash['EN14'] = 'EN14 Slab Edge Insulation'
120
+ @aedgK12HowToTipHash['EN15'] = 'EN15 Doors-Opaque, Swinging'
121
+ @aedgK12HowToTipHash['EN16'] = 'EN16 Doors-Opaque, Roll-Up, or Sliding'
122
+ @aedgK12HowToTipHash['EN17'] = 'EN17 Air Infiltration Control'
123
+ @aedgK12HowToTipHash['EN18'] = 'EN18 Vestibules'
124
+ @aedgK12HowToTipHash['EN19'] = 'EN19 Alternative Constructions'
125
+ @aedgK12HowToTipHash['EN20'] = 'EN20 Truss Heel Heights'
126
+ @aedgK12HowToTipHash['EN21'] = 'EN21 Moisture Control'
127
+ @aedgK12HowToTipHash['EN22'] = 'EN22 Thermal Bridging-Opaque Components'
128
+ @aedgK12HowToTipHash['EN23'] = 'EN23 Thermal Bridging-Fenestration'
129
+ @aedgK12HowToTipHash['EN24'] = 'EN24 Fenestration Descriptions'
130
+ @aedgK12HowToTipHash['EN25'] = 'EN25 View Window-to Floor Area Ratio (VFR)'
131
+ @aedgK12HowToTipHash['EN26'] = 'EN26 Unwanted Solar Heat Gain Is Most Effectively Controlled on the Outside of the Building'
132
+ @aedgK12HowToTipHash['EN27'] = 'EN27 Operable versus Fixed Windows'
133
+ @aedgK12HowToTipHash['EN28'] = 'EN28 Building Form and Window Orientation'
134
+ @aedgK12HowToTipHash['EN29'] = 'EN29 Glazing'
135
+ @aedgK12HowToTipHash['EN30'] = 'EN30 Obstructions and Planting'
136
+ @aedgK12HowToTipHash['EN31'] = 'EN31 Window Orientation'
137
+ @aedgK12HowToTipHash['EN32'] = 'EN32 Passive Solar'
138
+ @aedgK12HowToTipHash['EN33'] = 'EN33 Glazing'
139
+
140
+ # daylighting tips
141
+ @aedgK12HowToTipHash['DL01'] = 'DL1 General Principles'
142
+ @aedgK12HowToTipHash['DL02'] = 'DL2 Consider Daylighting Early in the Design Process'
143
+ @aedgK12HowToTipHash['DL03'] = 'DL3 Space Types'
144
+ @aedgK12HowToTipHash['DL04'] = 'DL4 How to Select Daylighting Strategies'
145
+ @aedgK12HowToTipHash['DL05'] = 'DL5 Recommended Daylighting Fenestration-to-Floor Area Ratios'
146
+ @aedgK12HowToTipHash['DL06'] = 'DL6 View Windows Separate from Daylighting Strategy'
147
+ @aedgK12HowToTipHash['DL07'] = 'DL7 Lighting Design Criteria'
148
+ @aedgK12HowToTipHash['DL08'] = 'DL8 Use Daylighting Analysis Tools to Optimize Design'
149
+ @aedgK12HowToTipHash['DL09'] = 'DL9 Building Orientation'
150
+ @aedgK12HowToTipHash['DL10'] = 'DL10 Ceiling Height'
151
+ @aedgK12HowToTipHash['DL11'] = 'DL11 Outdoor Surface Reflectance'
152
+ @aedgK12HowToTipHash['DL12'] = 'DL12 Eliminate Direct Beam Radiation'
153
+ @aedgK12HowToTipHash['DL13'] = 'DL13 Daylighting Control for Audio-Visual (AV) Projection Activities'
154
+ @aedgK12HowToTipHash['DL14'] = 'DL14 Interior Finishes for Daylighting'
155
+ @aedgK12HowToTipHash['DL15'] = 'DL15 Calibration and Commissioning'
156
+ @aedgK12HowToTipHash['DL16'] = 'DL16 Dimming Controls'
157
+ @aedgK12HowToTipHash['DL17'] = 'DL17 Photosensor Placement and Lighting Layout'
158
+ @aedgK12HowToTipHash['DL18'] = 'DL18 Photosensor Specifications'
159
+ @aedgK12HowToTipHash['DL19'] = 'DL19 Select Compatible Light Fixtures'
160
+ @aedgK12HowToTipHash['DL20'] = 'DL20 Sidelighting Patterns'
161
+ @aedgK12HowToTipHash['DL21'] = 'DL21 South-Facing Classrooms-Configuration of Apertures'
162
+ @aedgK12HowToTipHash['DL22'] = 'DL22 South-Facing Classrooms-Glazing Area and Fenestration Type'
163
+ @aedgK12HowToTipHash['DL23'] = 'DL23 View Glazing and VTs'
164
+ @aedgK12HowToTipHash['DL24'] = 'DL24 South-Facing Classrooms-Make Light Shelf Durable and Reflective'
165
+ @aedgK12HowToTipHash['DL25'] = 'DL25 North-Facing Classroom-Configuration of Apertures'
166
+ @aedgK12HowToTipHash['DL26'] = 'DL26 North-Facing Classroom-Glazing Area and Fenestration Type'
167
+ @aedgK12HowToTipHash['DL27'] = 'DL27 South-and North-Facing Classrooms-Sloped Ceilings'
168
+ @aedgK12HowToTipHash['DL28'] = 'DL28 South-and North-Facing Classrooms-Recognize the Limits of Side Daylighting'
169
+ @aedgK12HowToTipHash['DL29'] = 'DL29 Classroom Toplighting Pattern'
170
+ @aedgK12HowToTipHash['DL30'] = 'DL30 Sizing the Roof Monitors'
171
+ @aedgK12HowToTipHash['DL31'] = 'DL31 Overhang for Roof Monitor'
172
+ @aedgK12HowToTipHash['DL32'] = 'DL32 Use Light-Colored Roofing in Front of Monitors'
173
+ @aedgK12HowToTipHash['DL33'] = 'DL33 Use Baffles to Block Direct Beam Radiation and Diffuse Light'
174
+ @aedgK12HowToTipHash['DL34'] = 'DL34 Minimize Contrast at Well-Ceiling Intersection'
175
+ @aedgK12HowToTipHash['DL35'] = 'DL35 Address the Monitor Design'
176
+ @aedgK12HowToTipHash['DL36'] = 'DL36 Let the Heat Stratify'
177
+ @aedgK12HowToTipHash['DL37'] = 'DL37 Minimize the Depth of the Ceiling Cavity'
178
+ @aedgK12HowToTipHash['DL38'] = 'DL38 Classroom Sidelighting Plus Toplighting Pattern'
179
+ @aedgK12HowToTipHash['DL39'] = 'DL39 Gym Toplighting Overview'
180
+ @aedgK12HowToTipHash['DL40'] = 'DL40 Gym Toplighting Sizing'
181
+ @aedgK12HowToTipHash['DL41'] = 'DL41 Gym Toplighting Using South-Facing Roof Monitors'
182
+ @aedgK12HowToTipHash['DL42'] = 'DL42 Gym Toplighting in Combination with North-and South-Facing Sidelighting'
183
+
184
+ # electric lighting tips
185
+ @aedgK12HowToTipHash['EL01'] = 'EL1 Light-Colored Interior Finishes'
186
+ @aedgK12HowToTipHash['EL02'] = 'EL2 Color Rendering Index'
187
+ @aedgK12HowToTipHash['EL03'] = 'EL3 Color Temperature'
188
+ @aedgK12HowToTipHash['EL04'] = 'EL4 Linear Fluorescent Lamps and Ballasts'
189
+ @aedgK12HowToTipHash['EL05'] = 'EL5 Compact Fluorescent'
190
+ @aedgK12HowToTipHash['EL06'] = 'EL6 Metal Halide'
191
+ @aedgK12HowToTipHash['EL07'] = 'EL7 Light-Emitting Diode (LED) Lighting'
192
+ @aedgK12HowToTipHash['EL08'] = 'EL8 Occupancy Sensors'
193
+ @aedgK12HowToTipHash['EL09'] = 'EL9 Multilevel Switching or Dimming'
194
+ @aedgK12HowToTipHash['EL10'] = 'EL10 Exit Signs'
195
+ @aedgK12HowToTipHash['EL11'] = 'EL11 Circuiting and Switching'
196
+ @aedgK12HowToTipHash['EL12'] = 'EL12 Electrical Lighting Design for Schools'
197
+ @aedgK12HowToTipHash['EL13'] = 'EL13 Classroom Lighting'
198
+ @aedgK12HowToTipHash['EL14'] = 'EL14 Gym Lighting'
199
+ @aedgK12HowToTipHash['EL15'] = 'EL15 Lighting for a Multipurpose Room'
200
+ @aedgK12HowToTipHash['EL16'] = 'EL16 Lighting for a Library or Media Center'
201
+ @aedgK12HowToTipHash['EL17'] = 'EL17 Corridor Lighting'
202
+ @aedgK12HowToTipHash['EL18'] = 'EL18 Lighting for Offices and Teacher Support Rooms'
203
+ @aedgK12HowToTipHash['EL19'] = 'EL19 Lighting for Locker Areas and Restrooms'
204
+ @aedgK12HowToTipHash['EL20'] = 'EL20 Twenty-Four Hour Lighting'
205
+ @aedgK12HowToTipHash['EL21'] = 'EL21 Exterior Lighting Power-Parking Lots and Drives'
206
+ @aedgK12HowToTipHash['EL22'] = 'EL22 Exterior Lighting Power-Walkways'
207
+ @aedgK12HowToTipHash['EL23'] = 'EL23 Decorative Façade Lighting'
208
+ @aedgK12HowToTipHash['EL24'] = 'EL24 Sources'
209
+ @aedgK12HowToTipHash['EL25'] = 'EL25 Controls'
210
+
211
+ # plug load tips
212
+ @aedgK12HowToTipHash['PL01'] = 'PL1 General Guidance'
213
+ @aedgK12HowToTipHash['PL02'] = 'PL2 Computer (Information Technology) Equipment'
214
+ @aedgK12HowToTipHash['PL03'] = 'PL3 Staff and Occupant Equipment Control'
215
+ @aedgK12HowToTipHash['PL04'] = 'PL4 Phantom/Parasitic Loads'
216
+ @aedgK12HowToTipHash['PL05'] = 'PL5 ENERGY STAR Appliances/Equipment'
217
+ @aedgK12HowToTipHash['PL06'] = 'PL6 Electrical Distribution System'
218
+
219
+ # kitchen tips
220
+ @aedgK12HowToTipHash['KE01'] = 'KE1 General Guidance'
221
+ @aedgK12HowToTipHash['KE02'] = 'KE2 Energy-Efficient Kitchen Equipment'
222
+ @aedgK12HowToTipHash['KE03'] = 'KE3 Exhaust and Ventilation Energy Use'
223
+ @aedgK12HowToTipHash['KE04'] = 'KE4 Minimize Hot-Water Use'
224
+ @aedgK12HowToTipHash['KE05'] = 'KE5 High-Efficiency Walk-in Refrigeration Systems'
225
+ @aedgK12HowToTipHash['KE06'] = 'KE6 Position Hooded Appliances to Achieve Lower Exhaust Rates'
226
+ @aedgK12HowToTipHash['KE07'] = 'KE7 Operating Considerations'
227
+
228
+ # service water heating tips
229
+ @aedgK12HowToTipHash['WH01'] = 'WH1 Service Water -Heating Types'
230
+ @aedgK12HowToTipHash['WH02'] = 'WH2 System Descriptions'
231
+ @aedgK12HowToTipHash['WH03'] = 'WH3 Sizing'
232
+ @aedgK12HowToTipHash['WH04'] = 'WH4 Equipment Efficiency'
233
+ @aedgK12HowToTipHash['WH05'] = 'WH5 Location'
234
+ @aedgK12HowToTipHash['WH06'] = 'WH6 Pipe Insulation'
235
+ @aedgK12HowToTipHash['WH07'] = 'WH7 Solar Hot-Water Systems'
236
+
237
+ # hvac tips
238
+ @aedgK12HowToTipHash['HV01'] = 'HV1 Ground-Source Heat Pump System'
239
+ @aedgK12HowToTipHash['HV02'] = 'HV2 Fan-Coil System'
240
+ @aedgK12HowToTipHash['HV03'] = 'HV3 Multiple-Zone, Variable-Air-Volume (VAV) Air Handlers'
241
+ @aedgK12HowToTipHash['HV04'] = 'HV4 Dedicated Outdoor Air System (DOAS)'
242
+ @aedgK12HowToTipHash['HV05'] = 'HV5 Exhaust Air Energy Recovery'
243
+ @aedgK12HowToTipHash['HV06'] = 'HV6 Chilled-Water System'
244
+ @aedgK12HowToTipHash['HV07'] = 'HV7 Water Heating System'
245
+ @aedgK12HowToTipHash['HV08'] = 'HV8 Condenser-Water System for GSHPs'
246
+ @aedgK12HowToTipHash['HV09'] = 'HV9 Cooling and Heating Load Calculations'
247
+ @aedgK12HowToTipHash['HV10'] = 'HV10 Ventilation Air'
248
+ @aedgK12HowToTipHash['HV11'] = 'HV11 Cooling and Heating Equipment Efficiencies'
249
+ @aedgK12HowToTipHash['HV12'] = 'HV12 Fan Power and Motor Efficiencies'
250
+ @aedgK12HowToTipHash['HV13'] = 'HV13 Part-Load Dehumidification'
251
+ @aedgK12HowToTipHash['HV14'] = 'HV14 Economizer'
252
+ @aedgK12HowToTipHash['HV15'] = 'HV15 Demand-Controlled Ventilation'
253
+ @aedgK12HowToTipHash['HV16'] = 'HV16 System-Level Control Strategies'
254
+ @aedgK12HowToTipHash['HV17'] = 'HV17 Thermal Zoning'
255
+ @aedgK12HowToTipHash['HV18'] = 'HV18 Ductwork Design and Construction'
256
+ @aedgK12HowToTipHash['HV19'] = 'HV19 Duct Insulation'
257
+ @aedgK12HowToTipHash['HV20'] = 'HV20 Duct Sealing and Leakage Testing'
258
+ @aedgK12HowToTipHash['HV21'] = 'HV21 Exhaust Air Systems'
259
+ @aedgK12HowToTipHash['HV22'] = 'HV22 Testing, Adjusting, and Balancing'
260
+ @aedgK12HowToTipHash['HV23'] = 'HV23 Air Cleaning'
261
+ @aedgK12HowToTipHash['HV24'] = 'HV24 Relief versus Return Fans'
262
+ @aedgK12HowToTipHash['HV25'] = 'HV25 Zone Temperature Control'
263
+ @aedgK12HowToTipHash['HV26'] = 'HV26 Heating Sources'
264
+ @aedgK12HowToTipHash['HV27'] = 'HV27 Noise Control'
265
+ @aedgK12HowToTipHash['HV28'] = 'HV28 Proper Maintenance'
266
+ # bonus hvac tips
267
+ @aedgK12HowToTipHash['HV29'] = 'HV29 Natural Ventilation and Naturally Conditioned Spaces'
268
+ @aedgK12HowToTipHash['HV30'] = 'HV30 Thermal Storage'
269
+ @aedgK12HowToTipHash['HV31'] = 'HV31 Thermal Mass'
270
+ @aedgK12HowToTipHash['HV32'] = 'HV32 Thermal Displacement Ventilation'
271
+ @aedgK12HowToTipHash['HV33'] = 'HV33 ASHRAE Standard 62.1 IAQ Procedure'
272
+ @aedgK12HowToTipHash['HV34'] = 'HV34 Evaporative Cooling'
273
+
274
+ # commissioning tips
275
+ @aedgK12HowToTipHash['QA01'] = 'QA1 Design and Construction Team'
276
+ @aedgK12HowToTipHash['QA02'] = 'QA2 Owner’s Project Requirements and Basis of Design'
277
+ @aedgK12HowToTipHash['QA03'] = 'QA3 Selection of Quality Assurance Provider'
278
+ @aedgK12HowToTipHash['QA04'] = 'QA4 Design and Construction Schedule'
279
+ @aedgK12HowToTipHash['QA05'] = 'QA5 Design Review'
280
+ @aedgK12HowToTipHash['QA06'] = 'QA6 Defining Quality Assurance at Pre-Bid'
281
+ @aedgK12HowToTipHash['QA07'] = 'QA7 Verifying Building Envelope Construction'
282
+ @aedgK12HowToTipHash['QA08'] = 'QA8 Verifying Lighting Construction'
283
+ @aedgK12HowToTipHash['QA09'] = 'QA9 Verifying Electrical and HVAC Systems Construction'
284
+ @aedgK12HowToTipHash['QA10'] = 'QA10 Functional Performance Testing'
285
+ @aedgK12HowToTipHash['QA11'] = 'QA11 Substantial Completion'
286
+ @aedgK12HowToTipHash['QA12'] = 'QA12 Final Acceptance'
287
+ @aedgK12HowToTipHash['QA13'] = 'QA13 Establish Building Operation and Maintenance Program'
288
+ @aedgK12HowToTipHash['QA14'] = 'QA14 Monitor Post-Occupancy Performance'
289
+ @aedgK12HowToTipHash['QA15'] = 'QA15 M&V Electrical Panel Guidance'
290
+ @aedgK12HowToTipHash['QA16'] = 'QA16 M&V Data Management and Access'
291
+ @aedgK12HowToTipHash['QA17'] = 'QA17 M&V Benchmarking'
292
+ @aedgK12HowToTipHash['QA18'] = 'QA18 The Building as a Teaching Tool'
293
+
294
+ # renewable energy tips
295
+ @aedgK12HowToTipHash['RE01'] = 'RE1 Photovoltaic (PV) Systems'
296
+ @aedgK12HowToTipHash['RE02'] = 'RE2 Solar Hot Water Systems'
297
+ @aedgK12HowToTipHash['RE03'] = 'RE3 Wind Turbine Power'
298
+
299
+ result = @aedgK12HowToTipHash
300
+ return result
301
+ end
302
+
303
+ # hash of how to tips for small to medium office buildings AEDG
304
+ def self.getSmMdOffTips
305
+ # envelope tips
306
+ aedgSmMdOffHowToTipHash = Hash.new('Small and Medium Offices AEDG How to Implement Recommendations')
307
+ aedgSmMdOffHowToTipHash['EN01'] = 'EN1 Cool Roofs'
308
+ aedgSmMdOffHowToTipHash['EN02'] = 'EN2 Roofs-Insulation Entirely above Deck'
309
+ aedgSmMdOffHowToTipHash['EN03'] = 'EN3 Roofs-Attics, and Other Roofs'
310
+ aedgSmMdOffHowToTipHash['EN04'] = 'EN4 Roofs-Metal Buildings'
311
+ aedgSmMdOffHowToTipHash['EN05'] = 'EN5 Walls-Mass'
312
+ aedgSmMdOffHowToTipHash['EN06'] = 'EN6 Walls-Steel Framed'
313
+ aedgSmMdOffHowToTipHash['EN07'] = 'EN7 Walls-Wood Frame and Other'
314
+ aedgSmMdOffHowToTipHash['EN08'] = 'EN8 Walls-Metal Building'
315
+ aedgSmMdOffHowToTipHash['EN09'] = 'EN9 Walls-Below-Grade'
316
+ aedgSmMdOffHowToTipHash['EN10'] = 'EN10 Floors-Mass'
317
+ aedgSmMdOffHowToTipHash['EN11'] = 'EN11 Floors-Metal Joist or Wood Joist/Wood Frame'
318
+ aedgSmMdOffHowToTipHash['EN12'] = 'EN12 Slab-on-Grade Floors-Unheated'
319
+ aedgSmMdOffHowToTipHash['EN13'] = 'EN13 Slab-on-Grade Floors-Heated'
320
+ aedgSmMdOffHowToTipHash['EN14'] = 'EN14 Slab Edge Insulation'
321
+ aedgSmMdOffHowToTipHash['EN15'] = 'EN15 Doors-Opaque, Swinging'
322
+ aedgSmMdOffHowToTipHash['EN16'] = 'EN16 Doors-Opaque, Roll-Up, or Sliding'
323
+ aedgSmMdOffHowToTipHash['EN17'] = 'EN17 Air Infiltration Control'
324
+ aedgSmMdOffHowToTipHash['EN18'] = 'EN18 Vestibules'
325
+ aedgSmMdOffHowToTipHash['EN19'] = 'EN19 Alternative Constructions'
326
+ aedgSmMdOffHowToTipHash['EN20'] = 'EN20 Truss Heel Heights'
327
+ aedgSmMdOffHowToTipHash['EN21'] = 'EN21 Moisture Control'
328
+ aedgSmMdOffHowToTipHash['EN22'] = 'EN22 Thermal Bridging-Opaque Components'
329
+ aedgSmMdOffHowToTipHash['EN23'] = 'EN23 Thermal Bridging-Fenestration'
330
+ aedgSmMdOffHowToTipHash['EN24'] = 'EN24 Vertical Fenestration Descriptions'
331
+ aedgSmMdOffHowToTipHash['EN25'] = 'EN25 Window-to-Wall Ratio (WWR)'
332
+ aedgSmMdOffHowToTipHash['EN26'] = 'EN26 Unwanted Solar Heat Gain Is Most Effectively Controlled on the Outside of the Building'
333
+ aedgSmMdOffHowToTipHash['EN27'] = 'EN27 Operable versus Fixed Windows'
334
+ aedgSmMdOffHowToTipHash['EN28'] = 'EN28 Building Form and Window Orientation'
335
+ aedgSmMdOffHowToTipHash['EN29'] = 'EN29 Glazing'
336
+ aedgSmMdOffHowToTipHash['EN30'] = 'EN30 Obstructions and Planting'
337
+ aedgSmMdOffHowToTipHash['EN31'] = 'EN31 Window Orientation'
338
+ aedgSmMdOffHowToTipHash['EN32'] = 'EN32 Passive Solar'
339
+ aedgSmMdOffHowToTipHash['EN33'] = 'EN33 Glazing'
340
+ aedgSmMdOffHowToTipHash['EN34'] = 'EN34 Visible Transmittance (VT)'
341
+ aedgSmMdOffHowToTipHash['EN35'] = 'EN35 Separating Views and Daylight'
342
+ aedgSmMdOffHowToTipHash['EN36'] = 'EN36 Color-Neutral Glazing'
343
+ aedgSmMdOffHowToTipHash['EN37'] = 'EN37 Reflectivity of Glass'
344
+ aedgSmMdOffHowToTipHash['EN38'] = 'EN38 Light-to-Solar-Gain Ratio'
345
+ aedgSmMdOffHowToTipHash['EN39'] = 'EN39 High Ceilings'
346
+ aedgSmMdOffHowToTipHash['EN40'] = 'EN40 Light Shelves'
347
+
348
+ # daylighting tips
349
+ aedgSmMdOffHowToTipHash['DL01'] = 'DL1 Daylighting Early in the Design Process'
350
+ aedgSmMdOffHowToTipHash['DL02'] = 'DL2 Daylighting Analysis Tools to Optimize Design'
351
+ aedgSmMdOffHowToTipHash['DL03'] = 'DL3 Space Types, Layout, and Daylight'
352
+ aedgSmMdOffHowToTipHash['DL04'] = 'DL4 Building Orientation and Daylight'
353
+ aedgSmMdOffHowToTipHash['DL05'] = 'DL5 Building Shape and Daylight'
354
+ aedgSmMdOffHowToTipHash['DL06'] = 'DL6 Window-to-Wall Ratio (WWR)'
355
+ aedgSmMdOffHowToTipHash['DL07'] = 'DL7 Sidelighting-Ceiling and Window Height'
356
+ aedgSmMdOffHowToTipHash['DL08'] = 'Sidelighting-Clerestory Windows'
357
+ aedgSmMdOffHowToTipHash['DL09'] = 'DL9 Sidelighting-Borrowed Light'
358
+ aedgSmMdOffHowToTipHash['DL10'] = 'DL10 Sidelighting-Wall-to-Wall Windows'
359
+ aedgSmMdOffHowToTipHash['DL11'] = 'DL11 Sidelighting-Punched Windows'
360
+ aedgSmMdOffHowToTipHash['DL12'] = 'DL12 Shading Systems to Eliminate Direct-Beam Radiation'
361
+ aedgSmMdOffHowToTipHash['DL13'] = 'DL13 Daylighting Control for Audiovisual Activities'
362
+ aedgSmMdOffHowToTipHash['DL14'] = 'DL14 Interior Finishes for Daylighting'
363
+ aedgSmMdOffHowToTipHash['DL15'] = 'DL15 Outdoor Surface Reflectance'
364
+ aedgSmMdOffHowToTipHash['DL16'] = 'DL16 Calibration and Commissioning'
365
+ aedgSmMdOffHowToTipHash['DL17'] = 'DL17 Dimming Controls'
366
+ aedgSmMdOffHowToTipHash['DL18'] = 'DL18 Photosensor Placement and Lighting Layout'
367
+ aedgSmMdOffHowToTipHash['DL19'] = 'DL19 Photosensor Specifications'
368
+ aedgSmMdOffHowToTipHash['DL20'] = 'DL20 Select Compatible Light Fixtures'
369
+ # bonus daylighting tips
370
+ aedgSmMdOffHowToTipHash['DL21'] = 'DL21 Toplighting'
371
+ aedgSmMdOffHowToTipHash['DL22'] = 'DL22 Rooftop Monitors'
372
+ aedgSmMdOffHowToTipHash['DL23'] = 'DL23 Rooftop Monitor Design'
373
+ aedgSmMdOffHowToTipHash['DL24'] = 'DL24 Skylights'
374
+ aedgSmMdOffHowToTipHash['DL25'] = 'DL25 Toplighting-Thermal Transmittance (Climate Zones 1-3)'
375
+ aedgSmMdOffHowToTipHash['DL26'] = 'DL26 Toplighting-Thermal Transmittance (Climate Zones 4-8)'
376
+ aedgSmMdOffHowToTipHash['DL27'] = 'DL27 Toplighting-Ceiling Height Differentials'
377
+
378
+ # electric lighting tips
379
+ aedgSmMdOffHowToTipHash['EL01'] = 'EL1 Savings and Occupant Acceptance'
380
+ aedgSmMdOffHowToTipHash['EL02'] = 'EL2 Space Planning-Open Offices'
381
+ aedgSmMdOffHowToTipHash['EL03'] = 'EL3 Space Planning-Private Offices, Conference Rooms, and Break Rooms'
382
+ aedgSmMdOffHowToTipHash['EL04'] = 'EL4 Light-Colored Interior Finishes'
383
+ aedgSmMdOffHowToTipHash['EL05'] = 'EL5 Task Lighting'
384
+ aedgSmMdOffHowToTipHash['EL06'] = 'EL6 Color Rendering Index (CRI)'
385
+ aedgSmMdOffHowToTipHash['EL07'] = 'EL7 Color Temperature'
386
+ aedgSmMdOffHowToTipHash['EL08'] = 'EL8 Linear Fluorescent Lamps and Ballasts'
387
+ aedgSmMdOffHowToTipHash['EL09'] = 'EL9 Occupancy Sensors'
388
+ aedgSmMdOffHowToTipHash['EL10'] = 'EL10 Multilevel Switching'
389
+ aedgSmMdOffHowToTipHash['EL11'] = 'EL11 Daylight-Responsive Controls'
390
+ aedgSmMdOffHowToTipHash['EL12'] = 'EL12 Exit Signs'
391
+ aedgSmMdOffHowToTipHash['EL13'] = 'EL13 Light Fixture Distribution'
392
+ aedgSmMdOffHowToTipHash['EL14'] = 'EL14 Open-Plan Offices'
393
+ aedgSmMdOffHowToTipHash['EL15'] = 'EL15 Private Offices'
394
+ aedgSmMdOffHowToTipHash['EL16'] = 'EL16 Conference Rooms/Meeting Rooms'
395
+ aedgSmMdOffHowToTipHash['EL17'] = 'EL17 Corridors'
396
+ aedgSmMdOffHowToTipHash['EL18'] = 'EL18 Storage Areas'
397
+ aedgSmMdOffHowToTipHash['EL19'] = 'EL19 Lobbies'
398
+ aedgSmMdOffHowToTipHash['EL20'] = 'EL20 Twenty-Four Hour Lighting'
399
+ aedgSmMdOffHowToTipHash['EL21'] = 'EL21 Exterior Lighting Power-Parking Lots and Drives'
400
+ aedgSmMdOffHowToTipHash['EL22'] = 'EL22 Exterior Lighting Power-Walkways'
401
+ aedgSmMdOffHowToTipHash['EL23'] = 'EL23 Decorative Façade Lighting'
402
+ aedgSmMdOffHowToTipHash['EL24'] = 'EL24 Sources'
403
+ aedgSmMdOffHowToTipHash['EL25'] = 'EL25 Controls'
404
+
405
+ # plug load tips
406
+ aedgSmMdOffHowToTipHash['PL01'] = 'PL1 Connected Wattage'
407
+ aedgSmMdOffHowToTipHash['PL02'] = 'PL2 Laptop Computers'
408
+ aedgSmMdOffHowToTipHash['PL03'] = 'PL3 Occupancy Controls'
409
+ aedgSmMdOffHowToTipHash['PL04'] = 'PL4 Parasitic Loads'
410
+ aedgSmMdOffHowToTipHash['PL05'] = 'PL5 Printing Equipment'
411
+ aedgSmMdOffHowToTipHash['PL06'] = 'PL6 Unnecessary Equipment'
412
+
413
+ # service water heating tips
414
+ aedgSmMdOffHowToTipHash['WH01'] = 'WH1 Service Water Heating Types'
415
+ aedgSmMdOffHowToTipHash['WH02'] = 'WH2 System Descriptions'
416
+ aedgSmMdOffHowToTipHash['WH03'] = 'WH3 Sizing'
417
+ aedgSmMdOffHowToTipHash['WH04'] = 'WH4 Equipment Efficiency'
418
+ aedgSmMdOffHowToTipHash['WH05'] = 'WH5 Location'
419
+ aedgSmMdOffHowToTipHash['WH06'] = 'WH6 Pipe Insulation'
420
+
421
+ # hvac tips
422
+ aedgSmMdOffHowToTipHash['HV01'] = 'HV1 Cooling and Heating Loads'
423
+ aedgSmMdOffHowToTipHash['HV02'] = 'HV2 Certification of HVAC Equipment'
424
+ aedgSmMdOffHowToTipHash['HV03'] = "HV3 Single-Zone, Packaged Air-Source Heat Pump Systems (or Split Heat Pump
425
+ Systems) with Electric Resistance Supplemental Heat and DOASs"
426
+ aedgSmMdOffHowToTipHash['HV04'] = 'HV4 Water-Source Heat Pumps (WSHPs)'
427
+ aedgSmMdOffHowToTipHash['HV05'] = 'HV5 Ground-Coupled Water-Source Heat Pump (WSHP) System'
428
+ aedgSmMdOffHowToTipHash['HV06'] = "HV6 Multiple-Zone, VAV Packaged DX Rooftop Units with a Hot-Water Coil,
429
+ Indirect Gas Furnace, or Electric Resistance in the Rooftop Unit and
430
+ Convection Heat in the Spaces"
431
+ aedgSmMdOffHowToTipHash['HV07'] = "HV7 Multiple-Zone, VAV Air-Handling Units with Packaged Air-Cooled Chiller and
432
+ Gas-Fired Boiler"
433
+ aedgSmMdOffHowToTipHash['HV08'] = 'Fan-Coils'
434
+ aedgSmMdOffHowToTipHash['HV09'] = 'HV9 Radiant Heating and Cooling and DOAS'
435
+ aedgSmMdOffHowToTipHash['HV10'] = 'HV10 Dedicated Outdoor Air Systems (100% Outdoor Air Systems)'
436
+ aedgSmMdOffHowToTipHash['HV11'] = 'HV11 Part-Load Dehumidification'
437
+ aedgSmMdOffHowToTipHash['HV12'] = 'HV12 Exhaust Air Energy Recovery'
438
+ aedgSmMdOffHowToTipHash['HV13'] = 'HV13 Indirect Evaporative Cooling'
439
+ aedgSmMdOffHowToTipHash['HV14'] = 'HV14 Cooling and Heating Equipment Efficiencies'
440
+ aedgSmMdOffHowToTipHash['HV15'] = 'HV15 Ventilation Air'
441
+ aedgSmMdOffHowToTipHash['HV16'] = 'HV16 Economizer'
442
+ aedgSmMdOffHowToTipHash['HV17'] = 'HV17 Demand-Controlled Ventilation (DCV)'
443
+ aedgSmMdOffHowToTipHash['HV18'] = 'HV18 Carbon Dioxide (CO2 ) Sensors'
444
+ aedgSmMdOffHowToTipHash['HV19'] = 'HV19 Exhaust Air Systems'
445
+ aedgSmMdOffHowToTipHash['HV20'] = 'HV20 Ductwork Design and Construction'
446
+ aedgSmMdOffHowToTipHash['HV21'] = 'HV21 Duct Insulation'
447
+ aedgSmMdOffHowToTipHash['HV22'] = 'HV22 Duct Sealing and Leakage Testing'
448
+ aedgSmMdOffHowToTipHash['HV23'] = 'HV23 Fan Motor Efficiencies'
449
+ aedgSmMdOffHowToTipHash['HV24'] = 'HV24 Thermal Zoning'
450
+ aedgSmMdOffHowToTipHash['HV25'] = 'HV25 System-Level Control Strategies'
451
+ aedgSmMdOffHowToTipHash['HV26'] = 'HV26 Testing, Adjusting, and Balancing'
452
+ aedgSmMdOffHowToTipHash['HV27'] = 'HV27 Commissioning (Cx)'
453
+ aedgSmMdOffHowToTipHash['HV28'] = 'HV28 Filters'
454
+ aedgSmMdOffHowToTipHash['HV29'] = 'HV29 Chilled-Water (CHW) System'
455
+ aedgSmMdOffHowToTipHash['HV30'] = 'HV30 Water Heating Systems'
456
+ aedgSmMdOffHowToTipHash['HV31'] = 'HV31 Relief versus Return Fans'
457
+ aedgSmMdOffHowToTipHash['HV32'] = 'HV32 Heating Sources'
458
+ aedgSmMdOffHowToTipHash['HV33'] = 'HV33 Noise Control'
459
+ aedgSmMdOffHowToTipHash['HV34'] = 'HV34 Proper Maintenance'
460
+ aedgSmMdOffHowToTipHash['HV35'] = 'HV35 Zone Temperature Control'
461
+ aedgSmMdOffHowToTipHash['HV36'] = 'HV36 Evaporative Condensers on Rooftop Units'
462
+
463
+ # commissioning tips
464
+ aedgSmMdOffHowToTipHash['QA01'] = 'QA1 Selecting the Design and Construction Team'
465
+ aedgSmMdOffHowToTipHash['QA02'] = 'QA2 Selecting the QA Provider'
466
+ aedgSmMdOffHowToTipHash['QA03'] = 'QA3 Owner’s Project Requirements (OPR) and Basis of Design (BoD)'
467
+ aedgSmMdOffHowToTipHash['QA04'] = 'QA4 Design and Construction Schedule'
468
+ aedgSmMdOffHowToTipHash['QA05'] = 'QA5 Design Review'
469
+ aedgSmMdOffHowToTipHash['QA06'] = 'QA6 Defining QA at Pre-Bid'
470
+ aedgSmMdOffHowToTipHash['QA07'] = 'QA7 Verifying Building Envelope Construction'
471
+ aedgSmMdOffHowToTipHash['QA08'] = 'QA8 Verifying Lighting Construction'
472
+ aedgSmMdOffHowToTipHash['QA09'] = 'QA9 Verifying Electrical and HVAC Systems Construction'
473
+ aedgSmMdOffHowToTipHash['QA10'] = 'QA10 Performance Testing'
474
+ aedgSmMdOffHowToTipHash['QA11'] = 'QA11 Substantial Completion'
475
+ aedgSmMdOffHowToTipHash['QA12'] = 'QA12 Final Acceptance'
476
+ aedgSmMdOffHowToTipHash['QA13'] = 'QA13 Establish a Building Operation and Maintenance (O&M) Program'
477
+ aedgSmMdOffHowToTipHash['QA14'] = 'QA14 Monitor Post-Occupancy Performance'
478
+
479
+ # natural ventilation tips
480
+ aedgSmMdOffHowToTipHash['NV01'] = 'NV1 Natural Ventilation and Naturally Conditioned Spaces'
481
+
482
+ # renewable energy tips
483
+ aedgSmMdOffHowToTipHash['RE01'] = 'RE1 Photovoltaic (PV) Systems'
484
+ aedgSmMdOffHowToTipHash['RE02'] = 'RE2 Wind Turbine Power'
485
+ aedgSmMdOffHowToTipHash['RE03'] = 'RE3 Transpired Solar Collector'
486
+ aedgSmMdOffHowToTipHash['RE04'] = 'RE4 Power Purchase Agreements'
487
+
488
+ result = aedgSmMdOffHowToTipHash
489
+ return result
490
+ end
491
+ end