openstudio-standards 0.2.15 → 0.2.16.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/data/geometry/ASHRAEHighriseApartment.osm +0 -27
  3. data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
  4. data/data/standards/OpenStudio_Standards-ashrae_90_1_28Jan2022.xlsx +0 -0
  5. data/data/standards/test_performance_expected_dd_results.csv +710 -710
  6. data/lib/openstudio-standards/btap/btap_result.rb +2 -2
  7. data/lib/openstudio-standards/btap/reporting.rb +2 -2
  8. data/lib/openstudio-standards/btap/simmanager.rb +2 -2
  9. data/lib/openstudio-standards/hvac_sizing/Siz.ControllerOutdoorAir.rb +0 -54
  10. data/lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb +11 -1
  11. data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +1 -1
  12. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +26 -5
  13. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +35 -16
  14. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +23 -10
  15. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +36 -0
  16. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +6 -6
  17. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +0 -3
  18. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +2 -2
  19. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +9 -3
  20. data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +2 -0
  21. data/lib/openstudio-standards/standards/Standards.Construction.rb +12 -6
  22. data/lib/openstudio-standards/standards/Standards.Model.rb +38 -7
  23. data/lib/openstudio-standards/standards/Standards.Space.rb +1 -1
  24. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +7 -0
  25. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Model.rb +32 -11
  26. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +22 -742
  27. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_sets.json +2 -2
  28. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +3 -3
  29. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +6 -6
  30. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +19 -559
  31. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_sets.json +2 -2
  32. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +3 -3
  33. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +6 -6
  34. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +19 -559
  35. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_sets.json +2 -2
  36. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +5 -5
  37. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +7 -7
  38. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +19 -559
  39. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_sets.json +2 -2
  40. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +5 -5
  41. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +7 -7
  42. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.construction_properties.json +370 -910
  43. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.construction_sets.json +2 -2
  44. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.prototype_inputs.json +6 -6
  45. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_system.json +0 -8
  46. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +12 -12
  47. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +19 -6
  48. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.construction_properties.json +2380 -1300
  49. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.construction_sets.json +2 -2
  50. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.prototype_inputs.json +6 -6
  51. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_system.json +0 -8
  52. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +12 -12
  53. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.constructions.json +140 -0
  54. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +1176 -312
  55. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.construction_properties.json +172 -1132
  56. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.construction_sets.json +14 -14
  57. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.prototype_inputs.json +2 -2
  58. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +9 -9
  59. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.construction_properties.json +180 -1140
  60. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.construction_sets.json +14 -14
  61. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.prototype_inputs.json +2 -2
  62. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +10 -10
  63. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.construction_properties.json +9 -9
  64. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.construction_properties.json +9 -9
  65. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +12 -6
  66. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +12 -6
  67. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +16 -8
  68. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +10 -20
  69. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +209 -37
  70. data/lib/openstudio-standards/standards/necb/ECMS/loads.rb +1 -0
  71. data/lib/openstudio-standards/standards/necb/ECMS/pv_ground.rb +8 -6
  72. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +16 -9
  73. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/HighriseApartment.osm +1 -1
  74. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/LowriseApartment.osm +1 -1
  75. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/MidriseApartment.osm +1 -1
  76. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_multi_speed.rb +9 -5
  77. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +10 -6
  78. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +9 -5
  79. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +14 -8
  80. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +14 -8
  81. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +13 -6
  82. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +12 -6
  83. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +4 -2
  84. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +38 -19
  85. data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +2 -2
  86. data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +15 -4
  87. data/lib/openstudio-standards/standards/necb/NECB2020/building_envelope.rb +10 -651
  88. data/lib/openstudio-standards/standards/necb/NECB2020/necb_2020.rb +8 -38
  89. data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +159 -0
  90. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +41 -43
  91. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +7 -4
  92. data/lib/openstudio-standards/version.rb +1 -1
  93. data/lib/openstudio-standards.rb +1 -0
  94. metadata +4 -2
@@ -145,7 +145,7 @@
145
145
  "interior_ceilings": "Typical Interior Ceiling",
146
146
  "ground_contact_wall_standards_construction_type": "Mass",
147
147
  "ground_contact_wall_building_category": "Nonresidential",
148
- "ground_contact_floor_standards_construction_type": "Mass",
148
+ "ground_contact_floor_standards_construction_type": "Unheated",
149
149
  "ground_contact_floor_building_category": "Nonresidential",
150
150
  "ground_contact_ceiling_standards_construction_type": null,
151
151
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -317,7 +317,7 @@
317
317
  "interior_ceilings": "Typical Interior Ceiling",
318
318
  "ground_contact_wall_standards_construction_type": "Mass",
319
319
  "ground_contact_wall_building_category": "Nonresidential",
320
- "ground_contact_floor_standards_construction_type": "Mass",
320
+ "ground_contact_floor_standards_construction_type": "Unheated",
321
321
  "ground_contact_floor_building_category": "Nonresidential",
322
322
  "ground_contact_ceiling_standards_construction_type": null,
323
323
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -360,7 +360,7 @@
360
360
  "interior_ceilings": "Typical Interior Ceiling",
361
361
  "ground_contact_wall_standards_construction_type": "Mass",
362
362
  "ground_contact_wall_building_category": "Nonresidential",
