openstudio-standards 0.7.1 → 0.8.0.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.
- 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 +16 -19
- 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.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
@@ -7,7 +7,7 @@
|
|
7
7
|
],
|
8
8
|
"table": [
|
9
9
|
{
|
10
|
-
|
10
|
+
"equipment_type": "Air Conditioners",
|
11
11
|
"cooling_type": "AirCooled",
|
12
12
|
"heating_type": "Electric Resistance or None",
|
13
13
|
"subcategory": "Single Package",
|
@@ -29,7 +29,7 @@
|
|
29
29
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
30
30
|
},
|
31
31
|
{
|
32
|
-
|
32
|
+
"equipment_type": "Air Conditioners",
|
33
33
|
"cooling_type": "AirCooled",
|
34
34
|
"heating_type": "All Other",
|
35
35
|
"subcategory": "Single Package",
|
@@ -51,7 +51,7 @@
|
|
51
51
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
52
52
|
},
|
53
53
|
{
|
54
|
-
|
54
|
+
"equipment_type": "Air Conditioners",
|
55
55
|
"cooling_type": "AirCooled",
|
56
56
|
"heating_type": "Electric Resistance or None",
|
57
57
|
"subcategory": "Split System",
|
@@ -73,7 +73,7 @@
|
|
73
73
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
74
74
|
},
|
75
75
|
{
|
76
|
-
|
76
|
+
"equipment_type": "Air Conditioners",
|
77
77
|
"cooling_type": "AirCooled",
|
78
78
|
"heating_type": "All Other",
|
79
79
|
"subcategory": "Split System",
|
@@ -95,7 +95,7 @@
|
|
95
95
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
96
96
|
},
|
97
97
|
{
|
98
|
-
|
98
|
+
"equipment_type": "Air Conditioners",
|
99
99
|
"cooling_type": "AirCooled",
|
100
100
|
"heating_type": "Electric Resistance or None",
|
101
101
|
"subcategory": "Single Package",
|
@@ -117,7 +117,7 @@
|
|
117
117
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
118
118
|
},
|
119
119
|
{
|
120
|
-
|
120
|
+
"equipment_type": "Air Conditioners",
|
121
121
|
"cooling_type": "AirCooled",
|
122
122
|
"heating_type": "All Other",
|
123
123
|
"subcategory": "Single Package",
|
@@ -139,7 +139,7 @@
|
|
139
139
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
140
140
|
},
|
141
141
|
{
|
142
|
-
|
142
|
+
"equipment_type": "Air Conditioners",
|
143
143
|
"cooling_type": "AirCooled",
|
144
144
|
"heating_type": "Electric Resistance or None",
|
145
145
|
"subcategory": "Split System",
|
@@ -161,7 +161,7 @@
|
|
161
161
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
162
162
|
},
|
163
163
|
{
|
164
|
-
|
164
|
+
"equipment_type": "Air Conditioners",
|
165
165
|
"cooling_type": "AirCooled",
|
166
166
|
"heating_type": "All Other",
|
167
167
|
"subcategory": "Split System",
|
@@ -183,7 +183,7 @@
|
|
183
183
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
184
184
|
},
|
185
185
|
{
|
186
|
-
|
186
|
+
"equipment_type": "Air Conditioners",
|
187
187
|
"cooling_type": "AirCooled",
|
188
188
|
"heating_type": "Electric Resistance or None",
|
189
189
|
"subcategory": "Single Package",
|
@@ -205,7 +205,7 @@
|
|
205
205
|
"notes": "From NECB 2011, Table 5.2.12.1: CHECK THIS"
|
206
206
|
},
|
207
207
|
{
|
208
|
-
|
208
|
+
"equipment_type": "Air Conditioners",
|
209
209
|
"cooling_type": "AirCooled",
|
210
210
|
"heating_type": "All Other",
|
211
211
|
"subcategory": "Single Package",
|
@@ -227,7 +227,7 @@
|
|
227
227
|
"notes": "From NECB 2011, Table 5.2.12.1: CHECK THIS"
|
228
228
|
},
|
229
229
|
{
|
230
|
-
|
230
|
+
"equipment_type": "Air Conditioners",
|
231
231
|
"cooling_type": "AirCooled",
|
232
232
|
"heating_type": "Electric Resistance or None",
|
233
233
|
"subcategory": "Split System",
|
@@ -249,7 +249,7 @@
|
|
249
249
|
"notes": "From NECB 2011, Table 5.2.12.1: CHECK THIS"
|
250
250
|
},
|
251
251
|
{
|
252
|
-
|
252
|
+
"equipment_type": "Air Conditioners",
|
253
253
|
"cooling_type": "AirCooled",
|
254
254
|
"heating_type": "All Other",
|
255
255
|
"subcategory": "Split System",
|
@@ -271,7 +271,7 @@
|
|
271
271
|
"notes": "From NECB 2011, Table 5.2.12.1: CHECK THIS"
|
272
272
|
},
|
273
273
|
{
|
274
|
-
|
274
|
+
"equipment_type": "Air Conditioners",
|
275
275
|
"cooling_type": "AirCooled",
|
276
276
|
"heating_type": "Electric Resistance or None",
|
277
277
|
"subcategory": "Single Package",
|
@@ -293,7 +293,7 @@
|
|
293
293
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
294
294
|
},
|
295
295
|
{
|
296
|
-
|
296
|
+
"equipment_type": "Air Conditioners",
|
297
297
|
"cooling_type": "AirCooled",
|
298
298
|
"heating_type": "All Other",
|
299
299
|
"subcategory": "Single Package",
|
@@ -315,7 +315,7 @@
|
|
315
315
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
316
316
|
},
|
317
317
|
{
|
318
|
-
|
318
|
+
"equipment_type": "Air Conditioners",
|
319
319
|
"cooling_type": "AirCooled",
|
320
320
|
"heating_type": "Electric Resistance or None",
|
321
321
|
"subcategory": "Split System",
|
@@ -337,7 +337,7 @@
|
|
337
337
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
338
338
|
},
|
339
339
|
{
|
340
|
-
|
340
|
+
"equipment_type": "Air Conditioners",
|
341
341
|
"cooling_type": "AirCooled",
|
342
342
|
"heating_type": "All Other",
|
343
343
|
"subcategory": "Split System",
|
@@ -359,10 +359,10 @@
|
|
359
359
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
360
360
|
},
|
361
361
|
{
|
362
|
-
|
362
|
+
"equipment_type": "PTAC",
|
363
363
|
"cooling_type": "AirCooled",
|
364
364
|
"heating_type": "Electric Resistance or None",
|
365
|
-
"subcategory":
|
365
|
+
"subcategory": null,
|
366
366
|
"minimum_capacity": "-",
|
367
367
|
"maximum_capacity": 9999999.0,
|
368
368
|
"start_date": "9/9/1919",
|
@@ -381,10 +381,10 @@
|
|
381
381
|
"notes": "From NECB 2011, Table 5.2.12.1"
|
382
382
|
},
|
383
383
|
{
|
384
|
-
|
384
|
+
"equipment_type": "PTAC",
|
385
385
|
"cooling_type": "AirCooled",
|
386
386
|
"heating_type": "All Other",
|
387
|
-
"subcategory":
|
387
|
+
"subcategory": null,
|
388
388
|
"minimum_capacity": "-",
|
389
389
|
"maximum_capacity": 9999999.0,
|
390
390
|
"start_date": "9/9/1919",
|
@@ -298,21 +298,21 @@ class NECB2011
|
|
298
298
|
end
|
299
299
|
|
300
300
|
# Create an ERV
|
301
|
+
erv = OpenstudioStandards::HVAC.create_hx_air_to_air_sensible_and_latent(air_loop_hvac.model,
|
302
|
+
name: "#{air_loop_hvac.name} ERV",
|
303
|
+
type: "Rotary",
|
304
|
+
economizer_lockout: true,
|
305
|
+
supply_air_outlet_temperature_control: true,
|
306
|
+
frost_control_type: 'ExhaustOnly',
|
307
|
+
sensible_heating_100_eff: 0.5,
|
308
|
+
sensible_heating_75_eff: 0.5,
|
309
|
+
latent_heating_100_eff: 0.5,
|
310
|
+
latent_heating_75_eff: 0.5,
|
311
|
+
sensible_cooling_100_eff: 0.5,
|
312
|
+
sensible_cooling_75_eff: 0.5,
|
313
|
+
latent_cooling_100_eff: 0.5,
|
314
|
+
latent_cooling_75_eff: 0.5)
|
301
315
|
|
302
|
-
erv = OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent.new(air_loop_hvac.model)
|
303
|
-
erv.setName("#{air_loop_hvac.name} ERV")
|
304
|
-
erv.setSensibleEffectivenessat100HeatingAirFlow(0.5)
|
305
|
-
erv.setLatentEffectivenessat100HeatingAirFlow(0.5)
|
306
|
-
erv.setSensibleEffectivenessat75HeatingAirFlow(0.5)
|
307
|
-
erv.setLatentEffectivenessat75HeatingAirFlow(0.5)
|
308
|
-
erv.setSensibleEffectivenessat100CoolingAirFlow(0.5)
|
309
|
-
erv.setLatentEffectivenessat100CoolingAirFlow(0.5)
|
310
|
-
erv.setSensibleEffectivenessat75CoolingAirFlow(0.5)
|
311
|
-
erv.setLatentEffectivenessat75CoolingAirFlow(0.5)
|
312
|
-
erv.setSupplyAirOutletTemperatureControl(true)
|
313
|
-
erv.setHeatExchangerType('Rotary')
|
314
|
-
erv.setFrostControlType('ExhaustOnly')
|
315
|
-
erv.setEconomizerLockout(true)
|
316
316
|
erv.setThresholdTemperature(-23.3) # -10F
|
317
317
|
erv.setInitialDefrostTimeFraction(0.167)
|
318
318
|
erv.setRateofDefrostTimeFractionIncrease(1.44)
|
@@ -381,20 +381,26 @@ class NECB2011
|
|
381
381
|
raise("Could not find #{erv_name} in #{self.class.name} class' erv.json file or it's parents. The available ervs are #{@standards_data['tables']['erv']['table'].map { |item| item['erv_name'] }}") if erv_info.nil?
|
382
382
|
|
383
383
|
heat_exchanger_air_to_air_sensible_and_latent.setHeatExchangerType(erv_info['HeatExchangerType'])
|
384
|
-
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(erv_info['SensibleEffectivenessat100HeatingAirFlow'])
|
385
|
-
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100HeatingAirFlow(erv_info['LatentEffectivenessat100HeatingAirFlow'])
|
386
|
-
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100CoolingAirFlow(erv_info['SensibleEffectivenessat100CoolingAirFlow'])
|
387
|
-
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100CoolingAirFlow(erv_info['LatentEffectivenessat100CoolingAirFlow'])
|
388
384
|
if heat_exchanger_air_to_air_sensible_and_latent.model.version < OpenStudio::VersionString.new('3.8.0')
|
385
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(erv_info['SensibleEffectivenessat100HeatingAirFlow'])
|
386
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100HeatingAirFlow(erv_info['LatentEffectivenessat100HeatingAirFlow'])
|
387
|
+
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100CoolingAirFlow(erv_info['SensibleEffectivenessat100CoolingAirFlow'])
|
388
|
+
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100CoolingAirFlow(erv_info['LatentEffectivenessat100CoolingAirFlow'])
|
389
389
|
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(erv_info['SensibleEffectivenessat75HeatingAirFlow'])
|
390
390
|
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(erv_info['LatentEffectivenessat75HeatingAirFlow'])
|
391
391
|
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75CoolingAirFlow(erv_info['SensibleEffectivenessat75CoolingAirFlow'])
|
392
392
|
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75CoolingAirFlow(erv_info['LatentEffectivenessat75CoolingAirFlow'])
|
393
393
|
else
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
394
|
+
values = Hash.new{|hash, key| hash[key] = Hash.new}
|
395
|
+
values['Sensible Heating'][0.75] = erv_info['SensibleEffectivenessat75HeatingAirFlow']
|
396
|
+
values['Sensible Heating'][1.0] = erv_info['SensibleEffectivenessat100HeatingAirFlow']
|
397
|
+
values['Latent Heating'][0.75] = erv_info['LatentEffectivenessat75HeatingAirFlow']
|
398
|
+
values['Latent Heating'][1.0] = erv_info['LatentEffectivenessat100HeatingAirFlow']
|
399
|
+
values['Sensible Cooling'][0.75] = erv_info['SensibleEffectivenessat75CoolingAirFlow']
|
400
|
+
values['Sensible Cooling'][1.0] = erv_info['SensibleEffectivenessat100CoolingAirFlow']
|
401
|
+
values['Latent Cooling'][0.75] = erv_info['LatentEffectivenessat75CoolingAirFlow']
|
402
|
+
values['Latent Cooling'][1.0] = erv_info['LatentEffectivenessat100CoolingAirFlow']
|
403
|
+
heat_exchanger_air_to_air_sensible_and_latent = OpenstudioStandards::HVAC.heat_exchanger_air_to_air_set_effectiveness_values(heat_exchanger_air_to_air_sensible_and_latent, defaults: false, values: values)
|
398
404
|
end
|
399
405
|
heat_exchanger_air_to_air_sensible_and_latent.setSupplyAirOutletTemperatureControl(erv_info['SupplyAirOutletTemperatureControl'])
|
400
406
|
heat_exchanger_air_to_air_sensible_and_latent.setFrostControlType(erv_info['FrostControlType'])
|
@@ -2523,4 +2529,10 @@ class NECB2011
|
|
2523
2529
|
air_terminal_single_duct_vav_reheat.setMaximumReheatAirTemperature(43.0)
|
2524
2530
|
return true
|
2525
2531
|
end
|
2532
|
+
|
2533
|
+
# Using a dummy method to overload the NREL one which applies VRF defaults. This is to avoid the NREL method
|
2534
|
+
# conflicting with NRCan's VRF ECMs.
|
2535
|
+
def air_conditioner_variable_refrigerant_flow_apply_efficiency_and_curves(air_conditioner_variable_refrigerant_flow)
|
2536
|
+
return
|
2537
|
+
end
|
2526
2538
|
end
|
@@ -28,12 +28,11 @@ class NECB2011 < Standard
|
|
28
28
|
def convert_arg_to_bool(variable:, default:)
|
29
29
|
return default if variable.nil?
|
30
30
|
if variable.is_a? String
|
31
|
-
return default if variable.to_s.downcase == 'necb_default'
|
32
|
-
return false if variable.to_s.downcase == 'false'
|
33
31
|
return true if variable.to_s.downcase == 'true'
|
32
|
+
return false
|
34
33
|
end
|
35
|
-
return
|
36
|
-
return
|
34
|
+
return true if variable == true
|
35
|
+
return default
|
37
36
|
end
|
38
37
|
|
39
38
|
# This method checks if a variable is a string. If it is anything but a string it returns the default. If it is a
|
@@ -216,7 +215,7 @@ class NECB2011 < Standard
|
|
216
215
|
debug: false,
|
217
216
|
sizing_run_dir: Dir.pwd,
|
218
217
|
primary_heating_fuel: 'Electricity',
|
219
|
-
swh_fuel:
|
218
|
+
swh_fuel: nil,
|
220
219
|
dcv_type: 'NECB_Default',
|
221
220
|
lights_type: 'NECB_Default',
|
222
221
|
lights_scale: 1.0,
|
@@ -271,7 +270,8 @@ class NECB2011 < Standard
|
|
271
270
|
tbd_interpolate: false,
|
272
271
|
necb_hdd: true,
|
273
272
|
boiler_fuel: nil,
|
274
|
-
boiler_cap_ratio: nil
|
273
|
+
boiler_cap_ratio: nil,
|
274
|
+
oerd_utility_pricing: nil)
|
275
275
|
model = load_building_type_from_library(building_type: building_type)
|
276
276
|
return model_apply_standard(model: model,
|
277
277
|
tbd_option: tbd_option,
|
@@ -333,7 +333,8 @@ class NECB2011 < Standard
|
|
333
333
|
baseline_system_zones_map_option: baseline_system_zones_map_option, # Three options: (1) 'NECB_Default'/'none'/nil (i.e. 'one_sys_per_bldg'), (2) 'one_sys_per_dwelling_unit', (3) 'one_sys_per_bldg'
|
334
334
|
necb_hdd: necb_hdd,
|
335
335
|
boiler_fuel: boiler_fuel,
|
336
|
-
boiler_cap_ratio: boiler_cap_ratio
|
336
|
+
boiler_cap_ratio: boiler_cap_ratio,
|
337
|
+
oerd_utility_pricing: oerd_utility_pricing
|
337
338
|
)
|
338
339
|
end
|
339
340
|
|
@@ -357,8 +358,8 @@ class NECB2011 < Standard
|
|
357
358
|
sizing_run_dir: Dir.pwd,
|
358
359
|
necb_reference_hp: false,
|
359
360
|
necb_reference_hp_supp_fuel: 'DefaultFuel',
|
360
|
-
primary_heating_fuel: '
|
361
|
-
swh_fuel:
|
361
|
+
primary_heating_fuel: 'Electricity',
|
362
|
+
swh_fuel: nil,
|
362
363
|
dcv_type: 'NECB_Default',
|
363
364
|
lights_type: 'NECB_Default',
|
364
365
|
lights_scale: 'NECB_Default',
|
@@ -411,29 +412,33 @@ class NECB2011 < Standard
|
|
411
412
|
baseline_system_zones_map_option: nil,
|
412
413
|
necb_hdd: true,
|
413
414
|
boiler_fuel: nil,
|
414
|
-
boiler_cap_ratio: nil
|
415
|
+
boiler_cap_ratio: nil,
|
416
|
+
oerd_utility_pricing: nil)
|
415
417
|
|
416
|
-
|
418
|
+
apply_weather_data(model: model, epw_file: epw_file, custom_weather_folder: custom_weather_folder)
|
419
|
+
primary_heating_fuel = validate_primary_heating_fuel(primary_heating_fuel: primary_heating_fuel, model: model)
|
417
420
|
self.fuel_type_set = SystemFuels.new()
|
418
|
-
|
419
|
-
self.fuel_type_set.set_defaults(standards_data: @standards_data, primary_heating_fuel: primary_heating_fuel, swh_fuel: swh_fuel)
|
420
|
-
swh_fuel = self.fuel_type_set.swh_fueltype if swh_fuel.to_s.downcase == 'necb_default'
|
421
|
+
self.fuel_type_set.set_defaults(standards_data: @standards_data, primary_heating_fuel: primary_heating_fuel)
|
421
422
|
clean_and_scale_model(model: model, rotation_degrees: rotation_degrees, scale_x: scale_x, scale_y: scale_y, scale_z: scale_z)
|
422
423
|
fdwr_set = convert_arg_to_f(variable: fdwr_set, default: -1)
|
423
424
|
srr_set = convert_arg_to_f(variable: srr_set, default: -1)
|
424
425
|
necb_hdd = convert_arg_to_bool(variable: necb_hdd, default: true)
|
425
426
|
boiler_fuel = convert_arg_to_string(variable: boiler_fuel, default: nil)
|
426
427
|
boiler_cap_ratio = convert_arg_to_string(variable: boiler_cap_ratio, default: nil)
|
428
|
+
swh_fuel = convert_arg_to_string(variable: swh_fuel, default: nil)
|
429
|
+
oerd_utility_pricing = convert_arg_to_bool(variable: oerd_utility_pricing, default: false)
|
427
430
|
|
428
431
|
boiler_cap_ratios = set_boiler_cap_ratios(boiler_cap_ratio: boiler_cap_ratio, boiler_fuel: boiler_fuel) unless boiler_cap_ratio.nil? && boiler_fuel.nil?
|
429
432
|
self.fuel_type_set.set_boiler_fuel(standards_data: @standards_data, boiler_fuel: boiler_fuel, boiler_cap_ratios: boiler_cap_ratios) unless boiler_fuel.nil?
|
433
|
+
self.fuel_type_set.set_swh_fuel(swh_fuel: swh_fuel) unless swh_fuel.nil? || swh_fuel.to_s.downcase == 'defaultfuel'
|
430
434
|
|
431
435
|
# Ensure the volume calculation in all spaces is done automatically
|
432
436
|
model.getSpaces.sort.each do |space|
|
433
437
|
space.autocalculateVolume
|
434
438
|
end
|
435
439
|
|
436
|
-
|
440
|
+
output_meters = check_output_meters(output_meters: output_meters) if oerd_utility_pricing
|
441
|
+
|
437
442
|
apply_loads(model: model,
|
438
443
|
lights_type: lights_type,
|
439
444
|
lights_scale: lights_scale,
|
@@ -475,7 +480,6 @@ class NECB2011 < Standard
|
|
475
480
|
apply_systems_and_efficiencies(model: model,
|
476
481
|
sizing_run_dir: sizing_run_dir,
|
477
482
|
primary_heating_fuel: primary_heating_fuel,
|
478
|
-
swh_fuel: swh_fuel,
|
479
483
|
dcv_type: dcv_type,
|
480
484
|
ecm_system_name: ecm_system_name,
|
481
485
|
ecm_system_zones_map_option: ecm_system_zones_map_option,
|
@@ -548,7 +552,6 @@ class NECB2011 < Standard
|
|
548
552
|
def apply_systems_and_efficiencies(model:,
|
549
553
|
sizing_run_dir:,
|
550
554
|
primary_heating_fuel:,
|
551
|
-
swh_fuel:,
|
552
555
|
dcv_type: 'NECB_Default',
|
553
556
|
ecm_system_name: 'NECB_Default',
|
554
557
|
ecm_system_zones_map_option: 'NECB_Default',
|
@@ -579,8 +582,6 @@ class NECB2011 < Standard
|
|
579
582
|
|
580
583
|
# Create Default Systems.
|
581
584
|
apply_systems(model: model,
|
582
|
-
primary_heating_fuel: primary_heating_fuel,
|
583
|
-
swh_fuel: swh_fuel,
|
584
585
|
sizing_run_dir: sizing_run_dir,
|
585
586
|
shw_scale: shw_scale,
|
586
587
|
baseline_system_zones_map_option: baseline_system_zones_map_option)
|
@@ -1056,6 +1057,27 @@ class NECB2011 < Standard
|
|
1056
1057
|
true
|
1057
1058
|
end
|
1058
1059
|
|
1060
|
+
# Apply the air leakage requirements to the model, as described in PNNL section 5.2.1.6.
|
1061
|
+
# This method creates customized infiltration objects for each space
|
1062
|
+
# and removes the SpaceType-level infiltration objects.
|
1063
|
+
#
|
1064
|
+
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
1065
|
+
# @return [Boolean] returns true if successful, false if not
|
1066
|
+
# @todo This infiltration method is not used by the Reference buildings, fix this inconsistency.
|
1067
|
+
def model_apply_infiltration_standard(model)
|
1068
|
+
# Set the infiltration rate at each space
|
1069
|
+
model.getSpaces.sort.each do |space|
|
1070
|
+
space_apply_infiltration_rate(space)
|
1071
|
+
end
|
1072
|
+
|
1073
|
+
# Remove infiltration rates set at the space type
|
1074
|
+
model.getSpaceTypes.sort.each do |space_type|
|
1075
|
+
space_type.spaceInfiltrationDesignFlowRates.each(&:remove)
|
1076
|
+
end
|
1077
|
+
|
1078
|
+
return true
|
1079
|
+
end
|
1080
|
+
|
1059
1081
|
# @param necb_reference_hp [Boolean] if true, NECB reference model rules for heat pumps will be used.
|
1060
1082
|
def apply_standard_efficiencies(model:, sizing_run_dir:, dcv_type: 'NECB_Default', necb_reference_hp: false)
|
1061
1083
|
raise('validation of model failed.') unless validate_initial_model(model)
|
@@ -1940,7 +1962,7 @@ class NECB2011 < Standard
|
|
1940
1962
|
space_type_apply_internal_loads(space_type: space_type, lights_type: lights_type, lights_scale: lights_scale)
|
1941
1963
|
|
1942
1964
|
# Schedules
|
1943
|
-
space_type_apply_internal_load_schedules(space_type, true, true, true, true, true, true
|
1965
|
+
space_type_apply_internal_load_schedules(space_type, true, true, true, true, true, true)
|
1944
1966
|
end
|
1945
1967
|
|
1946
1968
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Finished applying space types (loads)')
|
@@ -2437,7 +2459,16 @@ class NECB2011 < Standard
|
|
2437
2459
|
|
2438
2460
|
# This method is defined and used by the vintage classes to address he issue with the heat pump fuel types. This
|
2439
2461
|
# method does nothing when creating NECB reference buildings.
|
2440
|
-
def validate_primary_heating_fuel(primary_heating_fuel:)
|
2462
|
+
def validate_primary_heating_fuel(primary_heating_fuel:, model:)
|
2463
|
+
if primary_heating_fuel.to_s.downcase == 'defaultfuel' || primary_heating_fuel.to_s.downcase == 'necb_default'
|
2464
|
+
epw = OpenStudio::EpwFile.new(model.weatherFile.get.path.get)
|
2465
|
+
default_fuel = @standards_data['regional_fuel_use'].detect { |fuel_sources| fuel_sources['state_province_regions'].include?(epw.stateProvinceRegion) }['fueltype_set']
|
2466
|
+
if default_fuel.nil?
|
2467
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.swh', "Could not find a default fuel for #{epw.stateProvinceRegion}. Using Electricity as the fuel type instead.")
|
2468
|
+
return 'Electricity'
|
2469
|
+
end
|
2470
|
+
return default_fuel
|
2471
|
+
end
|
2441
2472
|
return primary_heating_fuel
|
2442
2473
|
end
|
2443
2474
|
|
@@ -2489,6 +2520,28 @@ class NECB2011 < Standard
|
|
2489
2520
|
}
|
2490
2521
|
return boiler_cap_ratios
|
2491
2522
|
end
|
2492
|
-
end
|
2493
|
-
|
2494
2523
|
|
2524
|
+
# This method checks if the output_meters argument contains a net electricity meter with 'timestep' frequency. If one
|
2525
|
+
# is then the method does nothing. If one is not then it is added. This is used in conjunction with the
|
2526
|
+
# 'oerd_utility_pricing' argument. If that argument is present then a net electricity meter with 'timestep' frequency
|
2527
|
+
# is required to determine the peak net electricity usage.
|
2528
|
+
def check_output_meters(output_meters: nil)
|
2529
|
+
if output_meters.nil?
|
2530
|
+
output_meters = [
|
2531
|
+
{
|
2532
|
+
"name" => "ElectricityNet:Facility",
|
2533
|
+
"frequency" => "Hourly"
|
2534
|
+
}
|
2535
|
+
]
|
2536
|
+
else
|
2537
|
+
electnet_facility = output_meters.select { |output_meter| (output_meter["name"].to_s.downcase == "electricitynet:facility") && (output_meter["frequency"].to_s.downcase == "zone timestep") }
|
2538
|
+
if electnet_facility.empty?
|
2539
|
+
output_meters << {
|
2540
|
+
"name" => "ElectricityNet:Facility",
|
2541
|
+
"frequency" => "Hourly"
|
2542
|
+
}
|
2543
|
+
end
|
2544
|
+
end
|
2545
|
+
return output_meters
|
2546
|
+
end
|
2547
|
+
end
|
@@ -1,10 +1,9 @@
|
|
1
1
|
class NECB2011
|
2
|
-
def model_add_swh(model:, swh_fueltype:
|
2
|
+
def model_add_swh(model:, swh_fueltype: nil, shw_scale:)
|
3
3
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started Adding Service Water Heating')
|
4
|
-
# Get default fuel based on
|
5
|
-
if swh_fueltype
|
6
|
-
|
7
|
-
swh_fueltype = @standards_data['regional_fuel_use'].detect { |fuel_sources| fuel_sources['state_province_regions'].include?(epw.stateProvinceRegion) }['fueltype_set']
|
4
|
+
# Get default fuel based on the system fuels if not defined.
|
5
|
+
if swh_fueltype.nil?
|
6
|
+
swh_fueltype = self.fuel_type_set.swh_fueltype
|
8
7
|
end
|
9
8
|
|
10
9
|
# Calculate the tank size and service water pump information
|
@@ -16,10 +16,9 @@ class SystemFuels
|
|
16
16
|
attr_accessor :necb_reference_hp_supp_fuel
|
17
17
|
attr_accessor :fan_type
|
18
18
|
attr_accessor :ecm_fueltype
|
19
|
-
attr_accessor :swh_fuel
|
20
19
|
attr_accessor :swh_fueltype
|
21
20
|
|
22
|
-
def set_defaults(standards_data:, primary_heating_fuel
|
21
|
+
def set_defaults(standards_data:, primary_heating_fuel:)
|
23
22
|
# Get fuelset.
|
24
23
|
system_fuel_defaults = standards_data['fuel_type_sets'].detect { |fuel_type_set| fuel_type_set['name'] == primary_heating_fuel }
|
25
24
|
raise("fuel_type_sets named #{primary_heating_fuel} not found in fuel_type_sets table.") if system_fuel_defaults.nil?
|
@@ -56,4 +55,9 @@ class SystemFuels
|
|
56
55
|
@mau_heating_coil_type = boiler_fuel_defaults['mau_heating_coil_type'] unless @mau_heating_coil_type == 'DX'
|
57
56
|
@heating_coil_type_sys6 = boiler_fuel_defaults['heating_coil_type_sys6']
|
58
57
|
end
|
58
|
+
|
59
|
+
# Reset the Service Hot Water fuel.
|
60
|
+
def set_swh_fuel(swh_fuel:)
|
61
|
+
@swh_fueltype = swh_fuel
|
62
|
+
end
|
59
63
|
end
|