openstudio-standards 0.8.4 → 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 (289) 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/{costing/common_paths.rb → common_paths.rb} +14 -11
  33. data/lib/openstudio-standards/btap/common_resources/carbon_frame.csv +35 -0
  34. data/lib/openstudio-standards/btap/common_resources/carbon_glazing.csv +35 -0
  35. data/lib/openstudio-standards/btap/common_resources/carbon_opaque.csv +164 -0
  36. data/lib/openstudio-standards/btap/common_resources/constructions_glazing.csv +121 -0
  37. data/lib/openstudio-standards/btap/common_resources/costs.csv +1897 -0
  38. data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/lighting.csv +59 -59
  39. data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_hvac.csv +1019 -1032
  40. data/lib/openstudio-standards/btap/costing/btap_costing.rb +3 -7
  41. data/lib/openstudio-standards/btap/costing/costing_database_wrapper.rb +1 -5
  42. data/lib/openstudio-standards/btap/costing/daylighting_sensor_control_costing.rb +5 -4
  43. data/lib/openstudio-standards/btap/costing/dcv_costing.rb +1 -1
  44. data/lib/openstudio-standards/btap/costing/envelope_costing.rb +112 -181
  45. data/lib/openstudio-standards/btap/costing/heating_cooling_costing.rb +4 -4
  46. data/lib/openstudio-standards/btap/costing/led_lighting_costing.rb +2 -1
  47. data/lib/openstudio-standards/btap/costing/lighting_costing.rb +3 -3
  48. data/lib/openstudio-standards/btap/costing/test_list.txt +15 -17
  49. data/lib/openstudio-standards/btap/costing/test_run_all_test_locally.rb +10 -9
  50. data/lib/openstudio-standards/btap/geometry.rb +86 -6
  51. data/lib/openstudio-standards/btap/structure.rb +657 -0
  52. data/lib/openstudio-standards/create_typical/create_typical.rb +17 -33
  53. data/lib/openstudio-standards/create_typical/space_type_ratios.rb +36 -36
  54. data/lib/openstudio-standards/equipment/create_transformer.rb +104 -0
  55. data/lib/openstudio-standards/equipment/create_typical_equipment.rb +117 -0
  56. data/lib/openstudio-standards/equipment/data/electric_equipment_space_types.json +1514 -0
  57. data/lib/openstudio-standards/equipment/data/gas_equipment_space_types.json +227 -0
  58. data/lib/openstudio-standards/exterior_lighting/create.rb +22 -22
  59. data/lib/openstudio-standards/exterior_lighting/information.rb +3 -2
  60. data/lib/openstudio-standards/hvac/components/air_conditioner_vrf.rb +482 -0
  61. data/lib/openstudio-standards/hvac/components/air_terminal.rb +31 -0
  62. data/lib/openstudio-standards/hvac/components/boiler_hot_water.rb +163 -0
  63. data/lib/openstudio-standards/hvac/components/central_air_source_heat_pump.rb +220 -0
  64. data/lib/openstudio-standards/hvac/components/chiller.rb +25 -0
  65. data/lib/openstudio-standards/hvac/components/coil.rb +276 -0
  66. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_multi_speed.rb +40 -0
  67. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_single_speed.rb +300 -0
  68. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_two_speed.rb +187 -0
  69. data/lib/openstudio-standards/hvac/components/coil_cooling_water.rb +80 -0
  70. data/lib/openstudio-standards/hvac/components/coil_cooling_water_to_air_heat_pump_equation_fit.rb +182 -0
  71. data/lib/openstudio-standards/hvac/components/coil_heating_dx_single_speed.rb +220 -0
  72. data/lib/openstudio-standards/hvac/components/coil_heating_electric.rb +56 -0
  73. data/lib/openstudio-standards/hvac/components/coil_heating_gas.rb +90 -0
  74. data/lib/openstudio-standards/hvac/components/coil_heating_gas_multi_stage.rb +33 -0
  75. data/lib/openstudio-standards/hvac/components/coil_heating_water.rb +98 -0
  76. data/lib/openstudio-standards/hvac/components/coil_heating_water_to_air_heat_pump_equation_fit.rb +147 -0
  77. data/lib/openstudio-standards/hvac/components/component.rb +39 -0
  78. data/lib/openstudio-standards/{standards/ashrae_90_1/data/ashrae_90_1.fans.json → hvac/components/data/fans.json} +6 -6
  79. data/lib/openstudio-standards/hvac/components/fan.rb +363 -0
  80. data/lib/openstudio-standards/hvac/components/heat_exchanger_air_to_air.rb +203 -0
  81. data/lib/openstudio-standards/hvac/components/pump.rb +181 -0
  82. data/lib/openstudio-standards/hvac/controls/radiant_system_controls.rb +594 -0
  83. data/lib/openstudio-standards/hvac/conversions.rb +222 -0
  84. data/lib/openstudio-standards/hvac/curves.rb +192 -0
  85. data/lib/openstudio-standards/hvac/helpers.rb +357 -0
  86. data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +4 -4
  87. data/lib/openstudio-standards/interior_lighting/create_lights.rb +52 -0
  88. data/lib/openstudio-standards/interior_lighting/create_typical_interior_lighting.rb +254 -0
  89. data/lib/openstudio-standards/interior_lighting/data/convert_lighting_data.rb +249 -0
  90. data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.csv +96 -0
  91. data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.json +1429 -0
  92. data/lib/openstudio-standards/interior_lighting/data/lighting_technology.csv +46 -0
  93. data/lib/openstudio-standards/interior_lighting/data/lighting_technology.json +859 -0
  94. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  95. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  96. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  97. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -4
  98. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  99. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -4
  100. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  101. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  102. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +6 -7
  103. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +15 -15
  104. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +4 -4
  105. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +5 -5
  106. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +6 -6
  107. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +7 -7
  108. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +4 -4
  109. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +6 -6
  110. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +5 -1
  111. data/lib/openstudio-standards/prototypes/common/data/prototype_space_type_map.json +2594 -0
  112. data/lib/openstudio-standards/prototypes/common/data/thermostat_schedule_lookup.json +2108 -0
  113. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +33 -0
  114. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +0 -140
  115. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -73
  116. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -69
  117. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +0 -116
  118. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +0 -61
  119. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +2 -2
  120. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +128 -13
  121. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +606 -607
  122. data/lib/openstudio-standards/prototypes/common/prototype_space_type_map.rb +41 -0
  123. data/lib/openstudio-standards/prototypes/common/space_type_equipment_map.rb +184 -0
  124. data/lib/openstudio-standards/prototypes/common/space_type_thermostat_schedule_map.rb +116 -0
  125. data/lib/openstudio-standards/qaqc/hvac.rb +12 -12
  126. data/lib/openstudio-standards/refrigeration/create_compressor.rb +2 -5
  127. data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +4 -4
  128. data/lib/openstudio-standards/service_water_heating/create_water_heater.rb +1 -2
  129. data/lib/openstudio-standards/service_water_heating/create_water_use.rb +5 -5
  130. data/lib/openstudio-standards/space_type/data/level_1_space_types.json +612 -0
  131. data/lib/openstudio-standards/space_type/standards_space_type.rb +53 -0
  132. data/lib/openstudio-standards/standards/Standards.AirConditionerVariableRefrigerantFlow.rb +8 -26
  133. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +13 -13
  134. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +0 -24
  135. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +6 -43
  136. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +7 -24
  137. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +19 -44
  138. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +25 -50
  139. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +25 -33
  140. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +9 -22
  141. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +15 -157
  142. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +2 -2
  143. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +18 -105
  144. data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +3 -23
  145. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +0 -24
  146. data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -86
  147. data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +0 -107
  148. data/lib/openstudio-standards/standards/Standards.Model.rb +6 -11
  149. data/lib/openstudio-standards/standards/Standards.People.rb +113 -0
  150. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +11 -11
  151. data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -147
  152. data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +57 -41
  153. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +30 -153
  154. data/lib/openstudio-standards/standards/Standards.Ventilation.rb +74 -0
  155. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +1 -1
  156. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +4 -4
  157. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +3 -3
  158. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +37 -112
  159. 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
  160. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +3 -3
  161. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +37 -112
  162. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  163. 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
  164. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +6 -6
  165. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +37 -37
  166. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  167. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.BoilerHotWater.rb +1 -1
  168. 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
  169. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +6 -6
  170. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +37 -37
  171. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  172. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.BoilerHotWater.rb +1 -1
  173. 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
  174. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +6 -6
  175. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +37 -37
  176. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +1 -1
  177. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  178. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.BoilerHotWater.rb +1 -1
  179. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoilHeatingGas.rb +1 -1
  180. 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
  181. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +6 -6
  182. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +37 -37
  183. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +0 -200
  184. 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
  185. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +37 -37
  186. 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
  187. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +37 -37
  188. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  189. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +5 -5
  190. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  191. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +5 -5
  192. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +1 -1
  193. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +2 -2
  194. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +2 -68
  195. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +2 -35
  196. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +42 -0
  197. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +5 -2
  198. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +2 -2
  199. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +3 -3
  200. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +1 -1
  201. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +1 -0
  202. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb +2 -4
  203. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.curves.json +0 -200
  204. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.fans.json +5 -5
  205. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +1 -0
  206. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +0 -1
  207. data/lib/openstudio-standards/standards/cbes/data/cbes.curves.json +0 -200
  208. data/lib/openstudio-standards/standards/deer/data/deer.curves.json +0 -200
  209. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +19 -10
  210. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +12 -11
  211. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +4 -4
  212. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +1 -1
  213. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +69 -92
  214. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +2 -1
  215. data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +16 -12
  216. data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +799 -46
  217. data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +33 -51
  218. data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +32 -0
  219. data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +18 -0
  220. data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps_heating.json +21 -15
  221. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_namer.rb +5 -5
  222. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +2 -0
  223. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +30 -141
  224. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +233 -112
  225. data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps_heating.json +10 -2
  226. data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +2 -2
  227. data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +16 -6
  228. data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +60 -61
  229. data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +30 -30
  230. data/lib/openstudio-standards/standards/necb/common/btap_analysis.rb +79 -0
  231. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +16 -4
  232. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +65 -42
  233. data/lib/openstudio-standards/thermal_zone/{thermal_zone.rb → information.rb} +12 -45
  234. data/lib/openstudio-standards/thermal_zone/thermostat_schedules.rb +152 -0
  235. data/lib/openstudio-standards/version.rb +1 -1
  236. data/lib/openstudio-standards/weather/stat_file.rb +2 -2
  237. data/lib/openstudio-standards.rb +55 -38
  238. metadata +106 -66
  239. data/lib/openstudio-standards/btap/costing/common_resources/constructions_glazing.csv +0 -61
  240. data/lib/openstudio-standards/btap/costing/common_resources/costs.csv +0 -1904
  241. data/lib/openstudio-standards/hvac/components/create.rb +0 -169
  242. data/lib/openstudio-standards/hvac/components/modify.rb +0 -42
  243. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +0 -438
  244. data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +0 -123
  245. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +0 -216
  246. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +0 -273
  247. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +0 -159
  248. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +0 -77
  249. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +0 -154
  250. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +0 -214
  251. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +0 -53
  252. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +0 -72
  253. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +0 -95
  254. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +0 -125
  255. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +0 -17
  256. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.transformers.rb +0 -90
  257. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +0 -4
  258. data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +0 -70
  259. data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +0 -590
  260. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +0 -901
  261. data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -5
  262. data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -5
  263. data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -5
  264. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +0 -5
  265. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +0 -55
  266. data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -5
  267. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +0 -5
  268. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +0 -5
  269. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanZoneExhaust.rb +0 -5
  270. data/lib/openstudio-standards/standards/cbes/data/cbes.fans.json +0 -328
  271. data/lib/openstudio-standards/standards/deer/data/deer.fans.json +0 -328
  272. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/ConstructionProperties.csv +0 -0
  273. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/Constructions.csv +0 -0
  274. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/construction_sets.csv +0 -0
  275. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/constructions_opaque.csv +0 -0
  276. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/costs_local_factors.csv +0 -0
  277. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/hvac_vent_ahu.csv +0 -0
  278. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/lighting_sets.csv +0 -0
  279. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/locations.csv +0 -0
  280. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_glazing.csv +0 -0
  281. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_lighting.csv +0 -0
  282. /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_opaque.csv +0 -0
  283. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +0 -0
  284. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +0 -0
  285. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +0 -0
  286. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +0 -0
  287. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +0 -0
  288. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Pump.rb +0 -0
  289. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +0 -0
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************
2
- # * Copyright (c) 2008-2015, Natural Resources Canada
2
+ # * Copyright (c) 2008-2025, Natural Resources Canada
3
3
  # * All rights reserved.