363
- "ground_contact_floor_standards_construction_type": "Mass",
363
+ "ground_contact_floor_standards_construction_type": "Unheated",
364
364
  "ground_contact_floor_building_category": "Nonresidential",
365
365
  "ground_contact_ceiling_standards_construction_type": null,
366
366
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -403,7 +403,7 @@
403
403
  "interior_ceilings": "Typical Interior Ceiling",
404
404
  "ground_contact_wall_standards_construction_type": "Mass",
405
405
  "ground_contact_wall_building_category": "Nonresidential",
406
- "ground_contact_floor_standards_construction_type": "Mass",
406
+ "ground_contact_floor_standards_construction_type": "Unheated",
407
407
  "ground_contact_floor_building_category": "Nonresidential",
408
408
  "ground_contact_ceiling_standards_construction_type": null,
409
409
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -446,7 +446,7 @@
446
446
  "interior_ceilings": "Typical Interior Ceiling",
447
447
  "ground_contact_wall_standards_construction_type": "Mass",
448
448
  "ground_contact_wall_building_category": "Nonresidential",
449
- "ground_contact_floor_standards_construction_type": "Mass",
449
+ "ground_contact_floor_standards_construction_type": "Unheated",
450
450
  "ground_contact_floor_building_category": "Nonresidential",
451
451
  "ground_contact_ceiling_standards_construction_type": null,
452
452
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -489,7 +489,7 @@
489
489
  "interior_ceilings": "Typical Interior Ceiling",
490
490
  "ground_contact_wall_standards_construction_type": "Mass",
491
491
  "ground_contact_wall_building_category": "Nonresidential",
492
- "ground_contact_floor_standards_construction_type": "Mass",
492
+ "ground_contact_floor_standards_construction_type": "Unheated",
493
493
  "ground_contact_floor_building_category": "Nonresidential",
494
494
  "ground_contact_ceiling_standards_construction_type": null,
495
495
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -532,7 +532,7 @@
532
532
  "interior_ceilings": "Typical Interior Ceiling",
533
533
  "ground_contact_wall_standards_construction_type": "Mass",
534
534
  "ground_contact_wall_building_category": "Nonresidential",
535
- "ground_contact_floor_standards_construction_type": "Mass",
535
+ "ground_contact_floor_standards_construction_type": "Unheated",
536
536
  "ground_contact_floor_building_category": "Nonresidential",
537
537
  "ground_contact_ceiling_standards_construction_type": null,
538
538
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -618,7 +618,7 @@
618
618
  "interior_ceilings": "Typical Interior Ceiling",
619
619
  "ground_contact_wall_standards_construction_type": "Mass",
620
620
  "ground_contact_wall_building_category": "Nonresidential",
621
- "ground_contact_floor_standards_construction_type": "Mass",
621
+ "ground_contact_floor_standards_construction_type": "Unheated",
622
622
  "ground_contact_floor_building_category": "Nonresidential",
623
623
  "ground_contact_ceiling_standards_construction_type": null,
624
624
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -661,7 +661,7 @@
661
661
  "interior_ceilings": "Typical Interior Ceiling",
662
662
  "ground_contact_wall_standards_construction_type": "Mass",
663
663
  "ground_contact_wall_building_category": "Nonresidential",
664
- "ground_contact_floor_standards_construction_type": "SteelFramed",
664
+ "ground_contact_floor_standards_construction_type": "Unheated",
665
665
  "ground_contact_floor_building_category": "Nonresidential",
666
666
  "ground_contact_ceiling_standards_construction_type": null,
667
667
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -704,7 +704,7 @@
704
704
  "interior_ceilings": "Typical Interior Ceiling",
705
705
  "ground_contact_wall_standards_construction_type": "Mass",
706
706
  "ground_contact_wall_building_category": "Nonresidential",
707
- "ground_contact_floor_standards_construction_type": "Mass",
707
+ "ground_contact_floor_standards_construction_type": "Unheated",
708
708
  "ground_contact_floor_building_category": "Nonresidential",
709
709
  "ground_contact_ceiling_standards_construction_type": null,
710
710
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -833,7 +833,7 @@
833
833
  "interior_ceilings": "Typical Interior Ceiling",
834
834
  "ground_contact_wall_standards_construction_type": "Mass",
835
835
  "ground_contact_wall_building_category": "Nonresidential",
836
- "ground_contact_floor_standards_construction_type": "Mass",
836
+ "ground_contact_floor_standards_construction_type": "Unheated",
837
837
  "ground_contact_floor_building_category": "Nonresidential",
838
838
  "ground_contact_ceiling_standards_construction_type": null,
839
839
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -876,7 +876,7 @@
876
876
  "interior_ceilings": "Typical Interior Ceiling",
877
877
  "ground_contact_wall_standards_construction_type": "Mass",
878
878
  "ground_contact_wall_building_category": "Nonresidential",
879
- "ground_contact_floor_standards_construction_type": "Mass",
879
+ "ground_contact_floor_standards_construction_type": "Unheated",
880
880
  "ground_contact_floor_building_category": "Nonresidential",
881
881
  "ground_contact_ceiling_standards_construction_type": null,
882
882
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -919,7 +919,7 @@
919
919
  "interior_ceilings": "Typical Interior Ceiling",
920
920
  "ground_contact_wall_standards_construction_type": "Mass",
