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
@@ -0,0 +1,254 @@
1
+ module OpenstudioStandards
2
+ # The InteriorLighting module provides methods to create, modify, and get information about interior lighting
3
+ module InteriorLighting
4
+ # @!group Create Typical Interior Lighting
5
+ # Methods to create typical interior lighting
6
+
7
+ # Create typical interior lighting in a model
8
+ #
9
+ # @param model [OpenStudio::Model::Model] OpenStudio model object
10
+ # @param lighting_generation [String] Lighting generation to assume for lighting. Successive generations have more efficient lighting.
11
+ # Options are 'gen1_t12_incandescent', 'gen2_t8_halogen', 'gen3_t5_cfl', 'gen4_led', 'gen5_led', 'gen6_led', 'gen7_led', 'gen8_led'.
12
+ # @return [Array<OpenStudio::Model::Lights>] Array of OpenStudio Lights objects
13
+ def self.create_typical_interior_lighting(model, lighting_generation: 'gen4_led')
14
+ # collectors for building lighting power and floor area
15
+ interior_lights = []
16
+ building_lighting_floor_area = 0.0
17
+ starting_building_lighting_power = 0.0
18
+ ending_building_lighting_power = 0.0
19
+
20
+ # load lighting technology data
21
+ lighting_technologies_data = JSON.parse(File.read("#{File.dirname(__FILE__)}/data/lighting_technology.json"), symbolize_names: true)
22
+ lighting_technologies = lighting_technologies_data[:lighting_technologies].select { |hash| (hash[:lighting_generation] == lighting_generation) }
23
+ if lighting_technologies.nil?
24
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', "No interior lighting technologies found for lighting generation #{lighting_generation}. No interior lighting will be added to model.")
25
+ return interior_lights
26
+ end
27
+
28
+ # load lighting space types data
29
+ lighting_space_type_properties_data = JSON.parse(File.read("#{File.dirname(__FILE__)}/data/lighting_space_types.json"), symbolize_names: true)
30
+ if lighting_space_type_properties_data.nil?
31
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', 'Unable to load lighting space types data. No interior lighting will be added to model.')
32
+ return interior_lights
33
+ end
34
+ lighting_space_type_properties_data = lighting_space_type_properties_data[:lighting_space_types]
35
+
36
+ # loop over space types and apply lighting
37
+ model.getSpaceTypes.each do |space_type|
38
+ # get space type area and volume
39
+ space_type_floor_area = space_type.floorArea
40
+ if space_type_floor_area.zero?
41
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', "Space type #{space_type} floor area is zero. Ignoring space type.")
42
+ next
43
+ end
44
+
45
+ space_type_volume = 0.0
46
+ space_type.spaces.each do |space|
47
+ space_type_volume += space.volume * space.multiplier
48
+ end
49
+
50
+ if space_type_volume.zero?
51
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', "Volume for space type #{space_type.name} is zero. Ignoring space type.")
52
+ next
53
+ elsif space_type_volume.nil?
54
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', "Unable to determine volume for space type #{space_type.name}. Ignoring space type.")
55
+ next
56
+ end
57
+
58
+ # calculate average space_type height
59
+ space_type_average_height_m = space_type_volume / space_type_floor_area
60
+ space_type_average_height_ft = OpenStudio.convert(space_type_average_height_m, 'm', 'ft').get
61
+
62
+ # get number of people for lighting calculations
63
+ space_type_number_of_people = space_type.getNumberOfPeople(space_type_floor_area)
64
+
65
+ # get initial conditions
66
+ building_lighting_floor_area += space_type_floor_area
67
+ starting_space_type_lighting_power = space_type.getLightingPower(space_type_floor_area, space_type_number_of_people)
68
+ starting_building_lighting_power += starting_space_type_lighting_power
69
+
70
+ # remove existing lighting objects
71
+ space_type.lights.sort.each(&:remove)
72
+
73
+ # remove existing lighting objects from spaces
74
+ space_type.spaces.each do |space|
75
+ space.lights.sort.each(&:remove)
76
+ end
77
+
78
+ # get lighting space type from the object
79
+ has_lighting_space_type = space_type.additionalProperties.hasFeature('lighting_space_type')
80
+ unless has_lighting_space_type
81
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', "Space type '#{space_type.name}' does not have a lighting_space_type property assigned. Ignoring space type.")
82
+ next
83
+ end
84
+ lighting_space_type = space_type.additionalProperties.getFeatureAsString('lighting_space_type').to_s
85
+
86
+ # get lighting properties for the lighting space type
87
+ lighting_space_type_properties = lighting_space_type_properties_data.select { |r| (r[:lighting_space_type_name] == lighting_space_type) }
88
+ if lighting_space_type_properties.empty?
89
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', "Unable to find lighting space type data for '#{lighting_space_type}'. Ignoring space type #{space_type.name}.")
90
+ next
91
+ end
92
+ lighting_space_type_properties = lighting_space_type_properties[0]
93
+
94
+ # get lighting properties for the lighting space type
95
+ lighting_space_type_target_illuminance_setpoint = lighting_space_type_properties[:lighting_space_type_target_illuminance_setpoint].to_f
96
+ lighting_space_type_target_illuminance_units = lighting_space_type_properties[:lighting_space_type_target_illuminance_units].to_s
97
+ general_lighting_fraction = lighting_space_type_properties[:general_lighting_fraction].to_f
98
+ general_cu = lighting_space_type_properties[:general_lighting_coefficient_of_utilization].to_f
99
+ task_lighting_fraction = lighting_space_type_properties[:task_lighting_fraction].to_f
100
+ task_cu = lighting_space_type_properties[:task_lighting_coefficient_of_utilization].to_f
101
+ supplemental_lighting_fraction = lighting_space_type_properties[:supplemental_lighting_fraction].to_f
102
+ supplemental_cu = lighting_space_type_properties[:supplemental_lighting_coefficient_of_utilization].to_f
103
+ wall_wash_lighting_fraction = lighting_space_type_properties[:wall_wash_lighting_fraction].to_f
104
+ wall_wash_cu = lighting_space_type_properties[:wall_wash_lighting_coefficient_of_utilization].to_f
105
+
106
+ # variable holder for lighting technology, default 'na'
107
+ general_lighting_technology_name = 'na'
108
+ task_lighting_technology_name = 'na'
109
+ supplemental_lighting_technology_name = 'na'
110
+ wall_wash_lighting_technology_name = 'na'
111
+
112
+ # general lighting
113
+ if general_lighting_fraction > 0
114
+ matching_objects = lighting_technologies.select { |r| (r[:lighting_system_type] == 'general') }
115
+ matching_objects = matching_objects.reject { |r| space_type_average_height_ft.to_f.round(1) > r[:fixture_max_height_ft].to_f.round(1) }
116
+ matching_objects = matching_objects.reject { |r| space_type_average_height_ft.to_f.round(1) <= r[:fixture_min_height_ft].to_f.round(1) }
117
+ general_lighting_technology = matching_objects[0]
118
+ luminous_efficacy = general_lighting_technology[:source_efficacy_lumens_per_watt].to_f
119
+ llf = general_lighting_technology[:lighting_loss_factor].to_f
120
+
121
+ # ignore depreciation terms (rsdd, llf) when setting installed lighting power
122
+ general_lpd_w_per_m2 = (lighting_space_type_target_illuminance_setpoint * general_lighting_fraction) / (luminous_efficacy * general_cu)
123
+ general_lighting_technology_name = general_lighting_technology[:lighting_technology]
124
+
125
+ # general lighting definition
126
+ general_lights_definition = OpenStudio::Model::LightsDefinition.new(space_type.model)
127
+ general_lights_definition.setName("#{space_type.name} General Lights Definition")
128
+ general_lights_definition.setWattsperSpaceFloorArea(general_lpd_w_per_m2)
129
+ general_lights_definition.setReturnAirFraction(general_lighting_technology[:return_air_fraction].to_f)
130
+ general_lights_definition.setFractionRadiant(general_lighting_technology[:radiant_fraction].to_f)
131
+ general_lights_definition.setFractionVisible(general_lighting_technology[:visible_fraction].to_f)
132
+ general_lights_definition.additionalProperties.setFeature('lighting_technology', general_lighting_technology_name)
133
+ general_lights_definition.additionalProperties.setFeature('lighting_system_type', 'general')
134
+
135
+ # general lighting object
136
+ general_lights = OpenStudio::Model::Lights.new(general_lights_definition)
137
+ general_lights.setName("#{space_type.name} General Lighting")
138
+ general_lights.setSpaceType(space_type)
139
+ interior_lights << general_lights
140
+ end
141
+
142
+ # task lighting
143
+ if task_lighting_fraction > 0
144
+ matching_objects = lighting_technologies.select { |r| (r[:lighting_system_type] == 'task') }
145
+ task_lighting_technology = matching_objects[0]
146
+ luminous_efficacy = task_lighting_technology[:source_efficacy_lumens_per_watt].to_f
147
+ llf = task_lighting_technology[:lighting_loss_factor].to_f
148
+
149
+ # ignore depreciation terms (rsdd, llf) when setting installed lighting power
150
+ task_lpd_w_per_m2 = (lighting_space_type_target_illuminance_setpoint * task_lighting_fraction) / (luminous_efficacy * task_cu)
151
+ task_lighting_technology_name = task_lighting_technology[:lighting_technology]
152
+
153
+ # task lighting definition
154
+ task_lights_definition = OpenStudio::Model::LightsDefinition.new(space_type.model)
155
+ task_lights_definition.setName("#{space_type.name} Task Lights Definition")
156
+ task_lights_definition.setWattsperSpaceFloorArea(task_lpd_w_per_m2)
157
+ task_lights_definition.setReturnAirFraction(task_lighting_technology[:return_air_fraction].to_f)
158
+ task_lights_definition.setFractionRadiant(task_lighting_technology[:radiant_fraction].to_f)
159
+ task_lights_definition.setFractionVisible(task_lighting_technology[:visible_fraction].to_f)
160
+ task_lights_definition.additionalProperties.setFeature('lighting_technology', task_lighting_technology_name)
161
+ task_lights_definition.additionalProperties.setFeature('lighting_system_type', 'task')
162
+
163
+ # task lighting object
164
+ task_lights = OpenStudio::Model::Lights.new(task_lights_definition)
165
+ task_lights.setName("#{space_type.name} Task Lighting")
166
+ task_lights.setSpaceType(space_type)
167
+ interior_lights << task_lights
168
+ end
169
+
170
+ # supplemental lighting
171
+ if supplemental_lighting_fraction > 0
172
+ matching_objects = lighting_technologies.select { |r| (r[:lighting_system_type] == 'supplemental') }
173
+ supplemental_lighting_technology = matching_objects[0]
174
+ luminous_efficacy = supplemental_lighting_technology[:source_efficacy_lumens_per_watt].to_f
175
+ llf = supplemental_lighting_technology[:lighting_loss_factor].to_f
176
+
177
+ # ignore depreciation terms (rsdd, llf) when setting installed lighting power
178
+ supplemental_lpd_w_per_m2 = (lighting_space_type_target_illuminance_setpoint * supplemental_lighting_fraction) / (luminous_efficacy * supplemental_cu)
179
+ supplemental_lighting_technology_name = supplemental_lighting_technology[:lighting_technology]
180
+
181
+ # supplemental lighting definition
182
+ supplemental_lights_definition = OpenStudio::Model::LightsDefinition.new(space_type.model)
183
+ supplemental_lights_definition.setName("#{space_type.name} Supplemental Lights Definition")
184
+ supplemental_lights_definition.setWattsperSpaceFloorArea(supplemental_lpd_w_per_m2)
185
+ supplemental_lights_definition.setReturnAirFraction(supplemental_lighting_technology[:return_air_fraction].to_f)
186
+ supplemental_lights_definition.setFractionRadiant(supplemental_lighting_technology[:radiant_fraction].to_f)
187
+ supplemental_lights_definition.setFractionVisible(supplemental_lighting_technology[:visible_fraction].to_f)
188
+ supplemental_lights_definition.additionalProperties.setFeature('lighting_technology', supplemental_lighting_technology_name)
189
+ supplemental_lights_definition.additionalProperties.setFeature('lighting_system_type', 'supplemental')
190
+
191
+ # supplemental lighting object
192
+ supplemental_lights = OpenStudio::Model::Lights.new(supplemental_lights_definition)
193
+ supplemental_lights.setName("#{space_type.name} Supplemental Lighting")
194
+ supplemental_lights.setSpaceType(space_type)
195
+ interior_lights << supplemental_lights
196
+ end
197
+
198
+ # wall wash lighting
199
+ if wall_wash_lighting_fraction > 0
200
+ matching_objects = lighting_technologies.select { |r| (r[:lighting_system_type] == 'wall_wash') }
201
+ wall_wash_lighting_technology = matching_objects[0]
202
+ luminous_efficacy = wall_wash_lighting_technology[:source_efficacy_lumens_per_watt].to_f
203
+ llf = wall_wash_lighting_technology[:lighting_loss_factor].to_f
204
+
205
+ # ignore depreciation terms (rsdd, llf) when setting installed lighting power
206
+ wall_wash_lpd_w_per_m2 = (lighting_space_type_target_illuminance_setpoint * wall_wash_lighting_fraction) / (luminous_efficacy * wall_wash_cu)
207
+ wall_wash_lighting_technology_name = wall_wash_lighting_technology[:lighting_technology]
208
+
209
+ # wall wash lighting definition
210
+ wall_wash_lights_definition = OpenStudio::Model::LightsDefinition.new(space_type.model)
211
+ wall_wash_lights_definition.setName("#{space_type.name} Wall Wash Lights Definition")
212
+ wall_wash_lights_definition.setWattsperSpaceFloorArea(wall_wash_lpd_w_per_m2)
213
+ wall_wash_lights_definition.setReturnAirFraction(wall_wash_lighting_technology[:return_air_fraction].to_f)
214
+ wall_wash_lights_definition.setFractionRadiant(wall_wash_lighting_technology[:radiant_fraction].to_f)
215
+ wall_wash_lights_definition.setFractionVisible(wall_wash_lighting_technology[:visible_fraction].to_f)
216
+ wall_wash_lights_definition.additionalProperties.setFeature('lighting_technology', wall_wash_lighting_technology_name)
217
+ wall_wash_lights_definition.additionalProperties.setFeature('lighting_system_type', 'wall_wash')
218
+
219
+ # wall wash lighting object
220
+ wall_wash_lights = OpenStudio::Model::Lights.new(wall_wash_lights_definition)
221
+ wall_wash_lights.setName("#{space_type.name} Wall Wash Lighting")
222
+ wall_wash_lights.setSpaceType(space_type)
223
+ interior_lights << wall_wash_lights
224
+ end
225
+
226
+ # calculate ending lighting power
227
+ ending_space_type_lighting_power = space_type.getLightingPower(space_type_floor_area, space_type_number_of_people)
228
+ ending_building_lighting_power += ending_space_type_lighting_power
229
+
230
+ if space_type_floor_area > 0
231
+ starting_space_type_lpd = OpenStudio.convert(starting_space_type_lighting_power / space_type_floor_area, 'W/m^2', 'W/ft^2').get
232
+ ending_space_type_lpd = OpenStudio.convert(ending_space_type_lighting_power / space_type_floor_area, 'W/m^2', 'W/ft^2').get
233
+ else
234
+ starting_space_type_lpd = 0.0
235
+ ending_space_type_lpd = 0.0
236
+ end
237
+
238
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.InteriorLighting', "Setting space type '#{space_type.name}' with lighting space type '#{lighting_space_type}' to lighting generation '#{lighting_generation}', general '#{general_lighting_technology_name}', task '#{task_lighting_technology_name}', supplemental '#{supplemental_lighting_technology_name}', wall_wash '#{wall_wash_lighting_technology_name}'. Starting LPD #{starting_space_type_lpd.round(2)} W/ft2, ending LPD #{ending_space_type_lpd.round(2)} W/ft2.")
239
+ end
240
+
241
+ if building_lighting_floor_area > 0
242
+ starting_building_lpd = OpenStudio.convert(starting_building_lighting_power / building_lighting_floor_area, 'W/m^2', 'W/ft^2').get
243
+ ending_building_lpd = OpenStudio.convert(ending_building_lighting_power / building_lighting_floor_area, 'W/m^2', 'W/ft^2').get
244
+ else
245
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', 'Building lighting floor area is zero. This can happen if space types are not assigned to spaces. Unable to report out building level LPDs.')
246
+ starting_building_lpd = 0
247
+ ending_building_lpd = 0
248
+ end
249
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.InteriorLighting', "Building lighting started with #{starting_building_lighting_power.round(2)} W (average LPD #{starting_building_lpd.round(2)} W/ft2) and ended with #{ending_building_lighting_power.round(2)} W (average LPD #{ending_building_lpd.round(2)} W/ft2).")
250
+
251
+ return interior_lights
252
+ end
253
+ end
254
+ end
@@ -0,0 +1,249 @@
1
+ # These methods convert space type interior lighting data to and from .csv for editing.
2
+ private
3
+
4
+ require 'csv'
5
+ require 'json'
6
+
7
+ def lighting_space_types_csv_to_json(input_csv = 'lighting_space_types.csv',
8
+ output_json = 'lighting_space_types.json')
9
+ # Initialize the structure
10
+ result = {
11
+ lighting_space_types: []
12
+ }
13
+
14
+ # Read the CSV file
15
+ CSV.foreach(input_csv, headers: true, header_converters: :symbol) do |row|
16
+ lighting_space_type_name = row[:lighting_space_type_name]
17
+ lighting_space_type_target_illuminance_setpoint = row[:lighting_space_type_target_illuminance_setpoint]&.to_f
18
+ lighting_space_type_target_illuminance_units = row[:lighting_space_type_target_illuminance_units]
19
+ general_lighting_fraction = row[:general_lighting_fraction]&.to_f
20
+ general_lighting_coefficient_of_utilization = row[:general_lighting_coefficient_of_utilization]&.to_f
21
+ task_lighting_fraction = row[:task_lighting_fraction]&.to_f
22
+ task_lighting_coefficient_of_utilization = row[:task_lighting_coefficient_of_utilization]&.to_f
23
+ supplemental_lighting_fraction = row[:supplemental_lighting_fraction]&.to_f
24
+ supplemental_lighting_coefficient_of_utilization = row[:supplemental_lighting_coefficient_of_utilization]&.to_f
25
+ wall_wash_lighting_fraction = row[:wall_wash_lighting_fraction]&.to_f
26
+ wall_wash_lighting_coefficient_of_utilization = row[:wall_wash_lighting_coefficient_of_utilization]&.to_f
27
+ source = row[:source]
28
+ notes = row[:notes]
29
+
30
+ lighting_space_type_hash = {
31
+ lighting_space_type_name: lighting_space_type_name,
32
+ lighting_space_type_target_illuminance_setpoint: lighting_space_type_target_illuminance_setpoint,
33
+ lighting_space_type_target_illuminance_units: lighting_space_type_target_illuminance_units,
34
+ general_lighting_fraction: general_lighting_fraction,
35
+ general_lighting_coefficient_of_utilization: general_lighting_coefficient_of_utilization,
36
+ task_lighting_fraction: task_lighting_fraction,
37
+ task_lighting_coefficient_of_utilization: task_lighting_coefficient_of_utilization,
38
+ supplemental_lighting_fraction: supplemental_lighting_fraction,
39
+ supplemental_lighting_coefficient_of_utilization: supplemental_lighting_coefficient_of_utilization,
40
+ wall_wash_lighting_fraction: wall_wash_lighting_fraction,
41
+ wall_wash_lighting_coefficient_of_utilization: wall_wash_lighting_coefficient_of_utilization,
42
+ source: source,
43
+ notes: notes
44
+ }
45
+
46
+ # Add the lighting_space_type_hash to the result array
47
+ result[:lighting_space_types] << lighting_space_type_hash
48
+ end
49
+
50
+ # Write to the output JSON file
51
+ File.write(output_json, JSON.pretty_generate(result))
52
+
53
+ puts "Data has been converted to JSON and saved to #{output_json}"
54
+ end
55
+
56
+ # convert to json
57
+ lighting_space_types_csv_to_json
58
+
59
+ def lighting_space_types_json_to_csv(input_json = 'lighting_space_types.json',
60
+ output_csv = 'lighting_space_types.csv')
61
+ # Read the JSON file
62
+ data = JSON.parse(File.read(input_json), symbolize_names: true)
63
+
64
+ # Prepare the CSV headers
65
+ headers = [
66
+ :lighting_space_type_name,
67
+ :lighting_space_type_target_illuminance_setpoint,
68
+ :lighting_space_type_target_illuminance_units,
69
+ :general_lighting_fraction,
70
+ :general_lighting_coefficient_of_utilization,
71
+ :task_lighting_fraction,
72
+ :task_lighting_coefficient_of_utilization,
73
+ :supplemental_lighting_fraction,
74
+ :supplemental_lighting_coefficient_of_utilization,
75
+ :wall_wash_lighting_fraction,
76
+ :wall_wash_lighting_coefficient_of_utilization,
77
+ :source,
78
+ :notes
79
+ ]
80
+
81
+ # Write the CSV file
82
+ CSV.open(output_csv, 'w', write_headers: true, headers: headers) do |csv|
83
+ data[:lighting_space_types].each do |entry|
84
+ lighting_space_type_name = entry[:lighting_space_type_name]
85
+ lighting_space_type_target_illuminance_setpoint = entry[:lighting_space_type_target_illuminance_setpoint]
86
+ lighting_space_type_target_illuminance_units = entry[:lighting_space_type_target_illuminance_units]
87
+ general_lighting_fraction = entry[:general_lighting_fraction]
88
+ general_lighting_coefficient_of_utilization = entry[:general_lighting_coefficient_of_utilization]
89
+ task_lighting_fraction = entry[:task_lighting_fraction]
90
+ task_lighting_coefficient_of_utilization = entry[:task_lighting_coefficient_of_utilization]
91
+ supplemental_lighting_fraction = entry[:supplemental_lighting_fraction]
92
+ supplemental_lighting_coefficient_of_utilization = entry[:supplemental_lighting_coefficient_of_utilization]
93
+ wall_wash_lighting_fraction = entry[:wall_wash_lighting_fraction]
94
+ wall_wash_lighting_coefficient_of_utilization = entry[:wall_wash_lighting_coefficient_of_utilization]
95
+ source = entry[:source]
96
+ notes = entry[:notes]
97
+
98
+ csv << [
99
+ lighting_space_type_name,
100
+ buillighting_space_type_target_illuminance_setpointding_type,
101
+ lighting_space_type_target_illuminance_units,
102
+ general_lighting_fraction,
103
+ general_lighting_coefficient_of_utilization,
104
+ task_lighting_fraction,
105
+ task_lighting_coefficient_of_utilization,
106
+ supplemental_lighting_fraction,
107
+ supplemental_lighting_coefficient_of_utilization,
108
+ wall_wash_lighting_fraction,
109
+ wall_wash_lighting_coefficient_of_utilization,
110
+ source,
111
+ notes
112
+ ]
113
+ end
114
+ end
115
+
116
+ puts "Data has been converted to CSV and saved to #{output_csv}"
117
+ end
118
+
119
+ def lighting_technology_csv_to_json(input_csv = 'lighting_technology.csv',
120
+ output_json = 'lighting_technology.json')
121
+ # Initialize the structure
122
+ result = {
123
+ lighting_technologies: []
124
+ }
125
+
126
+ # Read the CSV file
127
+ CSV.foreach(input_csv, headers: true, header_converters: :symbol) do |row|
128
+ lighting_technology = row[:lighting_technology]
129
+ lighting_generation = row[:lighting_generation]
130
+ lighting_system_type = row[:lighting_system_type]
131
+ fixture_type = row[:fixture_type]
132
+ lamp_type = row[:lamp_type]
133
+ fixture_min_height_ft = row[:fixture_min_height_ft]&.to_f
134
+ fixture_max_height_ft = row[:fixture_max_height_ft]&.to_f
135
+ source_efficacy_lumens_per_watt = row[:source_efficacy_lumens_per_watt]&.to_f
136
+ source_efficacy_reference = row[:source_efficacy_reference]
137
+ lamp_lumen_depreciation = row[:lamp_lumen_depreciation]&.to_f
138
+ luminaire_dirt_depreciation = row[:luminaire_dirt_depreciation]&.to_f
139
+ lighting_loss_factor = row[:lighting_loss_factor]&.to_f
140
+ lighting_loss_factor_reference = row[:lighting_loss_factor_reference]
141
+ return_air_fraction = row[:return_air_fraction]&.to_f
142
+ radiant_fraction = row[:radiant_fraction]&.to_f
143
+ visible_fraction = row[:visible_fraction]&.to_f
144
+ radiant_fraction_reference = row[:radiant_fraction_reference]
145
+
146
+ lighting_technology_hash = {
147
+ lighting_technology: lighting_technology,
148
+ lighting_generation: lighting_generation,
149
+ lighting_system_type: lighting_system_type,
150
+ fixture_type: fixture_type,
151
+ lamp_type: lamp_type,
152
+ fixture_min_height_ft: fixture_min_height_ft,
153
+ fixture_max_height_ft: fixture_max_height_ft,
154
+ source_efficacy_lumens_per_watt: source_efficacy_lumens_per_watt,
155
+ source_efficacy_reference: source_efficacy_reference,
156
+ lamp_lumen_depreciation: lamp_lumen_depreciation,
157
+ luminaire_dirt_depreciation: luminaire_dirt_depreciation,
158
+ lighting_loss_factor: lighting_loss_factor,
159
+ lighting_loss_factor_reference: lighting_loss_factor_reference,
160
+ return_air_fraction: return_air_fraction,
161
+ radiant_fraction: radiant_fraction,
162
+ visible_fraction: visible_fraction,
163
+ radiant_fraction_reference: radiant_fraction_reference
164
+ }
165
+
166
+ # Add the lighting_technology_hash to the result array
167
+ result[:lighting_technologies] << lighting_technology_hash
168
+ end
169
+
170
+ # Write to the output JSON file
171
+ File.write(output_json, JSON.pretty_generate(result))
172
+
173
+ puts "Data has been converted to JSON and saved to #{output_json}"
174
+ end
175
+
176
+ # convert to json
177
+ lighting_technology_csv_to_json
178
+
179
+ def lighting_technology_json_to_csv(input_json = 'lighting_technology.json',
180
+ output_csv = 'lighting_technology.csv')
181
+ # Read the JSON file
182
+ data = JSON.parse(File.read(input_json), symbolize_names: true)
183
+
184
+ # Prepare the CSV headers
185
+ headers = [
186
+ :lighting_technology,
187
+ :lighting_generation,
188
+ :lighting_system_type,
189
+ :fixture_type,
190
+ :lamp_type,
191
+ :fixture_min_height_ft,
192
+ :fixture_max_height_ft,
193
+ :source_efficacy_lumens_per_watt,
194
+ :source_efficacy_reference,
195
+ :lamp_lumen_depreciation,
196
+ :luminaire_dirt_depreciation,
197
+ :lighting_loss_factor,
198
+ :lighting_loss_factor_reference,
199
+ :return_air_fraction,
200
+ :radiant_fraction,
201
+ :visible_fraction,
202
+ :radiant_fraction_reference
203
+ ]
204
+
205
+ # Write the CSV file
206
+ CSV.open(output_csv, 'w', write_headers: true, headers: headers) do |csv|
207
+ data[:lighting_technologies].each do |entry|
208
+ lighting_technology = entry[:lighting_technology]
209
+ lighting_generation = entry[:lighting_generation]
210
+ lighting_system_type = entry[:lighting_system_type]
211
+ fixture_type = entry[:fixture_type]
212
+ lamp_type = entry[:lamp_type]
213
+ fixture_min_height_ft = entry[:fixture_min_height_ft]
214
+ fixture_max_height_ft = entry[:fixture_max_height_ft]
215
+ source_efficacy_lumens_per_watt = entry[:source_efficacy_lumens_per_watt]
216
+ source_efficacy_reference = entry[:source_efficacy_reference]
217
+ lamp_lumen_depreciation = entry[:lamp_lumen_depreciation]
218
+ luminaire_dirt_depreciation = entry[:luminaire_dirt_depreciation]
219
+ lighting_loss_factor = entry[:lighting_loss_factor]
220
+ lighting_loss_factor_reference = entry[:lighting_loss_factor_reference]
221
+ return_air_fraction = entry[:return_air_fraction]
222
+ radiant_fraction = entry[:radiant_fraction]
223
+ visible_fraction = entry[:visible_fraction]
224
+ radiant_fraction_reference = entry[:radiant_fraction_reference]
225
+
226
+ csv << [
227
+ lighting_technology,
228
+ lighting_generation,
229
+ lighting_system_type,
230
+ fixture_type,
231
+ lamp_type,
232
+ fixture_min_height_ft,
233
+ fixture_max_height_ft,
234
+ source_efficacy_lumens_per_watt,
235
+ source_efficacy_reference,
236
+ lamp_lumen_depreciation,
237
+ luminaire_dirt_depreciation,
238
+ lighting_loss_factor,
239
+ lighting_loss_factor_reference,
240
+ return_air_fraction,
241
+ radiant_fraction,
242
+ visible_fraction,
243
+ radiant_fraction_reference
244
+ ]
245
+ end
246
+ end
247
+
248
+ puts "Data has been converted to CSV and saved to #{output_csv}"
249
+ end
@@ -0,0 +1,96 @@
1
+ lighting_space_type_name,lighting_space_type_target_illuminance_setpoint,lighting_space_type_target_illuminance_units,general_lighting_fraction,general_lighting_coefficient_of_utilization,task_lighting_fraction,task_lighting_coefficient_of_utilization,supplemental_lighting_fraction,supplemental_lighting_coefficient_of_utilization,wall_wash_lighting_fraction,wall_wash_lighting_coefficient_of_utilization,source,notes
2
+ airport_concourse_lighting,118,Lux,0.5,0.92,0.3,0.79,0,0,0.2,0.75,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
3
+ atrium_lighting,178,Lux,1,0.82,0,0,0,0,0,0.58,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",less than 20ft
4
+ audience_seating_area_for_gymnasium_lighting,118,Lux,1,0.59,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
5
+ audience_seating_area_for_motion_picture_theater_lighting,118,Lux,1,0.91,0,0,0,0.11,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
6
+ audience_seating_area_for_penitentiary_lighting,355,Lux,1,0.91,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
7
+ audience_seating_area_for_performing_arts_theater_lighting,426,Lux,0.791666667,0.69,0,0,0,0,0.208333333,0.58,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
8
+ audience_seating_area_for_religious_buildings_lighting,118,Lux,0.625,0.97,0.166666667,0.4,0,0,0.208333333,0.45,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
9
+ audience_seating_area_for_sports_arena_lighting,118,Lux,0.5,0.46,0.5,0.97,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
10
+ audience_seating_lighting,118,Lux,1,1.02,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",all other
11
+ automotive_general_lighting,355,Lux,0.833333333,0.7,0.166666667,0.56,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
12
+ baggage_carousel_lighting,237,Lux,0.45,0.92,0.3,0.76,0,0,0.25,0.87,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
13
+ banking_lighting,355,Lux,0.857142857,0.71,0,0,0,0,0.142857143,0.73,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
14
+ classroom_lecture_training_for_penitentiary_lighting,471,Lux,1,0.82,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",changed general fraction to 1 and supplemental fraction to 0
15
+ classroom_lecture_training_lighting,471,Lux,1,0.8,0,0.92,0,0,0,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",changed general fraction to 1.0
16
+ computer_room_lighting,710,Lux,1,0.92,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
17
+ conference_meeting_multipurpose_lighting,355,Lux,0.85,0.59,0.075,0.89,0,0,0.075,0.69,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.85, task and wall wash to 0.075"
18
+ confinement_cells_lighting,296,Lux,0.909090909,0.73,0.090909091,0.68,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
19
+ convention_center_exhibit_space_general_lighting,431,Lux,1,0.81,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
20
+ copy_print_lighting,178,Lux,1,0.74,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
21
+ corridor_lighting,178,Lux,1,0.64,0,0,0,0,0,0.6,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",changed general fraction to 1.0
22
+ corridor_transition_for_hospital_lighting,355,Lux,0.9,0.71,0,0,0,0,0.1,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.9, wall wash to 0.1"
23
+ courtroom_lighting,474,Lux,0.4,0.51,0.5,0.84,0,0,0.1,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
24
+ datacenterhighite_lighting,118,Lux,1,0.92,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","computer room, need a better match"
25
+ datacenterlowite_lighting,118,Lux,1,0.92,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","computer room, need a better match"
26
+ dining_area_for_family_dining_lighting,237,Lux,0.695652174,0.92,0.086956522,0.45,0,0,0.217391304,0.9,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
27
+ dining_area_for_penitentiary_lighting,178,Lux,1,0.73,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
28
+ dining_bar_lounge_leisure_general_lighting,118,Lux,0.594059406,1,0.247524752,0.45,0.158415842,0.9,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
29
+ dining_cafeteria_fast_food_general_lighting,237,Lux,0.85,0.79,0.05,0.92,0,0,0.1,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.85, task to 0.05, wall wash to 0.1"
30
+ dining_lighting,308,Lux,0.85,0.79,0.05,0.92,0,0,0.1,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.85, task to 0.05, wall wash to 0.1"
31
+ dressing_room_lighting,237,Lux,0.434782609,0.6,0.565217391,0.6,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",retail
32
+ electrical_mechanical_lighting,118,Lux,0.9,0.49,0.1,0.38,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.9, task fraction to 0.1"
33
+ emergency_room_lighting,888,Lux,0.9,0.7,0.1,374,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.9, task fraction to 0.1"
34
+ emergency_vehicle_garage_lighting,355,Lux,1,0.79,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
35
+ exam_treatment_lighting,592,Lux,1,0.58,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
36
+ exercise_area_lighting,474,Lux,1,0.59,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
37
+ exhibit_lighting,431,Lux,1,0.89,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
38
+ food_preparation_lighting,538,Lux,0.816326531,0.65,0.183673469,0.65,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
39
+ guest_room_lighting,178,Lux,0,0.64,1,0.83,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",adjusted general fraction to force A19-style use
40
+ imaging_lighting,355,Lux,1,0.74,0,0.73,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
41
+ interior_parking_lighting,54,Lux,1,0.67,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
42
+ judges_chambers_lighting,355,Lux,0.857142857,0.57,0,0,0,0,0.142857143,0.72,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
43
+ laboratory_lighting,592,Lux,0.79338843,0.59,0.20661157,0.77,0,0,0,0.64,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
44
+ laundry_washing_lighting,355,Lux,1,0.81,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
45
+ library_lighting,118,Lux,0.909090909,0.79,0.090909091,0.65,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
46
+ library_reading_area_lighting,592,Lux,0.681818182,0.76,0.318181818,0.97,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
47
+ library_stacks_lighting,355,Lux,0.384615385,0.68,0.615384615,0.82,0,0,0,0.66,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
48
+ living_quarters_lighting,178,Lux,0.85,0.52,0.15,0.38,0,0.33,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
49
+ loading_dock_lighting,355,Lux,1,0.46,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
50
+ lobby_for_hotel_lighting,178,Lux,0.666666667,0.93,0,0,0,0.96,0.333333333,0.91,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
51
+ lobby_for_motion_picture_theater_lighting,118,Lux,1,0.92,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
52
+ lobby_for_performing_arts_theater_lighting,296,Lux,0.863013699,0.72,0,0,0.136986301,0.29,0,0.76,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
53
+ lobby_lighting,296,Lux,0.689655172,0.45,0.137931034,0.92,0,0,0.172413793,0.75,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",lobby all other
54
+ locker_room_lighting,237,Lux,0.875,0.65,0.125,0.77,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
55
+ lounge_breakroom_lighting,178,Lux,0.9,0.92,0,0,0,0,0.1,0.82,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","all other, changed general fraction to 0.9, wall wash to 0.1"
56
+ lounge_recreation_for_hospital_lighting,296,Lux,0.9,0.77,0,0.77,0,0,0.1,0.64,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.9, task fraction to 0, wall wash to 0.1"
57
+ manufacturing_facility_detailed_manufacturing_area_lighting,592,Lux,1,0.94,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
58
+ manufacturing_facility_equipment_room_lighting,237,Lux,0.769230769,0.49,0.230769231,0.38,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
59
+ manufacturing_facility_high_bay_area_25_to_50_ft_ftc_hgt_lighting,592,Lux,1,0.54,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
60
+ manufacturing_facility_low_bay_area_lt_25_ft_ftc_hgt_lighting,592,Lux,1,0.79,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
61
+ manufacturing_lighting,592,Lux,1,0.79,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",same as low bay
62
+ medical_supply_lighting,355,Lux,1,0.74,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
63
+ multifamily_lighting,178,Lux,0.85,0.52,0.15,0.38,0,0.33,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",living quarters
64
+ museum_restoration_room_lighting,592,Lux,0.727272727,0.7,0.272727273,0.74,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
65
+ none_lighting,0,Lux,1,1,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
66
+ nursery_lighting,355,Lux,1,0.59,0,0.84,0,0,0,0.73,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
67
+ nurses_station_lighting,355,Lux,0.8,0.59,0.2,0.58,0,0,0,0.73,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.8, task fraction to 0.2"
68
+ office-enclosed_general_lighting,355,Lux,1,0.62,0,0.52,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","enclosed, greater than 250ft2"
69
+ office_enclosed_lighting,355,Lux,1,0.5597,0,0.47,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","enclosed, less than 250ft"
70
+ office_lighting,414,Lux,0.88,0.76,0,0.74,0,0,0.12,0.91,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",open plan lighting
71
+ office_open_plan_lighting,414,Lux,0.88,0.76,0,0.74,0,0,0.12,0.91,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
72
+ operating_room_lighting,1184,Lux,1,0.71,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
73
+ patient_room_lighting,355,Lux,0.457,0.73,0.543,0.7,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",changed general fraction from 0.435 to 0.457 and supplemental fraction to 0
74
+ pharmacy_lighting,888,Lux,0.882352941,0.65,0.117647059,0.65,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
75
+ physical_therapy_lighting,474,Lux,0.8,0.59,0.2,0.59,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.8, task fraction to 0.2"
76
+ playing_area_lighting,592,Lux,1,0.8,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
77
+ post_office_lighting,237,Lux,1,0.44,0,0,0,0,0,0.56,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","lobby, changed general fraction to 1 and supplemental fraction to 0"
78
+ post_office_sorting_area_general_lighting,474,Lux,0.8,0,0,0,0,0,0,,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
79
+ recovery_lighting,592,Lux,0.886363636,0.73,0,0,0,0,0.113636364,0.73,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
80
+ recreation_common_living_lighting,323,Lux,0.85,0.52,0.15,0.38,0,0.33,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","dormitory living quarters, illuminance value seems to high for a oounge"
81
+ religious_buildings_fellowship_hall_lighting,355,Lux,0.8,0.92,0.2,1.03,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
82
+ religious_buildings_worship_pulpit_choir_lighting,355,Lux,0.625,0.97,0.166666667,0.4,0,0,0.208333333,0.91,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
83
+ restroom_lighting,178,Lux,0.9,0.51,0,0.69,0,0,0.1,0.57,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.9, wall wash to 0.1"
84
+ retail_mall_concourse_lighting,403,Lux,0.705882353,0.97,0,0,0.294117647,0.4,0,0.75,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
85
+ retail_sales_lighting,474,Lux,0.9,0.6,0,0,0.06,0.83,0.04,0.56,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","retail sales area, changed general fraction to 0.9, supplemental to 0.06, wall wash to 0.04"
86
+ sleeping_quarters_lighting,59,Lux,0.5,0.65,0.5,0.43,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
87
+ sports_arena_lighting,1184,Lux,0.5,0.46,0.5,0.97,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
88
+ stairwell_lighting,118,Lux,0.9,0.36,0.05,0.27,0,0,0.05,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.9, task to 0.05, wall wash to 0.05"
89
+ storage_lighting,118,Lux,1,0.61,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
90
+ transportation_facility_ticket_counter_lighting,296,Lux,0.4,0.79,0.4,0.92,0,0,0.2,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
91
+ transportation_lighting,237,Lux,0.545454545,0.59,0,0,0,0,0.454545455,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
92
+ vehicular_maintenance_lighting,355,Lux,0.833333333,0.7,0.166666667,0.56,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
93
+ warehouse_storage_area_medium_to_bulky_palletized_items_lighting,237,Lux,1,0.81,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
94
+ warehouse_storage_area_smaller_hand-carried_items_lighting,355,Lux,1,0.59,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
95
+ workshop_lighting,592,Lux,1,0.61,0,0.92,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
96
+ worship_lighting,355,Lux,0.625,0.97,0.166666667,0.4,0,0,0.208333333,0.45,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",