4
4
  # *
5
5
  # * This library is free software; you can redistribute it and/or
@@ -22,7 +22,10 @@ require 'fileutils'
22
22
  require 'singleton'
23
23
  require 'find'
24
24
  require 'date'
25
+ require_relative 'attributes'
25
26
  require_relative 'fileio'
27
+ require_relative 'activity'
28
+ require_relative 'structure'
26
29
  require_relative 'geometry'
27
30
  require_relative 'envelope'
28
31
  require_relative 'bridging'
@@ -341,4 +344,3 @@ module BTAP
341
344
  end
342
345
  end
343
346
  #module BTAP
344
-
@@ -0,0 +1,86 @@
1
+ require 'fileutils'
2
+ require 'minitest'
3
+
4
+ # BTAPResultsHelper
5
+ # Helper methods for the BtapResults suite of tests.
6
+ class BTAPResultsHelper < Minitest::Test
7
+ @@cached = false
8
+
9
+ def initialize(test_path:, model_name:, run_dir:)
10
+ @test_path = File.expand_path(test_path)
11
+ @test_filename = File.basename(test_path, '.rb')
12
+ @model_name = model_name
13
+ @run_dir = File.expand_path(run_dir)
14
+ cached_folder = ""
15
+ @model_cached_path = cached_folder + "/output.osm"
16
+ @sql_cached_path = cached_folder + "/eplusout.sql"
17
+ end
18
+
19
+ class << self
20
+ def cached
21
+ return @@cached
22
+ end
23
+ end
24
+
25
+ def cache_osm_and_sql(model_path:, sql_path:)
26
+ FileUtils.cp(model_path, @model_cached_path)
27
+ FileUtils.cp(sql_path, @sql_cached_path)
28
+ end
29
+
30
+ def get_analysis(output_folder:, template:)
31
+ return BTAPNoSimAnalysis.new(
32
+ model_path: @model_cached_path,
33
+ sql_file_path: @sql_cached_path,
34
+ output_folder: output_folder,
35
+ template: template,
36
+ datapoint_id: 'test_run')
37
+ end
38
+
39
+ def evaluate_regression_files(test_instance:, cost_result:)
40
+ cost_result_json_path = "#{@run_dir}/cost_results.json"
41
+ cost_list_json_path = "#{@run_dir}/btap_items.json"
42
+ test_instance.assert(File.exist?(cost_result_json_path), "Could not find costing json at this path:#{cost_result_json_path}")
43
+ regression_files_folder = "#{File.dirname(@test_path)}/regression_files"
44
+ expected_result_filename = "#{regression_files_folder}/#{@model_name}_expected_result.cost.json"
45
+ test_result_filename = "#{regression_files_folder}/#{@model_name}_test_result.cost.json"
46
+
47
+ FileUtils.rm(test_result_filename) if File.exist?(test_result_filename)
48
+ if File.exist?(expected_result_filename)
49
+ unless FileUtils.compare_file(cost_result_json_path, expected_result_filename)
50
+ FileUtils.cp(cost_result_json_path, test_result_filename)
51
+ test_instance.assert(false, "Regression test for #{@model_name} produces differences. Examine expected and test result differences in the #{File.dirname(@test_filename)}/regression_files folder ")
52
+ end
53
+ else
54
+ puts "No expected test file...Generating expected file #{expected_result_filename}. Please verify."
55
+ FileUtils.cp(cost_result_json_path, expected_result_filename)
56
+ end
57
+ puts "Regression test for #{@model_name} passed."
58
+
59
+ # Do comparison of direct btap_costing results and those derived from the itemized cost list
60
+ # Check if an itemized cost list file exists. If it exists, do the comparison. If not, Ignore the comparison.
61
+ if File.exist?(cost_list_json_path)
62
+ # Get the itemized cost list file.
63
+ cost_list = JSON.parse(File.read(cost_list_json_path))
64
+ # Cost the building based on the itemized cost list.
65
+ cost_list_output = BTAPCosting.new().cost_list_items(btap_items: cost_list)
66
+ # Get the detailed btap_costing result file:
67
+ cost_result = JSON.parse(File.read(cost_result_json_path))
68
+ cost_sum = cost_result['totals']
69
+ # Compare the results and let the user know if there are differences. Do not fail test if there are.
70
+ puts("")
71
+ puts("Comparing BTAP_Costing results and itemized costing list cost results:")
72
+ puts("Envelope Cost Difference: #{cost_sum['envelope'].to_f - cost_list_output['envelope'].to_f}")
73
+ puts("Lighting Cost Difference: #{cost_sum['lighting'].to_f - cost_list_output['lighting'].to_f}")
74
+ puts("Heating and Cooling Cost Difference: #{cost_sum['heating_and_cooling'].to_f - cost_list_output['heating_and_cooling'].to_f}")
75
+ puts("SHW Cost Difference: #{cost_sum['shw'].to_f - cost_list_output['shw'].to_f}")
76
+ puts("Ventilation Cost Difference: #{cost_sum['ventilation'].to_f - cost_list_output['ventilation'].to_f}")
77
+ cost_sum['renewables'].nil? ? sum_renew = 0.00 : sum_renew = cost_sum['renewables'].to_f
78
+ puts("Renewables Cost Difference: #{sum_renew - cost_list_output['renewables'].to_f}")
79
+ if cost_sum['grand_total'] == cost_list_output['grand_total']
80
+ puts("No difference in costing between BTAP_Costing results and itemized cost list results.")
81
+ else
82
+ puts("Total Cost Difference: #{cost_sum['grand_total'].to_f - cost_list_output['grand_total'].to_f}")
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,177 @@
1
+ class BTAPCarbon
2
+ def initialize(attributes:, standards_data:)
3
+ @carbon_database = {}
4
+ @costing_database = CostingDatabase.instance
5
+ @cp = CommonPaths.instance
6
+ @attributes = attributes
7
+ @carbon_report = {}
8
+ @frame_m_to_kg = standards_data["constants"]["glazing_frame_m_to_kg"]
9
+
10
+ # Build the carbon database.
11
+ carbon_opaque = CSV.read(@cp.carbon_opaque_path)
12
+ @carbon_database["opaque"] = Array.new
13
+
14
+ 1.upto carbon_opaque.length - 1 do |i|
15
+ row = carbon_opaque[i]
16
+ index = row.each
17
+ item = Hash.new
18
+
19
+ item["materials_opaque_id"] = index.next
20
+ item["description"] = index.next
21
+ item["type"] = index.next
22
+ item["quantity"] = index.next.to_f
23
+ item["per m2"] = index.next.to_f
24
+ item["Product Category"] = index.next
25
+ item["Embodied Carbon (A1-A5)"] = index.next.to_f
26
+ item["Embodied Carbon (A-C)"] = index.next.to_f
27
+ item["Environmental Product Declaration (EPD)"] = index.next
28
+
29
+ @carbon_database["opaque"] << item
30
+ end
31
+
32
+ carbon_glazing = CSV.read(@cp.carbon_glazing_path)
33
+ @carbon_database["glazing"] = Array.new
34
+
35
+ 1.upto carbon_glazing.length - 1 do |i|
36
+ row = carbon_glazing[i]
37
+ index = row.each
38
+ item = Hash.new
39
+
40
+ item["materials_glazing_id"] = index.next
41
+ item["description"] = index.next
42
+ item["per m2"] = index.next.to_f
43
+ item["Embodied Carbon (A1-A5)"] = index.next.to_f
44
+ item["Embodied Carbon (A-C)"] = index.next.to_f
45
+ item["Environmental Product Declaration (EPD)"] = index.next
46
+
47
+ @carbon_database["glazing"] << item
48
+ end
49
+
50
+ carbon_frame = CSV.read(@cp.carbon_frame_path)
51
+ @carbon_database["frame"] = Array.new
52
+
53
+ 1.upto carbon_frame.length - 1 do |i|
54
+ row = carbon_frame[i]
55
+ index = row.each
56
+ item = Hash.new
57
+
58
+ item["materials_glazing_id"] = index.next
59
+ item["description"] = index.next
60
+ item["per m2"] = index.next.to_f
61
+ item["Embodied Carbon (A1-A5)"] = index.next.to_f
62
+ item["Embodied Carbon (A-C)"] = index.next.to_f
63
+ item["Environmental Product Declaration (EPD)"] = index.next
64
+
65
+ @carbon_database["frame"] << item
66
+ end
67
+ end
68
+
69
+ def audit_embodied_carbon
70
+ @attributes.surface_types.each do |surface_type|
71
+ @carbon_report["#{surface_type.underscore}_area_m2"] = 0.0
72
+ @carbon_report["#{surface_type.underscore}_carbon"] = 0.0
73
+ end
74
+
75
+ @attributes.spaces.each do |space|
76
+ @attributes.surface_types.each do |surface_type|
77
+ space.surfaces_hash[surface_type].each do |surface|
78
+ surface_area = surface.netArea * space.thermalZone.get.multiplier
79
+ @carbon_report["#{surface_type.underscore}_area_m2"] = \
80
+ (@carbon_report["#{surface_type.underscore}_area_m2"] + surface_area).round(2)
81
+
82
+ # Get the carbon emissions for each material in the space.
83
+ if surface.construction_hash.nil?
84
+ emissions = 0.0
85
+ else
86
+ emissions = get_carbon_emissions(surface.construction_hash, surface, surface_area)
87
+ construction = surface.construction_hash
88
+ end
89
+
90
+ # Calculate the carbon emissions
91
+ @carbon_report["#{surface_type.underscore}_carbon"] = \
92
+ (@carbon_report["#{surface_type.underscore}_carbon"] + emissions).round(2)
93
+ end
94
+ end
95
+ end
96
+
97
+ # Get the total emissions from all the surface types.
98
+ total_emissions = 0
99
+ @attributes.surface_types.each do |surface_type|
100
+ total_emissions += @carbon_report["#{surface_type.underscore}_carbon"]
101
+ end
102
+
103
+ @carbon_report["total"] = total_emissions
104
+ return @carbon_report
105
+ end
106
+
107
+ # Retrieve the carbon emissions given a surface, its construction, and its area.
108
+ def get_carbon_emissions(construction, surface, surface_area)
109
+ total_emissions = 0.0
110
+ materials_file = "materials_#{construction["type"]}"
111
+ id_column = materials_file + "_id"
112
+ id_layers_column = "material_#{construction["type"]}_id_layers"
113
+
114
+ construction[id_layers_column].split(',').each do |material_id|
115
+
116
+ # Locate the material entry in the carbon database
117
+ material_carbon = @carbon_database[construction["type"]].find { |row|
118
+ row[id_column] == material_id }["Embodied Carbon (A-C)"]
119
+
120
+ if material_carbon.nil?
121
+ raise("Error: Could not find material with ID #{material_id} in the carbon database.")
122
+ end
123
+
124
+ # If the material is glazing, the frame must be calculated by retrieving the perimeter of the window
125
+ # and converting according to the correct attributes of the window.
126
+ if construction["type"] == "glazing"
127
+ fenestration_type = construction["fenestration_type"]
128
+
129
+ # Skip skylights and doors since we don't have the data for them.
130
+ # Only consider fixed and operable windows.
131
+ if fenestration_type != "FixedWindow" and fenestration_type != "OperableWindow"
132
+ puts "Fenestration type #{fenestration_type} is not defined for carbon calculation, skipping this component."
133
+ next
134
+ end
135
+
136
+ material_frame = @carbon_database["frame"].find { |row|
137
+ row[id_column] == material_id }["Embodied Carbon (A-C)"]
138
+
139
+ # Get the materials_glazing entry from the costing database to access the number of panes the window has.
140
+ material_costing = @costing_database["raw"][materials_file].find { |row| row[id_column] == material_id }
141
+
142
+ if material_costing.nil?
143
+ raise("Error: Could not find material with ID #{material_id} in the costing database.")
144
+ end
145
+
146
+ fenestration_number_of_panes = material_costing["fenestration_number_of_panes"]
147
+
148
+ # Try to get the correct frame material.
149
+ frame_material = nil
150
+ construction_component = construction["component"].downcase
151
+ construction_description = construction["description"].downcase
152
+ ["vinyl-wood", "plastic", "aluminum"].each do |material|
153
+ if material in construction_component
154
+ frame_material = material
155
+ break
156
+ elsif material in construction_description
157
+ frame_material = material
158
+ break
159
+ end
160
+ end
161
+
162
+ if frame_material.nil?
163
+ raise("Error: Could not find frame material for glazing ID #{material_id} in constructions_glazing.csv.")
164
+ end
165
+
166
+ # Get the conversion factor for the window frame and add it to the total emissions.
167
+ conversion_factor = @frame_m_to_kg[frame_material][fenestration_type][fenestration_number_of_panes]
168
+ perimeter = BTAP::Geometry::Surfaces.getSurfacePerimeterFromVertices(vertices: surface.vertices)
169
+ total_emissions += material_frame * perimeter * conversion_factor
170
+ end
171
+
172
+ total_emissions += material_carbon * surface_area
173
+ end
174
+
175
+ return total_emissions
176
+ end
177
+ end
@@ -24,8 +24,10 @@ class CommonPaths
24
24
  attr_accessor :costs_path