921
921
  "ground_contact_wall_building_category": "Nonresidential",
922
- "ground_contact_floor_standards_construction_type": "Mass",
922
+ "ground_contact_floor_standards_construction_type": "Unheated",
923
923
  "ground_contact_floor_building_category": "Nonresidential",
924
924
  "ground_contact_ceiling_standards_construction_type": null,
925
925
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -962,7 +962,7 @@
962
962
  "interior_ceilings": "Typical Interior Ceiling",
963
963
  "ground_contact_wall_standards_construction_type": "Mass",
964
964
  "ground_contact_wall_building_category": "Nonresidential",
965
- "ground_contact_floor_standards_construction_type": "Mass",
965
+ "ground_contact_floor_standards_construction_type": "Unheated",
966
966
  "ground_contact_floor_building_category": "Nonresidential",
967
967
  "ground_contact_ceiling_standards_construction_type": null,
968
968
  "ground_contact_ceiling_building_category": "Nonresidential",
@@ -24,9 +24,9 @@
24
24
  "pszac_oa_damper_schedule_3": null,
25
25
  "occ_sensing_exterior_lighting_power": null,
26
26
  "occ_sensing_exterior_lighting_schedule": null,
27
- "nondimming_exterior_lighting_power": null,
27
+ "nondimming_exterior_lighting_power": 21874,
28
28
  "nondimming_exterior_lighting_schedule": "College EXTERIOR_LIGHT_SCH",
29
- "building_area_method_lpd": 1.0,
29
+ "building_area_method_lpd": null,
30
30
  "exterior_fuel_equipment1_power": null,
31
31
  "exterior_fuel_equipment1_schedule": null,
32
32
  "exterior_fuel_equipment2_power": null,
@@ -129,8 +129,8 @@
129
129
  "electric_equipment_schedule": "College BLDG_EQUIP_SCH_Base",
130
130
  "additional_electric_equipment_schedule": null,
131
131
  "additional_gas_equipment_schedule": null,
132
- "occupancy_per_area": null,
133
- "occupancy_schedule": "College BLDG_OCC_SCH",
132
+ "occupancy_per_area": 20.0,
133
+ "occupancy_schedule": "College BLDG_Studio_OCC_SCH",
134
134
  "occupancy_activity_schedule": "College ACTIVITY_SCH",
135
135
  "is_residential": null,
136
136
  "ventilation_standard": "ASHRAE 62.1-1999",
@@ -218,7 +218,7 @@
218
218
  "additional_electric_equipment_schedule": null,
219
219
  "additional_gas_equipment_schedule": null,
220
220
  "occupancy_per_area": 65.0,
221
- "occupancy_schedule": "College BLDG_OCC_SCH",
221
+ "occupancy_schedule": "College BLDG_Class_OCC_SCH",
222
222
  "occupancy_activity_schedule": "College ACTIVITY_SCH",
223
223
  "is_residential": null,
224
224
  "ventilation_standard": "ASHRAE 62.1-1999",
@@ -646,7 +646,7 @@
646
646
  "additional_electric_equipment_schedule": null,
647
647
  "additional_gas_equipment_schedule": null,
648
648
  "occupancy_per_area": 25.0,
649
- "occupancy_schedule": "College BLDG_OCC_SCH",
649
+ "occupancy_schedule": "College BLDG_Lab_OCC_SCH",
650
650
  "occupancy_activity_schedule": "College ACTIVITY_SCH",
651
651
  "is_residential": null,
652
652
  "ventilation_standard": "ASHRAE 62.1-1999",
@@ -734,7 +734,7 @@
734
734
  "additional_electric_equipment_schedule": null,
735
735
  "additional_gas_equipment_schedule": null,
736
736
  "occupancy_per_area": 65.0,
737
- "occupancy_schedule": "College BLDG_OCC_SCH_Lecture Theater",
737
+ "occupancy_schedule": "College BLDG_Lecture_OCC_SCH",
738
738
  "occupancy_activity_schedule": "College ACTIVITY_SCH",
739
739
  "is_residential": null,
740
740
  "ventilation_standard": "ASHRAE 62.1-1999",
@@ -822,7 +822,7 @@
822
822
  "additional_electric_equipment_schedule": null,
823
823
  "additional_gas_equipment_schedule": null,
824
824
  "occupancy_per_area": 25.0,
825
- "occupancy_schedule": "College BLDG_OCC_SCH",
825
+ "occupancy_schedule": "College BLDG_Cafe_OCC_SCH",
826
826
  "occupancy_activity_schedule": "College ACTIVITY_SCH",
827
827
  "is_residential": null,
828
828
  "ventilation_standard": "ASHRAE 62.1-1999",
@@ -910,7 +910,7 @@
910
910
  "additional_electric_equipment_schedule": null,
911
911
  "additional_gas_equipment_schedule": null,
912
912
  "occupancy_per_area": 10.0,
913
- "occupancy_schedule": "College BLDG_OCC_SCH_Lecture Theater",
913
+ "occupancy_schedule": "College BLDG_Lecture_OCC_SCH",
914
914
  "occupancy_activity_schedule": "College ACTIVITY_SCH",
915
915
  "is_residential": null,
916
916
  "ventilation_standard": "ASHRAE 62.1-1999",
