openstudio-standards 0.8.3 → 0.8.5.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. checksums.yaml +4 -4
  2. data/data/geometry/ASHRAECollege.osm +30 -30
  3. data/data/geometry/ASHRAECourthouse.osm +22 -22
  4. data/data/geometry/ASHRAESmallOfficeDetailed.osm +2 -2
  5. data/data/geometry/DEER_Asm.osm +1 -1
  6. data/data/geometry/DEER_ECC.osm +1 -1
  7. data/data/geometry/DEER_EPr.osm +1 -1
  8. data/data/geometry/DEER_ERC.osm +1 -1
  9. data/data/geometry/DEER_ESe.osm +1 -1
  10. data/data/geometry/DEER_EUn.osm +1 -1
  11. data/data/geometry/DEER_Hsp.osm +1 -1
  12. data/data/geometry/DEER_Htl.osm +1 -1
  13. data/data/geometry/DEER_MBT.osm +1 -1
  14. data/data/geometry/DEER_MFm.osm +1 -1
  15. data/data/geometry/DEER_Nrs.osm +1 -1
  16. data/data/geometry/DEER_OfL.osm +1 -1
  17. data/data/geometry/DEER_OfS.osm +1 -1
  18. data/data/geometry/DEER_RFF.osm +1 -1
  19. data/data/geometry/DEER_RSD.osm +1 -1
  20. data/data/geometry/DEER_Rt3.osm +1 -1
  21. data/data/geometry/DEER_RtS.osm +1 -1
  22. data/data/standards/export_OpenStudio_libraries.rb +2 -3
  23. data/data/standards/test_performance_expected_dd_results.csv +42 -42
  24. data/lib/openstudio-standards/btap/NECB_building_types.csv +35 -0
  25. data/lib/openstudio-standards/btap/NECB_space_types.csv +109 -0
  26. data/lib/openstudio-standards/btap/activity.rb +480 -0
  27. data/lib/openstudio-standards/btap/attributes.rb +166 -0
  28. data/lib/openstudio-standards/btap/bridging.rb +561 -1402
  29. data/lib/openstudio-standards/btap/btap.rb +4 -2
  30. data/lib/openstudio-standards/btap/btap_test_helper.rb +86 -0
  31. data/lib/openstudio-standards/btap/carbon/btap_carbon.rb +177 -0
  32. data/lib/openstudio-standards/btap/common_paths.rb +81 -0
  33. data/lib/openstudio-standards/btap/common_resources/ConstructionProperties.csv +52 -0
  34. data/lib/openstudio-standards/btap/common_resources/Constructions.csv +37 -0
  35. data/lib/openstudio-standards/btap/common_resources/carbon_frame.csv +35 -0
  36. data/lib/openstudio-standards/btap/common_resources/carbon_glazing.csv +35 -0
  37. data/lib/openstudio-standards/btap/common_resources/carbon_opaque.csv +164 -0
  38. data/lib/openstudio-standards/btap/common_resources/construction_sets.csv +1270 -0
  39. data/lib/openstudio-standards/btap/common_resources/constructions_glazing.csv +121 -0
  40. data/lib/openstudio-standards/btap/common_resources/constructions_opaque.csv +2256 -0
  41. data/lib/openstudio-standards/btap/common_resources/costs.csv +1897 -0
  42. data/lib/openstudio-standards/btap/common_resources/costs_local_factors.csv +2315 -0
  43. data/lib/openstudio-standards/btap/common_resources/hvac_vent_ahu.csv +925 -0
  44. data/lib/openstudio-standards/btap/common_resources/lighting.csv +364 -0
  45. data/lib/openstudio-standards/btap/common_resources/lighting_sets.csv +2667 -0
  46. data/lib/openstudio-standards/btap/common_resources/locations.csv +75 -0
  47. data/lib/openstudio-standards/btap/common_resources/materials_glazing.csv +35 -0
  48. data/lib/openstudio-standards/btap/common_resources/materials_hvac.csv +1686 -0
  49. data/lib/openstudio-standards/btap/common_resources/materials_lighting.csv +267 -0
  50. data/lib/openstudio-standards/btap/common_resources/materials_opaque.csv +164 -0
  51. data/lib/openstudio-standards/btap/costing/README.md +502 -0
  52. data/lib/openstudio-standards/btap/costing/btap_costing.rb +469 -0
  53. data/lib/openstudio-standards/btap/costing/btap_measure_helper.rb +359 -0
  54. data/lib/openstudio-standards/btap/costing/btap_workflow.rb +117 -0
  55. data/lib/openstudio-standards/btap/costing/copy_test_results_files_to_expected_results.rb +11 -0
  56. data/lib/openstudio-standards/btap/costing/cost_building_from_file.rb +136 -0
  57. data/lib/openstudio-standards/btap/costing/costing_database_wrapper.rb +173 -0
  58. data/lib/openstudio-standards/btap/costing/daylighting_sensor_control_costing.rb +354 -0
  59. data/lib/openstudio-standards/btap/costing/dcv_costing.rb +314 -0
  60. data/lib/openstudio-standards/btap/costing/dummy.epw +8768 -0
  61. data/lib/openstudio-standards/btap/costing/dummy.osm +5320 -0
  62. data/lib/openstudio-standards/btap/costing/envelope_costing.rb +215 -0
  63. data/lib/openstudio-standards/btap/costing/heating_cooling_costing.rb +2584 -0
  64. data/lib/openstudio-standards/btap/costing/led_lighting_costing.rb +156 -0
  65. data/lib/openstudio-standards/btap/costing/lighting_costing.rb +209 -0
  66. data/lib/openstudio-standards/btap/costing/mech_sizing.json +502 -0
  67. data/lib/openstudio-standards/btap/costing/neb_end_use_prices.csv +42 -0
  68. data/lib/openstudio-standards/btap/costing/necb_2011_spacetype_info.csv +225 -0
  69. data/lib/openstudio-standards/btap/costing/necb_reference_runs.csv +28705 -0
  70. data/lib/openstudio-standards/btap/costing/nv_costing.rb +547 -0
  71. data/lib/openstudio-standards/btap/costing/parallel_tests.rb +92 -0
  72. data/lib/openstudio-standards/btap/costing/pv_ground_costing.rb +687 -0
  73. data/lib/openstudio-standards/btap/costing/shw_costing.rb +705 -0
  74. data/lib/openstudio-standards/btap/costing/test_list.txt +15 -0
  75. data/lib/openstudio-standards/btap/costing/test_run_all_test_locally.rb +27 -0
  76. data/lib/openstudio-standards/btap/costing/test_run_costing_tests.rb +80 -0
  77. data/lib/openstudio-standards/btap/costing/ventilation_costing.rb +2616 -0
  78. data/lib/openstudio-standards/btap/geometry.rb +86 -6
  79. data/lib/openstudio-standards/btap/structure.rb +657 -0
  80. data/lib/openstudio-standards/constructions/modify.rb +2 -1
  81. data/lib/openstudio-standards/create_typical/create_typical.rb +17 -33
  82. data/lib/openstudio-standards/create_typical/space_type_ratios.rb +36 -36
  83. data/lib/openstudio-standards/equipment/create_transformer.rb +104 -0
  84. data/lib/openstudio-standards/equipment/create_typical_equipment.rb +117 -0
  85. data/lib/openstudio-standards/equipment/data/electric_equipment_space_types.json +1514 -0
  86. data/lib/openstudio-standards/equipment/data/gas_equipment_space_types.json +227 -0
  87. data/lib/openstudio-standards/exterior_lighting/create.rb +22 -22
  88. data/lib/openstudio-standards/exterior_lighting/information.rb +3 -2
  89. data/lib/openstudio-standards/hvac/components/air_conditioner_vrf.rb +482 -0
  90. data/lib/openstudio-standards/hvac/components/air_terminal.rb +31 -0
  91. data/lib/openstudio-standards/hvac/components/boiler_hot_water.rb +163 -0
  92. data/lib/openstudio-standards/hvac/components/central_air_source_heat_pump.rb +220 -0
  93. data/lib/openstudio-standards/hvac/components/chiller.rb +25 -0
  94. data/lib/openstudio-standards/hvac/components/coil.rb +276 -0
  95. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_multi_speed.rb +40 -0
  96. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_single_speed.rb +300 -0
  97. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_two_speed.rb +187 -0
  98. data/lib/openstudio-standards/hvac/components/coil_cooling_water.rb +80 -0
  99. data/lib/openstudio-standards/hvac/components/coil_cooling_water_to_air_heat_pump_equation_fit.rb +182 -0
  100. data/lib/openstudio-standards/hvac/components/coil_heating_dx_single_speed.rb +220 -0
  101. data/lib/openstudio-standards/hvac/components/coil_heating_electric.rb +56 -0
  102. data/lib/openstudio-standards/hvac/components/coil_heating_gas.rb +90 -0
  103. data/lib/openstudio-standards/hvac/components/coil_heating_gas_multi_stage.rb +33 -0
  104. data/lib/openstudio-standards/hvac/components/coil_heating_water.rb +98 -0
  105. data/lib/openstudio-standards/hvac/components/coil_heating_water_to_air_heat_pump_equation_fit.rb +147 -0
  106. data/lib/openstudio-standards/hvac/components/component.rb +39 -0
  107. data/lib/openstudio-standards/{standards/ashrae_90_1/data/ashrae_90_1.fans.json → hvac/components/data/fans.json} +6 -6
  108. data/lib/openstudio-standards/hvac/components/fan.rb +363 -0
  109. data/lib/openstudio-standards/hvac/components/heat_exchanger_air_to_air.rb +203 -0
  110. data/lib/openstudio-standards/hvac/components/pump.rb +181 -0
  111. data/lib/openstudio-standards/hvac/controls/radiant_system_controls.rb +594 -0
  112. data/lib/openstudio-standards/hvac/conversions.rb +222 -0
  113. data/lib/openstudio-standards/hvac/curves.rb +192 -0
  114. data/lib/openstudio-standards/hvac/helpers.rb +357 -0
  115. data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +4 -4
  116. data/lib/openstudio-standards/interior_lighting/create_lights.rb +52 -0
  117. data/lib/openstudio-standards/interior_lighting/create_typical_interior_lighting.rb +254 -0
  118. data/lib/openstudio-standards/interior_lighting/data/convert_lighting_data.rb +249 -0
  119. data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.csv +96 -0
  120. data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.json +1429 -0
  121. data/lib/openstudio-standards/interior_lighting/data/lighting_technology.csv +46 -0
  122. data/lib/openstudio-standards/interior_lighting/data/lighting_technology.json +859 -0
  123. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  124. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  125. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  126. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -4
  127. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  128. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -4
  129. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  130. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  131. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +6 -7
  132. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +15 -15
  133. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +4 -4
  134. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +5 -5
  135. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +6 -6
  136. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +7 -7
  137. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +4 -4
  138. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +6 -6
  139. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +5 -1
  140. data/lib/openstudio-standards/prototypes/common/data/prototype_space_type_map.json +2594 -0
  141. data/lib/openstudio-standards/prototypes/common/data/thermostat_schedule_lookup.json +2108 -0
  142. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +33 -0
  143. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +0 -140
  144. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -73
  145. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -69
  146. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +0 -116
  147. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +0 -61
  148. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +2 -2
  149. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +128 -13
  150. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +606 -607
  151. data/lib/openstudio-standards/prototypes/common/prototype_space_type_map.rb +41 -0
  152. data/lib/openstudio-standards/prototypes/common/space_type_equipment_map.rb +184 -0
  153. data/lib/openstudio-standards/prototypes/common/space_type_thermostat_schedule_map.rb +116 -0
  154. data/lib/openstudio-standards/qaqc/hvac.rb +12 -12
  155. data/lib/openstudio-standards/refrigeration/create_compressor.rb +2 -5
  156. data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +4 -4
  157. data/lib/openstudio-standards/service_water_heating/create_water_heater.rb +1 -2
  158. data/lib/openstudio-standards/service_water_heating/create_water_use.rb +5 -5
  159. data/lib/openstudio-standards/space_type/data/level_1_space_types.json +612 -0
  160. data/lib/openstudio-standards/space_type/standards_space_type.rb +53 -0
  161. data/lib/openstudio-standards/standards/Standards.AirConditionerVariableRefrigerantFlow.rb +8 -26
  162. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +13 -13
  163. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +0 -24
  164. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +6 -43
  165. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +7 -24
  166. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +19 -44
  167. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +25 -50
  168. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +25 -33
  169. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +9 -22
  170. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +15 -157
  171. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +2 -2
  172. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +18 -105
  173. data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +3 -23
  174. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +0 -24
  175. data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -86
  176. data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +0 -107
  177. data/lib/openstudio-standards/standards/Standards.Model.rb +45 -20
  178. data/lib/openstudio-standards/standards/Standards.People.rb +113 -0
  179. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +11 -11
  180. data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -147
  181. data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +57 -41
  182. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +30 -153
  183. data/lib/openstudio-standards/standards/Standards.Ventilation.rb +74 -0
  184. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +1 -1
  185. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +4 -4
  186. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +3 -3
  187. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +37 -112
  188. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.spc_typ.json +37 -102
  189. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +3 -3
  190. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +37 -112
  191. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  192. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.spc_typ.json +37 -37
  193. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +6 -6
  194. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +37 -37
  195. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  196. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.BoilerHotWater.rb +1 -1
  197. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.spc_typ.json +37 -102
  198. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +6 -6
  199. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +37 -37
  200. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  201. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.BoilerHotWater.rb +1 -1
  202. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.spc_typ.json +45 -109
  203. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +6 -6
  204. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +37 -37
  205. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +1 -1
  206. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  207. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.BoilerHotWater.rb +1 -1
  208. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoilHeatingGas.rb +1 -1
  209. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.spc_typ.json +45 -109
  210. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +6 -6
  211. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +37 -37
  212. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +0 -200
  213. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.spc_typ.json +37 -37
  214. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +37 -37
  215. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.spc_typ.json +37 -37
  216. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +37 -37
  217. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  218. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +5 -5
  219. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  220. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +5 -5
  221. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +1 -1
  222. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +2 -2
  223. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +2 -68
  224. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +2 -35
  225. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +42 -0
  226. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +5 -2
  227. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +2 -2
  228. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +2 -2
  229. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +3 -3
  230. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +1 -1
  231. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +1 -0
  232. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb +2 -4
  233. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.curves.json +0 -200
  234. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.fans.json +5 -5
  235. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +7 -1
  236. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +0 -1
  237. data/lib/openstudio-standards/standards/cbes/data/cbes.curves.json +0 -200
  238. data/lib/openstudio-standards/standards/deer/data/deer.curves.json +0 -200
  239. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +21 -37
  240. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +12 -11
  241. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +68 -27
  242. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +64 -25
  243. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +9 -14
  244. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +4 -4
  245. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +1 -1
  246. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +115 -112
  247. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +637 -249
  248. data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +16 -12
  249. data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +799 -46
  250. data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +33 -51
  251. data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +75 -7
  252. data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +25 -1
  253. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/HighriseApartmentMult.osm +14272 -0
  254. data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps_heating.json +21 -15
  255. data/lib/openstudio-standards/standards/necb/NECB2011/data/necb_2015_table_c1.json +1 -1
  256. data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +437 -437
  257. data/lib/openstudio-standards/standards/necb/NECB2011/data/systems.json +516 -0
  258. data/lib/openstudio-standards/standards/necb/NECB2011/data/systems_including_sys5.json +588 -0
  259. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_namer.rb +489 -0
  260. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +18 -6
  261. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +48 -5
  262. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +2 -2
  263. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +35 -27
  264. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +34 -23
  265. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +8 -6
  266. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +68 -150
  267. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +444 -134
  268. data/lib/openstudio-standards/standards/necb/NECB2011/system_fuels.rb +61 -1
  269. data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps_heating.json +10 -2
  270. data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +636 -636
  271. data/lib/openstudio-standards/standards/necb/NECB2015/data/unitary_acs.json +38 -38
  272. data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +17 -8
  273. data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +636 -636
  274. data/lib/openstudio-standards/standards/necb/NECB2020/data/chillers.json +71 -71
  275. data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +16 -6
  276. data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +60 -61
  277. data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +30 -30
  278. data/lib/openstudio-standards/standards/necb/README.md +343 -0
  279. data/lib/openstudio-standards/standards/necb/common/btap_analysis.rb +79 -0
  280. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +206 -32
  281. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +75 -43
  282. data/lib/openstudio-standards/standards/necb/common/eccc_electric_grid_intensity_20250311.csv +14 -0
  283. data/lib/openstudio-standards/standards/necb/common/nir_gas_grid_intensity_20250311.csv +14 -0
  284. data/lib/openstudio-standards/standards/necb/common/system_types.yaml +0 -0
  285. data/lib/openstudio-standards/thermal_zone/{thermal_zone.rb → information.rb} +12 -45
  286. data/lib/openstudio-standards/thermal_zone/thermostat_schedules.rb +152 -0
  287. data/lib/openstudio-standards/utilities/logging.rb +18 -14
  288. data/lib/openstudio-standards/version.rb +1 -1
  289. data/lib/openstudio-standards/weather/modify.rb +2 -2
  290. data/lib/openstudio-standards/weather/stat_file.rb +2 -2
  291. data/lib/openstudio-standards.rb +67 -38
  292. metadata +141 -50
  293. data/lib/openstudio-standards/hvac/components/create.rb +0 -169
  294. data/lib/openstudio-standards/hvac/components/modify.rb +0 -42
  295. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +0 -438
  296. data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +0 -123
  297. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +0 -216
  298. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +0 -273
  299. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +0 -159
  300. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +0 -77
  301. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +0 -154
  302. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +0 -214
  303. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +0 -53
  304. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +0 -72
  305. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +0 -95
  306. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +0 -125
  307. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +0 -17
  308. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.transformers.rb +0 -90
  309. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +0 -4
  310. data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +0 -70
  311. data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +0 -590
  312. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +0 -901
  313. data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -5
  314. data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -5
  315. data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -5
  316. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +0 -5
  317. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +0 -55
  318. data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -5
  319. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +0 -5
  320. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +0 -5
  321. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanZoneExhaust.rb +0 -5
  322. data/lib/openstudio-standards/standards/cbes/data/cbes.fans.json +0 -328
  323. data/lib/openstudio-standards/standards/deer/data/deer.fans.json +0 -328
  324. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +0 -0
  325. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +0 -0
  326. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +0 -0
  327. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +0 -0
  328. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +0 -0
  329. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Pump.rb +0 -0
  330. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +0 -0
