Skip to content

Commit 64a658f

Browse files
authored
Merge pull request #2137 from NatLabRockies/battery-unit-mults-fix
Fix for batteries and vehicles when using unit multipliers
2 parents 3bbf623 + 41bf601 commit 64a658f

File tree

8 files changed

+39
-42
lines changed

8 files changed

+39
-42
lines changed

Changelog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ __Bugfixes__
99
- Fixes possible incorrect unmet hours outputs for unavailable periods with no space heating only (or no space cooling only).
1010
- Fixes PanHeaterControlType="heat pump mode" incorrectly disallowed for mini-split heat pumps.
1111
- Fixes the design cooling temperature calculations for some vented attic roof types (shingles, plastic/rubber/synthetic sheeting, concrete, cool roof, expanded polystyrene sheathing)
12+
- Fixes unit multiplier ignored for EV charging using `Vehicles`.
13+
- Fixes handling of battery losses in the battery resilience output.
1214

1315
## OpenStudio-HPXML v1.11.0
1416

HPXMLtoOpenStudio/measure.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<schema_version>3.1</schema_version>
44
<name>hpxm_lto_openstudio</name>
55
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
6-
<version_id>3f87daec-d344-4b87-a5aa-1708a7ab434f</version_id>
7-
<version_modified>2026-02-03T17:29:50Z</version_modified>
6+
<version_id>fdc58219-1784-49c0-99e5-eacd493166c0</version_id>
7+
<version_modified>2026-02-04T15:42:28Z</version_modified>
88
<xml_checksum>D8922A73</xml_checksum>
99
<class_name>HPXMLtoOpenStudio</class_name>
1010
<display_name>HPXML to OpenStudio Translator</display_name>
@@ -684,7 +684,7 @@
684684
<filename>vehicle.rb</filename>
685685
<filetype>rb</filetype>
686686
<usage_type>resource</usage_type>
687-
<checksum>820EB24C</checksum>
687+
<checksum>95B75063</checksum>
688688
</file>
689689
<file>
690690
<filename>version.rb</filename>