@@ -1237,9 +1237,9 @@
1237
1237
  "psa_nongeometry_fraction": null,
1238
1238
  "ssa_nongeometry_fraction": null,
1239
1239
  "notes": null,
1240
- "occupancy_per_area": 15.0,
1241
- "occupancy_schedule": "College BLDG_OCC_SCH",
1242
- "occupancy_activity_schedule": "College ACTIVITY_SCH",
1240
+ "occupancy_per_area": null,
1241
+ "occupancy_schedule": null,
1242
+ "occupancy_activity_schedule": null,
1243
1243
  "is_residential": null,
1244
1244
  "ventilation_standard": "ASHRAE 62.1-1999",
1245
1245
  "ventilation_primary_space_type": "Retail Stores, Sales Floors, and Show Room Floors",
@@ -425,7 +425,7 @@
425
425
  "climate_zone_set": "ClimateZone 0",
426
426
  "operation_type": null,
427
427
  "intended_surface_type": "GroundContactFloor",
428
- "standards_construction_type": "Mass",
428
+ "standards_construction_type": "Unheated",
429
429
  "building_category": "Adiabatic",
430
430
  "construction": "Adiabatic GroundContactFloor",
431
431
  "orientation": null,
@@ -905,7 +905,7 @@
905
905
  "climate_zone_set": "ClimateZone 1",
906
906
  "operation_type": null,
907
907
  "intended_surface_type": "GroundContactFloor",
908
- "standards_construction_type": "Mass",
908
+ "standards_construction_type": "Unheated",
909
909
  "building_category": "Adiabatic",
910
910
  "construction": "Adiabatic GroundContactFloor",
911
911
  "orientation": null,
@@ -1385,7 +1385,7 @@
1385
1385
  "climate_zone_set": "ClimateZone 2",
1386
1386
  "operation_type": null,
1387
1387
  "intended_surface_type": "GroundContactFloor",
1388
- "standards_construction_type": "Mass",
1388
+ "standards_construction_type": "Unheated",
1389
1389
  "building_category": "Adiabatic",
1390
1390
  "construction": "Adiabatic GroundContactFloor",
1391
1391
  "orientation": null,
@@ -1865,7 +1865,7 @@
1865
1865
  "climate_zone_set": "ClimateZone 3",
1866
1866
  "operation_type": null,
1867
1867
  "intended_surface_type": "GroundContactFloor",
1868
- "standards_construction_type": "Mass",
1868
+ "standards_construction_type": "Unheated",
1869
1869
  "building_category": "Adiabatic",
1870
1870
  "construction": "Adiabatic GroundContactFloor",
1871
1871
  "orientation": null,
@@ -2345,7 +2345,7 @@
2345
2345
  "climate_zone_set": "ClimateZone 4",
2346
2346
  "operation_type": null,
2347
2347
  "intended_surface_type": "GroundContactFloor",
2348
- "standards_construction_type": "Mass",
2348
+ "standards_construction_type": "Unheated",
2349
2349
  "building_category": "Adiabatic",
2350
2350
  "construction": "Adiabatic GroundContactFloor",
2351
2351
  "orientation": null,
@@ -3485,7 +3485,7 @@
3485
3485
  "climate_zone_set": "ClimateZone 5",
3486
3486
  "operation_type": null,
3487
3487
  "intended_surface_type": "GroundContactFloor",
3488
- "standards_construction_type": "Mass",
3488
+ "standards_construction_type": "Unheated",
3489
3489
  "building_category": "Adiabatic",
3490
3490
  "construction": "Adiabatic GroundContactFloor",
3491
3491
  "orientation": null,
@@ -4225,7 +4225,7 @@
4225
4225
  "climate_zone_set": "ClimateZone 6",
4226
4226
  "operation_type": null,
4227
4227
  "intended_surface_type": "GroundContactFloor",
4228
- "standards_construction_type": "Mass",
4228
+ "standards_construction_type": "Unheated",
4229
4229
  "building_category": "Adiabatic",
4230
4230
  "construction": "Adiabatic GroundContactFloor",
4231
4231
  "orientation": null,
@@ -4705,7 +4705,7 @@
4705
4705
  "climate_zone_set": "ClimateZone 7",
4706
4706
  "operation_type": null,
4707
4707
  "intended_surface_type": "GroundContactFloor",
4708
- "standards_construction_type": "Mass",
4708
+ "standards_construction_type": "Unheated",
4709
4709
  "building_category": "Adiabatic",
4710
4710
  "construction": "Adiabatic GroundContactFloor",
4711
4711
  "orientation": null,
@@ -5185,7 +5185,7 @@
5185
5185
  "climate_zone_set": "ClimateZone 8",
5186
5186
  "operation_type": null,
5187
5187
  "intended_surface_type": "GroundContactFloor",
5188
- "standards_construction_type": "Mass",
5188
+ "standards_construction_type": "Unheated",
5189
5189
  "building_category": "Adiabatic",
5190
5190
  "construction": "Adiabatic GroundContactFloor",
5191
5191
  "orientation": null,
@@ -385,7 +385,7 @@
385
385
  "climate_zone_set": "ClimateZone 0",
386
386
  "operation_type": null,
387
387
  "intended_surface_type": "GroundContactFloor",
388
- "standards_construction_type": "Mass",
388
+ "standards_construction_type": "Unheated",
389
389
  "building_category": "Adiabatic",
