From 67b285251731edb5b9a0060b84f9c3db8ed567fe Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Wed, 8 Mar 2023 13:27:49 -0700 Subject: [PATCH 01/10] Add new hw dist recirc num units served argument. --- BuildResidentialHPXML/measure.rb | 53 +++++++++++++++++++++++-------- BuildResidentialHPXML/measure.xml | 16 ++++++++-- 2 files changed, 53 insertions(+), 16 deletions(-) diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb index 9bb0688730..798a8cfc4f 100644 --- a/BuildResidentialHPXML/measure.rb +++ b/BuildResidentialHPXML/measure.rb @@ -1894,6 +1894,13 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, the recirculation pump power. If not provided, the OS-HPXML default is used.") args << arg + arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('hot_water_distribution_recirc_num_units_served', true) + arg.setDisplayName('Hot Water Distribution: Number of Units Served') + arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, number of dwelling units served by the recirculation system. Must be 1 if #{HPXML::ResidentialTypeSFD}. TODO") + arg.setUnits('#') + arg.setDefaultValue(1) + args << arg + arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('hot_water_distribution_pipe_r', false) arg.setDisplayName('Hot Water Distribution: Pipe Insulation Nominal R-Value') arg.setUnits('h-ft^2-R/Btu') @@ -5400,23 +5407,39 @@ def self.set_hot_water_distribution(hpxml, args) dwhr_efficiency = args[:dwhr_efficiency] end - if args[:hot_water_distribution_system_type] == HPXML::DHWDistTypeStandard + system_type = args[:hot_water_distribution_system_type] + if system_type == HPXML::DHWDistTypeStandard || ((system_type == HPXML::DHWDistTypeRecirc) && (args[:hot_water_distribution_recirc_num_units_served] > 1)) if args[:hot_water_distribution_standard_piping_length].is_initialized standard_piping_length = args[:hot_water_distribution_standard_piping_length].get end - else - recirculation_control_type = args[:hot_water_distribution_recirc_control_type] + end - if args[:hot_water_distribution_recirc_piping_length].is_initialized - recirculation_piping_length = args[:hot_water_distribution_recirc_piping_length].get - end + if system_type == HPXML::DHWDistTypeRecirc + if args[:hot_water_distribution_recirc_num_units_served] > 1 + system_type = HPXML::DHWDistTypeStandard - if args[:hot_water_distribution_recirc_branch_piping_length].is_initialized - recirculation_branch_piping_length = args[:hot_water_distribution_recirc_branch_piping_length].get - end + has_shared_recirculation = true + shared_recirculation_number_of_units_served = args[:hot_water_distribution_recirc_num_units_served] + + shared_recirculation_control_type = args[:hot_water_distribution_recirc_control_type] - if args[:hot_water_distribution_recirc_pump_power].is_initialized - recirculation_pump_power = args[:hot_water_distribution_recirc_pump_power].get + if args[:hot_water_distribution_recirc_pump_power].is_initialized + shared_recirculation_pump_power = args[:hot_water_distribution_recirc_pump_power].get + end + else + recirculation_control_type = args[:hot_water_distribution_recirc_control_type] + + if args[:hot_water_distribution_recirc_piping_length].is_initialized + recirculation_piping_length = args[:hot_water_distribution_recirc_piping_length].get + end + + if args[:hot_water_distribution_recirc_branch_piping_length].is_initialized + recirculation_branch_piping_length = args[:hot_water_distribution_recirc_branch_piping_length].get + end + + if args[:hot_water_distribution_recirc_pump_power].is_initialized + recirculation_pump_power = args[:hot_water_distribution_recirc_pump_power].get + end end end @@ -5425,7 +5448,7 @@ def self.set_hot_water_distribution(hpxml, args) end hpxml.hot_water_distributions.add(id: "HotWaterDistribution#{hpxml.hot_water_distributions.size + 1}", - system_type: args[:hot_water_distribution_system_type], + system_type: system_type, standard_piping_length: standard_piping_length, recirculation_control_type: recirculation_control_type, recirculation_piping_length: recirculation_piping_length, @@ -5434,7 +5457,11 @@ def self.set_hot_water_distribution(hpxml, args) pipe_r_value: pipe_r_value, dwhr_facilities_connected: dwhr_facilities_connected, dwhr_equal_flow: dwhr_equal_flow, - dwhr_efficiency: dwhr_efficiency) + dwhr_efficiency: dwhr_efficiency, + has_shared_recirculation: has_shared_recirculation, + shared_recirculation_number_of_units_served: shared_recirculation_number_of_units_served, + shared_recirculation_pump_power: shared_recirculation_pump_power, + shared_recirculation_control_type: shared_recirculation_control_type) end def self.set_water_fixtures(hpxml, args) diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index e9a559cfe2..a50a114ee2 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.0 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - df53f30f-3e9e-4190-9eff-2f41de0bad7f - 20230308T022855Z + 3d416ab1-6d68-4e86-9e30-d1a63872caf9 + 20230308T201803Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -3934,6 +3934,16 @@ false false + + hot_water_distribution_recirc_num_units_served + Hot Water Distribution: Number of Units Served + If the distribution system is Recirculation, number of dwelling units served by the recirculation system. Must be 1 if single-family detached. TODO + Integer + # + true + false + 1 + hot_water_distribution_pipe_r Hot Water Distribution: Pipe Insulation Nominal R-Value @@ -6538,7 +6548,7 @@ measure.rb rb script - 4C1A74A9 + CF223419 From b22d98d8d9b129d5153c1da7e5ddeecd944fd69e Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Wed, 8 Mar 2023 13:28:02 -0700 Subject: [PATCH 02/10] Build the shared recirc sample file with BuildResHPXML. --- tasks.rb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tasks.rb b/tasks.rb index 214b19f9b0..4e03a305a6 100644 --- a/tasks.rb +++ b/tasks.rb @@ -748,6 +748,7 @@ def set_measure_argument_values(hpxml_file, args, sch_args, orig_parent) args['hot_water_distribution_recirc_piping_length'] = 50 args['hot_water_distribution_recirc_branch_piping_length'] = 50 args['hot_water_distribution_recirc_pump_power'] = 50 + args['hot_water_distribution_recirc_num_units_served'] = 1 args['hot_water_distribution_pipe_r'] = 0.0 args['dwhr_facilities_connected'] = 'none' args['dwhr_equal_flow'] = true @@ -1009,6 +1010,7 @@ def set_measure_argument_values(hpxml_file, args, sch_args, orig_parent) args['hot_water_distribution_recirc_piping_length'] = 0 args['hot_water_distribution_recirc_branch_piping_length'] = 0 args['hot_water_distribution_recirc_pump_power'] = 0 + args['hot_water_distribution_recirc_num_units_served'] = 0 args['hot_water_distribution_pipe_r'] = 0 args['dwhr_facilities_connected'] = 'none' args['dwhr_equal_flow'] = true @@ -1361,6 +1363,11 @@ def set_measure_argument_values(hpxml_file, args, sch_args, orig_parent) args['water_heater_efficiency'] = 0.59 args['water_heater_recovery_efficiency'] = 0.76 args['water_heater_heating_capacity'] = 40000 + elsif ['base-bldgtype-multifamily-shared-water-heater-recirc.xml'].include? hpxml_file + args['hot_water_distribution_system_type'] = HPXML::DHWDistTypeRecirc + args['hot_water_distribution_recirc_control_type'] = HPXML::DHWRecirControlTypeTimer + args['hot_water_distribution_recirc_pump_power'] = 220.0 + args['hot_water_distribution_recirc_num_units_served'] = 6 end # Occ Calc Type @@ -4142,11 +4149,6 @@ def apply_hpxml_modification(hpxml_file, hpxml) hpxml.water_heating.water_fixtures_weekday_fractions = '0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.087, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.039, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026' hpxml.water_heating.water_fixtures_weekend_fractions = '0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.087, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.039, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026' hpxml.water_heating.water_fixtures_monthly_multipliers = '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - elsif ['base-bldgtype-multifamily-shared-water-heater-recirc.xml'].include? hpxml_file - hpxml.hot_water_distributions[0].has_shared_recirculation = true - hpxml.hot_water_distributions[0].shared_recirculation_number_of_units_served = 6 - hpxml.hot_water_distributions[0].shared_recirculation_pump_power = 220 - hpxml.hot_water_distributions[0].shared_recirculation_control_type = HPXML::DHWRecirControlTypeTimer elsif ['base-bldgtype-multifamily-shared-laundry-room.xml', 'base-bldgtype-multifamily-shared-laundry-room-multiple-water-heaters.xml'].include? hpxml_file hpxml.water_heating_systems.reverse_each do |water_heating_system| From d94d473d79cc57add4d9d9b02c2e8e9e7adec3bf Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Wed, 8 Mar 2023 14:53:09 -0700 Subject: [PATCH 03/10] Update build measure test. --- BuildResidentialHPXML/measure.xml | 16 ++++++++-------- .../tests/build_residential_hpxml_test.rb | 1 + 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index a50a114ee2..3a156f839b 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.0 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - 3d416ab1-6d68-4e86-9e30-d1a63872caf9 - 20230308T201803Z + 9f1f3d9a-477d-45da-898d-8c908443c8b8 + 20230308T215222Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -6533,12 +6533,6 @@ resource D9E75C2E - - build_residential_hpxml_test.rb - rb - test - B1DB9680 - OpenStudio @@ -6550,5 +6544,11 @@ script CF223419 + + build_residential_hpxml_test.rb + rb + test + 2C648271 + diff --git a/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb b/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb index bd3870d248..6b52567472 100644 --- a/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +++ b/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb @@ -510,6 +510,7 @@ def _set_measure_argument_values(hpxml_file, args) args['hot_water_distribution_recirc_piping_length'] = 50 args['hot_water_distribution_recirc_branch_piping_length'] = 50 args['hot_water_distribution_recirc_pump_power'] = 50 + args['hot_water_distribution_recirc_num_units_served'] = 1 args['hot_water_distribution_pipe_r'] = 0.0 args['dwhr_facilities_connected'] = 'none' args['dwhr_equal_flow'] = true From acfbe0c89f743f18deee21e1e85d8c7cfe82e340 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Wed, 8 Mar 2023 16:45:41 -0700 Subject: [PATCH 04/10] Make the new argument optional since a recirc is optional. --- BuildResidentialHPXML/measure.rb | 11 +++++------ BuildResidentialHPXML/measure.xml | 23 +++++++++++------------ 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb index 798a8cfc4f..e23b536f5c 100644 --- a/BuildResidentialHPXML/measure.rb +++ b/BuildResidentialHPXML/measure.rb @@ -1894,11 +1894,10 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, the recirculation pump power. If not provided, the OS-HPXML default is used.") args << arg - arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('hot_water_distribution_recirc_num_units_served', true) + arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('hot_water_distribution_recirc_num_units_served', false) arg.setDisplayName('Hot Water Distribution: Number of Units Served') - arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, number of dwelling units served by the recirculation system. Must be 1 if #{HPXML::ResidentialTypeSFD}. TODO") + arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, number of dwelling units served by the recirculation system. Must be 1 if #{HPXML::ResidentialTypeSFD}. Used to apportion recirculation pump power to the unit.") arg.setUnits('#') - arg.setDefaultValue(1) args << arg arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('hot_water_distribution_pipe_r', false) @@ -5408,18 +5407,18 @@ def self.set_hot_water_distribution(hpxml, args) end system_type = args[:hot_water_distribution_system_type] - if system_type == HPXML::DHWDistTypeStandard || ((system_type == HPXML::DHWDistTypeRecirc) && (args[:hot_water_distribution_recirc_num_units_served] > 1)) + if system_type == HPXML::DHWDistTypeStandard || ((system_type == HPXML::DHWDistTypeRecirc) && args[:hot_water_distribution_recirc_num_units_served].is_initialized && (args[:hot_water_distribution_recirc_num_units_served].get > 1)) if args[:hot_water_distribution_standard_piping_length].is_initialized standard_piping_length = args[:hot_water_distribution_standard_piping_length].get end end if system_type == HPXML::DHWDistTypeRecirc - if args[:hot_water_distribution_recirc_num_units_served] > 1 + if args[:hot_water_distribution_recirc_num_units_served].is_initialized && args[:hot_water_distribution_recirc_num_units_served].get > 1 system_type = HPXML::DHWDistTypeStandard has_shared_recirculation = true - shared_recirculation_number_of_units_served = args[:hot_water_distribution_recirc_num_units_served] + shared_recirculation_number_of_units_served = args[:hot_water_distribution_recirc_num_units_served].get shared_recirculation_control_type = args[:hot_water_distribution_recirc_control_type] diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index 3a156f839b..952b6d7682 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.0 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - 9f1f3d9a-477d-45da-898d-8c908443c8b8 - 20230308T215222Z + 6dc7e247-bdf0-4193-9093-12140147e8e7 + 20230308T234437Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -3937,12 +3937,11 @@ hot_water_distribution_recirc_num_units_served Hot Water Distribution: Number of Units Served - If the distribution system is Recirculation, number of dwelling units served by the recirculation system. Must be 1 if single-family detached. TODO + If the distribution system is Recirculation, number of dwelling units served by the recirculation system. Must be 1 if single-family detached. Used to apportion recirculation pump power to the unit. Integer # - true + false false - 1 hot_water_distribution_pipe_r @@ -6533,6 +6532,12 @@ resource D9E75C2E + + build_residential_hpxml_test.rb + rb + test + 2C648271 + OpenStudio @@ -6542,13 +6547,7 @@ measure.rb rb script - CF223419 - - - build_residential_hpxml_test.rb - rb - test - 2C648271 + 886D84D3 From eb5869c22d62bfd3dd016071281cbad70e57cbaf Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Wed, 8 Mar 2023 16:45:49 -0700 Subject: [PATCH 05/10] Update the changelog. --- Changelog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Changelog.md b/Changelog.md index 9eac143e7e..3767cfb78e 100644 --- a/Changelog.md +++ b/Changelog.md @@ -20,6 +20,8 @@ __New Features__ - **Breaking change**: Updates component loads outputs: - Replaces `Windows` and `Skylights` with `Windows Conduction`, `Windows Solar`, `Skylights Conduction`, and `Skylights Solar`. - Disaggregates `Lighting` from `Internal Gains`. +- BuildResidentialHPXML measure: + - Adds optional argument for the number of dwelling units served by the recirculation system. __Bugfixes__ - Fixes `BackupHeatingSwitchoverTemperature` for a heat pump w/ *separate* backup system; now correctly ceases backup operation above this temperature. From 16786ea916c158a7977b7b9e79aee4ec5d15ca43 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Wed, 8 Mar 2023 17:43:35 -0700 Subject: [PATCH 06/10] Argument description updates. --- BuildResidentialHPXML/measure.rb | 4 ++-- BuildResidentialHPXML/measure.xml | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb index e23b536f5c..da7ec89dee 100644 --- a/BuildResidentialHPXML/measure.rb +++ b/BuildResidentialHPXML/measure.rb @@ -1895,8 +1895,8 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument args << arg arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('hot_water_distribution_recirc_num_units_served', false) - arg.setDisplayName('Hot Water Distribution: Number of Units Served') - arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, number of dwelling units served by the recirculation system. Must be 1 if #{HPXML::ResidentialTypeSFD}. Used to apportion recirculation pump power to the unit.") + arg.setDisplayName('Hot Water Distribution: Recirculation Number of Units Served') + arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, number of dwelling units served by the recirculation system. Can only be 1 if #{HPXML::ResidentialTypeSFD}. Used to apportion recirculation pump power to the unit.") arg.setUnits('#') args << arg diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index 952b6d7682..0e0b95df15 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.0 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - 6dc7e247-bdf0-4193-9093-12140147e8e7 - 20230308T234437Z + 4b32bbc0-3ea2-4d17-ae92-0f14d9d48b9b + 20230309T004302Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -3936,8 +3936,8 @@ hot_water_distribution_recirc_num_units_served - Hot Water Distribution: Number of Units Served - If the distribution system is Recirculation, number of dwelling units served by the recirculation system. Must be 1 if single-family detached. Used to apportion recirculation pump power to the unit. + Hot Water Distribution: Recirculation Number of Units Served + If the distribution system is Recirculation, number of dwelling units served by the recirculation system. Can only be 1 if single-family detached. Used to apportion recirculation pump power to the unit. Integer # false @@ -6547,7 +6547,7 @@ measure.rb rb script - 886D84D3 + 4E41F978 From cc8711e6701957c4f8a2c68ef13cc2ea25a2cd69 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Mon, 22 May 2023 10:04:13 -0700 Subject: [PATCH 07/10] Fix measure xml merge conflict. --- BuildResidentialHPXML/measure.xml | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index 7a89896af5..6776d83b9b 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,13 +3,8 @@ 3.0 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 -<<<<<<< HEAD - a3a21956-95fd-4e36-8e27-a8004a2d549c - 20230425T172442Z -======= - 61a17495-a6d8-4328-a2c6-341c8ef4300c - 20230519T183248Z ->>>>>>> master + d37a1ccb-2c59-4bcb-aa22-528baa5c3caa + 20230522T170353Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -6694,7 +6689,7 @@ build_residential_hpxml_test.rb rb test - 010244DB + 80767566 @@ -6705,17 +6700,7 @@ measure.rb rb script -<<<<<<< HEAD - B902450C - - - build_residential_hpxml_test.rb - rb - test - FE53E8B3 -======= - AE26AEE7 ->>>>>>> master + D4FEC418 From 1a00313071c23d8e6de894b93999c672c0995164 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Tue, 28 May 2024 11:25:16 -0700 Subject: [PATCH 08/10] Update the changelog. [ci skip] --- Changelog.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Changelog.md b/Changelog.md index 6ed40cbe58..da1b56f821 100644 --- a/Changelog.md +++ b/Changelog.md @@ -51,6 +51,7 @@ __New Features__ - Add soil and moisture type arguments (for determining ground conductivity and diffusivity) and optional geothermal loop arguments for ground source heat pumps. - The "Geometry: Building Number of Units" input is now written to the HPXML `NumberofUnitsInBuilding` element. - Adds a blower fan efficiency input for specifying fan power W/cfm at maximum speed. + - Allows specifying number of bedrooms served by the recirculation system which is used for apportioning recirculation pump power. - HVAC Manual J design load calculations: - **Breaking change**: Outputs for "Infiltration/Ventilation" category disaggregated into "Infiltration" and "Ventilation". - **Breaking change**: Outputs for "Windows" category no longer includes AED excursion; now a separate "AED Excursion" category. @@ -204,8 +205,6 @@ __New Features__ - Stochastic schedules for garage lighting and TV plug loads now use interior lighting and miscellaneous plug load schedules, respectively. - Performance improvement for HPXML files w/ large numbers of `Building` elements. - Weather cache files (\*foo-cache.csv) are no longer used/needed. -- BuildResidentialHPXML measure: - - Adds optional argument for the number of dwelling units served by the recirculation system. __Bugfixes__ - Fixes `BackupHeatingSwitchoverTemperature` for a heat pump w/ *separate* backup system; now correctly ceases backup operation above this temperature. From 6d3ee176ac47e479453bcb11dc15b52a0a4e0d38 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Tue, 28 May 2024 12:10:09 -0700 Subject: [PATCH 09/10] Fix build test. --- BuildResidentialHPXML/measure.xml | 6 +++--- BuildResidentialHPXML/tests/test_build_residential_hpxml.rb | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index df7d331808..2146e1b827 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - bdaa4129-e33a-47f1-a0eb-02fd9c716cd7 - 2024-05-28T18:19:16Z + b6385039-a242-4e9b-b8dc-48ce730bee6c + 2024-05-28T19:09:21Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -7381,7 +7381,7 @@ test_build_residential_hpxml.rb rb test - 4053AC80 + 40884FE2 diff --git a/BuildResidentialHPXML/tests/test_build_residential_hpxml.rb b/BuildResidentialHPXML/tests/test_build_residential_hpxml.rb index 5f700dd8a3..4e5153efe6 100644 --- a/BuildResidentialHPXML/tests/test_build_residential_hpxml.rb +++ b/BuildResidentialHPXML/tests/test_build_residential_hpxml.rb @@ -570,7 +570,6 @@ def _set_measure_argument_values(hpxml_file, args) args['hot_water_distribution_recirc_piping_length'] = 50 args['hot_water_distribution_recirc_branch_piping_length'] = 50 args['hot_water_distribution_recirc_pump_power'] = 50 - args['hot_water_distribution_recirc_num_units_served'] = 1 args['hot_water_distribution_pipe_r'] = 0.0 args['dwhr_facilities_connected'] = 'none' args['dwhr_equal_flow'] = true From aba84db63e2b9b1cf1b5745959aa8eb71f0e4919 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Fri, 7 Jun 2024 15:39:44 -0700 Subject: [PATCH 10/10] Update measure descriptions, etc. --- BuildResidentialHPXML/README.md | 4 ++-- BuildResidentialHPXML/measure.rb | 10 ++++++---- BuildResidentialHPXML/measure.xml | 12 ++++++------ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/BuildResidentialHPXML/README.md b/BuildResidentialHPXML/README.md index 6af3344864..193a16372c 100644 --- a/BuildResidentialHPXML/README.md +++ b/BuildResidentialHPXML/README.md @@ -3780,7 +3780,7 @@ The type of the hot water distribution system. **Hot Water Distribution: Standard Piping Length** -If the distribution system is Standard, the length of the piping. If not provided, the OS-HPXML default (see Standard) is used. +If the distribution system is Standard or Recirculation (Shared), the length of the piping. If not provided, the OS-HPXML default (see Standard or Recirculation (Shared)) is used. - **Name:** ``hot_water_distribution_standard_piping_length`` - **Type:** ``Double`` @@ -3832,7 +3832,7 @@ If the distribution system is Recirculation, the length of the recirculation bra **Hot Water Distribution: Recirculation Pump Power** -If the distribution system is Recirculation, the recirculation pump power. If not provided, the OS-HPXML default (see Recirculation (In-Unit)) is used. +If the distribution system is Recirculation, the recirculation pump power. If not provided, the OS-HPXML default (see Recirculation (In-Unit) or Recirculation (Shared)) is used. - **Name:** ``hot_water_distribution_recirc_pump_power`` - **Type:** ``Double`` diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb index 1808826e8b..e724e4f5b8 100644 --- a/BuildResidentialHPXML/measure.rb +++ b/BuildResidentialHPXML/measure.rb @@ -2245,7 +2245,7 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('hot_water_distribution_standard_piping_length', false) arg.setDisplayName('Hot Water Distribution: Standard Piping Length') arg.setUnits('ft') - arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeStandard}, the length of the piping. If not provided, the OS-HPXML default (see Standard) is used.") + arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeStandard} or #{HPXML::DHWDistTypeRecirc} (Shared), the length of the piping. If not provided, the OS-HPXML default (see Standard or Recirculation (Shared)) is used.") args << arg recirculation_control_type_choices = OpenStudio::StringVector.new @@ -2276,7 +2276,7 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('hot_water_distribution_recirc_pump_power', false) arg.setDisplayName('Hot Water Distribution: Recirculation Pump Power') arg.setUnits('W') - arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, the recirculation pump power. If not provided, the OS-HPXML default (see Recirculation (In-Unit)) is used.") + arg.setDescription("If the distribution system is #{HPXML::DHWDistTypeRecirc}, the recirculation pump power. If not provided, the OS-HPXML default (see Recirculation (In-Unit) or Recirculation (Shared)) is used.") args << arg arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('hot_water_distribution_recirc_num_bedrooms_served', false) @@ -6445,9 +6445,9 @@ def self.set_hot_water_distribution(hpxml_bldg, args) end system_type = args[:hot_water_distribution_system_type] - if args[:hot_water_distribution_system_type] == HPXML::DHWDistTypeStandard + if system_type == HPXML::DHWDistTypeStandard standard_piping_length = args[:hot_water_distribution_standard_piping_length] - else + elsif system_type == HPXML::DHWDistTypeRecirc if ([HPXML::ResidentialTypeSFA, HPXML::ResidentialTypeApartment].include? args[:geometry_unit_type]) && (args[:hot_water_distribution_recirc_num_bedrooms_served].to_f > args[:geometry_unit_num_bedrooms]) system_type = HPXML::DHWDistTypeStandard standard_piping_length = args[:hot_water_distribution_standard_piping_length] @@ -6461,6 +6461,8 @@ def self.set_hot_water_distribution(hpxml_bldg, args) recirculation_branch_piping_length = args[:hot_water_distribution_recirc_branch_piping_length] recirculation_pump_power = args[:hot_water_distribution_recirc_pump_power] end + else + fail 'Unexpected hot water distribution system type.' end hpxml_bldg.hot_water_distributions.add(id: "HotWaterDistribution#{hpxml_bldg.hot_water_distributions.size + 1}", diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index 3d1c4827fb..89f3fe4d06 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - 129ce515-7131-497a-ab76-edef6e0cae03 - 2024-06-07T22:13:40Z + 56e46ec8-7083-4309-a638-751918f2bf19 + 2024-06-07T22:37:43Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -4639,7 +4639,7 @@ hot_water_distribution_standard_piping_length Hot Water Distribution: Standard Piping Length - If the distribution system is Standard, the length of the piping. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.8.1/workflow_inputs.html#standard'>Standard</a>) is used. + If the distribution system is Standard or Recirculation (Shared), the length of the piping. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.8.1/workflow_inputs.html#standard'>Standard</a> or <a href='https://openstudio-hpxml.readthedocs.io/en/v1.8.1/workflow_inputs.html#recirculation-shared'>Recirculation (Shared)</a>) is used. Double ft false @@ -4697,7 +4697,7 @@ hot_water_distribution_recirc_pump_power Hot Water Distribution: Recirculation Pump Power - If the distribution system is Recirculation, the recirculation pump power. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.8.1/workflow_inputs.html#recirculation-in-unit'>Recirculation (In-Unit)</a>) is used. + If the distribution system is Recirculation, the recirculation pump power. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.8.1/workflow_inputs.html#recirculation-in-unit'>Recirculation (In-Unit)</a> or <a href='https://openstudio-hpxml.readthedocs.io/en/v1.8.1/workflow_inputs.html#recirculation-shared'>Recirculation (Shared)</a>) is used. Double W false @@ -7352,7 +7352,7 @@ README.md md readme - C550F8E5 + F0083F35 README.md.erb @@ -7369,7 +7369,7 @@ measure.rb rb script - 40D3A7D0 + DC0A5A15 geometry.rb