openstudio-standards 0.7.1 → 0.8.0.rc2
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.
- checksums.yaml +4 -4
- data/data/geometry/ASHRAE90120162019LargeHotel.json +58 -13
- data/data/geometry/ASHRAELargeHotel.json +58 -13
- data/data/standards/OpenStudio_Standards-ashrae_90_1-ALL-comstock(space_types).xlsx +0 -0
- data/data/standards/export_OpenStudio_libraries.rb +2 -2
- data/data/standards/manage_OpenStudio_Standards.rb +6 -6
- data/data/standards/openstudio_standards_duplicates_log.csv +7961 -1
- data/data/standards/test_performance_expected_dd_results.csv +2016 -2004
- data/lib/openstudio-standards/btap/fileio.rb +171 -5
- data/lib/openstudio-standards/constructions/create.rb +38 -4
- data/lib/openstudio-standards/constructions/modify.rb +10 -3
- data/lib/openstudio-standards/create_typical/create_typical.rb +42 -28
- data/lib/openstudio-standards/create_typical/space_type_information.rb +160 -0
- data/lib/openstudio-standards/create_typical/space_type_ratios.rb +22 -21
- data/lib/openstudio-standards/exterior_lighting/create.rb +454 -0
- data/lib/openstudio-standards/exterior_lighting/data/entryways.csv +52 -0
- data/lib/openstudio-standards/exterior_lighting/data/parking.csv +54 -0
- data/lib/openstudio-standards/exterior_lighting/data/typical_exterior_lighting.json +37 -0
- data/lib/openstudio-standards/exterior_lighting/information.rb +202 -0
- data/lib/openstudio-standards/geometry/information.rb +49 -2
- data/lib/openstudio-standards/hvac/components/create.rb +169 -0
- data/lib/openstudio-standards/hvac/components/modify.rb +42 -0
- data/lib/openstudio-standards/hvac/exhaust/create_exhaust_fan.rb +108 -0
- data/lib/openstudio-standards/hvac/exhaust/data/convert_data.rb +86 -0
- data/lib/openstudio-standards/hvac/exhaust/data/typical_exhaust.csv +18 -0
- data/lib/openstudio-standards/hvac/exhaust/data/typical_exhaust.json +89 -0
- data/lib/openstudio-standards/infiltration/nist_infiltration.rb +25 -13
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +0 -64
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +0 -25
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +0 -25
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +1 -11
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +5 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +0 -7
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +36 -18
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +121 -239
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +179 -151
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +0 -466
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +18 -2
- data/lib/openstudio-standards/refrigeration/create_case.rb +125 -0
- data/lib/openstudio-standards/refrigeration/create_compressor.rb +78 -0
- data/lib/openstudio-standards/refrigeration/create_compressor_rack.rb +48 -0
- data/lib/openstudio-standards/refrigeration/create_refrigeration_system.rb +74 -0
- data/lib/openstudio-standards/refrigeration/create_typical_refrigeration.rb +161 -0
- data/lib/openstudio-standards/refrigeration/create_walkin.rb +116 -0
- data/lib/openstudio-standards/refrigeration/data/refrigerated_cases.csv +31 -0
- data/lib/openstudio-standards/refrigeration/data/refrigerated_walkins.csv +76 -0
- data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +13 -0
- data/lib/openstudio-standards/refrigeration/data/typical_refrigerated_cases.csv +17 -0
- data/lib/openstudio-standards/refrigeration/data/typical_refrigerated_walkins.csv +53 -0
- data/lib/openstudio-standards/refrigeration/information.rb +130 -0
- data/lib/openstudio-standards/schedules/parametric.rb +1 -1
- data/lib/openstudio-standards/service_water_heating/create_typical.rb +299 -0
- data/lib/openstudio-standards/service_water_heating/create_water_heating_loop.rb +16 -14
- data/lib/openstudio-standards/service_water_heating/data/convert_data.rb +119 -0
- data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.csv +54 -0
- data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.json +810 -0
- data/lib/openstudio-standards/service_water_heating/information.rb +69 -0
- data/lib/openstudio-standards/sql_file/fenestration.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.AirConditionerVariableRefrigerantFlow.rb +154 -0
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +35 -12
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +110 -61
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +128 -29
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +103 -38
- data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +106 -5
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +8 -8
- data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +44 -17
- data/lib/openstudio-standards/standards/Standards.Fan.rb +32 -21
- data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +45 -18
- data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +14 -9
- data/lib/openstudio-standards/standards/Standards.Model.rb +294 -76
- data/lib/openstudio-standards/standards/Standards.Motor.rb +66 -0
- data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -1
- data/lib/openstudio-standards/standards/Standards.Pump.rb +34 -20
- data/lib/openstudio-standards/standards/Standards.ServiceWaterHeating.rb +0 -353
- data/lib/openstudio-standards/standards/Standards.Space.rb +3 -107
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +2 -57
- data/lib/openstudio-standards/standards/Standards.Surface.rb +11 -3
- data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +1 -120
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.computer_room_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +1006 -596
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.energy_recovery.json +724 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ext_ltg.json +1258 -163
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.motors.json +1070 -140
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +33 -3374
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +1400 -340
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.vrfs.json +769 -0
- 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 +2 -5338
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.computer_room_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +1006 -596
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.energy_recovery.json +724 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ext_ltg.json +1258 -163
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.motors.json +1070 -140
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +15 -3343
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +1840 -372
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.vrfs.json +769 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +20 -10
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +0 -9
- 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 +0 -5382
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.computer_room_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +1006 -628
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +718 -712
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ext_ltg.json +1438 -163
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.motors.json +2552 -182
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +14 -3368
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +2348 -352
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.vrfs.json +769 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +47 -61
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +6 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Motor.rb +11 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +0 -9
- 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 +2 -5522
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.computer_room_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +1006 -628
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +1358 -1346
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ext_ltg.json +1438 -163
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.motors.json +1359 -189
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +19 -3451
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +2176 -616
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.vrfs.json +616 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +47 -61
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Motor.rb +11 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +0 -9
- 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 +8 -6055
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.computer_room_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.economizers.json +1006 -628
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.energy_recovery.json +1188 -1424
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ext_ltg.json +1498 -163
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.motors.json +1769 -189
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +15 -3422
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.unitary_acs.json +1807 -408
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.vrfs.json +1024 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +70 -87
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Motor.rb +11 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +0 -9
- 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 +8 -6080
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.computer_room_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.economizers.json +1006 -628
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.energy_recovery.json +2806 -3296
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ext_ltg.json +1558 -163
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.motors.json +1759 -189
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +16 -3448
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.unitary_acs.json +2758 -422
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.vrfs.json +684 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +14 -3318
- 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 +2 -4786
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.chillers.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.economizers.json +953 -207
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.energy_recovery.json +724 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +11 -2858
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirConditionerVariableRefrigerantFlow.rb +13 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +0 -18
- 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 +1 -4739
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.chillers.json +0 -51
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.economizers.json +953 -207
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.energy_recovery.json +724 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +9 -2830
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirConditionerVariableRefrigerantFlow.rb +13 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +0 -18
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.economizers.json +1006 -564
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.energy_recovery.json +1264 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.spc_typ.json +0 -1079
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +132 -288
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.HeatExchangerSensLat.rb +44 -20
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Model.rb +11 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Space.rb +0 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.economizers.json +1006 -564
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.energy_recovery.json +1264 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.spc_typ.json +0 -1079
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +137 -288
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerSensLat.rb +44 -20
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +11 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space.rb +0 -9
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +12 -10
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +8 -6
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +8 -6
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +9 -3
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Fan.rb +6 -40
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +30 -337
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Space.rb +4 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +1 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.rb +56 -3
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +80 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb +0 -10
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb +35 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.economizers.json +550 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.energy_recovery.json +724 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.ext_ltg.json +1216 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_pumps.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.motors.json +225 -245
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.unitary_acs.json +174 -78
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.water_heaters.json +354 -317
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +19 -3
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_airloop_hvac.json +185 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_airloop_hvac_doas.json +127 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_building.json +121 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_design_specification_outdoor_air.json +49 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_electric_equipment.json +113 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_exterior_lights.json +120 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_space.json +388 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_spacetype.json +367 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_thermal_zone.json +56 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_wateruse_connections.json +37 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_wateruse_equipment.json +69 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_wateruse_equipment_definition.json +37 -0
- data/lib/openstudio-standards/standards/cbes/cbes_pre_1978/data/cbes_pre_1978.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes_t24_1978/data/cbes_t24_1978.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes_t24_1992/data/cbes_t24_1992.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2001/data/cbes_t24_2001.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/data/cbes_t24_2005.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/data/cbes_t24_2008.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_1985/comstock_deer_1985/data/comstock_deer_1985.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_1996/comstock_deer_1996/data/comstock_deer_1996.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2003/comstock_deer_2003/data/comstock_deer_2003.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2007/comstock_deer_2007/data/comstock_deer_2007.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2011/comstock_deer_2011/data/comstock_deer_2011.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2014/comstock_deer_2014/data/comstock_deer_2014.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2015/comstock_deer_2015/data/comstock_deer_2015.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2017/comstock_deer_2017/data/comstock_deer_2017.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2020/comstock_deer_2020/data/comstock_deer_2020.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2025/comstock_deer_2025/data/comstock_deer_2025.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2030/comstock_deer_2030/data/comstock_deer_2030.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2035/comstock_deer_2035/data/comstock_deer_2035.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2040/comstock_deer_2040/data/comstock_deer_2040.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2045/comstock_deer_2045/data/comstock_deer_2045.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2050/comstock_deer_2050/data/comstock_deer_2050.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2055/comstock_deer_2055/data/comstock_deer_2055.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2060/comstock_deer_2060/data/comstock_deer_2060.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2065/comstock_deer_2065/data/comstock_deer_2065.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2070/comstock_deer_2070/data/comstock_deer_2070.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2075/comstock_deer_2075/data/comstock_deer_2075.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/comstock_deer_pre_1975/data/comstock_deer_pre_1975.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +10 -1
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/unitary_acs.json +20 -20
- data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +379 -27
- data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +1 -4
- data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +0 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/unitary_acs.json +20 -20
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +34 -22
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +76 -23
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_shw_calculation.xlsx +0 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +4 -5
- data/lib/openstudio-standards/standards/necb/NECB2011/system_fuels.rb +6 -2
- data/lib/openstudio-standards/standards/necb/NECB2015/data/unitary_acs.json +26 -24
- data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +2 -1
- data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +38 -32
- data/lib/openstudio-standards/standards/necb/common/btap_data.rb +215 -18
- data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +190 -15
- data/lib/openstudio-standards/standards/necb/common/national_carbon_price_sched_feb_2025.json +60 -0
- data/lib/openstudio-standards/standards/necb/common/utility_pricing_2025-02-20.csv +92 -0
- data/lib/openstudio-standards/utilities/ruleset_check.rb +204 -0
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/information.rb +1 -1
- data/lib/openstudio-standards.rb +32 -12
- metadata +78 -80
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.refrigeration.rb +0 -13
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.refrigeration.rb +0 -13
- data/lib/openstudio-standards/prototypes/cbes/cbes.refrigeration.rb +0 -13
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +0 -432
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Space.rb +0 -11
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.ext_ltg.json +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.spc_typ.json +0 -20804
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.Space.rb +0 -11
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.ext_ltg.json +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.ext_ltg.json +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.ext_ltg.json +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.ext_ltg.json +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.ref_cases.json +0 -763
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.ext_ltg.json +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.ref_cases.json +0 -763
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.ext_ltg.json +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.ext_ltg.json +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_economizers.json +0 -213
- data/lib/openstudio-standards/standards/cbes/cbes.Space.rb +0 -11
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/cbes_t24_2005.Space.rb +0 -11
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/cbes_t24_2008.Space.rb +0 -11
- data/lib/openstudio-standards/standards/deer/deer.Space.rb +0 -20
- data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.ref_lnup.json +0 -562
@@ -285,20 +285,19 @@ module OpenstudioStandards
|
|
285
285
|
hash['Toilet'] = { ratio: 0.0193, space_type_gen: true, default: false }
|
286
286
|
hash['Undeveloped'] = { ratio: 0.0835, space_type_gen: false, default: false }
|
287
287
|
hash['Xray'] = { ratio: 0.0220, space_type_gen: true, default: false }
|
288
|
-
when 'SuperMarket'
|
289
|
-
|
290
|
-
hash['
|
291
|
-
hash['
|
292
|
-
hash['
|
293
|
-
hash['
|
294
|
-
hash['
|
295
|
-
hash['
|
296
|
-
hash['
|
297
|
-
hash['
|
298
|
-
hash['
|
299
|
-
hash['
|
300
|
-
hash['
|
301
|
-
hash['Vestibule'] = { ratio: 0.99, space_type_gen: true, default: true }
|
288
|
+
when 'SuperMarket', 'GroceryStore'
|
289
|
+
hash['Bakery'] = { ratio: 0.05, space_type_gen: true, default: false }
|
290
|
+
hash['Deli'] = { ratio: 0.0537, space_type_gen: true, default: false }
|
291
|
+
hash['DryStorage'] = { ratio: 0.1010, space_type_gen: true, default: false }
|
292
|
+
hash['Office'] = { ratio: 0.0067, space_type_gen: true, default: false }
|
293
|
+
hash['Produce'] = { ratio: 0.1701, space_type_gen: true, default: true }
|
294
|
+
hash['Sales'] = { ratio: 0.5495, space_type_gen: true, default: true }
|
295
|
+
hash['Corridor'] = { ratio: 0.0118, space_type_gen: true, default: true }
|
296
|
+
hash['Dining'] = { ratio: 0.0111, space_type_gen: true, default: true }
|
297
|
+
hash['Elec/MechRoom'] = { ratio: 0.0133, space_type_gen: true, default: true }
|
298
|
+
hash['Meeting'] = { ratio: 0.0111, space_type_gen: true, default: true }
|
299
|
+
hash['Restroom'] = { ratio: 0.0150, space_type_gen: true, default: true }
|
300
|
+
hash['Vestibule'] = { ratio: 0.0067, space_type_gen: true, default: true }
|
302
301
|
when 'Laboratory'
|
303
302
|
hash['Office'] = { ratio: 0.50, space_type_gen: true, default: true }
|
304
303
|
hash['Open lab'] = { ratio: 0.35, space_type_gen: true, default: true }
|
@@ -384,11 +383,9 @@ module OpenstudioStandards
|
|
384
383
|
hash['FacMaint'] = { ratio: 0.08, space_type_gen: true, default: false }
|
385
384
|
hash['DormitoryRoom'] = { ratio: 0.1699, space_type_gen: true, default: false }
|
386
385
|
when 'Gro'
|
387
|
-
hash['GrocSales'] = { ratio: 0.
|
388
|
-
hash['
|
389
|
-
hash['
|
390
|
-
hash['RefFoodPrep'] = { ratio: 0.0253, space_type_gen: true, default: false }
|
391
|
-
hash['RefWalkInFreeze'] = { ratio: 0.0162, space_type_gen: true, default: false }
|
386
|
+
hash['GrocSales'] = { ratio: 0.800, space_type_gen: true, default: true }
|
387
|
+
hash['OfficeGeneral'] = { ratio: 0.070, space_type_gen: true, default: false }
|
388
|
+
hash['RefFoodPrep'] = { ratio: 0.073, space_type_gen: true, default: false }
|
392
389
|
hash['IndLoadDock'] = { ratio: 0.057, space_type_gen: true, default: false }
|
393
390
|
when 'Hsp'
|
394
391
|
hash['HspSurgOutptLab'] = { ratio: 0.2317, space_type_gen: true, default: false }
|
@@ -462,9 +459,13 @@ module OpenstudioStandards
|
|
462
459
|
hash['RetailSales'] = { ratio: 0.8, space_type_gen: true, default: true }
|
463
460
|
hash['StockRoom'] = { ratio: 0.2, space_type_gen: true, default: false }
|
464
461
|
when 'SCn'
|
465
|
-
hash['WarehouseCond'] = { ratio:
|
462
|
+
hash['WarehouseCond'] = { ratio: 0.951, space_type_gen: true, default: true }
|
463
|
+
hash['OfficeGeneral'] = { ratio: 0.049, space_type_gen: true, default: false }
|
464
|
+
|
466
465
|
when 'SUn'
|
467
|
-
hash['WarehouseUnCond'] = { ratio:
|
466
|
+
hash['WarehouseUnCond'] = { ratio: 0.951, space_type_gen: true, default: true }
|
467
|
+
hash['OfficeGeneral'] = { ratio: 0.049, space_type_gen: true, default: false }
|
468
|
+
|
468
469
|
when 'WRf'
|
469
470
|
hash['IndLoadDock'] = { ratio: 0.08, space_type_gen: true, default: false }
|
470
471
|
hash['OfficeGeneral'] = { ratio: 0.02, space_type_gen: true, default: false }
|
@@ -0,0 +1,454 @@
|
|
1
|
+
module OpenstudioStandards
|
2
|
+
# The Exterior Lighting module provides methods create, modify, and get information about model exterior lighting
|
3
|
+
module ExteriorLighting
|
4
|
+
# @!group Create
|
5
|
+
|
6
|
+
# create an ExtertiorLights object from inputs
|
7
|
+
#
|
8
|
+
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
9
|
+
# @param name [String] the name of the exterior lights
|
10
|
+
# @param power [Double] the watts value, can be watts or watts per area or length
|
11
|
+
# @param units [String] units for the power, either 'W', 'W/ft' or 'W/ft^2'
|
12
|
+
# @param multiplier [Double] the multiplier for the lighting, representing ft or ft^2
|
13
|
+
# @param schedule [OpenStudio::Model::Schedule] OpenStudio Schedule object. If nil, will default to always on.
|
14
|
+
# @param control_option [String] Options are 'ScheduleNameOnly' and 'AstronomicalClock'.
|
15
|
+
# 'ScheduleNameOnly' will follow the schedule. 'AstronomicalClock' will follow the schedule, but turn off lights when the sun is up.
|
16
|
+
# @return [OpenStudio::Model::ExteriorLights] OpenStudio ExteriorLights object
|
17
|
+
def self.model_create_exterior_lights(model,
|
18
|
+
name: nil,
|
19
|
+
power: 1.0,
|
20
|
+
units: 'W',
|
21
|
+
multiplier: 1.0,
|
22
|
+
schedule: nil,
|
23
|
+
control_option: 'AstronomicalClock')
|
24
|
+
# default name
|
25
|
+
if name.nil?
|
26
|
+
name = "Exterior Lights #{power.round(2)} #{units}"
|
27
|
+
else
|
28
|
+
end_use_category = name
|
29
|
+
name = "#{name} #{power.round(2)} #{units}"
|
30
|
+
end
|
31
|
+
|
32
|
+
# warn if incorrect control option
|
33
|
+
unless OpenStudio::Model::ExteriorLights::validControlOptionValues.include? control_option
|
34
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.ExteriorLighting', "Invalid control option #{control_option}. Use either ScheduleNameOnly' or 'AstronomicalClock'. Defaulting to 'AstronomicalClock'.")
|
35
|
+
control_option = 'AstronomicalClock'
|
36
|
+
end
|
37
|
+
|
38
|
+
# default schedule
|
39
|
+
schedule = model.alwaysOnDiscreteSchedule if schedule.nil?
|
40
|
+
|
41
|
+
# create exterior light definition
|
42
|
+
exterior_lights_definition = OpenStudio::Model::ExteriorLightsDefinition.new(model)
|
43
|
+
exterior_lights_definition.setName("#{name} Def (#{units})")
|
44
|
+
exterior_lights_definition.setDesignLevel(power)
|
45
|
+
|
46
|
+
# creating exterior lights object
|
47
|
+
exterior_lights = OpenStudio::Model::ExteriorLights.new(exterior_lights_definition, schedule)
|
48
|
+
exterior_lights.setMultiplier(multiplier)
|
49
|
+
exterior_lights.setName(name)
|
50
|
+
exterior_lights.setControlOption(control_option)
|
51
|
+
exterior_lights.setEndUseSubcategory(end_use_category)
|
52
|
+
|
53
|
+
return exterior_lights
|
54
|
+
end
|
55
|
+
|
56
|
+
# Create typical exterior lighting in a model
|
57
|
+
#
|
58
|
+
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
59
|
+
# @param standard [Standard] standard object to use for lighting properties. If set, will override lighting_generation.
|
60
|
+
# @param lighting_generation [String] lighting generation to use for lighting properties. Currently defaulted to a mix of Metal Halide, High Pressure Sodium, and LEDs.
|
61
|
+
# @param lighting_zone [Integer] exterior lighting zone number, 0-4
|
62
|
+
# @param onsite_parking_fraction [Double] onsite parking fraction, 0-1
|
63
|
+
# @param add_base_site_allowance [Boolean] whether to include the base site allowance
|
64
|
+
# @param use_model_for_entries_and_canopies [Boolean] use building geometry for number of entries and canopy size
|
65
|
+
# @param control_option [String] Options are 'ScheduleNameOnly' and 'AstronomicalClock'.
|
66
|
+
# 'ScheduleNameOnly' will follow the schedule. 'AstronomicalClock' will follow the schedule, but turn off lights when the sun is up.
|
67
|
+
# @return [Array<OpenStudio::Model::ExteriorLights>] Array of OpenStudio ExteriorLights object
|
68
|
+
def self.model_create_typical_exterior_lighting(model,
|
69
|
+
standard: nil,
|
70
|
+
lighting_generation: 'default',
|
71
|
+
lighting_zone: 3,
|
72
|
+
onsite_parking_fraction: 1.0,
|
73
|
+
add_base_site_allowance: false,
|
74
|
+
use_model_for_entries_and_canopies: false,
|
75
|
+
control_option: 'AstronomicalClock')
|
76
|
+
exterior_lights = []
|
77
|
+
installed_power = 0.0
|
78
|
+
# get the exterior lighting properties from standard or the lighting_generation
|
79
|
+
if standard.nil?
|
80
|
+
exterior_lighting_properties = OpenstudioStandards::ExteriorLighting.model_get_exterior_lighting_properties(lighting_generation: lighting_generation)
|
81
|
+
lookup_key = lighting_generation
|
82
|
+
else
|
83
|
+
lookup_key = standard.template
|
84
|
+
if ['90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', '90.1-2016', '90.1-2019 PRM'].include?(lookup_key)
|
85
|
+
exterior_lighting_properties = {}
|
86
|
+
else
|
87
|
+
search_criteria = {
|
88
|
+
'lighting_zone' => lighting_zone
|
89
|
+
}
|
90
|
+
exterior_lighting_properties = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
# make sure lighting properties were found
|
95
|
+
if exterior_lighting_properties.nil?
|
96
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.ExteriorLighting', "Exterior lighting properties not found for #{lookup_key}, ext lighting zone #{lighting_zone}, none will be added to model.")
|
97
|
+
return exterior_lights
|
98
|
+
end
|
99
|
+
|
100
|
+
# get model specific areas to for exterior lighting
|
101
|
+
area_length_count_hash = OpenstudioStandards::ExteriorLighting.model_get_exterior_lighting_sizes(model)
|
102
|
+
|
103
|
+
# create schedules for exterior lighting objects using midnight to 6am setback or shutdown
|
104
|
+
start_setback_shutoff = { hr: 24, min: 0 }
|
105
|
+
end_setback_shutoff = { hr: 6, min: 0 }
|
106
|
+
shuttoff = false
|
107
|
+
setback = false
|
108
|
+
|
109
|
+
if exterior_lighting_properties.has_key?('building_facade_and_landscape_automatic_shut_off')
|
110
|
+
if exterior_lighting_properties['building_facade_and_landscape_automatic_shut_off'] == 1
|
111
|
+
facade_automatic_shut_off = true
|
112
|
+
else
|
113
|
+
facade_automatic_shut_off = false
|
114
|
+
end
|
115
|
+
else
|
116
|
+
search_criteria = {
|
117
|
+
'template' => lookup_key,
|
118
|
+
'lighting_zone' => lighting_zone,
|
119
|
+
'allowance_type' => 'building facades'
|
120
|
+
}
|
121
|
+
exterior_lighting_building_facade_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
122
|
+
if exterior_lighting_building_facade_req['daylight_off_control'] == 'REQ'
|
123
|
+
facade_automatic_shut_off = true
|
124
|
+
else
|
125
|
+
facade_automatic_shut_off = false
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
if facade_automatic_shut_off
|
130
|
+
ext_lights_sch_facade_and_landscape = OpenStudio::Model::ScheduleRuleset.new(model)
|
131
|
+
default_day = ext_lights_sch_facade_and_landscape.defaultDaySchedule
|
132
|
+
default_day.addValue(OpenStudio::Time.new(0, end_setback_shutoff[:hr], end_setback_shutoff[:min], 0), 0.0)
|
133
|
+
default_day.addValue(OpenStudio::Time.new(0, start_setback_shutoff[:hr], start_setback_shutoff[:min], 0), 1.0)
|
134
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Facade and Landscape exterior lights shut off from #{start_setback_shutoff} to #{end_setback_shutoff}")
|
135
|
+
else
|
136
|
+
ext_lights_sch_facade_and_landscape = model.alwaysOnDiscreteSchedule
|
137
|
+
end
|
138
|
+
|
139
|
+
|
140
|
+
occupancy_setback_reduction = 0.0
|
141
|
+
if exterior_lighting_properties.has_key?('occupancy_setback_reduction')
|
142
|
+
if !exterior_lighting_properties['occupancy_setback_reduction'].nil? && (exterior_lighting_properties['occupancy_setback_reduction'] > 0.0)
|
143
|
+
occupancy_setback_reduction = exterior_lighting_properties['occupancy_setback_reduction']
|
144
|
+
end
|
145
|
+
else
|
146
|
+
unless ['90.1-2004', '90.1-2007', 'DOE Ref Pre-1980', 'DOE Ref 1980-2004', 'DEER 1985', 'DEER 1996', 'DEER 2003', 'DEER 2007', 'DEER Pre-1975'].include?(lookup_key)
|
147
|
+
occupancy_setback_reduction = 0.3
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
if occupancy_setback_reduction > 0
|
152
|
+
ext_lights_sch_other = OpenStudio::Model::ScheduleRuleset.new(model)
|
153
|
+
setback_value = 1.0 - occupancy_setback_reduction
|
154
|
+
default_day = ext_lights_sch_other.defaultDaySchedule
|
155
|
+
default_day.addValue(OpenStudio::Time.new(0, end_setback_shutoff[:hr], end_setback_shutoff[:min], 0), setback_value)
|
156
|
+
default_day.addValue(OpenStudio::Time.new(0, start_setback_shutoff[:hr], start_setback_shutoff[:min], 0), 1.0)
|
157
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Non Facade and Landscape lights reduce by #{occupancy_setback_reduction * 100} % from #{start_setback_shutoff} to #{end_setback_shutoff}")
|
158
|
+
else
|
159
|
+
ext_lights_sch_other = model.alwaysOnDiscreteSchedule
|
160
|
+
end
|
161
|
+
|
162
|
+
# add exterior lights for parking area
|
163
|
+
if !area_length_count_hash[:parking_area_and_drives_area].nil? && area_length_count_hash[:parking_area_and_drives_area] > 0
|
164
|
+
# lighting values
|
165
|
+
multiplier = area_length_count_hash[:parking_area_and_drives_area] * onsite_parking_fraction
|
166
|
+
|
167
|
+
# get power
|
168
|
+
if exterior_lighting_properties.has_key?('parking_areas_and_drives')
|
169
|
+
power = exterior_lighting_properties['parking_areas_and_drives']
|
170
|
+
else
|
171
|
+
search_criteria = {
|
172
|
+
'template' => lookup_key,
|
173
|
+
'lighting_zone' => lighting_zone,
|
174
|
+
'allowance_type' => 'parking lots and drives'
|
175
|
+
}
|
176
|
+
exterior_lighting_parking_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
177
|
+
power = exterior_lighting_parking_req['allowance']
|
178
|
+
end
|
179
|
+
|
180
|
+
# create exterior lights
|
181
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power.round(2)} W/ft^2 of lighting for #{multiplier} ft^2 of parking area.")
|
182
|
+
ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
|
183
|
+
name: 'Parking Areas and Drives',
|
184
|
+
power: power,
|
185
|
+
units: 'W/ft^2',
|
186
|
+
multiplier: multiplier,
|
187
|
+
schedule: ext_lights_sch_other,
|
188
|
+
control_option: control_option)
|
189
|
+
exterior_lights << ext_lights
|
190
|
+
installed_power += power * multiplier
|
191
|
+
end
|
192
|
+
|
193
|
+
# add exterior lights for facades
|
194
|
+
if !area_length_count_hash[:building_facades].nil? && area_length_count_hash[:building_facades] > 0
|
195
|
+
# lighting values
|
196
|
+
multiplier = area_length_count_hash[:building_facades]
|
197
|
+
|
198
|
+
# get power
|
199
|
+
if exterior_lighting_properties.has_key?('building_facades')
|
200
|
+
power = exterior_lighting_properties['building_facades']
|
201
|
+
else
|
202
|
+
search_criteria = {
|
203
|
+
'template' => lookup_key,
|
204
|
+
'lighting_zone' => lighting_zone,
|
205
|
+
'allowance_type' => 'building facades',
|
206
|
+
'allowance_unit' => 'W/ft2'
|
207
|
+
}
|
208
|
+
exterior_lighting_facade_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
209
|
+
power = exterior_lighting_facade_req['allowance']
|
210
|
+
end
|
211
|
+
|
212
|
+
# create exterior lights
|
213
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power.round(2)} W/ft^2 of lighting for #{multiplier} ft^2 of building facade area.")
|
214
|
+
ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
|
215
|
+
name: 'Building Facades',
|
216
|
+
power: power,
|
217
|
+
units: 'W/ft^2',
|
218
|
+
multiplier: multiplier,
|
219
|
+
schedule: ext_lights_sch_facade_and_landscape,
|
220
|
+
control_option: control_option)
|
221
|
+
exterior_lights << ext_lights
|
222
|
+
installed_power += power * multiplier
|
223
|
+
end
|
224
|
+
|
225
|
+
# add exterior lights for main entries
|
226
|
+
if !area_length_count_hash[:main_entries].nil? && area_length_count_hash[:main_entries] > 0
|
227
|
+
# lighting values
|
228
|
+
multiplier = area_length_count_hash[:main_entries]
|
229
|
+
|
230
|
+
# get power
|
231
|
+
if exterior_lighting_properties.has_key?('main_entries')
|
232
|
+
power = exterior_lighting_properties['main_entries']
|
233
|
+
else
|
234
|
+
search_criteria = {
|
235
|
+
'template' => lookup_key,
|
236
|
+
'lighting_zone' => lighting_zone,
|
237
|
+
'allowance_type' => 'main entries'
|
238
|
+
}
|
239
|
+
exterior_lighting_entries_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
240
|
+
# change of reference for 90.1-2019 and onwards
|
241
|
+
if exterior_lighting_entries_req.nil?
|
242
|
+
search_criteria = {
|
243
|
+
'template' => lookup_key,
|
244
|
+
'lighting_zone' => lighting_zone,
|
245
|
+
'allowance_type' => 'pedestrian and vehicular entrances and exists'
|
246
|
+
}
|
247
|
+
exterior_lighting_entries_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
248
|
+
end
|
249
|
+
power = exterior_lighting_entries_req['allowance']
|
250
|
+
end
|
251
|
+
|
252
|
+
# create exterior lights
|
253
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power.round(2)} W/ft of lighting for #{multiplier} ft of main entry length.")
|
254
|
+
ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
|
255
|
+
name: 'Main Entries',
|
256
|
+
power: power,
|
257
|
+
units: 'W/ft',
|
258
|
+
multiplier: multiplier,
|
259
|
+
schedule: ext_lights_sch_other,
|
260
|
+
control_option: control_option)
|
261
|
+
exterior_lights << ext_lights
|
262
|
+
installed_power += power * multiplier
|
263
|
+
end
|
264
|
+
|
265
|
+
# add exterior lights for other doors
|
266
|
+
if !area_length_count_hash[:other_doors].nil? && area_length_count_hash[:other_doors] > 0
|
267
|
+
# lighting values
|
268
|
+
multiplier = area_length_count_hash[:other_doors]
|
269
|
+
|
270
|
+
# get power
|
271
|
+
if exterior_lighting_properties.has_key?('other_doors')
|
272
|
+
power = exterior_lighting_properties['other_doors']
|
273
|
+
else
|
274
|
+
search_criteria = {
|
275
|
+
'template' => lookup_key,
|
276
|
+
'lighting_zone' => lighting_zone,
|
277
|
+
'allowance_type' => 'other doors'
|
278
|
+
}
|
279
|
+
exterior_lighting_doors_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
280
|
+
# change of reference for 90.1-2019 and onwards
|
281
|
+
if exterior_lighting_doors_req.nil?
|
282
|
+
search_criteria = {
|
283
|
+
'template' => lookup_key,
|
284
|
+
'lighting_zone' => lighting_zone,
|
285
|
+
'allowance_type' => 'pedestrian and vehicular entrances and exists'
|
286
|
+
}
|
287
|
+
exterior_lighting_doors_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
288
|
+
end
|
289
|
+
power = exterior_lighting_doors_req['allowance']
|
290
|
+
end
|
291
|
+
|
292
|
+
# create exterior lights
|
293
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power.round(2)} W/ft of lighting for #{multiplier} ft of other doors.")
|
294
|
+
ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
|
295
|
+
name: 'Other Doors',
|
296
|
+
power: power,
|
297
|
+
units: 'W/ft',
|
298
|
+
multiplier: multiplier,
|
299
|
+
schedule: ext_lights_sch_other,
|
300
|
+
control_option: control_option)
|
301
|
+
exterior_lights << ext_lights
|
302
|
+
installed_power += power * multiplier
|
303
|
+
end
|
304
|
+
|
305
|
+
# add exterior lights for entry canopies
|
306
|
+
if !area_length_count_hash[:canopy_entry_area].nil? && area_length_count_hash[:canopy_entry_area] > 0
|
307
|
+
# lighting values
|
308
|
+
multiplier = area_length_count_hash[:canopy_entry_area]
|
309
|
+
|
310
|
+
# get power
|
311
|
+
if exterior_lighting_properties.has_key?('entry_canopies')
|
312
|
+
power = exterior_lighting_properties['entry_canopies']
|
313
|
+
else
|
314
|
+
search_criteria = {
|
315
|
+
'template' => lookup_key,
|
316
|
+
'lighting_zone' => lighting_zone,
|
317
|
+
'allowance_type' => 'canopies'
|
318
|
+
}
|
319
|
+
exterior_lighting_canopies_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
320
|
+
# change of reference for 90.1-2010 and onwards
|
321
|
+
if exterior_lighting_parking_req.nil?
|
322
|
+
search_criteria = {
|
323
|
+
'template' => lookup_key,
|
324
|
+
'lighting_zone' => lighting_zone,
|
325
|
+
'allowance_type' => 'entry canopies'
|
326
|
+
}
|
327
|
+
exterior_lighting_canopies_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
328
|
+
end
|
329
|
+
power = exterior_lighting_canopies_req['allowance']
|
330
|
+
end
|
331
|
+
|
332
|
+
# create exterior lights
|
333
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power} W/ft^2 of lighting for #{multiplier} ft^2 of building entry canopies.")
|
334
|
+
ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
|
335
|
+
name: 'Entry Canopies',
|
336
|
+
power: power,
|
337
|
+
units: 'W/ft^2',
|
338
|
+
multiplier: multiplier,
|
339
|
+
schedule: ext_lights_sch_other,
|
340
|
+
control_option: control_option)
|
341
|
+
exterior_lights << ext_lights
|
342
|
+
installed_power += power * multiplier
|
343
|
+
end
|
344
|
+
|
345
|
+
# add exterior lights for emergency canopies
|
346
|
+
if !area_length_count_hash[:canopy_emergency_area].nil? && area_length_count_hash[:canopy_emergency_area] > 0
|
347
|
+
# lighting values
|
348
|
+
multiplier = area_length_count_hash[:canopy_emergency_area]
|
349
|
+
|
350
|
+
# get power
|
351
|
+
if exterior_lighting_properties.has_key?('loading_areas_for_emergency_vehicles')
|
352
|
+
power = exterior_lighting_properties['loading_areas_for_emergency_vehicles']
|
353
|
+
else
|
354
|
+
search_criteria = {
|
355
|
+
'template' => lookup_key,
|
356
|
+
'lighting_zone' => lighting_zone,
|
357
|
+
'allowance_type' => 'loading areas for law enforcement, fire, ambulance and other emergency service vehicles (uncovered)'
|
358
|
+
}
|
359
|
+
exterior_lighting_emergency_canopies_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
360
|
+
power = exterior_lighting_emergency_canopies_req['allowance']
|
361
|
+
end
|
362
|
+
|
363
|
+
# create exterior lights
|
364
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power} W/ft^2 of lighting for #{multiplier} ft^2 of building emergency canopies.")
|
365
|
+
ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
|
366
|
+
name: 'Emergency Canopies',
|
367
|
+
power: power,
|
368
|
+
units: 'W/ft^2',
|
369
|
+
multiplier: multiplier,
|
370
|
+
schedule: ext_lights_sch_other,
|
371
|
+
control_option: control_option)
|
372
|
+
exterior_lights << ext_lights
|
373
|
+
installed_power += power * multiplier
|
374
|
+
end
|
375
|
+
|
376
|
+
# add exterior lights for drive through windows
|
377
|
+
if !area_length_count_hash[:drive_through_windows].nil? && area_length_count_hash[:drive_through_windows] > 0
|
378
|
+
# lighting values
|
379
|
+
multiplier = area_length_count_hash[:drive_through_windows]
|
380
|
+
|
381
|
+
# get power
|
382
|
+
if exterior_lighting_properties.has_key?('drive_through_windows_and_doors')
|
383
|
+
power = exterior_lighting_properties['drive_through_windows_and_doors']
|
384
|
+
else
|
385
|
+
search_criteria = {
|
386
|
+
'template' => lookup_key,
|
387
|
+
'lighting_zone' => lighting_zone,
|
388
|
+
'allowance_type' => 'drive-up windows at fast food restaurant'
|
389
|
+
}
|
390
|
+
exterior_lighting_emergency_drive_through_req = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
391
|
+
power = exterior_lighting_emergency_drive_through_req['allowance']
|
392
|
+
end
|
393
|
+
|
394
|
+
# create exterior lights
|
395
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power} W/drive through window of lighting for #{multiplier} drive through windows.")
|
396
|
+
ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
|
397
|
+
name: 'Drive Through Windows',
|
398
|
+
power: power,
|
399
|
+
units: 'W/ft^2',
|
400
|
+
multiplier: multiplier,
|
401
|
+
schedule: ext_lights_sch_other,
|
402
|
+
control_option: control_option)
|
403
|
+
exterior_lights << ext_lights
|
404
|
+
installed_power += power * multiplier
|
405
|
+
end
|
406
|
+
|
407
|
+
# add base site allowance
|
408
|
+
if add_base_site_allowance
|
409
|
+
# lighting values
|
410
|
+
if exterior_lighting_properties.has_key?('base_site_allowance_power')
|
411
|
+
if !exterior_lighting_properties['base_site_allowance_power'].nil?
|
412
|
+
power = exterior_lighting_properties['base_site_allowance_power']
|
413
|
+
elsif !exterior_lighting_properties['base_site_allowance_fraction'].nil?
|
414
|
+
power = exterior_lighting_properties['base_site_allowance_fraction'] * installed_power # should be of allowed vs. installed, but hard to calculate
|
415
|
+
else
|
416
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', 'Cannot determine target base site allowance power, will set to 0 W.')
|
417
|
+
power = 0.0
|
418
|
+
end
|
419
|
+
else
|
420
|
+
search_criteria = {
|
421
|
+
'template' => lookup_key,
|
422
|
+
'lighting_zone' => lighting_zone,
|
423
|
+
'allowance_type' => 'base site allowance'
|
424
|
+
}
|
425
|
+
exterior_lighting_base_allowance = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
426
|
+
power = exterior_lighting_base_allowance['allowance']
|
427
|
+
|
428
|
+
search_criteria = {
|
429
|
+
'template' => lookup_key,
|
430
|
+
'lighting_zone' => lighting_zone,
|
431
|
+
'allowance_type' => 'additional unrestricted allowance'
|
432
|
+
}
|
433
|
+
exterior_lighting_add_base_allowance = standard.standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
434
|
+
if !exterior_lighting_add_base_allowance.nil?
|
435
|
+
power += exterior_lighting_add_base_allowance['allowance'] * installed_power / 100.0 # should be of allowed vs. installed, but hard to calculate
|
436
|
+
end
|
437
|
+
end
|
438
|
+
|
439
|
+
# create exterior lights
|
440
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.ExteriorLighting', "Added #{power} W of non landscape tradable exterior lighting. Will follow occupancy setback reduction.")
|
441
|
+
ext_lights = OpenstudioStandards::ExteriorLighting.model_create_exterior_lights(model,
|
442
|
+
name: 'Base Site Allowance',
|
443
|
+
power: power,
|
444
|
+
units: 'W',
|
445
|
+
multiplier: 1.0,
|
446
|
+
schedule: ext_lights_sch_other,
|
447
|
+
control_option: control_option)
|
448
|
+
exterior_lights << ext_lights
|
449
|
+
end
|
450
|
+
|
451
|
+
return exterior_lights
|
452
|
+
end
|
453
|
+
end
|
454
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
building_type,rollup_doors_per_10000_ft2,entrance_doors_per_10000_ft2,other_doors_per_10000_ft2,entrance_canopies,emergency_canopies,canopy_size,floor_area_per_drive_through_window,notes
|
2
|
+
SmallOffice,0.47,2,2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
3
|
+
MediumOffice,0.13,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
4
|
+
LargeOffice,0,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
5
|
+
Retail,1.84,1,2.93,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
6
|
+
StripMall,0.05,6,6.6,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
7
|
+
PrimarySchool,0.07,2,3.3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
8
|
+
SecondarySchool,0.1,2,2.45,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
9
|
+
Outpatient,0.1,1,5.19,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
10
|
+
Hospital,0.03,2,3.8,,1,720,,"No source for canopy size, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate canopy lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
|
11
|
+
SmallHotel,0,2,28.91,1,,720,,"SmallHotel appears to have exterior entries for all units, No source for canopy size, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate canopy lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
|
12
|
+
LargeHotel,0,2,2.27,1,,1620,,"No source for canopy size, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate canopy lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
|
13
|
+
Warehouse,3.67,1,2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
14
|
+
QuickServiceRestaurant,0,2,1,,,,2500,"No source for drive through count, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate drive through lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
|
15
|
+
FullServiceRestaurant,0,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
16
|
+
MidriseApartment,0,1,1.13,,,,,"Midrise not in table 4.18, using half of values from LargeHotel."
|
17
|
+
HighriseApartment,0,1,1.13,,,,,"Highrise not in table 4.18, using half of values from LargeHotel."
|
18
|
+
SuperMarket,1.84,1,2.93,,,,,"SuperMarket not in table 4.18, using values from RetailStandAlone. Consistant with SuperMarket parking area used in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock report."
|
19
|
+
Courthouse,0,1,3,,,,,match MediumOffice
|
20
|
+
College,0,2,2.45,,,,,match SecondarySchool
|
21
|
+
Laboratory,0,2,2.45,,,,,match SecondarySchool
|
22
|
+
SmallDataCenterLowITE,0,1,3,,,,,match MediumOffice
|
23
|
+
SmallDataCenterHighITE,0,1,3,,,,,match MediumOffice
|
24
|
+
LargeDataCenterLowITE,0,1,3,,,,,match MediumOffice
|
25
|
+
LargeDataCenterHighITE,0,1,3,,,,,match MediumOffice
|
26
|
+
SmallOfficeDetailed,0.47,2,2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
27
|
+
MediumOfficeDetailed,0.13,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
28
|
+
LargeOfficeDetailed,0,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
29
|
+
Asm,0.1,2,2.45,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
30
|
+
ECC,0.1,2,2.45,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
31
|
+
EPr,0.07,2,3.3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
32
|
+
ERC,0,1,0,,,,,Relocatable classrooms typically have 1 door based on engineering judgement
|
33
|
+
ESe,0.1,2,2.45,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
34
|
+
EUn,0.1,2,2.45,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
35
|
+
Gro,1.84,1,2.93,,,,,"SuperMarket not in table 4.18, using values from RetailStandAlone. Consistant with SuperMarket parking area used in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock report."
|
36
|
+
Hsp,0.03,0.67,3.8,,1,720,,"No source for canopy size, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate canopy lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
|
37
|
+
Htl,0,0.67,2.27,1,,1620,,"No source for canopy size, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate canopy lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
|
38
|
+
MBT,3.67,1,2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
39
|
+
MFm,0,1,1.13,,,,,"Midrise not in table 4.18, using half of values from LargeHotel."
|
40
|
+
MLI,3.67,1,2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
41
|
+
Mtl,0,2,28.91,,,,,"Assuming no canopy; this is different from the DOE SmallHotel prototype. The DOE SmallHotel appears to have exterior entries for all units, No source for canopy size, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate canopy lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
|
42
|
+
Nrs,0,1,1.13,,,,,"Nursing home not in table 4.18, using half of values from LargeHotel."
|
43
|
+
OfL,0,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
44
|
+
OfS,0.47,2,2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
45
|
+
RFF,0,2,1,,,,2500,"No source for drive through count, Table 5.41. Exterior Lighting Savings Summary for Addendum 90.1-07i doesn't indicate drive through lighting. Section 5.4.2 Exterior Lights in U.S. Department of Energy Commercial Reference Building Models of the National Building Stock shows their use."
|
46
|
+
RSD,0,1,3,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
47
|
+
Rt3,1.84,1,2.93,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
48
|
+
RtL,1.84,1,2.93,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
49
|
+
RtS,0.05,6,6.6,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
50
|
+
SCn,3.67,0.2,0.2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
51
|
+
SUn,3.67,0.2,0.2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
52
|
+
WRf,3.67,0.2,0.2,,,,,Based on Table 4.18 Number of Doors by Door Type from Achieving the 30% Goal: Energy and Cost Savings Analysis of ASHRAE Standard 90.1-2010
|
@@ -0,0 +1,54 @@
|
|
1
|
+
building_type,building_area_per_spot,units_per_spot,students_per_spot,beds_per_spot,parking_area_per_spot
|
2
|
+
SmallOffice,250,,,,405
|
3
|
+
MediumOffice,250,,,,405
|
4
|
+
LargeOffice,620,,,,405
|
5
|
+
Retail,285.7,,,,405
|
6
|
+
StripMall,215,,,,405
|
7
|
+
PrimarySchool,,,17,,405
|
8
|
+
SecondarySchool,,,8,,405
|
9
|
+
Outpatient,200,,,,405
|
10
|
+
Hospital,,,,0.83,405
|
11
|
+
SmallHotel,,1,,,405
|
12
|
+
LargeHotel,,1,,,405
|
13
|
+
Warehouse,1000,,,,405
|
14
|
+
QuickServiceRestaurant,100,,,,405
|
15
|
+
FullServiceRestaurant,100,,,,405
|
16
|
+
MidriseApartment,,0.45,,,405
|
17
|
+
HighriseApartment,,0.45,,,405
|
18
|
+
SuperMarket,285.7,,,,405
|
19
|
+
Parking surface,,,,,405
|
20
|
+
Parking garage,,,,,486
|
21
|
+
SmallDataCenterLowITE,0,,,,405
|
22
|
+
SmallDataCenterHighITE,0,,,,405
|
23
|
+
LargeDataCenterLowITE,0,,,,405
|
24
|
+
LargeDataCenterHighITE,0,,,,405
|
25
|
+
SmallOfficeDetailed,250,,,,405
|
26
|
+
MediumOfficeDetailed,250,,,,405
|
27
|
+
LargeOfficeDetailed,620,,,,405
|
28
|
+
Courthouse,250,,,,405
|
29
|
+
College,250,,,,405
|
30
|
+
Laboratory,250,,,,405
|
31
|
+
Asm,285.7,,,,405
|
32
|
+
ECC,,,8,,405
|
33
|
+
EPr,,,17,,405
|
34
|
+
ERC,,,8,,405
|
35
|
+
ESe,,,8,,405
|
36
|
+
EUn,,,30,,405
|
37
|
+
Gro,285.7,,,,405
|
38
|
+
Hsp,,,,0.83,405
|
39
|
+
Htl,,1,,,405
|
40
|
+
MBT,1000,,,,405
|
41
|
+
MFm,,0.45,,,405
|
42
|
+
MLI,1000,,,,405
|
43
|
+
Mtl,,1,,,405
|
44
|
+
Nrs,,1,,,405
|
45
|
+
OfL,250,,,,405
|
46
|
+
OfS,250,,,,405
|
47
|
+
RFF,100,,,,405
|
48
|
+
RSD,100,,,,405
|
49
|
+
Rt3,285.7,,,,405
|
50
|
+
RtL,285.7,,,,405
|
51
|
+
RtS,285.7,,,,405
|
52
|
+
SCn,1000,,,,405
|
53
|
+
SUn,1000,,,,405
|
54
|
+
WRf,1000,,,,405
|