25
25
  attr_accessor :costs_local_factors_path
26
26
 
27
- # Costing database location
28
- attr_reader :costing_database_path
27
+ # Embodied carbon data
28
+ attr_reader :carbon_opaque_path
29
+ attr_reader :carbon_glazing_path
30
+ attr_reader :carbon_frame_path
29
31
 
30
32
  # Other
31
33
  attr_reader :error_log
@@ -33,8 +35,7 @@ class CommonPaths
33
35
  attr_reader :mech_sizing_data_file
34
36
 
35
37
  def initialize
36
- dir_relative = __dir__
37
- dir_database = "#{dir_relative}/common_resources"
38
+ dir_database = "#{__dir__}/common_resources"
38
39
 
39
40
  @locations_path = "#{dir_database}/locations.csv"
40
41
  @construction_sets_path = "#{dir_database}/construction_sets.csv"
@@ -66,13 +67,15 @@ class CommonPaths
66
67
  @materials_hvac_path
67
68
  ]
68
69
 
69
- @costs_path = "#{dir_database}/costs.csv"
70
- @costs_local_factors_path = "#{dir_database}/costs_local_factors.csv"
70
+ @costs_path = "#{dir_database}/costs.csv"
71
+ @costs_local_factors_path = "#{dir_database}/costs_local_factors.csv"
71
72
 