390
390
  "construction": "Adiabatic GroundContactFloor",
391
391
  "orientation": null,
@@ -825,7 +825,7 @@
825
825
  "climate_zone_set": "ClimateZone 1",
826
826
  "operation_type": null,
827
827
  "intended_surface_type": "GroundContactFloor",
828
- "standards_construction_type": "Mass",
828
+ "standards_construction_type": "Unheated",
829
829
  "building_category": "Adiabatic",
830
830
  "construction": "Adiabatic GroundContactFloor",
831
831
  "orientation": null,
@@ -1265,7 +1265,7 @@
1265
1265
  "climate_zone_set": "ClimateZone 2",
1266
1266
  "operation_type": null,
1267
1267
  "intended_surface_type": "GroundContactFloor",
1268
- "standards_construction_type": "Mass",
1268
+ "standards_construction_type": "Unheated",
1269
1269
  "building_category": "Adiabatic",
1270
1270
  "construction": "Adiabatic GroundContactFloor",
1271
1271
  "orientation": null,
@@ -1705,7 +1705,7 @@
1705
1705
  "climate_zone_set": "ClimateZone 3",
1706
1706
  "operation_type": null,
1707
1707
  "intended_surface_type": "GroundContactFloor",
1708
- "standards_construction_type": "Mass",
1708
+ "standards_construction_type": "Unheated",
1709
1709
  "building_category": "Adiabatic",
1710
1710
  "construction": "Adiabatic GroundContactFloor",
1711
1711
  "orientation": null,
@@ -2145,7 +2145,7 @@
2145
2145
  "climate_zone_set": "ClimateZone 4",
2146
2146
  "operation_type": null,
2147
2147
  "intended_surface_type": "GroundContactFloor",
2148
- "standards_construction_type": "Mass",
2148
+ "standards_construction_type": "Unheated",
2149
2149
  "building_category": "Adiabatic",
2150
2150
  "construction": "Adiabatic GroundContactFloor",
2151
2151
  "orientation": null,
@@ -2825,7 +2825,7 @@
2825
2825
  "climate_zone_set": "ClimateZone 5",
2826
2826
  "operation_type": null,
2827
2827
  "intended_surface_type": "GroundContactFloor",
2828
- "standards_construction_type": "Mass",
2828
+ "standards_construction_type": "Unheated",
2829
2829
  "building_category": "Adiabatic",
2830
2830
  "construction": "Adiabatic GroundContactFloor",
2831
2831
  "orientation": null,
@@ -3505,7 +3505,7 @@
3505
3505
  "climate_zone_set": "ClimateZone 6",
3506
3506
  "operation_type": null,
3507
3507
  "intended_surface_type": "GroundContactFloor",
3508
- "standards_construction_type": "Mass",
3508
+ "standards_construction_type": "Unheated",
3509
3509
  "building_category": "Adiabatic",
3510
3510
  "construction": "Adiabatic GroundContactFloor",
3511
3511
  "orientation": null,
@@ -3945,7 +3945,7 @@
3945
3945
  "climate_zone_set": "ClimateZone 7",
3946
3946
  "operation_type": null,
3947
3947
  "intended_surface_type": "GroundContactFloor",
3948
- "standards_construction_type": "Mass",
3948
+ "standards_construction_type": "Unheated",
3949
3949
  "building_category": "Adiabatic",
3950
3950
  "construction": "Adiabatic GroundContactFloor",
3951
3951
  "orientation": null,
@@ -4385,7 +4385,7 @@
4385
4385
  "climate_zone_set": "ClimateZone 8",
4386
4386
  "operation_type": null,
4387
4387
  "intended_surface_type": "GroundContactFloor",
4388
- "standards_construction_type": "Mass",
4388
+ "standards_construction_type": "Unheated",
4389
4389
  "building_category": "Adiabatic",
4390
4390
  "construction": "Adiabatic GroundContactFloor",
4391
4391
  "orientation": null,
@@ -31,8 +31,10 @@ class BTAPPRE1980
31
31
  system_data[:CentralHeatingDesignSupplyAirHumidityRatio] = 0.0080
32
32
 
33
33
  # System 3 Zone data
34
- system_data[:ZoneCoolingDesignSupplyAirTemperature] = 13.0
35
- system_data[:ZoneHeatingDesignSupplyAirTemperature] = 43.0
34
+ system_data[:ZoneCoolingDesignSupplyAirTemperatureInputMethod] = 'TemperatureDifference'
35
+ system_data[:ZoneCoolingDesignSupplyAirTemperatureDifference] = 11.0
36
+ system_data[:ZoneHeatingDesignSupplyAirTemperatureInputMethod] = 'TemperatureDifference'
37
+ system_data[:ZoneHeatingDesignSupplyAirTemperatureDifference] = 21.0
36
38
  system_data[:SetpointManagerSingleZoneReheatSupplyTempMin] = 13.0
37
39
  system_data[:SetpointManagerSingleZoneReheatSupplyTempMax] = 43.0
38
40
  system_data[:ZoneDXCoolingSizingFactor] = 1.0
@@ -52,8 +54,10 @@ class BTAPPRE1980
52
54
  # Add Zone equipment
53
55
  zones.each do |zone| # Zone sizing temperature