HPXMLtoOpenStudio/resources/vehicle.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ def self.apply(runner, model, spaces, hpxml_bldg, hpxml_header, schedules_file)
3636
# @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files
3737
# @return [nil]
3838
def self.apply_electric_vehicle(runner, model, spaces, hpxml_bldg, hpxml_header, vehicle, schedules_file)
39+
unit_multiplier = hpxml_bldg.building_construction.number_of_units
3940
if hpxml_bldg.plug_loads.any? { |pl| pl.plug_load_type == HPXML::PlugLoadTypeElectricVehicleCharging }
4041
# Warning issued by Schematron validator
4142
return
@@ -91,7 +92,7 @@ def self.apply_electric_vehicle(runner, model, spaces, hpxml_bldg, hpxml_header,
9192
# Scale the effective discharge power by 2.25 to assign the rated discharge power.
9293
# This value reflects the maximum power adjustment allowed in the EMS EV discharge program at -17.8 C.
9394
vehicle.additional_properties.rated_power_output = eff_discharge_power * 2.25
94-
vehicle.additional_properties.eff_discharge_power = eff_discharge_power
95+
vehicle.additional_properties.eff_discharge_power = eff_discharge_power * unit_multiplier
9596

9697
# Apply vehicle battery to model
9798
Battery.apply_battery(runner, model, spaces, hpxml_bldg, vehicle, charging_schedule, discharging_schedule)

ReportSimulationOutput/measure.rb

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,10 +1075,6 @@ def get_outputs(runner, args)
10751075
keys = resilience.variables.select { |v| v[2] == vars[0] }.map { |v| v[1] }
10761076
batt_soc = get_report_variable_data_timeseries(keys, vars, 1, 0, resilience_frequency)
10771077

1078-
vars = ['Other Equipment Electricity Energy']
1079-
keys = resilience.variables.select { |v| v[2] == vars[0] }.map { |v| v[1] }
1080-
batt_loss = get_report_variable_data_timeseries(keys, vars, UnitConversions.convert(1.0, 'J', 'kWh'), 0, resilience_frequency)
1081-
10821078
min_soc = elcd.minimumStorageStateofChargeFraction
10831079
batt_kw = elcd.designStorageControlDischargePower.get / 1000.0
10841080
batt_roundtrip_eff = elcs.dctoDCChargingEfficiency
@@ -1089,7 +1085,7 @@ def get_outputs(runner, args)
10891085
elec_stor = get_report_meter_data_timeseries(['ElectricStorage:ElectricityProduced'], UnitConversions.convert(1.0, 'J', 'kWh'), 0, resilience_frequency)
10901086
elec_prod = elec_prod.zip(elec_stor).map { |x, y| -1 * (x - y) }
10911087
elec = get_report_meter_data_timeseries(['Electricity:Facility'], UnitConversions.convert(1.0, 'J', 'kWh'), 0, resilience_frequency)
1092-
crit_load = elec.zip(elec_prod, batt_loss).map { |x, y, z| x + y + z }
1088+
crit_load = elec.zip(elec_prod).map { |x, y| x + y }
10931089

10941090
resilience_timeseries = []
10951091
n_timesteps = crit_load.size
@@ -2058,7 +2054,7 @@ def get_resilience_timestep_value(init_time_step, batt_kwh, batt_kw, batt_soc_kw
20582054
load_kw = crit_load[t]
20592055

20602056
# even if load_kw is negative, we return if batt_soc_kwh isn't charged at all
2061-
return i / Float(ts_per_hr) if batt_soc_kwh <= 0
2057+
return i / Float(ts_per_hr) if batt_soc_kwh <= Constants::Small
20622058

20632059
if load_kw < 0 # load is met with PV
20642060
if batt_soc_kwh < batt_kwh # charge battery if there's room in the battery
@@ -3234,11 +3230,6 @@ def get_object_outputs_by_key(model, object, class_type)
32343230
return { RT::Battery => ['Electric Storage Charge Fraction'] }
32353231
end
32363232

3237-
elsif object.to_OtherEquipment.is_initialized
3238-
if object_type == Constants::ObjectTypeBatteryLossesAdjustment
3239-
return { RT::Battery => ['Other Equipment Electricity Energy'] }
3240-
end
3241-
32423233
end
32433234
end
32443235

ReportSimulationOutput/measure.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<schema_version>3.1</schema_version>
44
<name>report_simulation_output</name>
55
<uid>df9d170c-c21a-4130-866d-0d46b06073fd</uid>
6-
<version_id>5477f7ea-21b7-4d30-acc8-aa125f9567db</version_id>
7-
<version_modified>2026-01-28T18:33:20Z</version_modified>
6+
<version_id>4d7c636a-69a4-4de1-a7d1-b5c9200c3486</version_id>
7+
<version_modified>2026-01-29T23:10:47Z</version_modified>
88
<xml_checksum>9BF1E6AC</xml_checksum>
99
<class_name>ReportSimulationOutput</class_name>
1010
<display_name>HPXML Simulation Output Report</display_name>
@@ -1991,7 +1991,7 @@
19911991
<filename>measure.rb</filename>
19921992
<filetype>rb</filetype>
19931993
<usage_type>script</usage_type>
1994-
<checksum>B003B6BA</checksum>
1994+
<checksum>583545A5</checksum>
19951995
</file>
19961996
<file>
19971997
<filename>test_report_sim_output.rb</filename>

ReportUtilityBills/measure.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<schema_version>3.1</schema_version>
44
<name>report_utility_bills</name>
55
<uid>ca88a425-e59a-4bc4-af51-c7e7d1e960fe</uid>
6-
<version_id>1befdd0b-5a4a-4777-bf08-abec9a9f8aa3</version_id>
7-
<version_modified>2026-01-28T18:33:21Z</version_modified>
6+
<version_id>208232ac-81ae-472e-866c-34ad5d19dd6e</version_id>
7+
<version_modified>2026-02-04T15:42:33Z</version_modified>
88
<xml_checksum>15BF4E57</xml_checksum>
99
<class_name>ReportUtilityBills</class_name>
1010
<display_name>Utility Bills Report</display_name>

workflow/tests/base_results/results_simulations_misc.csv

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ base-atticroof-radiant-barrier-ceiling.xml,0.0,3.0,0.0,1286.4,890.5,10049.4,3454
1919
base-atticroof-radiant-barrier.xml,0.0,0.0,0.0,1286.4,890.5,10049.5,3454.5,1857.9,3513.2,3513.2,1857.9,3513.2,3513.2,13.858,20.152,0.0
2020
base-atticroof-unvented-insulated-roof.xml,0.0,0.0,0.0,1286.4,890.5,11468.6,3942.3,2259.0,3616.6,3616.6,2259.0,3616.6,3616.6,21.436,17.223,0.0
2121
base-atticroof-vented.xml,0.0,27.0,0.0,1286.4,890.5,11468.5,3942.3,2379.3,3773.3,3773.3,2379.3,3773.3,3773.3,36.233,22.378,0.0
22-
base-battery-scheduled-power-outage.xml,0.0,66.0,0.0,1178.8,816.4,10565.4,3631.8,8119.7,8280.2,8280.2,8119.7,8280.2,8280.2,33.306,23.007,1.255
23-
base-battery-scheduled.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,8119.5,8427.4,8427.4,8119.5,8427.4,8427.4,33.305,23.005,1.339
22+
base-battery-scheduled-power-outage.xml,0.0,66.0,0.0,1178.8,816.4,10565.4,3631.8,8119.7,8280.2,8280.2,8119.7,8280.2,8280.2,33.306,23.007,1.38
23+
base-battery-scheduled.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,8119.5,8427.4,8427.4,8119.5,8427.4,8427.4,33.305,23.005,1.473
2424
base-battery.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,2314.8,3776.5,3776.5,2314.8,3776.5,3776.5,33.305,23.005,0.0
2525
base-bldgtype-mf-unit-adjacent-to-multifamily-buffer-space.xml,479.0,0.0,0.0,1323.0,910.7,12046.2,4107.6,1728.4,2173.6,2173.6,1728.4,2173.6,2173.6,10.422,9.028,0.0
2626
base-bldgtype-mf-unit-adjacent-to-multiple-hvac-none.xml,0.0,0.0,0.0,1323.0,910.7,12046.2,4107.6,1654.5,1576.8,1654.5,1654.5,1576.8,1654.5,0.0,0.0,0.0
@@ -57,7 +57,7 @@ base-bldgtype-mf-unit-shared-laundry-room.xml,0.0,0.0,0.0,1323.0,910.6,12046.3,4
5757
base-bldgtype-mf-unit-shared-mechvent-multiple.xml,0.0,0.0,0.0,1323.0,910.7,12046.1,4107.6,1905.3,2507.6,2507.6,1905.3,2507.6,2507.6,7.9,9.715,0.0
5858
base-bldgtype-mf-unit-shared-mechvent-preconditioning.xml,0.0,0.0,0.0,1323.0,910.7,12046.2,4107.6,1759.4,2339.5,2339.5,1759.4,2339.5,2339.5,4.247,8.556,0.0
5959
base-bldgtype-mf-unit-shared-mechvent.xml,0.0,0.0,0.0,1323.0,910.7,12046.2,4107.6,1736.2,2305.8,2305.8,1736.2,2305.8,2305.8,6.067,9.174,0.0
60-
base-bldgtype-mf-unit-shared-pv-battery.xml,0.0,0.0,0.0,1323.0,910.7,12046.2,4107.6,3987.3,3950.9,4370.0,1676.9,1312.5,1676.9,3.871,8.399,29.093
60+
base-bldgtype-mf-unit-shared-pv-battery.xml,0.0,0.0,0.0,1323.0,910.7,12046.2,4107.6,3987.3,3950.9,4370.0,1676.9,1312.5,1676.9,3.871,8.399,32.789
6161
base-bldgtype-mf-unit-shared-pv.xml,0.0,0.0,0.0,1323.0,910.7,12046.2,4107.6,1703.8,2103.2,2103.2,1703.8,1820.9,1820.9,3.871,8.399,0.0
6262
base-bldgtype-mf-unit-shared-water-heater-heat-pump.xml,0.0,0.0,0.0,1323.1,910.7,11326.8,3862.3,1288.2,2056.0,2056.0,1288.2,2056.0,2056.0,7.694,7.864,0.0
6363
base-bldgtype-mf-unit-shared-water-heater-recirc-beds-0.xml,0.0,0.0,0.0,954.8,701.3,5559.7,0.0,731.0,1495.6,1495.6,731.0,1495.6,1495.6,4.466,7.729,0.0
@@ -409,15 +409,15 @@ base-mechvent-multiple.xml,0.0,46.0,0.0,1286.4,890.5,11468.6,3942.3,2382.0,3834.
409409
base-mechvent-supply.xml,6.0,136.0,0.0,1286.4,890.5,11468.5,3942.3,2373.9,3819.5,3819.5,2373.9,3819.5,3819.5,36.407,23.012,0.0
410410
base-mechvent-whole-house-fan.xml,0.0,35.0,0.0,1286.4,890.5,11468.6,3942.3,2332.5,3778.4,3778.4,2332.5,3778.4,3778.4,33.305,22.029,0.0
411411
base-misc-additional-properties.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,2314.8,3776.5,3776.5,2314.8,3776.5,3776.5,33.305,23.005,0.0
412-
base-misc-bills-battery-scheduled-detailed-only.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,8119.5,8427.4,8427.4,8119.5,8427.4,8427.4,33.305,23.005,1.339
412+
base-misc-bills-battery-scheduled-detailed-only.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,8119.5,8427.4,8427.4,8119.5,8427.4,8427.4,33.305,23.005,1.473
413413
base-misc-bills-detailed-only.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,2314.8,3776.5,3776.5,2314.8,3776.5,3776.5,33.305,23.005,0.0
414414
base-misc-bills-pv-detailed-only.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,2314.8,3776.5,3776.5,2314.8,3611.3,3611.3,33.305,23.005,0.0
415415
base-misc-bills-pv-mixed.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,2314.8,3776.5,3776.5,2314.8,3611.3,3611.3,33.305,23.005,0.0
416416
base-misc-bills-pv.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,2314.8,3776.5,3776.5,2314.8,3559.1,3559.1,33.305,23.005,0.0
417417
base-misc-bills.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,2314.8,3776.5,3776.5,2314.8,3776.5,3776.5,33.305,23.005,0.0
418-
base-misc-defaults.xml,0.0,0.0,0.0,1529.1,1405.1,10758.9,3698.3,7474.9,7687.6,7687.6,7474.9,6789.4,7474.9,30.858,17.779,2.846
419-
base-misc-emissions.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,10663.8,10189.2,10987.6,7999.5,6711.3,8056.0,33.305,23.005,8.716
420-
base-misc-generators-battery-scheduled.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,7845.5,8153.5,8153.5,7845.5,8153.5,8153.5,33.305,23.005,1.641
418+
base-misc-defaults.xml,0.0,0.0,0.0,1529.1,1405.1,10758.9,3698.3,7474.9,7687.6,7687.6,7474.9,6789.4,7474.9,30.858,17.779,2.937
419+
base-misc-emissions.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,10663.8,10189.2,10987.6,7999.5,6711.3,8056.0,33.305,23.005,9.862
420+
base-misc-generators-battery-scheduled.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,7845.5,8153.5,8153.5,7845.5,8153.5,8153.5,33.305,23.005,1.828
421421
base-misc-generators-battery.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,2040.9,3502.5,3502.5,2040.9,3502.5,3502.5,33.305,23.005,0.0
422422
base-misc-generators.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,2040.9,3502.5,3502.5,2040.9,3502.5,3502.5,33.305,23.005,0.0
423423
base-misc-ground-conductivity.xml,0.0,82.0,0.0,1286.4,890.5,11468.6,3942.3,2275.4,3776.2,3776.2,2275.4,3776.2,3776.2,32.234,22.998,0.0
@@ -430,22 +430,22 @@ base-misc-terrain-shielding.xml,0.0,42.0,0.0,1286.4,890.5,11468.6,3942.3,2331.0,
430430
base-misc-unit-multiplier-detailed-electric-panel.xml,0.0,87.0,0.0,12864.4,8904.9,114685.4,39422.7,23148.3,37765.1,37765.1,23148.3,37765.1,37765.1,333.051,230.046,0.0
431431
base-misc-unit-multiplier.xml,0.0,87.0,0.0,12864.4,8904.9,114685.4,39422.7,23148.3,37765.1,37765.1,23148.3,37765.1,37765.1,333.051,230.046,0.0
432432
base-misc-usage-multiplier.xml,0.0,110.0,0.0,964.8,667.9,8601.5,2956.7,4091.3,5821.4,5821.4,4091.3,5821.4,5821.4,32.971,23.031,0.0
433-
base-pv-battery-ah.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,3996.5,4181.8,4674.8,2338.2,3731.3,3731.3,33.305,23.005,8.716
434-
base-pv-battery-and-vehicle-ev.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,10663.8,10189.2,10987.6,7999.5,6711.3,8056.0,33.305,23.005,8.716
435-
base-pv-battery-garage.xml,0.0,0.0,0.0,1286.4,890.5,11468.5,3942.3,3996.5,4181.8,4674.8,2342.4,2897.8,2897.8,28.157,19.401,10.367
436-
base-pv-battery-round-trip-efficiency.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,3996.5,4181.8,4674.8,2452.9,3887.9,3887.9,33.305,23.005,3.413
437-
base-pv-battery-scheduled.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,8119.5,8427.4,8427.4,7933.3,7700.7,7933.3,33.305,23.005,5.985
438-
base-pv-battery.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,3996.5,4181.8,4674.8,2338.2,3731.3,3731.3,33.305,23.005,8.716
439-
base-pv-generators-battery-scheduled.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,7845.5,8153.5,8153.5,7659.3,7426.7,7659.3,33.305,23.005,14.259
440-
base-pv-generators-battery.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,3996.5,4181.8,4500.2,2003.8,3394.3,3394.3,33.305,23.005,38.845
433+
base-pv-battery-ah.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,3996.5,4181.8,4674.8,2338.2,3731.3,3731.3,33.305,23.005,9.862
434+
base-pv-battery-and-vehicle-ev.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,10663.8,10189.2,10987.6,7999.5,6711.3,8056.0,33.305,23.005,9.862
435+
base-pv-battery-garage.xml,0.0,0.0,0.0,1286.4,890.5,11468.5,3942.3,3996.5,4181.8,4674.8,2342.4,2897.8,2897.8,28.157,19.401,11.467
436+
base-pv-battery-round-trip-efficiency.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,3996.5,4181.8,4674.8,2452.9,3887.9,3887.9,33.305,23.005,4.038
437+
base-pv-battery-scheduled.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,8119.5,8427.4,8427.4,7933.3,7700.7,7933.3,33.305,23.005,6.505
438+
base-pv-battery.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,3996.5,4181.8,4674.8,2338.2,3731.3,3731.3,33.305,23.005,9.862
439+
base-pv-generators-battery-scheduled.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,7845.5,8153.5,8153.5,7659.3,7426.7,7659.3,33.305,23.005,16.182
440+
base-pv-generators-battery.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,3996.5,4181.8,4500.2,2003.8,3394.3,3394.3,33.305,23.005,54.516
441441
base-pv-generators.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,2040.9,3502.5,3502.5,2040.9,3337.3,3337.3,33.305,23.005,0.0
442442
base-pv-inverters.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,2314.8,3776.5,3776.5,2314.8,3612.1,3612.1,33.305,23.005,0.0
443443
base-pv.xml,0.0,87.0,0.0,1286.4,890.5,11468.5,3942.3,2314.8,3776.5,3776.5,2314.8,3611.3,3611.3,33.305,23.005,0.0
444444
base-residents-0.xml,0.0,7.0,0.0,0.0,0.0,0.0,0.0,797.7,2659.8,2659.8,797.7,2659.8,2659.8,35.598,22.457,0.0
445445
base-residents-1-misc-loads-large-uncommon.xml,0.0,98.0,0.0,821.3,625.4,3517.1,1830.1,2865.8,4961.0,4961.0,2865.8,4961.0,4961.0,33.188,23.017,0.0
446446
base-residents-1-misc-loads-large-uncommon2.xml,0.0,98.0,0.0,821.3,625.4,3517.1,1830.1,2761.1,4709.5,4709.5,2761.1,4709.5,4709.5,33.188,23.017,0.0
447447
base-residents-1.xml,0.0,55.0,0.0,821.3,625.4,3517.1,1830.1,1754.6,3568.6,3568.6,1754.6,3568.6,3568.6,33.949,22.769,0.0
448-
base-residents-5-5.xml,0.0,0.0,0.0,2432.4,2087.7,24539.5,5945.7,8279.1,8477.7,8477.7,8279.1,7676.5,8279.1,30.054,19.009,1.464
448+
base-residents-5-5.xml,0.0,0.0,0.0,2432.4,2087.7,24539.5,5945.7,8279.1,8477.7,8477.7,8279.1,7676.5,8279.1,30.054,19.009,1.501
449449
base-schedules-detailed-all-10-mins.xml,2.667,136.333,0.0,1286.4,890.5,11334.6,3896.2,9797.1,12034.4,12034.4,9797.1,12034.4,12034.4,36.707,22.719,0.0
450450
base-schedules-detailed-mixed-timesteps-power-outage.xml,3.667,29.0,0.0,1090.3,777.9,9227.8,3172.0,9693.2,11701.8,11701.8,9693.2,11701.8,11701.8,45.086,22.494,0.0
451451
base-schedules-detailed-mixed-timesteps.xml,0.5,29.5,0.0,1286.4,890.5,11335.9,3896.7,9684.4,11703.6,11703.6,9684.4,11703.6,11703.6,36.465,22.495,0.0

workflow/tests/util.rb

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ def _run_xml(xml, worker_num, apply_unit_multiplier = false, annual_results_1x =
3636
hpxml_bldg.building_construction.number_of_units = 1
3737
end
3838
orig_multiplier = hpxml.buildings.map { |hpxml_bldg| hpxml_bldg.building_construction.number_of_units }.sum
39+
whole_sfa_or_mf_building_sim = true
3940

4041
# Create copy of the HPXML where the number of Building elements is doubled
4142
# and each Building is assigned a unit multiplier of 5 (2x5=10).
@@ -51,22 +52,23 @@ def _run_xml(xml, worker_num, apply_unit_multiplier = false, annual_results_1x =
5152
elsif hpxml_bldg.batteries.size > 0
5253
# FUTURE: Batteries currently don't work with whole SFA/MF buildings
5354
# https://github.com/NatLabRockies/OpenStudio-HPXML/issues/1499
54-
return
55-
elsif hpxml_bldg.vehicles.size > 0
56-
# Same as battery issue above
57-
return
55+
# but we still want to test unit multipliers
56+
whole_sfa_or_mf_building_sim = false
57+
hpxml_bldg.building_construction.number_of_units *= 10
5858
elsif hpxml.header.hvac_onoff_thermostat_deadband
5959
# On off thermostat not supported with unit multiplier yet
6060
elsif hpxml.header.heat_pump_backup_heating_capacity_increment
6161
# multi-staging backup coil not supported with unit multiplier yet
6262
else
6363
hpxml_bldg.building_construction.number_of_units *= 5
6464
end
65-
hpxml.buildings << hpxml_bldg.dup
65+
if whole_sfa_or_mf_building_sim
66+
hpxml.buildings << hpxml_bldg.dup
67+
end
6668
end
6769
unit_multiplier = hpxml.buildings.map { |hpxml_bldg| hpxml_bldg.building_construction.number_of_units }.sum / orig_multiplier
6870
if unit_multiplier > 1
69-
hpxml.header.whole_sfa_or_mf_building_sim = true
71+
hpxml.header.whole_sfa_or_mf_building_sim = whole_sfa_or_mf_building_sim
7072
if not [HPXML::ResidentialTypeApartment, HPXML::ResidentialTypeSFA].include? hpxml.buildings[0].building_construction.residential_facility_type
7173
# Schematron validation prevents WholeSFAorMFBuildingSim=true for other
7274
# building types, so we skip validation to allow the test to run
@@ -1211,6 +1213,7 @@ def get_tolerances(key)
12111213
vals_1x.zip(vals_10x).each_with_index do |(val_1x, val_10x), i|
12121214
period = is_timeseries ? Date::ABBR_MONTHNAMES[i + 1] : 'Annual'
12131215
if not (key.include?('Unmet Hours') ||
1216+
key.include?('Resilience') ||
12141217
key.include?('HVAC Design Temperature') ||
12151218
key.include?('Weather') ||
12161219
key.include?('HVAC Geothermal Loop: Borehole/Trench Length'))

0 commit comments

Comments
 (0)