72
- @costing_database_path = "#{dir_relative}/costing_database.json"
73
+ @carbon_opaque_path = "#{dir_database}/carbon_opaque.csv"
74
+ @carbon_glazing_path = "#{dir_database}/carbon_glazing.csv"
75
+ @carbon_frame_path = "#{dir_database}/carbon_frame.csv"
73
76
 
74
- @error_log = "#{dir_relative}/errors.json"
75
- @cost_output_file = "#{dir_relative}/cost_output.json"
76
- @mech_sizing_data_file = "#{dir_relative}/mech_sizing.json"
77
+ @error_log = "#{__dir__}/errors.json"
78
+ @cost_output_file = "#{__dir__}/cost_output.json"
79
+ @mech_sizing_data_file = "#{__dir__}/costing/mech_sizing.json"
77
80
  end
78
- end
81
+ end
@@ -0,0 +1,35 @@
1
+ materials_glazing_id,description,per m2,Embodied Carbon (A1-A5),Embodied Carbon (A-C),Environmental Product Declaration (EPD)
2
+ 1,"Windows, aluminum, awning, standard glass, 4'-5"" x 5'-3""",1.577,74.325,81.603,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
3
+ 2,"6' x 7' aluminum patio, tempered glass, zero frame thermal break",2.44,105.126,14.428,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
4
+ 3,"entrance, door 5'x7', opening 12'x7'-6', electric operator, zero frame thermal break",1.21,33.645,14.061,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
5
+ 4,"fixed mall front panels, aluminum finish 48' x 9' opening, zero frame thermal break",0.987,29.979,34.366,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
6
+ 5,"aluminum window: stock 5'x3' including framing and insulated glazing, zero frame thermal break",2.47,73.957,74.74,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
7
+ 6,"Windows, aluminum, awning, standard glass, 4'-5"" x 5'-3""",1.577,61.989,21.861,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
8
+ 7,"6' x 4' picture with insulating glass, 2 lites, low E, finished extensions and jambs, zero frame thermal break",2.45,53.215,79.335,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
9
+ 8,"Windows, aluminum, awning, standard glass, 4'-5"" x 5'-3""",1.577,30.867,38.24,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
10
+ 9,"Windows, aluminum, awning, insulated glass, 4'-5"" x 5'-3""",1.577,71.347,75.847,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
11
+ 10,"6' x 7' aluminum patio, tempered glass",2.44,54.103,57.343,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
12
+ 11,"entrance, door 5'x7', opening 12'x7'-6', electric operator",1.21,38.802,64.185,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
13
+ 12,"fixed mall front panels, aluminum finish 48' x 9' opening",0.987,28.019,20.609,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
14
+ 13,aluminum window: stock 5'x3' including framing and insulated glazing,2.47,117.479,40.687,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
15
+ 14,"Windows, aluminum, awning, insulated glass, 4'-5"" x 5'-3""",1.577,44.207,49.426,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
16
+ 15,"6' x 4' picture with insulating glass, 2 lites, low E, finished extensions and jambs",2.45,6.292,63.919,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
17
+ 16,"Windows, aluminum, awning, insulated glass, 4'-5"" x 5'-3""",1.577,62.329,74.157,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
18
+ 17,"Windows, aluminum, double hung, insul. glass, 3'-0"" x 4'-0""",1.58,34.727,65.656,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
19
+ 18,"triple glazed U= 1.6 W/m2-K, 6' x 7' aluminum patio, tempered glass",1.12,37.717,56.548,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
20
+ 19,"triple glazed U= 1.6 W/m2-K, entrance, door 5'x7', opening 12'x7'-6', electric operator",1.458,37.961,3.095,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
21
+ 20,"triple glazed U= 1.6 W/m2-K, fixed mall front panels, aluminum finish 48' x 9' opening",1.181,11.762,48.437,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
22
+ 21,"triple glazed U= 1.6 W/m2-K, aluminum window: stock 5'x3' including framing and insulated glazing",1.15,7.371,61.662,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
23
+ 22,"Windows, aluminum, double hung, insul. glass, 3'-0"" x 4'-0""",1.58,37.711,81.091,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
24
+ 23,"triple glazed U= 1.6 W/m2-K, 6' x 4' picture with insulating glass, 2 lites, low E, finished extensions and jambs",2.95,37.719,12.907,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
25
+ 24,"Windows, aluminum, double hung, insul. glass, 3'-0"" x 4'-0""",1.58,42.808,9.411,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
26
+ 25,"Skylights, non venting, insulated, plexiglass dome with curb mount, 46"" x 46""",2.06,75.551,42.545,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
27
+ 26,"Skylights, non venting, insulated, plexiglass dome with curb mount, 46"" x 46""",2.06,74.951,105.124,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
28
+ 27,"Skylights, non venting, insulated, plexiglass dome with curb mount, 46"" x 46""",2.06,4.912,84.376,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
29
+ 28,"Skylights, non venting, insulated, plexiglass dome with curb mount, 46"" x 46""",2.06,43.099,107.422,"Thermally improved aluminium extrusions (profiles), anodized (Aluminum Extruders Council (AEC))"
30
+ 29,bronze film (glass not included) 20% VLT,0.0,0.0,0.0,
31
+ 30,bronze film (glass not included) 50% VLT,0.0,0.0,0.0,
32
+ 31,Silver film (glass not included) 15% VLT,0.0,0.0,0.0,
33
+ 32,Silver film (glass not included) 35% VLT,0.0,0.0,0.0,
34
+ 33,Silver film (glass not included) 68% VLT,0.0,0.0,0.0,
35
+ 34,Neutral film (glass not included) 20% VLT,0.0,0.0,0.0,
@@ -0,0 +1,35 @@
1
+ materials_glazing_id,description,per m2,Embodied Carbon (A1-A5),Embodied Carbon (A-C),Environmental Product Declaration (EPD)
2
+ 1,"Windows, aluminum, awning, standard glass, 4'-5"" x 5'-3""",1.0,109.812,123.989,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
3
+ 2,"6' x 7' aluminum patio, tempered glass, zero frame thermal break",1.0,108.37,15.261,"Argon gas filled insulating glass unit (IGU) with tempered glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
4
+ 3,"entrance, door 5'x7', opening 12'x7'-6', electric operator, zero frame thermal break",1.0,64.786,27.844,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
5
+ 4,"fixed mall front panels, aluminum finish 48' x 9' opening, zero frame thermal break",1.0,70.769,83.429,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
6
+ 5,"aluminum window: stock 5'x3' including framing and insulated glazing, zero frame thermal break",1.0,69.764,72.504,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
7
+ 6,"Windows, aluminum, awning, standard glass, 4'-5"" x 5'-3""",1.0,91.585,33.216,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
8
+ 7,"6' x 4' picture with insulating glass, 2 lites, low E, finished extensions and jambs, zero frame thermal break",1.0,50.607,77.591,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
9
+ 8,"Windows, aluminum, awning, standard glass, 4'-5"" x 5'-3""",1.0,45.604,58.102,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
10
+ 9,"Windows, aluminum, awning, insulated glass, 4'-5"" x 5'-3""",1.0,105.412,115.244,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
11
+ 10,"6' x 7' aluminum patio, tempered glass",1.0,55.773,60.652,"Argon gas filled insulating glass unit (IGU) with tempered glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
12
+ 11,"entrance, door 5'x7', opening 12'x7'-6', electric operator",1.0,74.716,127.103,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
13
+ 12,"fixed mall front panels, aluminum finish 48' x 9' opening",1.0,66.143,50.032,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
14
+ 13,aluminum window: stock 5'x3' including framing and insulated glazing,1.0,110.817,39.47,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
15
+ 14,"Windows, aluminum, awning, insulated glass, 4'-5"" x 5'-3""",1.0,65.314,75.099,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
16
+ 15,"6' x 4' picture with insulating glass, 2 lites, low E, finished extensions and jambs",1.0,5.983,62.514,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
17
+ 16,"Windows, aluminum, awning, insulated glass, 4'-5"" x 5'-3""",1.0,92.088,112.675,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
18
+ 17,"Windows, aluminum, double hung, insul. glass, 3'-0"" x 4'-0""",1.0,51.21,99.57,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
19
+ 18,"triple glazed U= 1.6 W/m2-K, 6' x 7' aluminum patio, tempered glass",1.0,298.056,458.834,"Argon gas filled insulating glass unit (IGU) with one laminated and two tempered glass panes, triple glazed, 10-14-6-14-12.76, 71.9 kg/m2 (One Click LCA)"
20
+ 19,"triple glazed U= 1.6 W/m2-K, entrance, door 5'x7', opening 12'x7'-6', electric operator",1.0,94.614,7.92,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, triple glazed, 4-14-4-14-4, 30 kg/m2 (One Click LCA)"
21
+ 20,"triple glazed U= 1.6 W/m2-K, fixed mall front panels, aluminum finish 48' x 9' opening",1.0,36.191,153.033,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, triple glazed, 4-14-4-14-4, 30 kg/m2 (One Click LCA)"
22
+ 21,"triple glazed U= 1.6 W/m2-K, aluminum window: stock 5'x3' including framing and insulated glazing",1.0,23.291,200.07,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, triple glazed, 4-14-4-14-4, 30 kg/m2 (One Click LCA)"
23
+ 22,"Windows, aluminum, double hung, insul. glass, 3'-0"" x 4'-0""",1.0,55.61,122.977,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
24
+ 23,"triple glazed U= 1.6 W/m2-K, 6' x 4' picture with insulating glass, 2 lites, low E, finished extensions and jambs",1.0,46.464,16.326,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, triple glazed, 4-14-4-14-4, 30 kg/m2 (One Click LCA)"
25
+ 24,"Windows, aluminum, double hung, insul. glass, 3'-0"" x 4'-0""",1.0,63.127,14.273,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
26
+ 25,"Skylights, non venting, insulated, plexiglass dome with curb mount, 46"" x 46""",1.0,85.451,49.487,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
27
+ 26,"Skylights, non venting, insulated, plexiglass dome with curb mount, 46"" x 46""",1.0,84.772,122.276,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
28
+ 27,"Skylights, non venting, insulated, plexiglass dome with curb mount, 46"" x 46""",1.0,5.556,98.143,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
29
+ 28,"Skylights, non venting, insulated, plexiglass dome with curb mount, 46"" x 46""",1.0,48.746,124.949,"Argon gas filled insulating glass unit (IGU) with clear float glass panes, double glazed, 4-16-4, 20 kg/m2 (One Click LCA)"
30
+ 29,bronze film (glass not included) 20% VLT,0.0,0.0,0.0,
31
+ 30,bronze film (glass not included) 50% VLT,0.0,0.0,0.0,
32
+ 31,Silver film (glass not included) 15% VLT,0.0,0.0,0.0,
33
+ 32,Silver film (glass not included) 35% VLT,0.0,0.0,0.0,
34
+ 33,Silver film (glass not included) 68% VLT,0.0,0.0,0.0,
35
+ 34,Neutral film (glass not included) 20% VLT,0.0,0.0,0.0,