54
56
  sizing_zone = zone.sizingZone
55
- sizing_zone.setZoneCoolingDesignSupplyAirTemperature(system_data[:ZoneCoolingDesignSupplyAirTemperature])
56
- sizing_zone.setZoneHeatingDesignSupplyAirTemperature(system_data[:ZoneHeatingDesignSupplyAirTemperature])
57
+ sizing_zone.setZoneCoolingDesignSupplyAirTemperatureInputMethod(system_data[:ZoneCoolingDesignSupplyAirTemperatureInputMethod])
58
+ sizing_zone.setZoneCoolingDesignSupplyAirTemperatureDifference(system_data[:ZoneCoolingDesignSupplyAirTemperatureDifference])
59
+ sizing_zone.setZoneHeatingDesignSupplyAirTemperatureInputMethod(system_data[:ZoneHeatingDesignSupplyAirTemperatureInputMethod])
60
+ sizing_zone.setZoneHeatingDesignSupplyAirTemperatureDifference(system_data[:ZoneHeatingDesignSupplyAirTemperatureDifference])
57
61
  sizing_zone.setZoneCoolingSizingFactor(system_data[:ZoneCoolingSizingFactor])
58
62
  sizing_zone.setZoneHeatingSizingFactor(system_data[:ZoneHeatingSizingFactor])