@@ -0,0 +1,343 @@
1
+ # NECB (National Energy Code for Buildings) Standards
2
+
3
+ ## Overview
4
+
5
+ The NECB (National Energy Code for Buildings) standards module provides comprehensive implementation of Canadian building energy codes. This module represents one of the most complete implementations of a national building energy standard, covering multiple versions of the Canadian National Energy Code for Buildings, vintage building standards, and energy conservation measures.
6
+
7
+ ## Architecture
8
+
9
+ The NECB module is organized into four main categories:
10
+
11
+ 1. **NECB Standard Versions** (2011, 2015, 2017, 2020)
12
+ 2. **BTAP Vintage Standards** (Pre-1980, 1980-2010)
13
+ 3. **Energy Conservation Measures (ECMS)**
14
+ 4. **Shared Resources** (Common data, documentation, QAQC)
15
+
16
+ ## NECB Standard Versions
17
+
18
+ ### NECB2011 - Foundation Implementation
19
+
20
+ #### Core Module: `necb_2011.rb`
21
+ **Most comprehensive NECB implementation with full building system coverage**
22
+
23
+ **Key Features:**
24
+ - Complete climate zone implementation for Canada (8 climate zones)
25
+ - All 8 HVAC system types with both single-speed and multi-speed variants
26
+ - Comprehensive building envelope requirements
27
+ - LED lighting compliance and occupancy sensor controls
28
+ - Service water heating system requirements
29
+ - BEPS (Building Energy Performance Standards) compliance pathways
30
+ - Thermal bridging calculations (TBD integration)
31
+ - Quality assurance and quality control (QAQC) framework
32
+
33
+ **Major Subsystems:**
34
+
35
+ ##### HVAC Systems (`hvac_system_*.rb`)
36
+ - **System 1**: Single Zone systems (`hvac_system_1_single_speed.rb`, `hvac_system_1_multi_speed.rb`)
37
+ - **Systems 2 & 5**: Multi-zone VAV systems (`hvac_system_2_and_5.rb`)
38
+ - **Systems 3 & 8**: Single zone heat pumps (`hvac_system_3_and_8_single_speed.rb`, `hvac_system_3_and_8_multi_speed.rb`)
39
+ - **System 4**: Multi-zone VAV with reheat (`hvac_system_4.rb`)
40
+ - **System 6**: Multi-zone VAV with PFP boxes (`hvac_system_6.rb`)
41
+ - **General**: `hvac_systems.rb`, `hvac_namer.rb`
42
+
43
+ ##### Building Systems
44
+ - **Envelope**: `building_envelope.rb` - Comprehensive building envelope requirements
45
+ - **Lighting**: `lighting.rb` - Interior lighting power density and controls
46
+ - **Service Water Heating**: `service_water_heating.rb` - Hot water system efficiency requirements
47
+ - **Electrical**: `electrical_power_systems_and_motors.rb` - Motor efficiency requirements
48
+
49
+ ##### Specialized Features
50
+ - **Auto-zoning**: `autozone.rb` - Automated thermal zone creation
51
+ - **System Fuels**: `system_fuels.rb` - Fuel type selection and mapping
52
+ - **BEPS Compliance**: `beps_compliance_path.rb` - Building Energy Performance Standards
53
+
54
+ ##### Data Resources (`data/`)
55
+ **Extensive JSON database covering:**
56
+ - **Climate & Geography**: `climate_zone_sets.json`, `province_map.json`
57
+ - **Building Envelope**: `materials.json`, `surface_thermal_transmittance.json`
58
+ - **HVAC Equipment**: `boilers.json`, `chillers.json`, `furnaces.json`, `heat_pumps.json`, `unitary_acs.json`
59
+ - **System Selection**: `systems.json`, `necb_hvac_system_selection_type.json`
60
+ - **Energy Efficiency**: `motors.json`, `heat_rejection.json`, `erv.json`
61
+ - **Building Types**: `space_types.json`, `prototype_inputs.json`
62
+ - **Lighting**: `led_lighting_data.json`
63
+ - **Economics**: `regional_fuel_use.json`
64
+ - **Reference Data**: `necb_2015_table_c1.json`, `constants.json`, `formulas.json`
65
+
66
+ ##### Quality Assurance (`qaqc/`)
67
+ - **Main Module**: `necb_qaqc.rb` - Comprehensive model validation
68
+ - **Resources**: `qaqc_resources/` - Reference data for validation
69
+ - **Data**: `qaqc_data/` - Expected results for testing
70
+
71
+ ### NECB2015 - Enhanced Version
72
+
73
+ #### Core Module: `necb_2015.rb`
74
+ **Updated NECB implementation with enhanced lighting and HVAC systems**
75
+
76
+ **Key Improvements over 2011:**
77
+ - Enhanced lighting power density requirements
78
+ - Updated HVAC system efficiency requirements
79
+ - Refined control strategies
80
+
81
+ **Modules:**
82
+ - **Lighting**: `lighting.rb` - Updated lighting requirements
83
+ - **HVAC**: `hvac_systems.rb` - Enhanced system implementations
84
+ - **QAQC**: `qaqc/necb_2015_qaqc.rb` - Version-specific validation
85
+
86
+ ### NECB2017 - System Updates
87
+
88
+ #### Core Module: `necb_2017.rb`
89
+ **Newer version focusing on HVAC system improvements**
90
+
91
+ **Key Features:**
92
+ - Updated HVAC system requirements
93
+ - Enhanced system control strategies
94
+ - Refined equipment efficiency requirements
95
+
96
+ **Modules:**
97
+ - **HVAC**: `hvac_systems.rb` - Updated system implementations
98
+
99
+ ### NECB2020 - Latest Version
100
+
101
+ #### Core Module: `necb_2020.rb`
102
+ **Latest NECB implementation with building envelope and service water heating improvements**
103
+
104
+ **Key Features:**
105
+ - Enhanced building envelope performance requirements
106
+ - Updated service water heating efficiency standards
107
+ - Latest building code compliance requirements
108
+
109
+ **Modules:**
110
+ - **Envelope**: `building_envelope.rb` - Updated envelope requirements
111
+ - **Service Water Heating**: `service_water_heating.rb` - Enhanced efficiency requirements
112
+
113
+ ## BTAP Vintage Standards
114
+
115
+ ### BTAPPRE1980 - Pre-1980 Building Standards
116
+
117
+ #### Core Module: `btap_pre1980.rb`
118
+ **Building performance standards for buildings constructed before 1980**
119
+
120
+ **Purpose:** Historical building analysis and retrofit potential assessment
121
+
122
+ **Key Features:**
123
+ - Legacy building envelope performance levels
124
+ - Historical HVAC system types and efficiencies
125
+ - Vintage building infiltration rates
126
+ - Baseline performance for retrofit analysis
127
+
128
+ **Modules:**
129
+ - **Envelope**: `building_envelope.rb` - Pre-1980 construction standards
130
+ - **HVAC Systems**: Multiple system files for historical equipment types
131
+ - **Data**: `data/` - Historical performance data
132
+
133
+ ### BTAP1980TO2010 - Transitional Period Standards
134
+
135
+ #### Core Module: `btap_1980to2010.rb`
136
+ **Building standards for the 1980-2010 construction period**
137
+
138
+ **Purpose:** Bridge between historical and modern building standards
139
+
140
+ **Key Features:**
141
+ - Transitional building envelope requirements
142
+ - Equipment efficiency improvements over pre-1980 era
143
+ - Building code evolution tracking
144
+
145
+ ## Energy Conservation Measures (ECMS)
146
+
147
+ ### ECMS Framework (`ECMS/`)
148
+
149
+ #### Core Module: `ecms.rb`
150
+ **Energy Conservation Measures implementation framework**
151
+
152
+ **Purpose:** Systematic evaluation and implementation of building energy efficiency measures
153
+
154
+ **Key ECM Categories:**
155
+
156
+ ##### HVAC ECMs (`hvac_systems.rb`)
157
+ - Advanced HVAC system configurations
158
+ - High-efficiency equipment options
159
+ - System optimization strategies
160
+
161
+ ##### Energy Recovery Ventilation (`erv.rb`)
162
+ - Energy recovery ventilator implementation
163
+ - Heat recovery system integration
164
+ - Ventilation system optimization
165
+
166
+ ##### Natural Ventilation (`nv.rb`)
167
+ - Natural ventilation strategies
168
+ - Mixed-mode system implementation
169
+ - Climate-responsive ventilation control
170
+
171
+ ##### Renewable Energy (`pv_ground.rb`)
172
+ - Ground-mounted photovoltaic systems
173
+ - Solar energy integration
174
+ - On-site renewable energy generation
175
+
176
+ ##### Load Optimization (`loads.rb`)
177
+ - Building load reduction strategies
178
+ - Equipment efficiency improvements
179
+ - Operational optimization measures
180
+
181
+ ##### Data Resources (`data/`)
182
+ - ECM performance data
183
+ - Cost-benefit analysis parameters
184
+ - Implementation guidelines
185
+
186
+ ## Shared Resources
187
+
188
+ ### Common Data and Utilities (`common/`)
189
+
190
+ #### BTAP Integration
191
+ - **`btap_datapoint.rb`**: Large-scale building analysis utilities
192
+ - **`btap_data.rb`**: Common BTAP data handling functions
193
+
194
+ #### Economic and Environmental Data
195
+ - **`national_carbon_price_sched_feb_2025.json`**: Canadian carbon pricing schedules
196
+ - **`utility_pricing_2025-02-20.csv`**: Canadian utility rate data
197
+ - **`neb_end_use_prices.csv`**: End-use energy pricing
198
+ - **`eccc_electric_grid_intensity_20250311.csv`**: Electric grid emissions factors
199
+ - **`nir_gas_grid_intensity_20250311.csv`**: Natural gas grid emissions factors
200
+
201
+ #### Reference Data
202
+ - **`necb_reference_runs.csv`**: Reference building performance data
203
+ - **`space_type_upgrade_map.json`**: Space type transformation mappings
204
+ - **`system_types.yaml`**: HVAC system type definitions
205
+ - **`construction_defaults.osm`**: Default construction assemblies
206
+
207
+ #### Documentation (`docs/`)
208
+ - **`air_system_names_method.md`**: Air system naming conventions
209
+
210
+ #### Specialized Resources
211
+ - **`phius.md`**: Passive House Institute US integration notes
212
+ - **`bc_step_code_indicators.md`**: British Columbia Step Code compliance
213
+
214
+ ## Key Features and Capabilities
215
+
216
+ ### Climate Zone Implementation
217
+ - **8 Canadian Climate Zones**: Complete implementation from Zone 4 (warmest) to Zone 8 (coldest)
218
+ - **Provincial Mapping**: Automatic climate zone determination by province and city
219
+ - **Weather Data Integration**: Seamless integration with Canadian weather files
220
+
221
+ ### HVAC System Types
222
+ **Complete implementation of all 8 NECB system types:**
223
+
224
+ 1. **System 1**: Residential/Small Commercial (≤ 25,000 ft²)
225
+ 2. **System 2**: Multi-zone VAV with reheat
226
+ 3. **System 3**: Single-zone heat pump
227
+ 4. **System 4**: VAV with reheat (large buildings)
228
+ 5. **System 5**: Packaged VAV with reheat
229
+ 6. **System 6**: VAV with PFP boxes and reheat
230
+ 7. **System 7**: VAV with hot water reheat
231
+ 8. **System 8**: VAV with electric reheat
232
+
233
+ **Each system type includes:**
234
+ - Single-speed and multi-speed equipment options
235
+ - Appropriate control strategies
236
+ - Equipment sizing and selection
237
+ - Energy efficiency requirements
238
+
239
+ ### Building Performance Standards (BEPS)
240
+ - **Performance Path Compliance**: Alternative compliance using energy modeling
241
+ - **Prescriptive Path Integration**: Seamless integration with prescriptive requirements
242
+ - **Trade-off Analysis**: Building component performance trade-offs
243
+ - **Compliance Reporting**: Automated compliance documentation
244
+
245
+ ### Advanced Features
246
+
247
+ #### Thermal Bridging Integration
248
+ - **TBD Integration**: Heat transfer through thermal bridges
249
+ - **Detailed Heat Transfer**: Beyond simple assembly U-values
250
+ - **Whole Building Performance**: Complete thermal performance assessment
251
+
252
+ #### LED Lighting Compliance
253
+ - **Power Density Requirements**: Automatic lighting power density calculations
254
+ - **Control Integration**: Occupancy sensor and daylight dimming controls
255
+ - **Compliance Verification**: Automated lighting compliance checking
256
+
257
+ #### Quality Assurance Framework
258
+ - **Comprehensive QAQC**: Model validation and quality checking
259
+ - **Expected Results Testing**: Comparison against reference buildings
260
+ - **Performance Verification**: Energy use intensity and component performance validation
261
+
262
+ ### Canadian-Specific Features
263
+
264
+ #### Provincial Integration
265
+ - **Provincial Fuel Mapping**: Province-specific fuel type availability
266
+ - **Utility Rate Integration**: Provincial electricity and gas rate structures
267
+ - **Climate Data**: Canadian weather station integration
268
+
269
+ #### Economic Analysis
270
+ - **Regional Cost Factors**: Provincial and regional cost adjustments
271
+ - **Carbon Pricing**: Integration with Canadian carbon pricing policies
272
+ - **Lifecycle Cost Analysis**: Complete economic analysis framework
273
+
274
+ ## Usage Patterns
275
+
276
+ ### Typical Implementation Workflow
277
+
278
+ 1. **Standard Selection**: Choose appropriate NECB version (2011, 2015, 2017, 2020)
279
+ 2. **Climate Zone Determination**: Automatic based on building location
280
+ 3. **System Type Selection**: Based on building type and size
281
+ 4. **Component Specification**: Apply standard-specific requirements
282
+ 5. **Performance Verification**: QAQC validation and compliance checking
283
+
284
+ ### ECM Evaluation Process
285
+
286
+ 1. **Baseline Model**: Create NECB-compliant baseline
287
+ 2. **ECM Selection**: Choose from available energy conservation measures
288
+ 3. **Performance Modeling**: Model ECM implementation
289
+ 4. **Economic Analysis**: Cost-benefit analysis using Canadian data
290
+ 5. **Optimization**: Identify optimal ECM combinations
291
+
292
+ ### Integration Points
293
+
294
+ - **BTAP Framework**: Complete integration with BTAP costing and analysis
295
+ - **OpenStudio Standards**: Seamless integration with base standards framework
296
+ - **Canadian Data**: Weather, utility, and economic data integration
297
+
298
+ ## Dependencies
299
+
300
+ ### Internal Dependencies
301
+ - **Base Standards Framework**: Inherits from OpenStudio-Standards base classes
302
+ - **BTAP Integration**: Extensive integration with BTAP utilities and costing
303
+ - **Common Utilities**: Uses shared utility functions and data structures
304
+
305
+ ### External Dependencies
306
+ - **OpenStudio SDK**: Building energy modeling capabilities
307
+ - **EnergyPlus**: Energy simulation engine
308
+ - **TBD**: Thermal bridging analysis (optional)
309
+
310
+ ### Data Dependencies
311
+ - **Canadian Weather Data**: Environment and Climate Change Canada weather files
312
+ - **Economic Data**: Statistics Canada and provincial utility data
313
+ - **Building Code Data**: National Research Council of Canada standards
314
+
315
+ ## Development and Maintenance
316
+
317
+ ### Version Evolution
318
+ - **NECB2011**: Foundation implementation (most complete)
319
+ - **NECB2015**: Lighting and HVAC updates
320
+ - **NECB2017**: System control improvements
321
+ - **NECB2020**: Envelope and service water heating updates
322
+
323
+ ### Testing Framework
324
+ - **Reference Buildings**: Comprehensive test suite using Canadian reference buildings
325
+ - **Regression Testing**: Automated testing against expected results
326
+ - **Compliance Verification**: Validation against published code requirements
327
+
328
+ ### Maintenance Considerations
329
+ - **Code Updates**: Regular updates to reflect changes in Canadian building codes
330
+ - **Data Updates**: Annual updates to utility rates, carbon pricing, and cost data
331
+ - **Weather Data**: Updates to Canadian weather files as available
332
+
333
+ ## Canadian Building Code Context
334
+
335
+ The NECB standards module provides the most comprehensive implementation of Canadian building energy requirements available in any building energy modeling tool. It reflects the unique aspects of Canadian building codes:
336
+
337
+ - **Climate-Based Requirements**: Robust climate zone implementation
338
+ - **System Type Flexibility**: Complete range of HVAC system options
339
+ - **Performance-Based Compliance**: Both prescriptive and performance path options
340
+ - **Provincial Variations**: Accommodation of provincial building code differences
341
+ - **Economic Integration**: Canadian-specific cost and economic data
342
+
343
+ This makes the NECB module essential for any building energy analysis work in Canada.
@@ -0,0 +1,79 @@
1
+ require 'openstudio'
2
+
3
+ # BTAP Analysis:
4
+ # Class to instantiate post-analysis mechanisms like costing or carbon
5
+ # calculation.
6
+ # Can be done during a simulation or without one given an OSM file and its SQL
7
+ # file, along with a few other parameters.
8
+
9
+ # Abstract class, only instantiate BTAPNoSimAnalysis or BTAPDatapointAnalysis.
10
+ class BTAPAnalysis
11
+ def initialize(output_folder:, template:)
12
+ @output_folder = output_folder
13
+ @template = template
14
+ @cp = CommonPaths.instance
15
+ end
16
+
17
+ def run_costing(costs_csv: @cp.costs_path, factors_csv: @cp.costs_local_factors_path)
18
+ costing = BTAPCosting.new(costs_csv: costs_csv, factors_csv: factors_csv, attributes: @attributes)
19
+
20
+ cost_result, btap_items = costing.cost_audit_all(
21
+ model: @model,
22
+ prototype_creator: @standard,
23
+ template_type: @template)
24
+
25
+ if not @qaqc.nil?
26
+ @qaqc[:costing_information] = cost_result
27
+ end
28
+
29
+ # disable openstudio-version; for debugging only
30
+ # cost_result["openstudio-version"] = OpenstudioStandards::VERSION
31
+ File.open(File.join(@output_folder, 'cost_results.json'), 'w') do |f|
32
+ f.write(JSON.pretty_generate(cost_result, allow_nan: true))
33
+ end
34
+ puts "Wrote File cost_results.json in #{@output_folder} "
35
+
36
+ return cost_result
37
+ end
38
+
39
+ def run_carbon
40
+ carbon = BTAPCarbon.new(attributes: @attributes, standards_data: @standard.standards_data)
41
+ carbon_result = carbon.audit_embodied_carbon
42
+
43
+ if not @qaqc.nil?
44
+ @qaqc[:carbon_information] = carbon_result
45
+ end
46
+
47
+ File.open(File.join(@output_folder, 'carbon_results.json'), 'w') do |f|
48
+ f.write(JSON.pretty_generate(carbon_result, allow_nan: true))
49
+ end
50
+ puts "Wrote File carbon_results.json in #{@output_folder} "
51
+
52
+ return carbon_result
53
+ end
54
+ end
55
+
56
+ # For a no-simulation run, the SQL file, template, and datapoint ID must be provided.
57
+ class BTAPNoSimAnalysis < BTAPAnalysis
58
+ def initialize(model_path:, sql_file_path:, output_folder:, template:, datapoint_id:, analysis_id: SecureRandom.uuid)
59
+ super(output_folder: output_folder, template: template)
60
+ @model = BTAP::FileIO.load_osm(model_path)
61
+ @template = template
62
+ @standard = Standard.build(template)
63
+ @datapoint_id = datapoint_id
64
+ @analysis_id = analysis_id
65
+ @attributes = BTAP::Attributes.new(@model, @standard)
66
+ @model.setSqlFile(OpenStudio::SqlFile.new(sql_file_path))
67
+ @qaqc = BTAPDatapoint.build_qaqc(@model, @standard, @datapoint_id, @analysis_id)
68
+ end
69
+ end
70
+
71
+ class BTAPDatapointAnalysis < BTAPAnalysis
72
+ def initialize(model:, output_folder:, template:, standard:, qaqc:)
73
+ super(output_folder: output_folder, template: template)
74
+ @model = model
75
+ @standard = standard
76
+ @qaqc = qaqc
77
+ @attributes = BTAP::Attributes.new(@model, @standard)
78
+ end
79
+ end