openstudio-standards 0.8.3 → 0.8.5.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. checksums.yaml +4 -4
  2. data/data/geometry/ASHRAECollege.osm +30 -30
  3. data/data/geometry/ASHRAECourthouse.osm +22 -22
  4. data/data/geometry/ASHRAESmallOfficeDetailed.osm +2 -2
  5. data/data/geometry/DEER_Asm.osm +1 -1
  6. data/data/geometry/DEER_ECC.osm +1 -1
  7. data/data/geometry/DEER_EPr.osm +1 -1
  8. data/data/geometry/DEER_ERC.osm +1 -1
  9. data/data/geometry/DEER_ESe.osm +1 -1
  10. data/data/geometry/DEER_EUn.osm +1 -1
  11. data/data/geometry/DEER_Hsp.osm +1 -1
  12. data/data/geometry/DEER_Htl.osm +1 -1
  13. data/data/geometry/DEER_MBT.osm +1 -1
  14. data/data/geometry/DEER_MFm.osm +1 -1
  15. data/data/geometry/DEER_Nrs.osm +1 -1
  16. data/data/geometry/DEER_OfL.osm +1 -1
  17. data/data/geometry/DEER_OfS.osm +1 -1
  18. data/data/geometry/DEER_RFF.osm +1 -1
  19. data/data/geometry/DEER_RSD.osm +1 -1
  20. data/data/geometry/DEER_Rt3.osm +1 -1
  21. data/data/geometry/DEER_RtS.osm +1 -1
  22. data/data/standards/export_OpenStudio_libraries.rb +2 -3
  23. data/data/standards/test_performance_expected_dd_results.csv +42 -42
  24. data/lib/openstudio-standards/btap/NECB_building_types.csv +35 -0
  25. data/lib/openstudio-standards/btap/NECB_space_types.csv +109 -0
  26. data/lib/openstudio-standards/btap/activity.rb +480 -0
  27. data/lib/openstudio-standards/btap/attributes.rb +166 -0
  28. data/lib/openstudio-standards/btap/bridging.rb +561 -1402
  29. data/lib/openstudio-standards/btap/btap.rb +4 -2
  30. data/lib/openstudio-standards/btap/btap_test_helper.rb +86 -0
  31. data/lib/openstudio-standards/btap/carbon/btap_carbon.rb +177 -0
  32. data/lib/openstudio-standards/btap/common_paths.rb +81 -0
  33. data/lib/openstudio-standards/btap/common_resources/ConstructionProperties.csv +52 -0
  34. data/lib/openstudio-standards/btap/common_resources/Constructions.csv +37 -0
  35. data/lib/openstudio-standards/btap/common_resources/carbon_frame.csv +35 -0
  36. data/lib/openstudio-standards/btap/common_resources/carbon_glazing.csv +35 -0
  37. data/lib/openstudio-standards/btap/common_resources/carbon_opaque.csv +164 -0
  38. data/lib/openstudio-standards/btap/common_resources/construction_sets.csv +1270 -0
  39. data/lib/openstudio-standards/btap/common_resources/constructions_glazing.csv +121 -0
  40. data/lib/openstudio-standards/btap/common_resources/constructions_opaque.csv +2256 -0
  41. data/lib/openstudio-standards/btap/common_resources/costs.csv +1897 -0
  42. data/lib/openstudio-standards/btap/common_resources/costs_local_factors.csv +2315 -0
  43. data/lib/openstudio-standards/btap/common_resources/hvac_vent_ahu.csv +925 -0
  44. data/lib/openstudio-standards/btap/common_resources/lighting.csv +364 -0
  45. data/lib/openstudio-standards/btap/common_resources/lighting_sets.csv +2667 -0
  46. data/lib/openstudio-standards/btap/common_resources/locations.csv +75 -0
  47. data/lib/openstudio-standards/btap/common_resources/materials_glazing.csv +35 -0
  48. data/lib/openstudio-standards/btap/common_resources/materials_hvac.csv +1686 -0
  49. data/lib/openstudio-standards/btap/common_resources/materials_lighting.csv +267 -0
  50. data/lib/openstudio-standards/btap/common_resources/materials_opaque.csv +164 -0
  51. data/lib/openstudio-standards/btap/costing/README.md +502 -0
  52. data/lib/openstudio-standards/btap/costing/btap_costing.rb +469 -0
  53. data/lib/openstudio-standards/btap/costing/btap_measure_helper.rb +359 -0
  54. data/lib/openstudio-standards/btap/costing/btap_workflow.rb +117 -0
  55. data/lib/openstudio-standards/btap/costing/copy_test_results_files_to_expected_results.rb +11 -0
  56. data/lib/openstudio-standards/btap/costing/cost_building_from_file.rb +136 -0
  57. data/lib/openstudio-standards/btap/costing/costing_database_wrapper.rb +173 -0
  58. data/lib/openstudio-standards/btap/costing/daylighting_sensor_control_costing.rb +354 -0
  59. data/lib/openstudio-standards/btap/costing/dcv_costing.rb +314 -0
  60. data/lib/openstudio-standards/btap/costing/dummy.epw +8768 -0
  61. data/lib/openstudio-standards/btap/costing/dummy.osm +5320 -0
  62. data/lib/openstudio-standards/btap/costing/envelope_costing.rb +215 -0
  63. data/lib/openstudio-standards/btap/costing/heating_cooling_costing.rb +2584 -0
  64. data/lib/openstudio-standards/btap/costing/led_lighting_costing.rb +156 -0
  65. data/lib/openstudio-standards/btap/costing/lighting_costing.rb +209 -0
  66. data/lib/openstudio-standards/btap/costing/mech_sizing.json +502 -0
  67. data/lib/openstudio-standards/btap/costing/neb_end_use_prices.csv +42 -0
  68. data/lib/openstudio-standards/btap/costing/necb_2011_spacetype_info.csv +225 -0
  69. data/lib/openstudio-standards/btap/costing/necb_reference_runs.csv +28705 -0
  70. data/lib/openstudio-standards/btap/costing/nv_costing.rb +547 -0
  71. data/lib/openstudio-standards/btap/costing/parallel_tests.rb +92 -0
  72. data/lib/openstudio-standards/btap/costing/pv_ground_costing.rb +687 -0
  73. data/lib/openstudio-standards/btap/costing/shw_costing.rb +705 -0
  74. data/lib/openstudio-standards/btap/costing/test_list.txt +15 -0
  75. data/lib/openstudio-standards/btap/costing/test_run_all_test_locally.rb +27 -0
  76. data/lib/openstudio-standards/btap/costing/test_run_costing_tests.rb +80 -0
  77. data/lib/openstudio-standards/btap/costing/ventilation_costing.rb +2616 -0
  78. data/lib/openstudio-standards/btap/geometry.rb +86 -6
  79. data/lib/openstudio-standards/btap/structure.rb +657 -0
  80. data/lib/openstudio-standards/constructions/modify.rb +2 -1
  81. data/lib/openstudio-standards/create_typical/create_typical.rb +17 -33
  82. data/lib/openstudio-standards/create_typical/space_type_ratios.rb +36 -36
  83. data/lib/openstudio-standards/equipment/create_transformer.rb +104 -0
  84. data/lib/openstudio-standards/equipment/create_typical_equipment.rb +117 -0
  85. data/lib/openstudio-standards/equipment/data/electric_equipment_space_types.json +1514 -0
  86. data/lib/openstudio-standards/equipment/data/gas_equipment_space_types.json +227 -0
  87. data/lib/openstudio-standards/exterior_lighting/create.rb +22 -22
  88. data/lib/openstudio-standards/exterior_lighting/information.rb +3 -2
  89. data/lib/openstudio-standards/hvac/components/air_conditioner_vrf.rb +482 -0
  90. data/lib/openstudio-standards/hvac/components/air_terminal.rb +31 -0
  91. data/lib/openstudio-standards/hvac/components/boiler_hot_water.rb +163 -0
  92. data/lib/openstudio-standards/hvac/components/central_air_source_heat_pump.rb +220 -0
  93. data/lib/openstudio-standards/hvac/components/chiller.rb +25 -0
  94. data/lib/openstudio-standards/hvac/components/coil.rb +276 -0
  95. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_multi_speed.rb +40 -0
  96. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_single_speed.rb +300 -0
  97. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_two_speed.rb +187 -0
  98. data/lib/openstudio-standards/hvac/components/coil_cooling_water.rb +80 -0
  99. data/lib/openstudio-standards/hvac/components/coil_cooling_water_to_air_heat_pump_equation_fit.rb +182 -0
  100. data/lib/openstudio-standards/hvac/components/coil_heating_dx_single_speed.rb +220 -0
  101. data/lib/openstudio-standards/hvac/components/coil_heating_electric.rb +56 -0
  102. data/lib/openstudio-standards/hvac/components/coil_heating_gas.rb +90 -0
  103. data/lib/openstudio-standards/hvac/components/coil_heating_gas_multi_stage.rb +33 -0
  104. data/lib/openstudio-standards/hvac/components/coil_heating_water.rb +98 -0
  105. data/lib/openstudio-standards/hvac/components/coil_heating_water_to_air_heat_pump_equation_fit.rb +147 -0
  106. data/lib/openstudio-standards/hvac/components/component.rb +39 -0
  107. data/lib/openstudio-standards/{standards/ashrae_90_1/data/ashrae_90_1.fans.json → hvac/components/data/fans.json} +6 -6
  108. data/lib/openstudio-standards/hvac/components/fan.rb +363 -0
  109. data/lib/openstudio-standards/hvac/components/heat_exchanger_air_to_air.rb +203 -0
  110. data/lib/openstudio-standards/hvac/components/pump.rb +181 -0
  111. data/lib/openstudio-standards/hvac/controls/radiant_system_controls.rb +594 -0
  112. data/lib/openstudio-standards/hvac/conversions.rb +222 -0
  113. data/lib/openstudio-standards/hvac/curves.rb +192 -0
  114. data/lib/openstudio-standards/hvac/helpers.rb +357 -0
  115. data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +4 -4
  116. data/lib/openstudio-standards/interior_lighting/create_lights.rb +52 -0
  117. data/lib/openstudio-standards/interior_lighting/create_typical_interior_lighting.rb +254 -0
  118. data/lib/openstudio-standards/interior_lighting/data/convert_lighting_data.rb +249 -0
  119. data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.csv +96 -0
  120. data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.json +1429 -0
  121. data/lib/openstudio-standards/interior_lighting/data/lighting_technology.csv +46 -0
  122. data/lib/openstudio-standards/interior_lighting/data/lighting_technology.json +859 -0
  123. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  124. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  125. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  126. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -4
  127. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  128. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -4
  129. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  130. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  131. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +6 -7
  132. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +15 -15
  133. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +4 -4
  134. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +5 -5
  135. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +6 -6
  136. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +7 -7
  137. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +4 -4
  138. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +6 -6
  139. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +5 -1
  140. data/lib/openstudio-standards/prototypes/common/data/prototype_space_type_map.json +2594 -0
  141. data/lib/openstudio-standards/prototypes/common/data/thermostat_schedule_lookup.json +2108 -0
  142. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +33 -0
  143. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +0 -140
  144. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -73
  145. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -69
  146. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +0 -116
  147. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +0 -61
  148. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +2 -2
  149. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +128 -13
  150. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +606 -607
  151. data/lib/openstudio-standards/prototypes/common/prototype_space_type_map.rb +41 -0
  152. data/lib/openstudio-standards/prototypes/common/space_type_equipment_map.rb +184 -0
  153. data/lib/openstudio-standards/prototypes/common/space_type_thermostat_schedule_map.rb +116 -0
  154. data/lib/openstudio-standards/qaqc/hvac.rb +12 -12
  155. data/lib/openstudio-standards/refrigeration/create_compressor.rb +2 -5
  156. data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +4 -4
  157. data/lib/openstudio-standards/service_water_heating/create_water_heater.rb +1 -2
  158. data/lib/openstudio-standards/service_water_heating/create_water_use.rb +5 -5
  159. data/lib/openstudio-standards/space_type/data/level_1_space_types.json +612 -0
  160. data/lib/openstudio-standards/space_type/standards_space_type.rb +53 -0
  161. data/lib/openstudio-standards/standards/Standards.AirConditionerVariableRefrigerantFlow.rb +8 -26
  162. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +13 -13
  163. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +0 -24
  164. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +6 -43
  165. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +7 -24
  166. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +19 -44
  167. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +25 -50
  168. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +25 -33
  169. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +9 -22
  170. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +15 -157
  171. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +2 -2
  172. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +18 -105
  173. data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +3 -23
  174. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +0 -24
  175. data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -86
  176. data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +0 -107
  177. data/lib/openstudio-standards/standards/Standards.Model.rb +45 -20
  178. data/lib/openstudio-standards/standards/Standards.People.rb +113 -0
  179. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +11 -11
  180. data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -147
  181. data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +57 -41
  182. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +30 -153
  183. data/lib/openstudio-standards/standards/Standards.Ventilation.rb +74 -0
  184. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +1 -1
  185. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +4 -4
  186. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +3 -3
  187. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +37 -112
  188. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.spc_typ.json +37 -102
  189. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +3 -3
  190. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +37 -112
  191. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  192. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.spc_typ.json +37 -37
  193. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +6 -6
  194. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +37 -37
  195. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  196. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.BoilerHotWater.rb +1 -1
  197. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.spc_typ.json +37 -102
  198. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +6 -6
  199. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +37 -37
  200. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  201. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.BoilerHotWater.rb +1 -1
  202. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.spc_typ.json +45 -109
  203. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +6 -6
  204. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +37 -37
  205. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +1 -1
  206. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  207. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.BoilerHotWater.rb +1 -1
  208. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoilHeatingGas.rb +1 -1
  209. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.spc_typ.json +45 -109
  210. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +6 -6
  211. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +37 -37
  212. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +0 -200
  213. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.spc_typ.json +37 -37
  214. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +37 -37
  215. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.spc_typ.json +37 -37
  216. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +37 -37
  217. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  218. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +5 -5
  219. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  220. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +5 -5
  221. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +1 -1
  222. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +2 -2
  223. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +2 -68
  224. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +2 -35
  225. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +42 -0
  226. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +5 -2
  227. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +2 -2
  228. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +2 -2
  229. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +3 -3
  230. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +1 -1
  231. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +1 -0
  232. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb +2 -4
  233. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.curves.json +0 -200
  234. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.fans.json +5 -5
  235. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +7 -1
  236. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +0 -1
  237. data/lib/openstudio-standards/standards/cbes/data/cbes.curves.json +0 -200
  238. data/lib/openstudio-standards/standards/deer/data/deer.curves.json +0 -200
  239. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +21 -37
  240. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +12 -11
  241. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +68 -27
  242. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +64 -25
  243. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +9 -14
  244. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +4 -4
  245. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +1 -1
  246. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +115 -112
  247. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +637 -249
  248. data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +16 -12
  249. data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +799 -46
  250. data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +33 -51
  251. data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +75 -7
  252. data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +25 -1
  253. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/HighriseApartmentMult.osm +14272 -0
  254. data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps_heating.json +21 -15
  255. data/lib/openstudio-standards/standards/necb/NECB2011/data/necb_2015_table_c1.json +1 -1
  256. data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +437 -437
  257. data/lib/openstudio-standards/standards/necb/NECB2011/data/systems.json +516 -0
  258. data/lib/openstudio-standards/standards/necb/NECB2011/data/systems_including_sys5.json +588 -0
  259. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_namer.rb +489 -0
  260. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +18 -6
  261. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +48 -5
  262. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +2 -2
  263. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +35 -27
  264. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +34 -23
  265. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +8 -6
  266. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +68 -150
  267. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +444 -134
  268. data/lib/openstudio-standards/standards/necb/NECB2011/system_fuels.rb +61 -1
  269. data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps_heating.json +10 -2
  270. data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +636 -636
  271. data/lib/openstudio-standards/standards/necb/NECB2015/data/unitary_acs.json +38 -38
  272. data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +17 -8
  273. data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +636 -636
  274. data/lib/openstudio-standards/standards/necb/NECB2020/data/chillers.json +71 -71
  275. data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +16 -6
  276. data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +60 -61
  277. data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +30 -30
  278. data/lib/openstudio-standards/standards/necb/README.md +343 -0
  279. data/lib/openstudio-standards/standards/necb/common/btap_analysis.rb +79 -0
  280. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +206 -32
  281. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +75 -43
  282. data/lib/openstudio-standards/standards/necb/common/eccc_electric_grid_intensity_20250311.csv +14 -0
  283. data/lib/openstudio-standards/standards/necb/common/nir_gas_grid_intensity_20250311.csv +14 -0
  284. data/lib/openstudio-standards/standards/necb/common/system_types.yaml +0 -0
  285. data/lib/openstudio-standards/thermal_zone/{thermal_zone.rb → information.rb} +12 -45
  286. data/lib/openstudio-standards/thermal_zone/thermostat_schedules.rb +152 -0
  287. data/lib/openstudio-standards/utilities/logging.rb +18 -14
  288. data/lib/openstudio-standards/version.rb +1 -1
  289. data/lib/openstudio-standards/weather/modify.rb +2 -2
  290. data/lib/openstudio-standards/weather/stat_file.rb +2 -2
  291. data/lib/openstudio-standards.rb +67 -38
  292. metadata +141 -50
  293. data/lib/openstudio-standards/hvac/components/create.rb +0 -169
  294. data/lib/openstudio-standards/hvac/components/modify.rb +0 -42
  295. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +0 -438
  296. data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +0 -123
  297. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +0 -216
  298. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +0 -273
  299. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +0 -159
  300. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +0 -77
  301. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +0 -154
  302. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +0 -214
  303. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +0 -53
  304. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +0 -72
  305. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +0 -95
  306. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +0 -125
  307. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +0 -17
  308. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.transformers.rb +0 -90
  309. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +0 -4
  310. data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +0 -70
  311. data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +0 -590
  312. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +0 -901
  313. data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -5
  314. data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -5
  315. data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -5
  316. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +0 -5
  317. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +0 -55
  318. data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -5
  319. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +0 -5
  320. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +0 -5
  321. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanZoneExhaust.rb +0 -5
  322. data/lib/openstudio-standards/standards/cbes/data/cbes.fans.json +0 -328
  323. data/lib/openstudio-standards/standards/deer/data/deer.fans.json +0 -328
  324. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +0 -0
  325. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +0 -0
  326. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +0 -0
  327. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +0 -0
  328. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +0 -0
  329. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Pump.rb +0 -0
  330. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +0 -0
@@ -0,0 +1,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",