59
63
  add_sys3_and_8_zone_equip(air_loop,
@@ -108,8 +112,10 @@ class BTAPPRE1980
108
112
 
109
113
  # Zone sizing temperature
110
114
  sizing_zone = control_zone.sizingZone
111
- sizing_zone.setZoneCoolingDesignSupplyAirTemperature(system_data[:ZoneCoolingDesignSupplyAirTemperature])
112
- sizing_zone.setZoneHeatingDesignSupplyAirTemperature(system_data[:ZoneHeatingDesignSupplyAirTemperature])
115
+ sizing_zone.setZoneCoolingDesignSupplyAirTemperatureInputMethod(system_data[:ZoneCoolingDesignSupplyAirTemperatureInputMethod])
116
+ sizing_zone.setZoneCoolingDesignSupplyAirTemperatureDifference(system_data[:ZoneCoolingDesignSupplyAirTemperatureDifference])
117
+ sizing_zone.setZoneHeatingDesignSupplyAirTemperatureInputMethod(system_data[:ZoneHeatingDesignSupplyAirTemperatureInputMethod])
118
+ sizing_zone.setZoneHeatingDesignSupplyAirTemperatureDifference(system_data[:ZoneHeatingDesignSupplyAirTemperatureDifference])
113
119
  sizing_zone.setZoneCoolingSizingFactor(system_data[:ZoneCoolingSizingFactor])
114
120
  sizing_zone.setZoneHeatingSizingFactor(system_data[:ZoneHeatingSizingFactor])
115
121
 
@@ -31,8 +31,10 @@ class BTAPPRE1980
31
31
  # zone
32
32
  system_data[:SetpointManagerSingleZoneReheatSupplyTempMax] = 43.0
33
33
  system_data[:SetpointManagerSingleZoneReheatSupplyTempMin] = 13.0
34
- system_data[:ZoneCoolingDesignSupplyAirTemperature] = 13.0
35
- system_data[:ZoneHeatingDesignSupplyAirTemperature] = 43.0
34
+ system_data[:ZoneCoolingDesignSupplyAirTemperatureInputMethod] = 'TemperatureDifference'
35
+ system_data[:ZoneCoolingDesignSupplyAirTemperatureDifference] = 11.0
36
+ system_data[:ZoneHeatingDesignSupplyAirTemperatureInputMethod] = 'TemperatureDifference'
37
+ system_data[:ZoneHeatingDesignSupplyAirTemperatureDifference] = 21.0
36
38
  system_data[:ZoneCoolingSizingFactor] = 1.1
37
39
  system_data[:ZoneHeatingSizingFactor] = 1.3
38
40
 
@@ -66,8 +68,10 @@ class BTAPPRE1980
66
68
 
67
69
  # Zone sizing temperature
68
70
  sizing_zone = control_zone.sizingZone
69
- sizing_zone.setZoneCoolingDesignSupplyAirTemperature(system_data[:ZoneCoolingDesignSupplyAirTemperature])
70
- sizing_zone.setZoneHeatingDesignSupplyAirTemperature(system_data[:ZoneHeatingDesignSupplyAirTemperature])
71
+ sizing_zone.setZoneCoolingDesignSupplyAirTemperatureInputMethod(system_data[:ZoneCoolingDesignSupplyAirTemperatureInputMethod])
72
+ sizing_zone.setZoneCoolingDesignSupplyAirTemperatureDifference(system_data[:ZoneCoolingDesignSupplyAirTemperatureDifference])
73
+ sizing_zone.setZoneHeatingDesignSupplyAirTemperatureInputMethod(system_data[:ZoneHeatingDesignSupplyAirTemperatureInputMethod])
74
+ sizing_zone.setZoneHeatingDesignSupplyAirTemperatureDifference(system_data[:ZoneHeatingDesignSupplyAirTemperatureDifference])
71
75
  sizing_zone.setZoneCoolingSizingFactor(system_data[:ZoneCoolingSizingFactor])
72
76
  sizing_zone.setZoneHeatingSizingFactor(system_data[:ZoneHeatingSizingFactor])
73
77
 
@@ -134,8 +138,10 @@ class BTAPPRE1980
134
138
  exhaust_fan_name = 'Sys_4_zone_exhaust_fan'
135
139
  zones.each do |zone|
136
140
  sizing_zone = zone.sizingZone
137
- sizing_zone.setZoneCoolingDesignSupplyAirTemperature(system_data[:ZoneCoolingDesignSupplyAirTemperature])
138
- sizing_zone.setZoneHeatingDesignSupplyAirTemperature(system_data[:ZoneHeatingDesignSupplyAirTemperature])
141
+ sizing_zone.setZoneCoolingDesignSupplyAirTemperatureInputMethod(system_data[:ZoneCoolingDesignSupplyAirTemperatureInputMethod])
142
+ sizing_zone.setZoneCoolingDesignSupplyAirTemperatureDifference(system_data[:ZoneCoolingDesignSupplyAirTemperatureDifference])
143
+ sizing_zone.setZoneHeatingDesignSupplyAirTemperatureInputMethod(system_data[:ZoneHeatingDesignSupplyAirTemperatureInputMethod])
144
+ sizing_zone.setZoneHeatingDesignSupplyAirTemperatureDifference(system_data[:ZoneHeatingDesignSupplyAirTemperatureDifference])
139
145
  sizing_zone.setZoneCoolingSizingFactor(system_data[:ZoneCoolingSizingFactor])
140
146
  sizing_zone.setZoneHeatingSizingFactor(system_data[:ZoneHeatingSizingFactor])
141
147
  # Create a diffuser and attach the zone/diffuser pair to the air loop
@@ -34,8 +34,10 @@ class BTAPPRE1980
34
34
  # zone data
35
35
  system_data[:max_system_supply_air_temperature] = 43.0
36
36
  system_data[:min_system_supply_air_temperature] = 13.0
37
- system_data[:ZoneCoolingDesignSupplyAirTemperature] = 13.0
38
- system_data[:ZoneHeatingDesignSupplyAirTemperature] = 43.0
37
+ system_data[:ZoneCoolingDesignSupplyAirTemperatureInputMethod] = 'TemperatureDifference'
38
+ system_data[:ZoneCoolingDesignSupplyAirTemperatureDifference] = 11.0
39
+ system_data[:ZoneHeatingDesignSupplyAirTemperatureInputMethod] = 'TemperatureDifference'
40
+ system_data[:ZoneHeatingDesignSupplyAirTemperatureDifference] = 21.0
39
41
  system_data[:ZoneCoolingSizingFactor] = 1.1
40
42
  system_data[:ZoneHeatingSizingFactor] = 1.3
41
43
  system_data[:ZoneVAVMinFlowFactorPerFloorArea] = 0.002
@@ -115,8 +117,10 @@ class BTAPPRE1980
115
117
  (BTAP::Geometry::BuildingStoreys.get_zones_from_storey(story) & zones).each do |zone|
116
118
  # Zone sizing parameters
117
119
  sizing_zone = zone.sizingZone
118
- sizing_zone.setZoneCoolingDesignSupplyAirTemperature(system_data[:ZoneCoolingDesignSupplyAirTemperature])
119
- sizing_zone.setZoneHeatingDesignSupplyAirTemperature(system_data[:ZoneHeatingDesignSupplyAirTemperature])
120
+ sizing_zone.setZoneCoolingDesignSupplyAirTemperatureInputMethod(system_data[:ZoneCoolingDesignSupplyAirTemperatureInputMethod])
121
+ sizing_zone.setZoneCoolingDesignSupplyAirTemperatureDifference(system_data[:ZoneCoolingDesignSupplyAirTemperatureDifference])
122
+ sizing_zone.setZoneHeatingDesignSupplyAirTemperatureInputMethod(system_data[:ZoneHeatingDesignSupplyAirTemperatureInputMethod])
123
+ sizing_zone.setZoneHeatingDesignSupplyAirTemperatureDifference(system_data[:ZoneHeatingDesignSupplyAirTemperatureDifference])
120
124
  sizing_zone.setZoneCoolingSizingFactor(system_data[:ZoneCoolingSizingFactor])
121
125
  sizing_zone.setZoneHeatingSizingFactor(system_data[:ZoneHeatingSizingFactor])
122
126
 
@@ -197,8 +201,10 @@ class BTAPPRE1980
197
201
  # zone data
198
202
  system_6_data[:max_system_supply_air_temperature] = 43.0
199
203
  system_6_data[:min_system_supply_air_temperature] = 13.0
200
- system_6_data[:ZoneCoolingDesignSupplyAirTemperature] = 13.0
201
- system_6_data[:ZoneHeatingDesignSupplyAirTemperature] = 43.0
204
+ system_6_data[:ZoneCoolingDesignSupplyAirTemperatureInputMethod] = 'TemperatureDifference'
205
+ system_6_data[:ZoneCoolingDesignSupplyAirTemperatureDifference] = 11.0
206
+ system_6_data[:ZoneHeatingDesignSupplyAirTemperatureInputMethod] = 'TemperatureDifference'
207
+ system_6_data[:ZoneHeatingDesignSupplyAirTemperatureDifference] = 21.0
202
208
  system_6_data[:ZoneCoolingSizingFactor] = 1.1
203
209
  system_6_data[:ZoneHeatingSizingFactor] = 1.3
204
210
  system_6_data[:ZoneVAVMinFlowFactorPerFloorArea] = 0.002
@@ -285,8 +291,10 @@ class BTAPPRE1980
285
291
  (BTAP::Geometry::BuildingStoreys.get_zones_from_storey(story) & zones).each do |zone|
286
292
  # Zone sizing parameters
287
293
  sizing_zone = zone.sizingZone
288
- sizing_zone.setZoneCoolingDesignSupplyAirTemperature(system_data[:ZoneCoolingDesignSupplyAirTemperature])
289
- sizing_zone.setZoneHeatingDesignSupplyAirTemperature(system_data[:ZoneHeatingDesignSupplyAirTemperature])
294
+ sizing_zone.setZoneCoolingDesignSupplyAirTemperatureInputMethod(system_data[:ZoneCoolingDesignSupplyAirTemperatureInputMethod])
295
+ sizing_zone.setZoneCoolingDesignSupplyAirTemperatureDifference(system_data[:ZoneCoolingDesignSupplyAirTemperatureDifference])
296
+ sizing_zone.setZoneHeatingDesignSupplyAirTemperatureInputMethod(system_data[:ZoneHeatingDesignSupplyAirTemperatureInputMethod])
297
+ sizing_zone.setZoneHeatingDesignSupplyAirTemperatureDifference(system_data[:ZoneHeatingDesignSupplyAirTemperatureDifference])
290
298
  sizing_zone.setZoneCoolingSizingFactor(system_data[:ZoneCoolingSizingFactor])
291
299
  sizing_zone.setZoneHeatingSizingFactor(system_data[:ZoneHeatingSizingFactor])
292
300
 
@@ -39,42 +39,32 @@ class ECMS < NECB2011
39
39
  @standards_data['curves'] = standards_data['tables']['curves']['table']
40
40
  end
41
41
 
42
- def apply_system_ecm(model:, ecm_system_name: nil, template_standard:, runner: nil, primary_heating_fuel: nil)
42
+ def apply_system_ecm(model:, ecm_system_name: nil, template_standard:, runner: nil, primary_heating_fuel: nil, ecm_system_zones_map_option: 'NECB_Default')
43
43
  # Do nothing if nil or other usual suspects.. covering all bases for now.
44
44
  return if ecm_system_name.nil? || ecm_system_name == 'none' || ecm_system_name == 'NECB_Default'
45
+ ecm_system_zones_map_option = 'NECB_Default' if ecm_system_zones_map_option.nil? || ecm_system_zones_map_option == 'none'
45
46
 
46
47
  ecm_std = Standard.build('ECMS')
47
48
  systems = model.getAirLoopHVACs
48
49
  map_system_to_zones, system_doas_flags = ecm_std.get_map_systems_to_zones(systems)
49
- zone_clg_eqpt_type = ecm_std.get_zone_clg_eqpt_type(model)
50
- # when the ecm is associated with adding a new HVAC system, then remove existing system components and loops
51
50
  ecm_add_method_name = "add_ecm_#{ecm_system_name.downcase}"
52
51
 
53
52
  raise("the method #{ecm_add_method_name} does not exist in the ECM class. Please verify that this should be called.") unless ecm_std.respond_to? ecm_add_method_name
54
53
 
54
+ # when the ecm is associated with adding a new HVAC system, then remove existing system components and loops
55
55
  ecm_std.remove_all_zone_eqpt(systems)
56
56
  ecm_std.remove_air_loops(model)
57
57
  ecm_std.remove_hw_loops(model)
58
58
  ecm_std.remove_chw_loops(model)
59
59
  ecm_std.remove_cw_loops(model)
60
60
 
61
- # Rather than go through every add_ecm class to add 'the primary_heating_fuel' argument I added this statement to
62
- # only include it when it is used (for now in the add_ecm_remove_airloops_add_zone_baseboards method).
63
- if ecm_add_method_name == 'add_ecm_remove_airloops_add_zone_baseboards'
64
- ecm_std.send(ecm_add_method_name,
65
- model: model,
66
- system_zones_map: map_system_to_zones,
67
- system_doas_flags: system_doas_flags,
68
- zone_clg_eqpt_type: zone_clg_eqpt_type,
69
- standard: template_standard,
70
- primary_heating_fuel: primary_heating_fuel)
71
- else
72
- ecm_std.send(ecm_add_method_name,
73
- model: model,
74
- system_zones_map: map_system_to_zones,
75
- system_doas_flags: system_doas_flags)
76
- end
77
- # ecm_std.add_ecm_hs09_ccashpsys(model:model,system_zones_map:,system_doas_flags:,zone_clg_eqpt_type: nil,standard:,baseboard_flag: true)
61
+ ecm_std.send(ecm_add_method_name,
62
+ model: model,
63
+ system_zones_map: map_system_to_zones,
64
+ system_doas_flags: system_doas_flags,
65
+ ecm_system_zones_map_option: ecm_system_zones_map_option,
66
+ standard: template_standard,
67
+ heating_fuel: primary_heating_fuel)
78
68
  end
79
69
 
80
70
  def apply_system_efficiencies_ecm(model:, ecm_system_name: nil)