From 8d02569003f950e0c88d29d850f320cb4a7d34ca Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Tue, 23 Jul 2024 14:01:15 -0700 Subject: [PATCH 01/22] More updates to hvac and schedules. --- HPXMLtoOpenStudio/measure.rb | 2 +- HPXMLtoOpenStudio/measure.xml | 10 +- HPXMLtoOpenStudio/resources/hvac.rb | 7 +- HPXMLtoOpenStudio/resources/schedules.rb | 352 +++++++++++------------ 4 files changed, 185 insertions(+), 186 deletions(-) diff --git a/HPXMLtoOpenStudio/measure.rb b/HPXMLtoOpenStudio/measure.rb index 8407fd3b2b..2bd3438133 100644 --- a/HPXMLtoOpenStudio/measure.rb +++ b/HPXMLtoOpenStudio/measure.rb @@ -3448,7 +3448,7 @@ def set_foundation_and_walls_top() @walls_top = @foundation_top + @hpxml_bldg.building_construction.average_ceiling_height * @ncfl_ag end - # TODO + # Set 365 (or 366 for a leap year) heating/cooling day arrays based on heating/cooling season begin/end month/day, respectively. # # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @return [void] diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index ee652efcc5..11e74e9ccb 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 92bc177b-fe19-456d-88c1-61eefd284aea - 2024-07-22T23:51:38Z + 740eec86-9362-4d80-bd4e-109400c6faa0 + 2024-07-23T21:00:50Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -183,7 +183,7 @@ measure.rb rb script - 2CD1EC85 + 4281DB73 airflow.rb @@ -381,7 +381,7 @@ hvac.rb rb resource - 5C9B0A1C + 2EE8951A hvac_sizing.rb @@ -573,7 +573,7 @@ schedules.rb rb resource - C1B88015 + 90AEE9B2 simcontrols.rb diff --git a/HPXMLtoOpenStudio/resources/hvac.rb b/HPXMLtoOpenStudio/resources/hvac.rb index 3632cdd66c..53f1c6e16f 100644 --- a/HPXMLtoOpenStudio/resources/hvac.rb +++ b/HPXMLtoOpenStudio/resources/hvac.rb @@ -1810,10 +1810,10 @@ def self.get_default_ceiling_fan_quantity(nbeds) return nbeds + 1 end - # TODO + # Return a 12-element array of 1s and 0s that reflects months for which the average drybulb temperature is greater than 63F. # # @param weather [WeatherFile] Weather object containing EPW information - # @return [TODO] TODO + # @return [Array] monthly array of 1s and 0s def self.get_default_ceiling_fan_months(weather) # Per ANSI/RESNET/ICC 301 months = [0] * 12 @@ -4294,14 +4294,13 @@ def self.set_gshp_assumptions(heat_pump, weather) end end - # TODO + # Returns the EnergyPlus sequential load fractions for every day of the year. # # @param load_fraction [TODO] TODO # @param remaining_fraction [TODO] TODO # @param availability_days [TODO] TODO # @return [TODO] TODO def self.calc_sequential_load_fractions(load_fraction, remaining_fraction, availability_days) - # Returns the EnergyPlus sequential load fractions for every day of the year if remaining_fraction > 0 sequential_load_frac = load_fraction / remaining_fraction # Fraction of remaining load served by this system else diff --git a/HPXMLtoOpenStudio/resources/schedules.rb b/HPXMLtoOpenStudio/resources/schedules.rb index 33ac32fbcb..1e01273f03 100644 --- a/HPXMLtoOpenStudio/resources/schedules.rb +++ b/HPXMLtoOpenStudio/resources/schedules.rb @@ -413,10 +413,10 @@ class MonthWeekdayWeekendSchedule # @param monthly_values [String or Array] a comma-separated string of 12 numbers or a 12-element array of numbers # @param schedule_type_limits_name [String] data type for the values contained in the schedule # @param normalize_values [Boolean] whether to divide schedule values by the max value - # @param begin_month [Integer] TODO - # @param begin_day [Integer] TODO - # @param end_month [Integer] TODO - # @param end_day [Integer] TODO + # @param begin_month [Integer] the begin month of the year + # @param begin_day [Integer] the begin day of the begin month + # @param end_month [Integer] the end month of the year + # @param end_day [Integer] the end day of the end month # @param unavailable_periods [HPXML::UnavailablePeriods] Object that defines periods for, e.g., power outages or vacancies def initialize(model, sch_name, weekday_hourly_values, weekend_hourly_values, monthly_values, schedule_type_limits_name = nil, normalize_values = true, begin_month = 1, @@ -535,10 +535,10 @@ def calc_sch_adjust() # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param sch_name [String] name that is assigned to the OpenStudio Schedule object # @param year [Integer] the calendar year - # @param begin_month [TODO] TODO - # @param begin_day [TODO] TODO - # @param end_month [TODO] TODO - # @param end_day [TODO] TODO + # @param begin_month [Integer] the begin month of the year + # @param begin_day [Integer] the begin day of the begin month + # @param end_month [Integer] the end month of the year + # @param end_day [Integer] the end day of the end month # @param schedule_type_limits_name [String] data type for the values contained in the schedule # @param unavailable_periods [HPXML::UnavailablePeriods] Object that defines periods for, e.g., power outages or vacancies # @return [OpenStudio::Model::ScheduleRuleset] the OpenStudio Schedule object with rules @@ -656,23 +656,23 @@ def create_schedule(model, sch_name, year, begin_month, begin_day, end_month, en end end -# TODO +# Collection of helper methods related to schedules. module Schedule - # TODO + # Used to describe a OpenStudio Schedule Rule that applies to both weekdays and weekends. # # @return [String] name for the allday schedule def self.allday_name return 'allday' end - # TODO + # Used to describe a OpenStudio Schedule Rule that applies only to weekdays. # # @return [String] name for the weekday schedule def self.weekday_name return 'weekday' end - # TODO + # Used to describe a OpenStudio Schedule Rule that applies only to weekends. # # @return [String] name for the weekend schedule def self.weekend_name @@ -826,23 +826,23 @@ def self.set_weekend_rule(rule) rule.setApplySunday(true) end - # TODO + # Downselect the unavailable periods to only those that apply to the given schedule. # # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings - # @param schedule_name [TODO] TODO + # @param schedule_name [String] the column header of the detailed schedule # @param unavailable_periods [HPXML::UnavailablePeriods] Object that defines periods for, e.g., power outages or vacancies - # @return [TODO] TODO + # @return [HPXML::UnavailablePeriods] the subset of unavailable period objects for which the ColumnName applies to the provided schedule name def self.get_unavailable_periods(runner, schedule_name, unavailable_periods) return unavailable_periods.select { |p| Schedule.unavailable_period_applies(runner, schedule_name, p.column_name) } end - # TODO + # Add unavailable period rules to the OpenStudio Schedule object. # - # @param schedule [TODO] TODO + # @param schedule [OpenStudio::Model::ScheduleRuleset] the OpenStudio Schedule object for which to set unavailable period rules # @param sch_name [String] name that is assigned to the OpenStudio Schedule object # @param unavailable_periods [HPXML::UnavailablePeriods] Object that defines periods for, e.g., power outages or vacancies # @param year [Integer] the calendar year - # @return [TODO] TODO + # @return [void] def self.set_unavailable_periods(schedule, sch_name, unavailable_periods, year) return if unavailable_periods.nil? @@ -924,14 +924,14 @@ def self.set_unavailable_periods(schedule, sch_name, unavailable_periods, year) end end - # TODO + # Create an unavailable period rule from start date to end date. # - # @param schedule [TODO] TODO + # @param schedule [OpenStudio::Model::ScheduleRuleset] the OpenStudio Schedule object for which to set unavailable period rules # @param sch_name [String] name that is assigned to the OpenStudio Schedule object - # @param i [TODO] TODO - # @param date_s [TODO] TODO - # @param date_e [TODO] TODO - # @return [TODO] TODO + # @param i [Integer] the index of the applicable unavailable period + # @param date_s [OpenStudio::Date] unavailable period rule start date + # @param date_e [OpenStudio::Date] unavailable period rule end date + # @return [OpenStudio::Model::ScheduleDay] OpenStudio Schedule Day object connected to the unavailable period rule def self.create_unavailable_period_rule(schedule, sch_name, i, date_s, date_e) out_rule = OpenStudio::Model::ScheduleRule.new(schedule) out_rule.setName(sch_name + " unavailable period ruleset#{i}") @@ -944,14 +944,14 @@ def self.create_unavailable_period_rule(schedule, sch_name, i, date_s, date_e) return out_sch end - # TODO + # Set the unavailable period values for the hours of the day which it applies. # - # @param out [TODO] TODO - # @param day_schedule [TODO] TODO - # @param begin_hour [TODO] TODO - # @param end_hour [TODO] TODO - # @param value [TODO] TODO - # @return [TODO] TODO + # @param out [OpenStudio::Model::ScheduleDay] OpenStudio Schedule Day object connected to the unavailable period rule + # @param day_schedule [OpenStudio::Model::ScheduleDay] the OpenStudio Schedule Day object before applying the unavailable period + # @param begin_hour [Integer] hour of the day that the unavailable period begins + # @param end_hour [Integer] hour of the day that the unavailable period ends + # @param value [Double] the value to set on the day schedule that means unavailable + # @return [void] def self.set_unavailable_period_values(out, day_schedule, begin_hour, end_hour, value) for h in 0..23 time = OpenStudio::Time.new(0, h + 1, 0, 0) @@ -963,378 +963,378 @@ def self.set_unavailable_period_values(out, day_schedule, begin_hour, end_hour, end end - # TODO + # Default occupants weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.OccupantsWeekdayFractions return '0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035' end - # TODO + # Default occupants weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.OccupantsWeekendFractions return '0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035' end - # TODO + # Default occupants monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.OccupantsMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default interior lighting weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.LightingInteriorWeekdayFractions return '0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018' end - # TODO + # Default interior lighting weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.LightingInteriorWeekendFractions return '0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018' end - # TODO + # Default exterior lighting weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.LightingExteriorWeekdayFractions return '0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047' end - # TODO + # Default exterior lighting weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.LightingExteriorWeekendFractions return '0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047' end - # TODO + # Default garage lighting weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.LightingGarageWeekdayFractions return '0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039' end - # TODO + # Default garage lighting weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.LightingGarageWeekendFractions return '0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039' end - # TODO + # Default interior/exterior/garage lighting weekday fractions. # # @return [String] 12 comma-separated monthly multipliers def self.LightingMonthlyMultipliers return '1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20' end - # TODO + # Default exterior holiday lighting weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.LightingExteriorHolidayWeekdayFractions return '0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019' end - # TODO + # Default exterior holiday lighting weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.LightingExteriorHolidayWeekendFractions return '0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019' end - # TODO + # Default exterior holiday lighting monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.LightingExteriorHolidayMonthlyMultipliers return '1.248, 1.257, 0.993, 0.989, 0.993, 0.827, 0.821, 0.821, 0.827, 0.99, 0.987, 1.248' end - # TODO + # Default cooking range weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.CookingRangeWeekdayFractions return '0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015' end - # TODO + # Default cooking range weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.CookingRangeWeekendFractions return '0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015' end - # TODO + # Default cooking range monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.CookingRangeMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default dishwasher weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.DishwasherWeekdayFractions return '0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031' end - # TODO + # Default dishwasher weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.DishwasherWeekendFractions return '0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031' end - # TODO + # Default dishwasher monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.DishwasherMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default clothes washer weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.ClothesWasherWeekdayFractions return '0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017' end - # TODO + # Default clothes washer weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.ClothesWasherWeekendFractions return '0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017' end - # TODO + # Default clothes washer monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.ClothesWasherMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default clothes dryer weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.ClothesDryerWeekdayFractions return '0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024' end - # TODO + # Default clothes dryer weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.ClothesDryerWeekendFractions return '0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024' end - # TODO + # Default clothes dryer monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.ClothesDryerMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default fixtures weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.FixturesWeekdayFractions return '0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026' end - # TODO + # Default fixtures weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.FixturesWeekendFractions return '0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026' end - # TODO + # Default fixtures monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.FixturesMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default general water use weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.GeneralWaterUseWeekdayFractions return '0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034' end - # TODO + # Default general water use weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.GeneralWaterUseWeekendFractions return '0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034' end - # TODO + # Default general water use monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.GeneralWaterUseMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default recirculation pump w/out control weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.RecirculationPumpWithoutControlWeekdayFractions return '0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042' end - # TODO + # Default recirculation pump w/out control weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.RecirculationPumpWithoutControlWeekendFractions return '0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042' end - # TODO + # Default recirculation pump demand-controlled weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.RecirculationPumpDemandControlledWeekdayFractions return '0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026' end - # TODO + # Default recirculation pump demand-controlled weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.RecirculationPumpDemandControlledWeekendFractions return '0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026' end - # TODO + # Default recirculation pump temperature-controlled weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.RecirculationPumpTemperatureControlledWeekdayFractions return '0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055' end - # TODO + # Default recirculation pump temperature-controlled weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.RecirculationPumpTemperatureControlledWeekendFractions return '0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055' end - # TODO + # Default recirculation pump monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.RecirculationPumpMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default refrigerator weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.RefrigeratorWeekdayFractions return '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041' end - # TODO + # Default refrigerator weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.RefrigeratorWeekendFractions return '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041' end - # TODO + # Default refrigerator monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.RefrigeratorMonthlyMultipliers return '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837' end - # TODO + # Default refrigerator constant coefficients. # # @return [String] 24 comma-separated constant coefficients def self.RefrigeratorConstantCoefficients return '-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, 0.077, -0.118, -0.247, -0.445, -0.544' # Table C.3(2) Daily Refrigerator Coefficient Schedules end - # TODO + # Default refrigerator temperature coefficients. # # @return [String] 24 comma-separated temperature coefficients def self.RefrigeratorTemperatureCoefficients return '0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020' # Table C.3(2) Daily Refrigerator Coefficient Schedules end - # TODO + # Default extra refrigerator weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.ExtraRefrigeratorWeekdayFractions return '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041' end - # TODO + # Default extra refrigerator weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.ExtraRefrigeratorWeekendFractions return '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041' end - # TODO + # Default extra refrigerator monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.ExtraRefrigeratorMonthlyMultipliers return '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837' end - # TODO + # Default extra refrigerator constant coefficients. # - # @return [TODO] TODO + # @return [String] 24 comma-separated constant coefficients def self.ExtraRefrigeratorConstantCoefficients return '-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, -0.077, -0.118, -0.247, -0.445, -0.544' end - # TODO + # Default extra refrigerator temperature coefficients. # - # @return [TODO] TODO + # @return [String] 24 comma-separated temperature coefficients def self.ExtraRefrigeratorTemperatureCoefficients return '0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020' end - # TODO + # Default freezer weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.FreezerWeekdayFractions return '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041' end - # TODO + # Default freezer weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.FreezerWeekendFractions return '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041' end - # TODO + # Default freezer monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.FreezerMonthlyMultipliers return '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837' end - # TODO + # Default ceiling fan weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.CeilingFanWeekdayFractions return '0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057' end - # TODO + # Default ceiling fan weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.CeilingFanWeekendFractions return '0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057' end - # TODO + # Default ceiling fan monthly multipliers. # # @param weather [WeatherFile] Weather object containing EPW information # @return [String] 12 comma-separated monthly multipliers @@ -1342,246 +1342,245 @@ def self.CeilingFanMonthlyMultipliers(weather:) return HVAC.get_default_ceiling_fan_months(weather).join(', ') end - # TODO + # Default other plug loads weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.PlugLoadsOtherWeekdayFractions return '0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037' end - # TODO + # Default other plug loads weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.PlugLoadsOtherWeekendFractions return '0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037' end - # TODO + # Default other plug loads monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.PlugLoadsOtherMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default TV plug loads weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.PlugLoadsTVWeekdayFractions return '0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034' end - # TODO + # Default TV plug loads weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.PlugLoadsTVWeekendFractions return '0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034' end - # TODO + # Default TV plug loads monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.PlugLoadsTVMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default vehicle plug loads weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.PlugLoadsVehicleWeekdayFractions return '0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042' end - # TODO + # Default vehicle plug loads weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.PlugLoadsVehicleWeekendFractions return '0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042' end - # TODO + # Default vehicle plug loads monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.PlugLoadsVehicleMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default well pump plug loads weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.PlugLoadsWellPumpWeekdayFractions return '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065' end - # TODO + # Default well pump plug loads weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.PlugLoadsWellPumpWeekendFractions return '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065' end - # TODO + # Default well pump plug loads monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.PlugLoadsWellPumpMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default grill fuel loads weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.FuelLoadsGrillWeekdayFractions return '0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007' end - # TODO + # Default grill fuel loads weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.FuelLoadsGrillWeekendFractions return '0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007' end - # TODO + # Default grill fuel loads monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.FuelLoadsGrillMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default lighting fuel loads weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.FuelLoadsLightingWeekdayFractions return '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065' end - # TODO + # Default lighting fuel loads weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.FuelLoadsLightingWeekendFractions return '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065' end - # TODO + # Default lighting fuel loads monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.FuelLoadsLightingMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default fireplace fuel loads weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.FuelLoadsFireplaceWeekdayFractions return '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065' end - # TODO + # Default fireplace fuel loads weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.FuelLoadsFireplaceWeekendFractions return '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065' end - # TODO + # Default fireplace fuel loads monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.FuelLoadsFireplaceMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # TODO + # Default pool pump weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.PoolPumpWeekdayFractions return '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003' end - # TODO + # Default pool pump weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.PoolPumpWeekendFractions return '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003' end - # TODO + # Default pool pump monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.PoolPumpMonthlyMultipliers return '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154' end - # TODO + # Default pool heater weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.PoolHeaterWeekdayFractions return '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003' end - # TODO + # Default pool heater weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.PoolHeaterWeekendFractions return '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003' end - # TODO + # Default pool heater monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.PoolHeaterMonthlyMultipliers return '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154' end - # TODO + # Default permanent spa pump weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.PermanentSpaPumpWeekdayFractions return '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024' end - # TODO + # Default permanent spa pump weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.PermanentSpaPumpWeekendFractions return '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024' end - # TODO + # Default permanent spa pump monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.PermanentSpaPumpMonthlyMultipliers return '0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921' end - # TODO + # Default permanent spa heater weekday fractions. # # @return [String] 24 comma-separated weekday fractions def self.PermanentSpaHeaterWeekdayFractions return '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024' end - # TODO + # Default permanent spa heater weekend fractions. # # @return [String] 24 comma-separated weekend fractions def self.PermanentSpaHeaterWeekendFractions return '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024' end - # TODO + # Default permanent spa heater monthly multipliers. # # @return [String] 12 comma-separated monthly multipliers def self.PermanentSpaHeaterMonthlyMultipliers return '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837' end - # TODO + # Returns a value between 1 and 365 (or 366 for a leap year). + # Returns e.g. 32 for month=2 and day=1 (Feb 1). # # @param year [Integer] the calendar year - # @param month [TODO] TODO - # @param day [TODO] TODO - # @return [TODO] TODO + # @param month [Integer] the month of the year + # @param day [Integer] the day of the month + # @return [Integer] the day number of the year def self.get_day_num_from_month_day(year, month, day) - # Returns a value between 1 and 365 (or 366 for a leap year) - # Returns e.g. 32 for month=2 and day=1 (Feb 1) month_num_days = Constants.NumDaysInMonths(year) day_num = day for m in 0..month - 2 @@ -1590,14 +1589,14 @@ def self.get_day_num_from_month_day(year, month, day) return day_num end - # TODO + # Returns an array of 365 (or 366 for a leap year) values of 0s and 1s that define a daily season. # # @param year [Integer] the calendar year - # @param start_month [TODO] TODO - # @param start_day [TODO] TODO - # @param end_month [TODO] TODO - # @param end_day [TODO] TODO - # @return [TODO] TODO + # @param start_month [Integer] the start month of the year + # @param start_day [Integer] the start day of the start month + # @param end_month [Integer] the end month of the year + # @param end_day [Integer] the end day of the end month + # @return [Array] 1s ranging from start month/day to end month/day, and 0s outside of this range def self.get_daily_season(year, start_month, start_day, end_month, end_day) start_day_num = get_day_num_from_month_day(year, start_month, start_day) end_day_num = get_day_num_from_month_day(year, end_month, end_day) @@ -1612,43 +1611,44 @@ def self.get_daily_season(year, start_month, start_day, end_month, end_day) return season end - # TODO + # Convert a 12-element monthly array of 1s and 0s to a 365-element (or 366-element for a leap year) daily array of 1s and 0s. # # @param year [Integer] the calendar year - # @param months [TODO] TODO - # @return [TODO] TODO + # @param months [Array] monthly array of 1s and 0s + # @return [Array] daily array of 1s and 0s def self.months_to_days(year, months) month_num_days = Constants.NumDaysInMonths(year) days = [] for m in 0..11 days.concat([months[m]] * month_num_days[m]) end + return days end - # TODO + # Returns a 12-element array of day numbers of the year corresponding to the first days of each month. # # @param year [Integer] the calendar year - # @return [TODO] TODO + # @return [Array] day number of the year for the first day of each month def self.day_start_months(year) month_num_days = Constants.NumDaysInMonths(year) return month_num_days.each_with_index.map { |_n, i| get_day_num_from_month_day(year, i + 1, 1) } end - # TODO + # Returns a 12-element array of day numbers of the year corresponding to the last days of each month. # # @param year [Integer] the calendar year - # @return [TODO] TODO + # @return [Array] day number of the year for the last day of each month def self.day_end_months(year) month_num_days = Constants.NumDaysInMonths(year) return month_num_days.each_with_index.map { |n, i| get_day_num_from_month_day(year, i + 1, n) } end - # TODO + # Create an OpenStudio Schedule object based on a 365-element (or 366 for a leap year) daily season array. # # @param model [OpenStudio::Model::Model] OpenStudio Model object - # @param values [TODO] TODO - # @return [TODO] TODO + # @param values [Array] array of daily sequential load fractions + # @return [OpenStudio::Model::ScheduleRuleset] the OpenStudio Schedule object with rules def self.create_ruleset_from_daily_season(model, values) s = OpenStudio::Model::ScheduleRuleset.new(model) year = model.getYearDescription.assumedYear @@ -1675,10 +1675,10 @@ def self.create_ruleset_from_daily_season(model, values) return s end - # TODO + # Return begin month/day/hour and end month/day/hour integers based on a string datetime range. # - # @param date_time_range [TODO] TODO - # @return [TODO] TODO + # @param date_time_range [String] a date like 'Jan 1 - Dec 31' (optionally can enter hour like 'Dec 15 2 - Jan 15 20') + # @return [Array] begin/end month/day/hour def self.parse_date_time_range(date_time_range) begin_end_dates = date_time_range.split('-').map { |v| v.strip } if begin_end_dates.size != 2 @@ -1710,11 +1710,11 @@ def self.parse_date_time_range(date_time_range) return begin_month, begin_day, begin_hour, end_month, end_day, end_hour end - # TODO + # Return begin month/day and end month/day based on a provided monthly availability array. # - # @param months [TODO] TODO + # @param months [Array] monthly array of 1s and 0s # @param year [Integer] the calendar year - # @return [TODO] TODO + # @return [Array] begin month/day and end month/day def self.get_begin_and_end_dates_from_monthly_array(months, year) num_days_in_month = Constants.NumDaysInMonths(year) @@ -1736,9 +1736,9 @@ def self.get_begin_and_end_dates_from_monthly_array(months, year) return begin_month, begin_day, end_month, end_day end - # TODO + # Return a array of maps that reflect the contents of the unavailable_periods.csv file. # - # @return [TODO] TODO + # @return [Array] array with maps for components that are affected by unavailable period types def self.get_unavailable_periods_csv_data unavailable_periods_csv = File.join(File.dirname(__FILE__), 'data', 'unavailable_periods.csv') if not File.exist?(unavailable_periods_csv) @@ -1751,12 +1751,12 @@ def self.get_unavailable_periods_csv_data return unavailable_periods_csv_data end - # TODO + # Determine whether an unavailable period applies to a given detailed schedule. # # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings - # @param schedule_name [TODO] TODO - # @param col_name [TODO] TODO - # @return [TODO] TODO + # @param schedule_name [String] the column header of the detailed schedule + # @param col_name [String] the unavailable period type + # @return [Boolean] true if the unavailable period type applies to the detailed schedule def self.unavailable_period_applies(runner, schedule_name, col_name) if @unavailable_periods_csv_data.nil? @unavailable_periods_csv_data = get_unavailable_periods_csv_data @@ -2091,9 +2091,9 @@ def create_schedule_file(model, col_name:, rows_to_skip: 1, # The equivalent number of hours in the year, if the schedule was at full load (1.0). # - # @param col_name [TODO] TODO - # @param schedules [TODO] TODO - # @return [TODO] TODO + # @param col_name [String] the column header of the detailed schedule + # @param schedules [Hash] schedules from all detailed schedule CSVs + # @return [Double] total number of full load hours for the year def annual_equivalent_full_load_hrs(col_name:, schedules: nil) @@ -2104,10 +2104,10 @@ def annual_equivalent_full_load_hrs(col_name:, # The equivalent number of hours in the period, if the schedule was at full load (1.0). # - # @param col_name [TODO] TODO - # @param schedules [TODO] TODO - # @param period [TODO] TODO - # @return [TODO] TODO + # @param col_name [String] the column header of the detailed schedule + # @param schedules [Hash] schedules from all detailed schedule CSVs + # @param period [HPXM::UnavailablePeriod] Object that defines begin/end month/day/hour for, e.g., a power outage or vacancy + # @return [Double] total number of full load hours for the period def period_equivalent_full_load_hrs(col_name:, schedules: nil, period: nil) @@ -2163,9 +2163,9 @@ def period_equivalent_full_load_hrs(col_name:, # it would consume the annual_kwh energy in the year. Essentially, returns the watts for the equipment when schedule # is at 1.0, so that, for the given schedule values, the equipment will consume annual_kwh energy in a year. # - # @param col_name [TODO] TODO - # @param annual_kwh [TODO] TODO - # @return [TODO] TODO + # @param col_name [String] the column header of the detailed schedule + # @param annual_kwh [Double] annual consumption in a year (kWh) + # @return [Double] design level used to represent maximum input (W) def calc_design_level_from_annual_kwh(col_name:, annual_kwh:) if @schedules[col_name].nil? @@ -2182,9 +2182,9 @@ def calc_design_level_from_annual_kwh(col_name:, # Similar to ann_equiv_full_load_hrs, but for thermal energy. # - # @param col_name [TODO] TODO - # @param annual_therm [TODO] TODO - # @return [TODO] TODO + # @param col_name [String] the column header of the detailed schedule + # @param annual_therm [Double] annual consumption in a year (therm) + # @return [Double] design level used to represent maximum input (W) def calc_design_level_from_annual_therm(col_name:, annual_therm:) if @schedules[col_name].nil? @@ -2199,9 +2199,9 @@ def calc_design_level_from_annual_therm(col_name:, # Similar to the calc_design_level_from_annual_kwh, but use daily_kwh instead of annual_kwh to calculate the design level. # - # @param col_name [TODO] TODO - # @param daily_kwh [TODO] TODO - # @return [TODO] TODO + # @param col_name [String] the column header of the detailed schedule + # @param daily_kwh [Double] daily energy use (kWh) + # @return [Double] design level used to represent maximum input (W) def calc_design_level_from_daily_kwh(col_name:, daily_kwh:) if @schedules[col_name].nil? @@ -2220,9 +2220,9 @@ def calc_design_level_from_daily_kwh(col_name:, # Similar to calc_design_level_from_daily_kwh but for water usage. # - # @param col_name [TODO] TODO - # @param daily_water [TODO] TODO - # @return [TODO] TODO + # @param col_name [String] the column header of the detailed schedule + # @param daily_water [Double] daily water use (gal/day) + # @return [TODO] TODO (m^3/s) def calc_peak_flow_from_daily_gpm(col_name:, daily_water:) if @schedules[col_name].nil? @@ -2242,8 +2242,8 @@ def calc_peak_flow_from_daily_gpm(col_name:, # Create a column of zeroes or ones for, e.g., vacancy periods or power outage periods. # - # @param col_name [TODO] TODO - # @param periods [TODO] TODO + # @param col_name [String] the column header of the detailed schedule + # @param periods [HPXML::UnavailablePeriods] Object that defines periods for, e.g., power outages or vacancies # @return [void] def create_column_values_from_periods(col_name, periods) n_steps = @tmp_schedules[@tmp_schedules.keys[0]].length @@ -2286,7 +2286,7 @@ def expand_schedules end end - # TODO + # Modify the detailed schedules hash referenced by EnergyPlus with appropriate unavailable period values. # # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param unavailable_periods [HPXML::UnavailablePeriods] Object that defines periods for, e.g., power outages or vacancies From 0ffa98e7c9d8495268246a6d08f4a74ed49257b6 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Tue, 23 Jul 2024 23:26:30 +0000 Subject: [PATCH 02/22] Latest results. --- workflow/tests/base_results/results_simulations_loads.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/tests/base_results/results_simulations_loads.csv b/workflow/tests/base_results/results_simulations_loads.csv index 0c38a04ac2..8ed38ecc90 100644 --- a/workflow/tests/base_results/results_simulations_loads.csv +++ b/workflow/tests/base_results/results_simulations_loads.csv @@ -427,7 +427,7 @@ base.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682, house001.xml,19.136,0.0,53.592,10.404,2.718,0.0,0.0,0.515,2.094,7.773,0.453,0.0,1.007,7.209,-5.737,0.0,0.0,0.479,0.897,-0.554,4.463,0.0,5.355,0.0,3.721,-5.804,-2.913,0.595,1.747,4.061,0.325,0.0,0.255,2.786,13.063,0.0,0.0,0.514,6.356,-0.54,-0.263,-2.042,-0.526,0.0,12.326,10.704,4.463 house002.xml,11.756,0.0,41.956,7.517,2.933,0.0,0.0,0.0,2.717,5.297,0.0,0.0,0.846,5.655,-4.461,0.0,0.0,0.0,1.582,-0.314,1.608,0.0,3.843,0.0,1.537,-4.296,-2.401,0.0,2.777,2.994,0.0,0.0,0.411,1.123,10.014,0.0,0.0,0.0,8.095,-0.308,-0.16,-1.477,-0.583,0.0,6.71,8.58,3.977 house003.xml,12.794,0.0,44.159,7.517,2.721,0.0,0.0,0.673,3.003,4.939,0.0,0.0,0.981,6.172,-4.47,0.0,0.0,0.0,0.958,-0.33,2.043,0.0,4.013,0.0,1.784,-4.533,-2.624,0.82,2.74,2.797,0.0,0.0,0.642,1.928,11.287,0.0,0.0,0.0,6.2,-0.323,-0.184,-1.547,-0.563,0.0,7.521,8.821,4.248 -house004.xml,36.804,0.0,114.385,8.975,3.543,0.0,0.0,0.127,5.222,11.191,0.0,0.0,1.244,13.586,-5.978,0.0,0.0,0.0,3.21,-0.738,5.025,0.0,6.238,0.0,7.332,-6.14,-3.826,0.199,5.894,11.327,0.0,0.0,0.506,8.875,20.819,0.0,0.0,0.0,18.642,-0.726,1.046,0.0,1.82,0.0,23.987,14.638,7.729 +house004.xml,36.804,0.0,114.385,8.975,3.543,0.0,0.0,0.127,5.226,11.195,0.0,0.0,1.243,13.583,-5.986,0.0,0.0,0.0,3.215,-0.736,5.025,0.0,6.239,0.0,7.333,-6.142,-3.827,0.199,5.897,11.33,0.0,0.0,0.506,8.872,20.811,0.0,0.0,0.0,18.648,-0.724,1.047,0.0,1.821,0.0,23.987,14.636,7.728 house005.xml,22.3,0.0,65.333,8.975,2.774,0.0,0.0,0.0,3.241,8.748,0.287,0.0,1.389,9.465,-7.574,0.0,0.0,0.395,0.85,-0.701,5.218,0.0,5.252,0.0,4.921,-5.9,-3.565,0.0,2.577,4.571,0.211,0.0,0.293,3.847,17.586,0.0,0.0,0.409,6.909,-0.684,-0.34,-2.616,-0.558,0.0,16.845,11.001,5.585 house006.xml,78.737,0.0,8.255,13.079,3.279,0.0,0.0,0.0,4.309,21.945,1.971,36.932,1.824,17.241,-9.038,0.0,0.0,0.0,8.88,-0.191,8.47,0.0,4.304,0.0,0.0,-12.586,-6.093,0.0,0.075,-1.164,-0.071,2.587,-0.125,-0.54,5.472,0.0,0.0,0.0,-4.319,-0.191,-0.567,-1.687,-0.133,0.0,0.0,6.418,2.589 house007.xml,72.297,0.0,6.256,15.626,3.27,0.0,0.0,0.0,4.78,23.381,4.387,10.091,1.471,18.455,-8.927,0.0,0.0,0.075,11.021,-0.276,6.068,0.0,20.363,0.0,2.973,-14.755,-7.321,0.0,0.118,-1.022,-0.116,0.534,-0.073,-0.265,5.858,0.0,0.0,-0.01,-4.555,-0.272,-0.251,-1.49,-2.327,0.0,0.12,7.146,2.972 From 53c351b8fd12c29a99894366b4dbd1f98a8f4355 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Tue, 30 Jul 2024 10:29:02 -0700 Subject: [PATCH 03/22] First cut at moving default schedules data out of ruby. --- .github/workflows/config.yml | 1 + HPXMLtoOpenStudio/measure.xml | 16 ++++--- .../resources/data/default_schedules.csv | 7 ++++ HPXMLtoOpenStudio/resources/hpxml_defaults.rb | 38 ++++++++++++++--- HPXMLtoOpenStudio/resources/schedules.rb | 42 ------------------- HPXMLtoOpenStudio/tests/test_defaults.rb | 6 ++- .../create_default_schedules_csv_tables.rb | 14 +++++++ docs/source/data/general_water_use.csv | 4 ++ docs/source/data/occupants.csv | 4 ++ docs/source/workflow_inputs.rst | 16 +++++-- 10 files changed, 89 insertions(+), 59 deletions(-) create mode 100644 HPXMLtoOpenStudio/resources/data/default_schedules.csv create mode 100644 docs/source/data/create_default_schedules_csv_tables.rb create mode 100644 docs/source/data/general_water_use.csv create mode 100644 docs/source/data/occupants.csv diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index 7bf69a797e..0344f8f24c 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -61,6 +61,7 @@ jobs: - name: Build documentation run: | cd docs + ruby source/data/create_default_schedules_csv_tables.rb make html SPHINXOPTS="-W --keep-going -n" - name: Check documentation diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index 163c2f8f9e..4ab001e8b4 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - f942121e-ebd7-4468-b16d-d10846b73d6b - 2024-07-23T22:22:23Z + 2d707ee1-12cf-4e8a-8d3e-4b594d525f8e + 2024-07-30T17:27:36Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -263,6 +263,12 @@ resource 63C6A1E2 + + data/default_schedules.csv + csv + resource + B58100B7 + data/g_functions/C_configurations_5m_v1.0.json json @@ -351,7 +357,7 @@ hpxml_defaults.rb rb resource - CCAD07C4 + CC69C9FD hpxml_schema/HPXML.xsd @@ -573,7 +579,7 @@ schedules.rb rb resource - 92314938 + 43A92C2F simcontrols.rb @@ -645,7 +651,7 @@ test_defaults.rb rb test - 132CCC8D + 46825C0C test_enclosure.rb diff --git a/HPXMLtoOpenStudio/resources/data/default_schedules.csv b/HPXMLtoOpenStudio/resources/data/default_schedules.csv new file mode 100644 index 0000000000..899ab64a1b --- /dev/null +++ b/HPXMLtoOpenStudio/resources/data/default_schedules.csv @@ -0,0 +1,7 @@ +Schedule Name,Element,Values +occupants,WeekdayScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035" +occupants,WeekendScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035" +occupants,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +general_water_use,GeneralWaterUseWeekdayScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034" +general_water_use,GeneralWaterUseWeekendScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034" +general_water_use,GeneralWaterUseMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb index ce54c4b729..608ffc4a4a 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +++ b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb @@ -39,6 +39,8 @@ def self.apply(runner, hpxml, hpxml_bldg, eri_version, weather, schedules_file: add_zones_spaces_if_needed(hpxml, hpxml_bldg, cfa) + @default_schedules_csv_data = get_default_schedules_csv_data() + apply_header(hpxml.header, hpxml_bldg, weather) apply_building(hpxml_bldg, weather) apply_emissions_scenarios(hpxml.header, has_fuel) @@ -798,15 +800,15 @@ def self.apply_building_occupancy(hpxml_bldg, schedules_file) end schedules_file_includes_occupants = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:Occupants].name)) if hpxml_bldg.building_occupancy.weekday_fractions.nil? && !schedules_file_includes_occupants - hpxml_bldg.building_occupancy.weekday_fractions = Schedule.OccupantsWeekdayFractions + hpxml_bldg.building_occupancy.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:Occupants].name]['WeekdayScheduleFractions'] hpxml_bldg.building_occupancy.weekday_fractions_isdefaulted = true end if hpxml_bldg.building_occupancy.weekend_fractions.nil? && !schedules_file_includes_occupants - hpxml_bldg.building_occupancy.weekend_fractions = Schedule.OccupantsWeekendFractions + hpxml_bldg.building_occupancy.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:Occupants].name]['WeekendScheduleFractions'] hpxml_bldg.building_occupancy.weekend_fractions_isdefaulted = true end if hpxml_bldg.building_occupancy.monthly_multipliers.nil? && !schedules_file_includes_occupants - hpxml_bldg.building_occupancy.monthly_multipliers = Schedule.OccupantsMonthlyMultipliers + hpxml_bldg.building_occupancy.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:Occupants].name]['MonthlyScheduleMultipliers'] hpxml_bldg.building_occupancy.monthly_multipliers_isdefaulted = true end if hpxml_bldg.building_occupancy.general_water_use_usage_multiplier.nil? @@ -815,15 +817,15 @@ def self.apply_building_occupancy(hpxml_bldg, schedules_file) end schedules_file_includes_water = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:GeneralWaterUse].name)) if hpxml_bldg.building_occupancy.general_water_use_weekday_fractions.nil? && !schedules_file_includes_water - hpxml_bldg.building_occupancy.general_water_use_weekday_fractions = Schedule.GeneralWaterUseWeekdayFractions + hpxml_bldg.building_occupancy.general_water_use_weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:GeneralWaterUse].name]['GeneralWaterUseWeekdayScheduleFractions'] hpxml_bldg.building_occupancy.general_water_use_weekday_fractions_isdefaulted = true end if hpxml_bldg.building_occupancy.general_water_use_weekend_fractions.nil? && !schedules_file_includes_water - hpxml_bldg.building_occupancy.general_water_use_weekend_fractions = Schedule.GeneralWaterUseWeekendFractions + hpxml_bldg.building_occupancy.general_water_use_weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:GeneralWaterUse].name]['GeneralWaterUseWeekendScheduleFractions'] hpxml_bldg.building_occupancy.general_water_use_weekend_fractions_isdefaulted = true end if hpxml_bldg.building_occupancy.general_water_use_monthly_multipliers.nil? && !schedules_file_includes_water - hpxml_bldg.building_occupancy.general_water_use_monthly_multipliers = Schedule.GeneralWaterUseMonthlyMultipliers + hpxml_bldg.building_occupancy.general_water_use_monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:GeneralWaterUse].name]['GeneralWaterUseMonthlyScheduleMultipliers'] hpxml_bldg.building_occupancy.general_water_use_monthly_multipliers_isdefaulted = true end end @@ -3950,4 +3952,28 @@ def self.cleanup_zones_spaces(hpxml_bldg) auto_zone = hpxml_bldg.conditioned_zones.find { |zone| zone.id.start_with? Constants.AutomaticallyAdded } auto_zone.delete if not auto_zone.nil? end + + # Get the default weekday/weekend schedule fractions and monthly multipliers for each end use. + # + # @return [Hash] { schedule_name => { element => values, ... }, ... } + def self.get_default_schedules_csv_data() + default_schedules_csv = File.join(File.dirname(__FILE__), 'data', 'default_schedules.csv') + if not File.exist?(default_schedules_csv) + fail 'Could not find default_schedules.csv' + end + + require 'csv' + # default_schedules_csv_data = CSV.open(default_schedules_csv, headers: :first_row).map(&:to_h) + default_schedules_csv_data = {} + CSV.foreach(default_schedules_csv, headers: true) do |row| + schedule_name = row['Schedule Name'] + element = row['Element'] + values = row['Values'] + + default_schedules_csv_data[schedule_name] = {} if !default_schedules_csv_data.keys.include?(schedule_name) + default_schedules_csv_data[schedule_name][element] = values + end + + return default_schedules_csv_data + end end diff --git a/HPXMLtoOpenStudio/resources/schedules.rb b/HPXMLtoOpenStudio/resources/schedules.rb index 442deebd88..af1a3bbf59 100644 --- a/HPXMLtoOpenStudio/resources/schedules.rb +++ b/HPXMLtoOpenStudio/resources/schedules.rb @@ -956,27 +956,6 @@ def self.set_unavailable_period_values(out, day_schedule, begin_hour, end_hour, end end - # Default occupants weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.OccupantsWeekdayFractions - return '0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035' - end - - # Default occupants weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.OccupantsWeekendFractions - return '0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035' - end - - # Default occupants monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.OccupantsMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - # Default interior lighting weekday fractions. # # @return [String] 24 comma-separated weekday fractions @@ -1152,27 +1131,6 @@ def self.FixturesMonthlyMultipliers return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' end - # Default general water use weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.GeneralWaterUseWeekdayFractions - return '0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034' - end - - # Default general water use weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.GeneralWaterUseWeekendFractions - return '0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034' - end - - # Default general water use monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.GeneralWaterUseMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - # Default recirculation pump w/out control weekday fractions. # # @return [String] 24 comma-separated weekday fractions diff --git a/HPXMLtoOpenStudio/tests/test_defaults.rb b/HPXMLtoOpenStudio/tests/test_defaults.rb index bf8b2329ca..91d003346b 100644 --- a/HPXMLtoOpenStudio/tests/test_defaults.rb +++ b/HPXMLtoOpenStudio/tests/test_defaults.rb @@ -22,6 +22,8 @@ def setup @args_hash['hpxml_path'] = File.absolute_path(@tmp_hpxml_path) @args_hash['debug'] = true @args_hash['output_dir'] = File.absolute_path(@tmp_output_path) + + @default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() end def teardown @@ -442,8 +444,8 @@ def test_occupancy hpxml_bldg.building_occupancy.general_water_use_monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_occupancy_values(default_hpxml_bldg, Schedule.OccupantsWeekdayFractions, Schedule.OccupantsWeekendFractions, Schedule.OccupantsMonthlyMultipliers, - Schedule.GeneralWaterUseWeekdayFractions, Schedule.GeneralWaterUseWeekendFractions, Schedule.GeneralWaterUseMonthlyMultipliers, 1.0) + _test_default_occupancy_values(default_hpxml_bldg, @default_schedules_csv_data[Constants.ObjectNameOccupants]['WeekdayScheduleFractions'], @default_schedules_csv_data[Constants.ObjectNameOccupants]['WeekendScheduleFractions'], @default_schedules_csv_data[Constants.ObjectNameOccupants]['MonthlyScheduleMultipliers'], + @default_schedules_csv_data[SchedulesFile::Columns[:GeneralWaterUse].name]['GeneralWaterUseWeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:GeneralWaterUse].name]['GeneralWaterUseWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:GeneralWaterUse].name]['GeneralWaterUseMonthlyScheduleMultipliers'], 1.0) end def test_building_construction diff --git a/docs/source/data/create_default_schedules_csv_tables.rb b/docs/source/data/create_default_schedules_csv_tables.rb new file mode 100644 index 0000000000..29deec139d --- /dev/null +++ b/docs/source/data/create_default_schedules_csv_tables.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +require_relative '../../../HPXMLtoOpenStudio/resources/hpxml_defaults.rb' + +@default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() + +@default_schedules_csv_data.each do |schedule_name, elements_values| + CSV.open(File.join(File.dirname(__FILE__), "#{schedule_name}.csv"), 'w') do |csv| + csv << ['Schedule Name', 'Element', 'Values'] + elements_values.each do |element, values| + csv << [schedule_name, element, values] + end + end +end diff --git a/docs/source/data/general_water_use.csv b/docs/source/data/general_water_use.csv new file mode 100644 index 0000000000..7985ffa9a7 --- /dev/null +++ b/docs/source/data/general_water_use.csv @@ -0,0 +1,4 @@ +Schedule Name,Element,Values +general_water_use,GeneralWaterUseWeekdayScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034" +general_water_use,GeneralWaterUseWeekendScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034" +general_water_use,GeneralWaterUseMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/docs/source/data/occupants.csv b/docs/source/data/occupants.csv new file mode 100644 index 0000000000..4e35806fc0 --- /dev/null +++ b/docs/source/data/occupants.csv @@ -0,0 +1,4 @@ +Schedule Name,Element,Values +occupants,WeekdayScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035" +occupants,WeekendScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035" +occupants,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index d6608ce372..a92469d2ba 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -584,11 +584,19 @@ Building occupancy is entered in ``/HPXML/Building/BuildingDetails/BuildingSumma \- **single-family attached or apartment unit**: NumberofBedrooms = -0.68 + 1.09 * NumberofResidents - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035". - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used (see table below). + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used (see table below). .. [#] Sensible and latent internal gains from general water use (floor mopping, shower evaporation, water films on showers, tubs & sinks surfaces, plant watering, etc.), as defined by `ANSI/RESNET/ICC 301-2019 `_. - .. [#] If GeneralWaterUseWeekdayScheduleFractions or GeneralWaterUseWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034". - .. [#] If GeneralWaterUseMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". + .. [#] If GeneralWaterUseWeekdayScheduleFractions or GeneralWaterUseWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used (see table below). + .. [#] If GeneralWaterUseMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used (see table below). + +.. csv-table:: + :file: data/occupants.csv + :header-rows: 1 + +.. csv-table:: + :file: data/general_water_use.csv + :header-rows: 1 HPXML Building Construction *************************** From 3c53c7515caca2f1b57d8befc8dd49b5237b6a6c Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Tue, 30 Jul 2024 11:34:27 -0700 Subject: [PATCH 04/22] Update schedules test file. --- HPXMLtoOpenStudio/measure.xml | 18 +++++++++++++++--- HPXMLtoOpenStudio/tests/test_schedules.rb | 6 ++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index 4ab001e8b4..9a636dc0dc 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 2d707ee1-12cf-4e8a-8d3e-4b594d525f8e - 2024-07-30T17:27:36Z + fd1555c6-a27e-4c6f-a177-4ba902fe3438 + 2024-07-30T18:32:53Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -635,6 +635,18 @@ resource 93120E27 + + results_annual.csv + csv + test + 02140231 + + + results_design_load_details.csv + csv + test + CA94BE66 + test_airflow.rb rb @@ -711,7 +723,7 @@ test_schedules.rb rb test - C6CCF641 + C93B4E8D test_simcontrols.rb diff --git a/HPXMLtoOpenStudio/tests/test_schedules.rb b/HPXMLtoOpenStudio/tests/test_schedules.rb index 0182adca39..aef4a19c63 100644 --- a/HPXMLtoOpenStudio/tests/test_schedules.rb +++ b/HPXMLtoOpenStudio/tests/test_schedules.rb @@ -16,6 +16,8 @@ def setup @year = 2007 @tol = 0.005 + + @default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() end def teardown @@ -115,7 +117,7 @@ def test_simple_vacancy_schedules unavailable_month_hrs = { 0 => 31.0 * 24.0, 11 => 31.0 * 24.0 } - assert_in_epsilon(6020 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.OccupantsMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameOccupants + ' schedule'), @tol) + assert_in_epsilon(6020 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[Constants.ObjectNameOccupants]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameOccupants + ' schedule'), @tol) assert_in_epsilon(3049 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.LightingMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingInterior + ' schedule'), @tol) assert_in_epsilon(2895 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.LightingMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) assert_in_epsilon(6673, get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameRefrigerator + ' schedule'), @tol) @@ -127,7 +129,7 @@ def test_simple_vacancy_schedules assert_in_epsilon(3373 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.PlugLoadsTVMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameMiscTelevision + ' schedule'), @tol) assert_in_epsilon(4204 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.FixturesMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameFixtures + ' schedule'), @tol) assert_in_epsilon(4244 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.RecirculationPumpMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameHotWaterRecircPump + ' schedule'), @tol) - assert_in_epsilon(5000 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.GeneralWaterUseMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameGeneralWaterUse + ' schedule'), @tol) + assert_in_epsilon(5000 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:GeneralWaterUse].name]['GeneralWaterUseMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameGeneralWaterUse + ' schedule'), @tol) assert_in_epsilon(8760, get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameMechanicalVentilationHouseFan + ' schedule'), @tol) end From 2adc1e69cce25772a4ce7fe279dd5a48c9bfe5e8 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Wed, 31 Jul 2024 09:22:22 -0700 Subject: [PATCH 05/22] Remaining default schedule replacements. --- HPXMLtoOpenStudio/measure.xml | 22 +- .../resources/data/default_schedules.csv | 81 +++ HPXMLtoOpenStudio/resources/hpxml_defaults.rb | 164 +++-- HPXMLtoOpenStudio/resources/schedules.rb | 560 ------------------ ...l_water_use.csv => building_occupancy.csv} | 3 + docs/source/data/ceiling_fans.csv | 3 + docs/source/data/clothes_dryer.csv | 4 + docs/source/data/clothes_washer.csv | 4 + docs/source/data/cooking_range.csv | 4 + .../create_default_schedules_csv_tables.rb | 30 +- docs/source/data/dishwasher.csv | 4 + docs/source/data/freezers.csv | 4 + docs/source/data/fuel_loads.csv | 10 + docs/source/data/holiday_lighting.csv | 3 + docs/source/data/lighting.csv | 10 + docs/source/data/occupants.csv | 4 - docs/source/data/permanent_spa_heater.csv | 4 + docs/source/data/permanent_spa_pump.csv | 4 + docs/source/data/plug_loads.csv | 13 + docs/source/data/pool_heater.csv | 4 + docs/source/data/pool_pump.csv | 4 + docs/source/data/recirculation.csv | 8 + docs/source/data/refrigerators.csv | 6 + docs/source/data/water_fixtures.csv | 4 + docs/source/workflow_inputs.rst | 78 ++- 25 files changed, 362 insertions(+), 673 deletions(-) rename docs/source/data/{general_water_use.csv => building_occupancy.csv} (54%) create mode 100644 docs/source/data/ceiling_fans.csv create mode 100644 docs/source/data/clothes_dryer.csv create mode 100644 docs/source/data/clothes_washer.csv create mode 100644 docs/source/data/cooking_range.csv create mode 100644 docs/source/data/dishwasher.csv create mode 100644 docs/source/data/freezers.csv create mode 100644 docs/source/data/fuel_loads.csv create mode 100644 docs/source/data/holiday_lighting.csv create mode 100644 docs/source/data/lighting.csv delete mode 100644 docs/source/data/occupants.csv create mode 100644 docs/source/data/permanent_spa_heater.csv create mode 100644 docs/source/data/permanent_spa_pump.csv create mode 100644 docs/source/data/plug_loads.csv create mode 100644 docs/source/data/pool_heater.csv create mode 100644 docs/source/data/pool_pump.csv create mode 100644 docs/source/data/recirculation.csv create mode 100644 docs/source/data/refrigerators.csv create mode 100644 docs/source/data/water_fixtures.csv diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index 9a636dc0dc..3578e72e0f 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - fd1555c6-a27e-4c6f-a177-4ba902fe3438 - 2024-07-30T18:32:53Z + 0f6b8ac3-b313-4a5f-a498-8b0b718e409a + 2024-07-31T16:21:24Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -267,7 +267,7 @@ data/default_schedules.csv csv resource - B58100B7 + 4EA36A39 data/g_functions/C_configurations_5m_v1.0.json @@ -357,7 +357,7 @@ hpxml_defaults.rb rb resource - CC69C9FD + 0F91379A hpxml_schema/HPXML.xsd @@ -579,7 +579,7 @@ schedules.rb rb resource - 43A92C2F + 007595EE simcontrols.rb @@ -635,18 +635,6 @@ resource 93120E27 - - results_annual.csv - csv - test - 02140231 - - - results_design_load_details.csv - csv - test - CA94BE66 - test_airflow.rb rb diff --git a/HPXMLtoOpenStudio/resources/data/default_schedules.csv b/HPXMLtoOpenStudio/resources/data/default_schedules.csv index 899ab64a1b..e172be31d6 100644 --- a/HPXMLtoOpenStudio/resources/data/default_schedules.csv +++ b/HPXMLtoOpenStudio/resources/data/default_schedules.csv @@ -5,3 +5,84 @@ occupants,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1. general_water_use,GeneralWaterUseWeekdayScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034" general_water_use,GeneralWaterUseWeekendScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034" general_water_use,GeneralWaterUseMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +lighting_interior,InteriorWeekdayScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018" +lighting_interior,InteriorWeekendScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018" +lighting_interior,InteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20" +lighting_exterior,ExteriorWeekdayScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047" +lighting_exterior,ExteriorWeekendScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047" +lighting_exterior,ExteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20" +lighting_garage,GarageWeekdayScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039" +lighting_garage,GarageWeekendScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039" +lighting_garage,GarageMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20" +lighting_exterior_holiday,WeekdayScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019" +lighting_exterior_holiday,WeekendScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019" +cooking_range,WeekdayScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015" +cooking_range,WeekendScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015" +cooking_range,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +refrigerator,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" +refrigerator,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" +refrigerator,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" +refrigerator,ConstantScheduleCoefficients,"-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, 0.077, -0.118, -0.247, -0.445, -0.544" +refrigerator,TemperatureScheduleCoefficients,"0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020" +extra_refrigerator,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" +extra_refrigerator,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" +extra_refrigerator,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" +extra_refrigerator,ConstantScheduleCoefficients,"-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, -0.077, -0.118, -0.247, -0.445, -0.544" +extra_refrigerator,TemperatureScheduleCoefficients,"0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020" +freezer,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" +freezer,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" +freezer,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" +dishwasher,WeekdayScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031" +dishwasher,WeekendScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031" +dishwasher,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +clothes_washer,WeekdayScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017" +clothes_washer,WeekendScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017" +clothes_washer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +clothes_dryer,WeekdayScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024" +clothes_dryer,WeekendScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024" +clothes_dryer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +ceiling_fan,WeekdayScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057" +ceiling_fan,WeekendScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057" +plug_loads_other,WeekdayScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037" +plug_loads_other,WeekendScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037" +plug_loads_other,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +plug_loads_tv,WeekdayScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034" +plug_loads_tv,WeekendScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034" +plug_loads_tv,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +plug_loads_vehicle,WeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" +plug_loads_vehicle,WeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" +plug_loads_vehicle,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +plug_loads_well_pump,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" +plug_loads_well_pump,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" +plug_loads_well_pump,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +fuel_loads_grill,WeekdayScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007" +fuel_loads_grill,WeekendScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007" +fuel_loads_grill,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +fuel_loads_lighting,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" +fuel_loads_lighting,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" +fuel_loads_lighting,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +fuel_loads_fireplace,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" +fuel_loads_fireplace,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" +fuel_loads_fireplace,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +pool_pump,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" +pool_pump,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" +pool_pump,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154" +pool_heater,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" +pool_heater,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" +pool_heater,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154" +permanent_spa_pump,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" +permanent_spa_pump,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" +permanent_spa_pump,MonthlyScheduleMultipliers,"0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921" +permanent_spa_heater,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" +permanent_spa_heater,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" +permanent_spa_heater,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" +hot_water_fixtures,WaterFixturesWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" +hot_water_fixtures,WaterFixturesWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" +hot_water_fixtures,WaterFixturesMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +hot_water_recirculation_pump_without_control,RecirculationPumpWeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" +hot_water_recirculation_pump_without_control,RecirculationPumpWeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" +hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" +hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" +hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekdayScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055" +hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekendScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055" +hot_water_recirculation_pump,RecirculationPumpMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb index 608ffc4a4a..2f3767c7e2 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +++ b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb @@ -2773,34 +2773,34 @@ def self.apply_hot_water_distribution(hpxml_bldg, cfa, ncfl, schedules_file) recirc_control_type = hot_water_distribution.has_shared_recirculation ? hot_water_distribution.shared_recirculation_control_type : hot_water_distribution.recirculation_control_type if [HPXML::DHWRecircControlTypeNone, HPXML::DHWRecircControlTypeTimer].include?(recirc_control_type) if hot_water_distribution.recirculation_pump_weekday_fractions.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_weekday_fractions = Schedule.RecirculationPumpWithoutControlWeekdayFractions + hot_water_distribution.recirculation_pump_weekday_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekdayScheduleFractions'] hot_water_distribution.recirculation_pump_weekday_fractions_isdefaulted = true end if hot_water_distribution.recirculation_pump_weekend_fractions.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_weekend_fractions = Schedule.RecirculationPumpWithoutControlWeekendFractions + hot_water_distribution.recirculation_pump_weekend_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekendScheduleFractions'] hot_water_distribution.recirculation_pump_weekend_fractions_isdefaulted = true end elsif [HPXML::DHWRecircControlTypeSensor, HPXML::DHWRecircControlTypeManual].include?(recirc_control_type) if hot_water_distribution.recirculation_pump_weekday_fractions.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_weekday_fractions = Schedule.RecirculationPumpDemandControlledWeekdayFractions + hot_water_distribution.recirculation_pump_weekday_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekdayScheduleFractions'] hot_water_distribution.recirculation_pump_weekday_fractions_isdefaulted = true end if hot_water_distribution.recirculation_pump_weekend_fractions.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_weekend_fractions = Schedule.RecirculationPumpDemandControlledWeekendFractions + hot_water_distribution.recirculation_pump_weekend_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekendScheduleFractions'] hot_water_distribution.recirculation_pump_weekend_fractions_isdefaulted = true end elsif [HPXML::DHWRecircControlTypeTemperature].include?(recirc_control_type) if hot_water_distribution.recirculation_pump_weekday_fractions.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_weekday_fractions = Schedule.RecirculationPumpTemperatureControlledWeekdayFractions + hot_water_distribution.recirculation_pump_weekday_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_temperature_controlled"]['RecirculationPumpWeekdayScheduleFractions'] hot_water_distribution.recirculation_pump_weekday_fractions_isdefaulted = true end if hot_water_distribution.recirculation_pump_weekend_fractions.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_weekend_fractions = Schedule.RecirculationPumpTemperatureControlledWeekendFractions + hot_water_distribution.recirculation_pump_weekend_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_temperature_controlled"]['RecirculationPumpWeekendScheduleFractions'] hot_water_distribution.recirculation_pump_weekend_fractions_isdefaulted = true end end if hot_water_distribution.recirculation_pump_monthly_multipliers.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_monthly_multipliers = Schedule.RecirculationPumpMonthlyMultipliers + hot_water_distribution.recirculation_pump_monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers'] hot_water_distribution.recirculation_pump_monthly_multipliers_isdefaulted = true end end @@ -2829,15 +2829,15 @@ def self.apply_water_fixtures(hpxml_bldg, schedules_file) end schedules_file_includes_fixtures = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:HotWaterFixtures].name)) if hpxml_bldg.water_heating.water_fixtures_weekday_fractions.nil? && !schedules_file_includes_fixtures - hpxml_bldg.water_heating.water_fixtures_weekday_fractions = Schedule.FixturesWeekdayFractions + hpxml_bldg.water_heating.water_fixtures_weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterFixtures].name]['WaterFixturesWeekdayScheduleFractions'] hpxml_bldg.water_heating.water_fixtures_weekday_fractions_isdefaulted = true end if hpxml_bldg.water_heating.water_fixtures_weekend_fractions.nil? && !schedules_file_includes_fixtures - hpxml_bldg.water_heating.water_fixtures_weekend_fractions = Schedule.FixturesWeekendFractions + hpxml_bldg.water_heating.water_fixtures_weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterFixtures].name]['WaterFixturesWeekendScheduleFractions'] hpxml_bldg.water_heating.water_fixtures_weekend_fractions_isdefaulted = true end if hpxml_bldg.water_heating.water_fixtures_monthly_multipliers.nil? && !schedules_file_includes_fixtures - hpxml_bldg.water_heating.water_fixtures_monthly_multipliers = Schedule.FixturesMonthlyMultipliers + hpxml_bldg.water_heating.water_fixtures_monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterFixtures].name]['WaterFixturesMonthlyScheduleMultipliers'] hpxml_bldg.water_heating.water_fixtures_monthly_multipliers_isdefaulted = true end end @@ -3027,15 +3027,15 @@ def self.apply_appliances(hpxml_bldg, nbeds, eri_version, schedules_file) end schedules_file_includes_cw = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:ClothesWasher].name)) if clothes_washer.weekday_fractions.nil? && !schedules_file_includes_cw - clothes_washer.weekday_fractions = Schedule.ClothesWasherWeekdayFractions + clothes_washer.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['WeekdayScheduleFractions'] clothes_washer.weekday_fractions_isdefaulted = true end if clothes_washer.weekend_fractions.nil? && !schedules_file_includes_cw - clothes_washer.weekend_fractions = Schedule.ClothesWasherWeekendFractions + clothes_washer.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['WeekendScheduleFractions'] clothes_washer.weekend_fractions_isdefaulted = true end if clothes_washer.monthly_multipliers.nil? && !schedules_file_includes_cw - clothes_washer.monthly_multipliers = Schedule.ClothesWasherMonthlyMultipliers + clothes_washer.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['MonthlyScheduleMultipliers'] clothes_washer.monthly_multipliers_isdefaulted = true end end @@ -3075,15 +3075,15 @@ def self.apply_appliances(hpxml_bldg, nbeds, eri_version, schedules_file) end schedules_file_includes_cd = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:ClothesDryer].name)) if clothes_dryer.weekday_fractions.nil? && !schedules_file_includes_cd - clothes_dryer.weekday_fractions = Schedule.ClothesDryerWeekdayFractions + clothes_dryer.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['WeekdayScheduleFractions'] clothes_dryer.weekday_fractions_isdefaulted = true end if clothes_dryer.weekend_fractions.nil? && !schedules_file_includes_cd - clothes_dryer.weekend_fractions = Schedule.ClothesDryerWeekendFractions + clothes_dryer.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['WeekendScheduleFractions'] clothes_dryer.weekend_fractions_isdefaulted = true end if clothes_dryer.monthly_multipliers.nil? && !schedules_file_includes_cd - clothes_dryer.monthly_multipliers = Schedule.ClothesDryerMonthlyMultipliers + clothes_dryer.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['MonthlyScheduleMultipliers'] clothes_dryer.monthly_multipliers_isdefaulted = true end end @@ -3120,15 +3120,15 @@ def self.apply_appliances(hpxml_bldg, nbeds, eri_version, schedules_file) end schedules_file_includes_dw = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:Dishwasher].name)) if dishwasher.weekday_fractions.nil? && !schedules_file_includes_dw - dishwasher.weekday_fractions = Schedule.DishwasherWeekdayFractions + dishwasher.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:Dishwasher].name]['WeekdayScheduleFractions'] dishwasher.weekday_fractions_isdefaulted = true end if dishwasher.weekend_fractions.nil? && !schedules_file_includes_dw - dishwasher.weekend_fractions = Schedule.DishwasherWeekendFractions + dishwasher.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:Dishwasher].name]['WeekendScheduleFractions'] dishwasher.weekend_fractions_isdefaulted = true end if dishwasher.monthly_multipliers.nil? && !schedules_file_includes_dw - dishwasher.monthly_multipliers = Schedule.DishwasherMonthlyMultipliers + dishwasher.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:Dishwasher].name]['MonthlyScheduleMultipliers'] dishwasher.monthly_multipliers_isdefaulted = true end end @@ -3154,24 +3154,24 @@ def self.apply_appliances(hpxml_bldg, nbeds, eri_version, schedules_file) if !schedules_file_includes_extrafridge if schedules_includes_fractions_multipliers if refrigerator.weekday_fractions.nil? - refrigerator.weekday_fractions = Schedule.ExtraRefrigeratorWeekdayFractions + refrigerator.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:ExtraRefrigerator].name]['WeekdayScheduleFractions'] refrigerator.weekday_fractions_isdefaulted = true end if refrigerator.weekend_fractions.nil? - refrigerator.weekend_fractions = Schedule.ExtraRefrigeratorWeekendFractions + refrigerator.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:ExtraRefrigerator].name]['WeekendScheduleFractions'] refrigerator.weekend_fractions_isdefaulted = true end if refrigerator.monthly_multipliers.nil? - refrigerator.monthly_multipliers = Schedule.ExtraRefrigeratorMonthlyMultipliers + refrigerator.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:ExtraRefrigerator].name]['MonthlyScheduleMultipliers'] refrigerator.monthly_multipliers_isdefaulted = true end else if refrigerator.constant_coefficients.nil? - refrigerator.constant_coefficients = Schedule.ExtraRefrigeratorConstantCoefficients + refrigerator.constant_coefficients = @default_schedules_csv_data[SchedulesFile::Columns[:ExtraRefrigerator].name]['ConstantScheduleCoefficients'] refrigerator.constant_coefficients_isdefaulted = true end if refrigerator.temperature_coefficients.nil? - refrigerator.temperature_coefficients = Schedule.ExtraRefrigeratorTemperatureCoefficients + refrigerator.temperature_coefficients = @default_schedules_csv_data[SchedulesFile::Columns[:ExtraRefrigerator].name]['TemperatureScheduleCoefficients'] refrigerator.temperature_coefficients_isdefaulted = true end end @@ -3190,24 +3190,24 @@ def self.apply_appliances(hpxml_bldg, nbeds, eri_version, schedules_file) if !schedules_file_includes_fridge if schedules_includes_fractions_multipliers if refrigerator.weekday_fractions.nil? - refrigerator.weekday_fractions = Schedule.RefrigeratorWeekdayFractions + refrigerator.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['WeekdayScheduleFractions'] refrigerator.weekday_fractions_isdefaulted = true end if refrigerator.weekend_fractions.nil? - refrigerator.weekend_fractions = Schedule.RefrigeratorWeekendFractions + refrigerator.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['WeekendScheduleFractions'] refrigerator.weekend_fractions_isdefaulted = true end if refrigerator.monthly_multipliers.nil? - refrigerator.monthly_multipliers = Schedule.RefrigeratorMonthlyMultipliers + refrigerator.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['MonthlyScheduleMultipliers'] refrigerator.monthly_multipliers_isdefaulted = true end else if refrigerator.constant_coefficients.nil? - refrigerator.constant_coefficients = Schedule.RefrigeratorConstantCoefficients + refrigerator.constant_coefficients = @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['ConstantScheduleCoefficients'] refrigerator.constant_coefficients_isdefaulted = true end if refrigerator.temperature_coefficients.nil? - refrigerator.temperature_coefficients = Schedule.RefrigeratorTemperatureCoefficients + refrigerator.temperature_coefficients = @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['TemperatureScheduleCoefficients'] refrigerator.temperature_coefficients_isdefaulted = true end end @@ -3239,15 +3239,15 @@ def self.apply_appliances(hpxml_bldg, nbeds, eri_version, schedules_file) next unless !schedules_includes_schedule_coefficients if freezer.weekday_fractions.nil? && !schedules_file_includes_freezer - freezer.weekday_fractions = Schedule.FreezerWeekdayFractions + freezer.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:Freezer].name]['WeekdayScheduleFractions'] freezer.weekday_fractions_isdefaulted = true end if freezer.weekend_fractions.nil? && !schedules_file_includes_freezer - freezer.weekend_fractions = Schedule.FreezerWeekendFractions + freezer.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:Freezer].name]['WeekendScheduleFractions'] freezer.weekend_fractions_isdefaulted = true end if freezer.monthly_multipliers.nil? && !schedules_file_includes_freezer - freezer.monthly_multipliers = Schedule.FreezerMonthlyMultipliers + freezer.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:Freezer].name]['MonthlyScheduleMultipliers'] freezer.monthly_multipliers_isdefaulted = true end end @@ -3270,15 +3270,15 @@ def self.apply_appliances(hpxml_bldg, nbeds, eri_version, schedules_file) end schedules_file_includes_range = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:CookingRange].name)) if cooking_range.weekday_fractions.nil? && !schedules_file_includes_range - cooking_range.weekday_fractions = Schedule.CookingRangeWeekdayFractions + cooking_range.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:CookingRange].name]['WeekdayScheduleFractions'] cooking_range.weekday_fractions_isdefaulted = true end if cooking_range.weekend_fractions.nil? && !schedules_file_includes_range - cooking_range.weekend_fractions = Schedule.CookingRangeWeekendFractions + cooking_range.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:CookingRange].name]['WeekendScheduleFractions'] cooking_range.weekend_fractions_isdefaulted = true end if cooking_range.monthly_multipliers.nil? && !schedules_file_includes_range - cooking_range.monthly_multipliers = Schedule.CookingRangeMonthlyMultipliers + cooking_range.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:CookingRange].name]['MonthlyScheduleMultipliers'] cooking_range.monthly_multipliers_isdefaulted = true end end @@ -3314,46 +3314,45 @@ def self.apply_lighting(hpxml_bldg, schedules_file) hpxml_bldg.lighting.exterior_usage_multiplier = 1.0 hpxml_bldg.lighting.exterior_usage_multiplier_isdefaulted = true end - default_lighting_monthly_multipliers = Schedule.LightingMonthlyMultipliers schedules_file_includes_lighting_interior = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:LightingInterior].name)) if hpxml_bldg.lighting.interior_weekday_fractions.nil? && !schedules_file_includes_lighting_interior - hpxml_bldg.lighting.interior_weekday_fractions = Schedule.LightingInteriorWeekdayFractions + hpxml_bldg.lighting.interior_weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorWeekdayScheduleFractions'] hpxml_bldg.lighting.interior_weekday_fractions_isdefaulted = true end if hpxml_bldg.lighting.interior_weekend_fractions.nil? && !schedules_file_includes_lighting_interior - hpxml_bldg.lighting.interior_weekend_fractions = Schedule.LightingInteriorWeekendFractions + hpxml_bldg.lighting.interior_weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorWeekendScheduleFractions'] hpxml_bldg.lighting.interior_weekend_fractions_isdefaulted = true end if hpxml_bldg.lighting.interior_monthly_multipliers.nil? && !schedules_file_includes_lighting_interior - hpxml_bldg.lighting.interior_monthly_multipliers = default_lighting_monthly_multipliers + hpxml_bldg.lighting.interior_monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorMonthlyScheduleMultipliers'] hpxml_bldg.lighting.interior_monthly_multipliers_isdefaulted = true end if hpxml_bldg.has_location(HPXML::LocationGarage) schedules_file_includes_lighting_garage = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:LightingGarage].name)) if hpxml_bldg.lighting.garage_weekday_fractions.nil? && !schedules_file_includes_lighting_garage - hpxml_bldg.lighting.garage_weekday_fractions = Schedule.LightingGarageWeekdayFractions + hpxml_bldg.lighting.garage_weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:LightingGarage].name]['GarageWeekdayScheduleFractions'] hpxml_bldg.lighting.garage_weekday_fractions_isdefaulted = true end if hpxml_bldg.lighting.garage_weekend_fractions.nil? && !schedules_file_includes_lighting_garage - hpxml_bldg.lighting.garage_weekend_fractions = Schedule.LightingGarageWeekendFractions + hpxml_bldg.lighting.garage_weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:LightingGarage].name]['GarageWeekendScheduleFractions'] hpxml_bldg.lighting.garage_weekend_fractions_isdefaulted = true end if hpxml_bldg.lighting.garage_monthly_multipliers.nil? && !schedules_file_includes_lighting_garage - hpxml_bldg.lighting.garage_monthly_multipliers = default_lighting_monthly_multipliers + hpxml_bldg.lighting.garage_monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:LightingGarage].name]['GarageMonthlyScheduleMultipliers'] hpxml_bldg.lighting.garage_monthly_multipliers_isdefaulted = true end end schedules_file_includes_lighting_exterior = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:LightingExterior].name)) if hpxml_bldg.lighting.exterior_weekday_fractions.nil? && !schedules_file_includes_lighting_exterior - hpxml_bldg.lighting.exterior_weekday_fractions = Schedule.LightingExteriorWeekdayFractions + hpxml_bldg.lighting.exterior_weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorWeekdayScheduleFractions'] hpxml_bldg.lighting.exterior_weekday_fractions_isdefaulted = true end if hpxml_bldg.lighting.exterior_weekend_fractions.nil? && !schedules_file_includes_lighting_exterior - hpxml_bldg.lighting.exterior_weekend_fractions = Schedule.LightingExteriorWeekendFractions + hpxml_bldg.lighting.exterior_weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorWeekdayScheduleFractions'] hpxml_bldg.lighting.exterior_weekend_fractions_isdefaulted = true end if hpxml_bldg.lighting.exterior_monthly_multipliers.nil? && !schedules_file_includes_lighting_exterior - hpxml_bldg.lighting.exterior_monthly_multipliers = default_lighting_monthly_multipliers + hpxml_bldg.lighting.exterior_monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorMonthlyScheduleMultipliers'] hpxml_bldg.lighting.exterior_monthly_multipliers_isdefaulted = true end if hpxml_bldg.lighting.holiday_exists @@ -3380,11 +3379,11 @@ def self.apply_lighting(hpxml_bldg, schedules_file) end schedules_file_includes_lighting_holiday_exterior = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:LightingExteriorHoliday].name)) if hpxml_bldg.lighting.holiday_weekday_fractions.nil? && !schedules_file_includes_lighting_holiday_exterior - hpxml_bldg.lighting.holiday_weekday_fractions = Schedule.LightingExteriorHolidayWeekdayFractions + hpxml_bldg.lighting.holiday_weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:LightingExteriorHoliday].name]['WeekdayScheduleFractions'] hpxml_bldg.lighting.holiday_weekday_fractions_isdefaulted = true end if hpxml_bldg.lighting.holiday_weekend_fractions.nil? && !schedules_file_includes_lighting_holiday_exterior - hpxml_bldg.lighting.holiday_weekend_fractions = Schedule.LightingExteriorHolidayWeekendFractions + hpxml_bldg.lighting.holiday_weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:LightingExteriorHoliday].name]['WeekendScheduleFractions'] hpxml_bldg.lighting.holiday_weekend_fractions_isdefaulted = true end end @@ -3411,11 +3410,11 @@ def self.apply_ceiling_fans(hpxml_bldg, nbeds, weather, schedules_file) end schedules_file_includes_ceiling_fan = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:CeilingFan].name)) if ceiling_fan.weekday_fractions.nil? && !schedules_file_includes_ceiling_fan - ceiling_fan.weekday_fractions = Schedule.CeilingFanWeekdayFractions + ceiling_fan.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:CeilingFan].name]['WeekdayScheduleFractions'] ceiling_fan.weekday_fractions_isdefaulted = true end if ceiling_fan.weekend_fractions.nil? && !schedules_file_includes_ceiling_fan - ceiling_fan.weekend_fractions = Schedule.CeilingFanWeekendFractions + ceiling_fan.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:CeilingFan].name]['WeekendScheduleFractions'] ceiling_fan.weekend_fractions_isdefaulted = true end if ceiling_fan.monthly_multipliers.nil? && !schedules_file_includes_ceiling_fan @@ -3447,15 +3446,15 @@ def self.apply_pools_and_permanent_spas(hpxml_bldg, cfa, schedules_file) end schedules_file_includes_pool_pump = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:PoolPump].name)) if pool.pump_weekday_fractions.nil? && !schedules_file_includes_pool_pump - pool.pump_weekday_fractions = Schedule.PoolPumpWeekdayFractions + pool.pump_weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PoolPump].name]['WeekdayScheduleFractions'] pool.pump_weekday_fractions_isdefaulted = true end if pool.pump_weekend_fractions.nil? && !schedules_file_includes_pool_pump - pool.pump_weekend_fractions = Schedule.PoolPumpWeekendFractions + pool.pump_weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PoolPump].name]['WeekendScheduleFractions'] pool.pump_weekend_fractions_isdefaulted = true end if pool.pump_monthly_multipliers.nil? && !schedules_file_includes_pool_pump - pool.pump_monthly_multipliers = Schedule.PoolPumpMonthlyMultipliers + pool.pump_monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:PoolPump].name]['MonthlyScheduleMultipliers'] pool.pump_monthly_multipliers_isdefaulted = true end end @@ -3475,15 +3474,15 @@ def self.apply_pools_and_permanent_spas(hpxml_bldg, cfa, schedules_file) end schedules_file_includes_pool_heater = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:PoolHeater].name)) if pool.heater_weekday_fractions.nil? && !schedules_file_includes_pool_heater - pool.heater_weekday_fractions = Schedule.PoolHeaterWeekdayFractions + pool.heater_weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PoolHeater].name]['WeekdayScheduleFractions'] pool.heater_weekday_fractions_isdefaulted = true end if pool.heater_weekend_fractions.nil? && !schedules_file_includes_pool_heater - pool.heater_weekend_fractions = Schedule.PoolHeaterWeekendFractions + pool.heater_weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PoolHeater].name]['WeekendScheduleFractions'] pool.heater_weekend_fractions_isdefaulted = true end if pool.heater_monthly_multipliers.nil? && !schedules_file_includes_pool_heater - pool.heater_monthly_multipliers = Schedule.PoolHeaterMonthlyMultipliers + pool.heater_monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:PoolHeater].name]['MonthlyScheduleMultipliers'] pool.heater_monthly_multipliers_isdefaulted = true end end @@ -3503,15 +3502,15 @@ def self.apply_pools_and_permanent_spas(hpxml_bldg, cfa, schedules_file) end schedules_file_includes_permanent_spa_pump = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:PermanentSpaPump].name)) if spa.pump_weekday_fractions.nil? && !schedules_file_includes_permanent_spa_pump - spa.pump_weekday_fractions = Schedule.PermanentSpaPumpWeekdayFractions + spa.pump_weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaPump].name]['WeekdayScheduleFractions'] spa.pump_weekday_fractions_isdefaulted = true end if spa.pump_weekend_fractions.nil? && !schedules_file_includes_permanent_spa_pump - spa.pump_weekend_fractions = Schedule.PermanentSpaPumpWeekendFractions + spa.pump_weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaPump].name]['WeekendScheduleFractions'] spa.pump_weekend_fractions_isdefaulted = true end if spa.pump_monthly_multipliers.nil? && !schedules_file_includes_permanent_spa_pump - spa.pump_monthly_multipliers = Schedule.PermanentSpaPumpMonthlyMultipliers + spa.pump_monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaPump].name]['MonthlyScheduleMultipliers'] spa.pump_monthly_multipliers_isdefaulted = true end end @@ -3531,15 +3530,15 @@ def self.apply_pools_and_permanent_spas(hpxml_bldg, cfa, schedules_file) end schedules_file_includes_permanent_spa_heater = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:PermanentSpaHeater].name)) if spa.heater_weekday_fractions.nil? && !schedules_file_includes_permanent_spa_heater - spa.heater_weekday_fractions = Schedule.PermanentSpaHeaterWeekdayFractions + spa.heater_weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaHeater].name]['WeekdayScheduleFractions'] spa.heater_weekday_fractions_isdefaulted = true end if spa.heater_weekend_fractions.nil? && !schedules_file_includes_permanent_spa_heater - spa.heater_weekend_fractions = Schedule.PermanentSpaHeaterWeekendFractions + spa.heater_weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaHeater].name]['WeekendScheduleFractions'] spa.heater_weekend_fractions_isdefaulted = true end if spa.heater_monthly_multipliers.nil? && !schedules_file_includes_permanent_spa_heater - spa.heater_monthly_multipliers = Schedule.PermanentSpaHeaterMonthlyMultipliers + spa.heater_monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaHeater].name]['MonthlyScheduleMultipliers'] spa.heater_monthly_multipliers_isdefaulted = true end end @@ -3570,15 +3569,15 @@ def self.apply_plug_loads(hpxml_bldg, cfa, schedules_file) end schedules_file_includes_plug_loads_other = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:PlugLoadsOther].name)) if plug_load.weekday_fractions.nil? && !schedules_file_includes_plug_loads_other - plug_load.weekday_fractions = Schedule.PlugLoadsOtherWeekdayFractions + plug_load.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['WeekdayScheduleFractions'] plug_load.weekday_fractions_isdefaulted = true end if plug_load.weekend_fractions.nil? && !schedules_file_includes_plug_loads_other - plug_load.weekend_fractions = Schedule.PlugLoadsOtherWeekendFractions + plug_load.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['WeekendScheduleFractions'] plug_load.weekend_fractions_isdefaulted = true end if plug_load.monthly_multipliers.nil? && !schedules_file_includes_plug_loads_other - plug_load.monthly_multipliers = Schedule.PlugLoadsOtherMonthlyMultipliers + plug_load.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['MonthlyScheduleMultipliers'] plug_load.monthly_multipliers_isdefaulted = true end elsif plug_load.plug_load_type == HPXML::PlugLoadTypeTelevision @@ -3597,15 +3596,15 @@ def self.apply_plug_loads(hpxml_bldg, cfa, schedules_file) end schedules_file_includes_plug_loads_tv = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:PlugLoadsTV].name)) if plug_load.weekday_fractions.nil? && !schedules_file_includes_plug_loads_tv - plug_load.weekday_fractions = Schedule.PlugLoadsTVWeekdayFractions + plug_load.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['WeekdayScheduleFractions'] plug_load.weekday_fractions_isdefaulted = true end if plug_load.weekend_fractions.nil? && !schedules_file_includes_plug_loads_tv - plug_load.weekend_fractions = Schedule.PlugLoadsTVWeekendFractions + plug_load.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['WeekendScheduleFractions'] plug_load.weekend_fractions_isdefaulted = true end if plug_load.monthly_multipliers.nil? && !schedules_file_includes_plug_loads_tv - plug_load.monthly_multipliers = Schedule.PlugLoadsTVMonthlyMultipliers + plug_load.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['MonthlyScheduleMultipliers'] plug_load.monthly_multipliers_isdefaulted = true end elsif plug_load.plug_load_type == HPXML::PlugLoadTypeElectricVehicleCharging @@ -3624,15 +3623,15 @@ def self.apply_plug_loads(hpxml_bldg, cfa, schedules_file) end schedules_file_includes_plug_loads_vehicle = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:PlugLoadsVehicle].name)) if plug_load.weekday_fractions.nil? && !schedules_file_includes_plug_loads_vehicle - plug_load.weekday_fractions = Schedule.PlugLoadsVehicleWeekdayFractions + plug_load.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsVehicle].name]['WeekdayScheduleFractions'] plug_load.weekday_fractions_isdefaulted = true end if plug_load.weekend_fractions.nil? && !schedules_file_includes_plug_loads_vehicle - plug_load.weekend_fractions = Schedule.PlugLoadsVehicleWeekendFractions + plug_load.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsVehicle].name]['WeekdayScheduleFractions'] plug_load.weekend_fractions_isdefaulted = true end if plug_load.monthly_multipliers.nil? && !schedules_file_includes_plug_loads_vehicle - plug_load.monthly_multipliers = Schedule.PlugLoadsVehicleMonthlyMultipliers + plug_load.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsVehicle].name]['MonthlyScheduleMultipliers'] plug_load.monthly_multipliers_isdefaulted = true end elsif plug_load.plug_load_type == HPXML::PlugLoadTypeWellPump @@ -3651,15 +3650,15 @@ def self.apply_plug_loads(hpxml_bldg, cfa, schedules_file) end schedules_file_includes_plug_loads_well_pump = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:PlugLoadsWellPump].name)) if plug_load.weekday_fractions.nil? && !schedules_file_includes_plug_loads_well_pump - plug_load.weekday_fractions = Schedule.PlugLoadsWellPumpWeekdayFractions + plug_load.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsWellPump].name]['WeekdayScheduleFractions'] plug_load.weekday_fractions_isdefaulted = true end if plug_load.weekend_fractions.nil? && !schedules_file_includes_plug_loads_well_pump - plug_load.weekend_fractions = Schedule.PlugLoadsWellPumpWeekendFractions + plug_load.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsWellPump].name]['WeekdayScheduleFractions'] plug_load.weekend_fractions_isdefaulted = true end if plug_load.monthly_multipliers.nil? && !schedules_file_includes_plug_loads_well_pump - plug_load.monthly_multipliers = Schedule.PlugLoadsWellPumpMonthlyMultipliers + plug_load.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsWellPump].name]['MonthlyScheduleMultipliers'] plug_load.monthly_multipliers_isdefaulted = true end end @@ -3694,15 +3693,15 @@ def self.apply_fuel_loads(hpxml_bldg, cfa, schedules_file) end schedules_file_includes_fuel_loads_grill = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:FuelLoadsGrill].name)) if fuel_load.weekday_fractions.nil? && !schedules_file_includes_fuel_loads_grill - fuel_load.weekday_fractions = Schedule.FuelLoadsGrillWeekdayFractions + fuel_load.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsGrill].name]['WeekdayScheduleFractions'] fuel_load.weekday_fractions_isdefaulted = true end if fuel_load.weekend_fractions.nil? && !schedules_file_includes_fuel_loads_grill - fuel_load.weekend_fractions = Schedule.FuelLoadsGrillWeekendFractions + fuel_load.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsGrill].name]['WeekendScheduleFractions'] fuel_load.weekend_fractions_isdefaulted = true end if fuel_load.monthly_multipliers.nil? && !schedules_file_includes_fuel_loads_grill - fuel_load.monthly_multipliers = Schedule.FuelLoadsGrillMonthlyMultipliers + fuel_load.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsGrill].name]['MonthlyScheduleMultipliers'] fuel_load.monthly_multipliers_isdefaulted = true end elsif fuel_load.fuel_load_type == HPXML::FuelLoadTypeLighting @@ -3720,15 +3719,15 @@ def self.apply_fuel_loads(hpxml_bldg, cfa, schedules_file) end schedules_file_includes_fuel_loads_lighting = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:FuelLoadsLighting].name)) if fuel_load.weekday_fractions.nil? && !schedules_file_includes_fuel_loads_lighting - fuel_load.weekday_fractions = Schedule.FuelLoadsLightingWeekdayFractions + fuel_load.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsLighting].name]['WeekdayScheduleFractions'] fuel_load.weekday_fractions_isdefaulted = true end if fuel_load.weekend_fractions.nil? && !schedules_file_includes_fuel_loads_lighting - fuel_load.weekend_fractions = Schedule.FuelLoadsLightingWeekendFractions + fuel_load.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsLighting].name]['WeekendScheduleFractions'] fuel_load.weekend_fractions_isdefaulted = true end if fuel_load.monthly_multipliers.nil? && !schedules_file_includes_fuel_loads_lighting - fuel_load.monthly_multipliers = Schedule.FuelLoadsLightingMonthlyMultipliers + fuel_load.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsLighting].name]['MonthlyScheduleMultipliers'] fuel_load.monthly_multipliers_isdefaulted = true end elsif fuel_load.fuel_load_type == HPXML::FuelLoadTypeFireplace @@ -3746,15 +3745,15 @@ def self.apply_fuel_loads(hpxml_bldg, cfa, schedules_file) end schedules_file_includes_fuel_loads_fireplace = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:FuelLoadsFireplace].name)) if fuel_load.weekday_fractions.nil? && !schedules_file_includes_fuel_loads_fireplace - fuel_load.weekday_fractions = Schedule.FuelLoadsFireplaceWeekdayFractions + fuel_load.weekday_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsFireplace].name]['WeekdayScheduleFractions'] fuel_load.weekday_fractions_isdefaulted = true end if fuel_load.weekend_fractions.nil? && !schedules_file_includes_fuel_loads_fireplace - fuel_load.weekend_fractions = Schedule.FuelLoadsFireplaceWeekendFractions + fuel_load.weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsFireplace].name]['WeekendScheduleFractions'] fuel_load.weekend_fractions_isdefaulted = true end if fuel_load.monthly_multipliers.nil? && !schedules_file_includes_fuel_loads_fireplace - fuel_load.monthly_multipliers = Schedule.FuelLoadsFireplaceMonthlyMultipliers + fuel_load.monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsFireplace].name]['MonthlyScheduleMultipliers'] fuel_load.monthly_multipliers_isdefaulted = true end end @@ -3963,7 +3962,6 @@ def self.get_default_schedules_csv_data() end require 'csv' - # default_schedules_csv_data = CSV.open(default_schedules_csv, headers: :first_row).map(&:to_h) default_schedules_csv_data = {} CSV.foreach(default_schedules_csv, headers: true) do |row| schedule_name = row['Schedule Name'] diff --git a/HPXMLtoOpenStudio/resources/schedules.rb b/HPXMLtoOpenStudio/resources/schedules.rb index af1a3bbf59..f58b570a1b 100644 --- a/HPXMLtoOpenStudio/resources/schedules.rb +++ b/HPXMLtoOpenStudio/resources/schedules.rb @@ -956,335 +956,6 @@ def self.set_unavailable_period_values(out, day_schedule, begin_hour, end_hour, end end - # Default interior lighting weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.LightingInteriorWeekdayFractions - return '0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018' - end - - # Default interior lighting weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.LightingInteriorWeekendFractions - return '0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018' - end - - # Default exterior lighting weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.LightingExteriorWeekdayFractions - return '0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047' - end - - # Default exterior lighting weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.LightingExteriorWeekendFractions - return '0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047' - end - - # Default garage lighting weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.LightingGarageWeekdayFractions - return '0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039' - end - - # Default garage lighting weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.LightingGarageWeekendFractions - return '0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039' - end - - # Default interior/exterior/garage lighting weekday fractions. - # - # @return [String] 12 comma-separated monthly multipliers - def self.LightingMonthlyMultipliers - return '1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20' - end - - # Default exterior holiday lighting weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.LightingExteriorHolidayWeekdayFractions - return '0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019' - end - - # Default exterior holiday lighting weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.LightingExteriorHolidayWeekendFractions - return '0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019' - end - - # Default exterior holiday lighting monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.LightingExteriorHolidayMonthlyMultipliers - return '1.248, 1.257, 0.993, 0.989, 0.993, 0.827, 0.821, 0.821, 0.827, 0.99, 0.987, 1.248' - end - - # Default cooking range weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.CookingRangeWeekdayFractions - return '0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015' - end - - # Default cooking range weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.CookingRangeWeekendFractions - return '0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015' - end - - # Default cooking range monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.CookingRangeMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default dishwasher weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.DishwasherWeekdayFractions - return '0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031' - end - - # Default dishwasher weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.DishwasherWeekendFractions - return '0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031' - end - - # Default dishwasher monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.DishwasherMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default clothes washer weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.ClothesWasherWeekdayFractions - return '0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017' - end - - # Default clothes washer weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.ClothesWasherWeekendFractions - return '0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017' - end - - # Default clothes washer monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.ClothesWasherMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default clothes dryer weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.ClothesDryerWeekdayFractions - return '0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024' - end - - # Default clothes dryer weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.ClothesDryerWeekendFractions - return '0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024' - end - - # Default clothes dryer monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.ClothesDryerMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default fixtures weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.FixturesWeekdayFractions - return '0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026' - end - - # Default fixtures weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.FixturesWeekendFractions - return '0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026' - end - - # Default fixtures monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.FixturesMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default recirculation pump w/out control weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.RecirculationPumpWithoutControlWeekdayFractions - return '0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042' - end - - # Default recirculation pump w/out control weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.RecirculationPumpWithoutControlWeekendFractions - return '0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042' - end - - # Default recirculation pump demand-controlled weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.RecirculationPumpDemandControlledWeekdayFractions - return '0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026' - end - - # Default recirculation pump demand-controlled weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.RecirculationPumpDemandControlledWeekendFractions - return '0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026' - end - - # Default recirculation pump temperature-controlled weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.RecirculationPumpTemperatureControlledWeekdayFractions - return '0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055' - end - - # Default recirculation pump temperature-controlled weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.RecirculationPumpTemperatureControlledWeekendFractions - return '0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055' - end - - # Default recirculation pump monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.RecirculationPumpMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default refrigerator weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.RefrigeratorWeekdayFractions - return '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041' - end - - # Default refrigerator weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.RefrigeratorWeekendFractions - return '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041' - end - - # Default refrigerator monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.RefrigeratorMonthlyMultipliers - return '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837' - end - - # Default refrigerator constant coefficients. - # - # @return [String] 24 comma-separated constant coefficients - def self.RefrigeratorConstantCoefficients - return '-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, 0.077, -0.118, -0.247, -0.445, -0.544' # Table C.3(2) Daily Refrigerator Coefficient Schedules - end - - # Default refrigerator temperature coefficients. - # - # @return [String] 24 comma-separated temperature coefficients - def self.RefrigeratorTemperatureCoefficients - return '0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020' # Table C.3(2) Daily Refrigerator Coefficient Schedules - end - - # Default extra refrigerator weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.ExtraRefrigeratorWeekdayFractions - return '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041' - end - - # Default extra refrigerator weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.ExtraRefrigeratorWeekendFractions - return '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041' - end - - # Default extra refrigerator monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.ExtraRefrigeratorMonthlyMultipliers - return '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837' - end - - # Default extra refrigerator constant coefficients. - # - # @return [String] 24 comma-separated constant coefficients - def self.ExtraRefrigeratorConstantCoefficients - return '-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, -0.077, -0.118, -0.247, -0.445, -0.544' - end - - # Default extra refrigerator temperature coefficients. - # - # @return [String] 24 comma-separated temperature coefficients - def self.ExtraRefrigeratorTemperatureCoefficients - return '0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020' - end - - # Default freezer weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.FreezerWeekdayFractions - return '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041' - end - - # Default freezer weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.FreezerWeekendFractions - return '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041' - end - - # Default freezer monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.FreezerMonthlyMultipliers - return '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837' - end - - # Default ceiling fan weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.CeilingFanWeekdayFractions - return '0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057' - end - - # Default ceiling fan weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.CeilingFanWeekendFractions - return '0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057' - end - # Default ceiling fan monthly multipliers. # # @param weather [WeatherFile] Weather object containing EPW information @@ -1293,237 +964,6 @@ def self.CeilingFanMonthlyMultipliers(weather:) return HVAC.get_default_ceiling_fan_months(weather).join(', ') end - # Default other plug loads weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.PlugLoadsOtherWeekdayFractions - return '0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037' - end - - # Default other plug loads weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.PlugLoadsOtherWeekendFractions - return '0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037' - end - - # Default other plug loads monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.PlugLoadsOtherMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default TV plug loads weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.PlugLoadsTVWeekdayFractions - return '0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034' - end - - # Default TV plug loads weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.PlugLoadsTVWeekendFractions - return '0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034' - end - - # Default TV plug loads monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.PlugLoadsTVMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default vehicle plug loads weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.PlugLoadsVehicleWeekdayFractions - return '0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042' - end - - # Default vehicle plug loads weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.PlugLoadsVehicleWeekendFractions - return '0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042' - end - - # Default vehicle plug loads monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.PlugLoadsVehicleMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default well pump plug loads weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.PlugLoadsWellPumpWeekdayFractions - return '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065' - end - - # Default well pump plug loads weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.PlugLoadsWellPumpWeekendFractions - return '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065' - end - - # Default well pump plug loads monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.PlugLoadsWellPumpMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default grill fuel loads weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.FuelLoadsGrillWeekdayFractions - return '0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007' - end - - # Default grill fuel loads weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.FuelLoadsGrillWeekendFractions - return '0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007' - end - - # Default grill fuel loads monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.FuelLoadsGrillMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default lighting fuel loads weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.FuelLoadsLightingWeekdayFractions - return '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065' - end - - # Default lighting fuel loads weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.FuelLoadsLightingWeekendFractions - return '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065' - end - - # Default lighting fuel loads monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.FuelLoadsLightingMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default fireplace fuel loads weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.FuelLoadsFireplaceWeekdayFractions - return '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065' - end - - # Default fireplace fuel loads weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.FuelLoadsFireplaceWeekendFractions - return '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065' - end - - # Default fireplace fuel loads monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.FuelLoadsFireplaceMonthlyMultipliers - return '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0' - end - - # Default pool pump weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.PoolPumpWeekdayFractions - return '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003' - end - - # Default pool pump weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.PoolPumpWeekendFractions - return '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003' - end - - # Default pool pump monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.PoolPumpMonthlyMultipliers - return '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154' - end - - # Default pool heater weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.PoolHeaterWeekdayFractions - return '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003' - end - - # Default pool heater weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.PoolHeaterWeekendFractions - return '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003' - end - - # Default pool heater monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.PoolHeaterMonthlyMultipliers - return '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154' - end - - # Default permanent spa pump weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.PermanentSpaPumpWeekdayFractions - return '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024' - end - - # Default permanent spa pump weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.PermanentSpaPumpWeekendFractions - return '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024' - end - - # Default permanent spa pump monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.PermanentSpaPumpMonthlyMultipliers - return '0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921' - end - - # Default permanent spa heater weekday fractions. - # - # @return [String] 24 comma-separated weekday fractions - def self.PermanentSpaHeaterWeekdayFractions - return '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024' - end - - # Default permanent spa heater weekend fractions. - # - # @return [String] 24 comma-separated weekend fractions - def self.PermanentSpaHeaterWeekendFractions - return '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024' - end - - # Default permanent spa heater monthly multipliers. - # - # @return [String] 12 comma-separated monthly multipliers - def self.PermanentSpaHeaterMonthlyMultipliers - return '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837' - end - # Returns a value between 1 and 365 (or 366 for a leap year). # Returns e.g. 32 for month=2 and day=1 (Feb 1). # diff --git a/docs/source/data/general_water_use.csv b/docs/source/data/building_occupancy.csv similarity index 54% rename from docs/source/data/general_water_use.csv rename to docs/source/data/building_occupancy.csv index 7985ffa9a7..899ab64a1b 100644 --- a/docs/source/data/general_water_use.csv +++ b/docs/source/data/building_occupancy.csv @@ -1,4 +1,7 @@ Schedule Name,Element,Values +occupants,WeekdayScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035" +occupants,WeekendScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035" +occupants,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" general_water_use,GeneralWaterUseWeekdayScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034" general_water_use,GeneralWaterUseWeekendScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034" general_water_use,GeneralWaterUseMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/docs/source/data/ceiling_fans.csv b/docs/source/data/ceiling_fans.csv new file mode 100644 index 0000000000..9252e4ebb0 --- /dev/null +++ b/docs/source/data/ceiling_fans.csv @@ -0,0 +1,3 @@ +Schedule Name,Element,Values +ceiling_fan,WeekdayScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057" +ceiling_fan,WeekendScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057" diff --git a/docs/source/data/clothes_dryer.csv b/docs/source/data/clothes_dryer.csv new file mode 100644 index 0000000000..e1a6b1fe15 --- /dev/null +++ b/docs/source/data/clothes_dryer.csv @@ -0,0 +1,4 @@ +Schedule Name,Element,Values +clothes_dryer,WeekdayScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024" +clothes_dryer,WeekendScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024" +clothes_dryer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/docs/source/data/clothes_washer.csv b/docs/source/data/clothes_washer.csv new file mode 100644 index 0000000000..d7dfd87ed6 --- /dev/null +++ b/docs/source/data/clothes_washer.csv @@ -0,0 +1,4 @@ +Schedule Name,Element,Values +clothes_washer,WeekdayScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017" +clothes_washer,WeekendScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017" +clothes_washer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/docs/source/data/cooking_range.csv b/docs/source/data/cooking_range.csv new file mode 100644 index 0000000000..f983ffef00 --- /dev/null +++ b/docs/source/data/cooking_range.csv @@ -0,0 +1,4 @@ +Schedule Name,Element,Values +cooking_range,WeekdayScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015" +cooking_range,WeekendScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015" +cooking_range,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/docs/source/data/create_default_schedules_csv_tables.rb b/docs/source/data/create_default_schedules_csv_tables.rb index 29deec139d..2f44a25ca1 100644 --- a/docs/source/data/create_default_schedules_csv_tables.rb +++ b/docs/source/data/create_default_schedules_csv_tables.rb @@ -2,13 +2,35 @@ require_relative '../../../HPXMLtoOpenStudio/resources/hpxml_defaults.rb' +filename_to_schedule_names = { 'building_occupancy' => ['occupants', 'general_water_use'], + 'lighting' => ['lighting_interior', 'lighting_exterior', 'lighting_garage'], + 'holiday_lighting' => ['lighting_exterior_holiday'], + 'cooking_range' => ['cooking_range'], + 'refrigerators' => ['refrigerator'], + 'freezers' => ['freezer'], + 'dishwasher' => ['dishwasher'], + 'clothes_washer' => ['clothes_washer'], + 'clothes_dryer' => ['clothes_dryer'], + 'ceiling_fans' => ['ceiling_fan'], + 'plug_loads' => ['plug_loads_other', 'plug_loads_tv', 'plug_loads_well_pump', 'plug_loads_vehicle'], + 'fuel_loads' => ['fuel_loads_grill', 'fuel_loads_fireplace', 'fuel_loads_lighting'], + 'pool_pump' => ['pool_pump'], + 'pool_heater' => ['pool_heater'], + 'permanent_spa_pump' => ['permanent_spa_pump'], + 'permanent_spa_heater' => ['permanent_spa_heater'], + 'water_fixtures' => ['hot_water_fixtures'], + 'recirculation' => ['hot_water_recirculation_pump_without_control', 'hot_water_recirculation_pump_demand_controlled', 'hot_water_recirculation_pump_temperature_controlled', 'hot_water_recirculation_pump'] } + @default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() -@default_schedules_csv_data.each do |schedule_name, elements_values| - CSV.open(File.join(File.dirname(__FILE__), "#{schedule_name}.csv"), 'w') do |csv| +filename_to_schedule_names.each do |filename, schedule_names| + CSV.open(File.join(File.dirname(__FILE__), "#{filename}.csv"), 'w') do |csv| csv << ['Schedule Name', 'Element', 'Values'] - elements_values.each do |element, values| - csv << [schedule_name, element, values] + schedule_names.each do |schedule_name| + elements_values = @default_schedules_csv_data[schedule_name] + elements_values.each do |element, values| + csv << [schedule_name, element, values] + end end end end diff --git a/docs/source/data/dishwasher.csv b/docs/source/data/dishwasher.csv new file mode 100644 index 0000000000..873e7be1e3 --- /dev/null +++ b/docs/source/data/dishwasher.csv @@ -0,0 +1,4 @@ +Schedule Name,Element,Values +dishwasher,WeekdayScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031" +dishwasher,WeekendScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031" +dishwasher,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/docs/source/data/freezers.csv b/docs/source/data/freezers.csv new file mode 100644 index 0000000000..7b470e70d7 --- /dev/null +++ b/docs/source/data/freezers.csv @@ -0,0 +1,4 @@ +Schedule Name,Element,Values +freezer,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" +freezer,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" +freezer,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" diff --git a/docs/source/data/fuel_loads.csv b/docs/source/data/fuel_loads.csv new file mode 100644 index 0000000000..153b7536df --- /dev/null +++ b/docs/source/data/fuel_loads.csv @@ -0,0 +1,10 @@ +Schedule Name,Element,Values +fuel_loads_grill,WeekdayScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007" +fuel_loads_grill,WeekendScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007" +fuel_loads_grill,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +fuel_loads_fireplace,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" +fuel_loads_fireplace,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" +fuel_loads_fireplace,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +fuel_loads_lighting,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" +fuel_loads_lighting,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" +fuel_loads_lighting,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/docs/source/data/holiday_lighting.csv b/docs/source/data/holiday_lighting.csv new file mode 100644 index 0000000000..84d0855a3e --- /dev/null +++ b/docs/source/data/holiday_lighting.csv @@ -0,0 +1,3 @@ +Schedule Name,Element,Values +lighting_exterior_holiday,WeekdayScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019" +lighting_exterior_holiday,WeekendScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019" diff --git a/docs/source/data/lighting.csv b/docs/source/data/lighting.csv new file mode 100644 index 0000000000..579afccaf1 --- /dev/null +++ b/docs/source/data/lighting.csv @@ -0,0 +1,10 @@ +Schedule Name,Element,Values +lighting_interior,InteriorWeekdayScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018" +lighting_interior,InteriorWeekendScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018" +lighting_interior,InteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20" +lighting_exterior,ExteriorWeekdayScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047" +lighting_exterior,ExteriorWeekendScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047" +lighting_exterior,ExteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20" +lighting_garage,GarageWeekdayScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039" +lighting_garage,GarageWeekendScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039" +lighting_garage,GarageMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20" diff --git a/docs/source/data/occupants.csv b/docs/source/data/occupants.csv deleted file mode 100644 index 4e35806fc0..0000000000 --- a/docs/source/data/occupants.csv +++ /dev/null @@ -1,4 +0,0 @@ -Schedule Name,Element,Values -occupants,WeekdayScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035" -occupants,WeekendScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035" -occupants,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/docs/source/data/permanent_spa_heater.csv b/docs/source/data/permanent_spa_heater.csv new file mode 100644 index 0000000000..e89810bd08 --- /dev/null +++ b/docs/source/data/permanent_spa_heater.csv @@ -0,0 +1,4 @@ +Schedule Name,Element,Values +permanent_spa_heater,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" +permanent_spa_heater,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" +permanent_spa_heater,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" diff --git a/docs/source/data/permanent_spa_pump.csv b/docs/source/data/permanent_spa_pump.csv new file mode 100644 index 0000000000..96f672b340 --- /dev/null +++ b/docs/source/data/permanent_spa_pump.csv @@ -0,0 +1,4 @@ +Schedule Name,Element,Values +permanent_spa_pump,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" +permanent_spa_pump,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" +permanent_spa_pump,MonthlyScheduleMultipliers,"0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921" diff --git a/docs/source/data/plug_loads.csv b/docs/source/data/plug_loads.csv new file mode 100644 index 0000000000..c5e9f28918 --- /dev/null +++ b/docs/source/data/plug_loads.csv @@ -0,0 +1,13 @@ +Schedule Name,Element,Values +plug_loads_other,WeekdayScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037" +plug_loads_other,WeekendScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037" +plug_loads_other,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +plug_loads_tv,WeekdayScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034" +plug_loads_tv,WeekendScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034" +plug_loads_tv,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +plug_loads_well_pump,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" +plug_loads_well_pump,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" +plug_loads_well_pump,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +plug_loads_vehicle,WeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" +plug_loads_vehicle,WeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" +plug_loads_vehicle,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/docs/source/data/pool_heater.csv b/docs/source/data/pool_heater.csv new file mode 100644 index 0000000000..323411fda2 --- /dev/null +++ b/docs/source/data/pool_heater.csv @@ -0,0 +1,4 @@ +Schedule Name,Element,Values +pool_heater,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" +pool_heater,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" +pool_heater,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154" diff --git a/docs/source/data/pool_pump.csv b/docs/source/data/pool_pump.csv new file mode 100644 index 0000000000..89aaf0e9b3 --- /dev/null +++ b/docs/source/data/pool_pump.csv @@ -0,0 +1,4 @@ +Schedule Name,Element,Values +pool_pump,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" +pool_pump,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" +pool_pump,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154" diff --git a/docs/source/data/recirculation.csv b/docs/source/data/recirculation.csv new file mode 100644 index 0000000000..4005f5a94f --- /dev/null +++ b/docs/source/data/recirculation.csv @@ -0,0 +1,8 @@ +Schedule Name,Element,Values +hot_water_recirculation_pump_without_control,RecirculationPumpWeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" +hot_water_recirculation_pump_without_control,RecirculationPumpWeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" +hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" +hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" +hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekdayScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055" +hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekendScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055" +hot_water_recirculation_pump,RecirculationPumpMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/docs/source/data/refrigerators.csv b/docs/source/data/refrigerators.csv new file mode 100644 index 0000000000..9fcb6fda61 --- /dev/null +++ b/docs/source/data/refrigerators.csv @@ -0,0 +1,6 @@ +Schedule Name,Element,Values +refrigerator,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" +refrigerator,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" +refrigerator,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" +refrigerator,ConstantScheduleCoefficients,"-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, 0.077, -0.118, -0.247, -0.445, -0.544" +refrigerator,TemperatureScheduleCoefficients,"0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020" diff --git a/docs/source/data/water_fixtures.csv b/docs/source/data/water_fixtures.csv new file mode 100644 index 0000000000..eec6f53122 --- /dev/null +++ b/docs/source/data/water_fixtures.csv @@ -0,0 +1,4 @@ +Schedule Name,Element,Values +hot_water_fixtures,WaterFixturesWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" +hot_water_fixtures,WaterFixturesWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" +hot_water_fixtures,WaterFixturesMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index a92469d2ba..520daaac37 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -591,11 +591,7 @@ Building occupancy is entered in ``/HPXML/Building/BuildingDetails/BuildingSumma .. [#] If GeneralWaterUseMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used (see table below). .. csv-table:: - :file: data/occupants.csv - :header-rows: 1 - -.. csv-table:: - :file: data/general_water_use.csv + :file: data/building_occupancy.csv :header-rows: 1 HPXML Building Construction @@ -4017,6 +4013,10 @@ An in-unit recirculation hot water distribution system is entered as a ``/HPXML/ .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". +.. csv-table:: + :file: data/recirculation.csv + :header-rows: 1 + .. _hot_water_dist_recirc_shared: Recirculation (Shared) @@ -4079,6 +4079,10 @@ A shared recirculation hot water distribution system (serving multiple dwelling .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), defaults to: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". +.. csv-table:: + :file: data/recirculation.csv + :header-rows: 1 + .. note:: The shared recirculation system is required to have a standard in-unit hot water distribution system; @@ -4140,6 +4144,10 @@ Additional information can be entered in ``/HPXML/Building/BuildingDetails/Syste .. [#] If WaterFixturesWeekdayScheduleFractions or WaterFixturesWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026". .. [#] If WaterFixturesMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". +.. csv-table:: + :file: data/water_fixtures.csv + :header-rows: 1 + Water fixture hot water use is calculated per the Energy Rating Rated Home in `ANSI/RESNET/ICC 301-2019 `_. HPXML Solar Thermal @@ -4397,6 +4405,10 @@ If not entered, the simulation will not include a clothes washer. .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017". .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". +.. csv-table:: + :file: data/clothes_washer.csv + :header-rows: 1 + If IntegratedModifiedEnergyFactor or ModifiedEnergyFactor is provided, a complete set of EnergyGuide label information is entered in ``ClothesWasher``. ================================ ======= ======= =========== ============ ======= ==================================== @@ -4447,6 +4459,10 @@ If not entered, the simulation will not include a clothes dryer. .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024". .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". +.. csv-table:: + :file: data/clothes_dryer.csv + :header-rows: 1 + Clothes dryer energy use is calculated per the Energy Rating Rated Home in `ANSI/RESNET/ICC 301-2019 Addendum A `_. HPXML Dishwasher @@ -4486,6 +4502,10 @@ If not entered, the simulation will not include a dishwasher. .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031". .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". +.. csv-table:: + :file: data/dishwasher.csv + :header-rows: 1 + If the RatedAnnualkWh or EnergyFactor is provided, a complete set of EnergyGuide label information is entered in ``Dishwasher``. ======================== ======= ======= =========== ======== ======= ================================== @@ -4534,6 +4554,10 @@ If not entered, the simulation will not include a refrigerator. .. [#] If ConstantScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values from Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, 0.077, -0.118, -0.247, -0.445, -0.544". .. [#] If TemperatureScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values from Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020". +.. csv-table:: + :file: data/refrigerators.csv + :header-rows: 1 + .. note:: Refrigerator energy use is affected by its ambient temperature when ConstantScheduleCoefficients and TemperatureScheduleCoefficients are used, in which case hourly energy for refrigerators is determined following Equation 4.2-X2 of ANSI/RESNET/ICC 301-2022 Addendum C: @@ -4570,6 +4594,10 @@ If not entered, the simulation will not include a standalone freezer. .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values from Figure 16 of the `2010 BAHSP `_ are used: "0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041". .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values from Figure 24 of the `2010 BAHSP `_ are used: "0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837". +.. csv-table:: + :file: data/freezers.csv + :header-rows: 1 + .. note:: Freezer energy use is affected by its ambient temperature when ConstantScheduleCoefficients and TemperatureScheduleCoefficients are used, in which case hourly energy for freezers is determined following Equation 4.2-X2 of ANSI/RESNET/ICC 301-2022 Addendum C: @@ -4633,6 +4661,10 @@ If not entered, the simulation will not include a cooking range/oven. .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015". .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". +.. csv-table:: + :file: data/cooking_range.csv + :header-rows: 1 + If a cooking range is specified, a single oven is also entered as a ``/HPXML/Building/BuildingDetails/Appliances/Oven``. ==================== ======= ====== =========== ======== ======= ================ @@ -4686,6 +4718,10 @@ With either lighting specification, additional information can be entered in ``/ .. [#] If ExteriorWeekdayScheduleFractions or ExteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047". .. [#] If ExteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values from Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20". +.. csv-table:: + :file: data/lighting.csv + :header-rows: 1 + .. _lighting_fractions: Lighting Type Fractions @@ -4748,6 +4784,10 @@ If exterior holiday lighting is specified, additional information is entered in .. [#] If Value not provided, defaults to 1.1 for single-family detached and 0.55 for others. .. [#] If WeekdayScheduleFractions not provided (and :ref:`schedules_detailed` not used), defaults to: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019. +.. csv-table:: + :file: data/holiday_lighting.csv + :header-rows: 1 + HPXML Ceiling Fans ****************** @@ -4771,6 +4811,10 @@ If not entered, the simulation will not include a ceiling fan. .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057". .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), defaults based on monthly average outdoor temperatures per `ANSI/RESNET/ICC 301-2019 `_ +.. csv-table:: + :file: data/ceiling_fans.csv + :header-rows: 1 + Ceiling fan energy use is calculated per the Energy Rating Rated Home in `ANSI/RESNET/ICC 301-2019 `_. .. note:: @@ -4822,6 +4866,10 @@ If not entered, the simulation will not include a pool pump. .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Figure 23 of the `2010 BAHSP `_ are used: "0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003". .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values from Figure 24 of the `2010 BAHSP `_ are used: "1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154". +.. csv-table:: + :file: data/pool_pump.csv + :header-rows: 1 + Pool Heater ~~~~~~~~~~~ @@ -4855,6 +4903,10 @@ If not entered, the simulation will not include a pool heater. .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Figure 23 of the `2010 BAHSP `_ are used: "0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003". .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values from Figure 24 of the `2010 BAHSP `_ are used: "1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154". +.. csv-table:: + :file: data/pool_heater.csv + :header-rows: 1 + HPXML Permanent Spas ******************** @@ -4896,6 +4948,10 @@ If not entered, the simulation will not include a permanent spa pump. .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Figure 23 of the `2010 BAHSP `_ are used: "0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024". .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values from Figure 24 of the `2010 BAHSP `_ are used: "0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921". +.. csv-table:: + :file: data/permanent_spa_pump.csv + :header-rows: 1 + Permanent Spa Heater ~~~~~~~~~~~~~~~~~~~~ @@ -4929,6 +4985,10 @@ If not entered, the simulation will not include a permanent spa heater. .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Figure 23 of the `2010 BAHSP `_ are used: "0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024". .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values from Figure 24 of the `2010 BAHSP `_ are used: "0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837". +.. csv-table:: + :file: data/permanent_spa_heater.csv + :header-rows: 1 + HPXML Misc Loads ---------------- @@ -5006,6 +5066,10 @@ If not entered, the simulation will not include that type of plug load. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". +.. csv-table:: + :file: data/plug_loads.csv + :header-rows: 1 + .. _fuel_loads: HPXML Fuel Loads @@ -5056,6 +5120,10 @@ If not entered, the simulation will not include that type of fuel load. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". +.. csv-table:: + :file: data/fuel_loads.csv + :header-rows: 1 + .. _hpxmllocations: HPXML Locations From d734a86c5b20100119a9286a14765ef96d51de5b Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Wed, 31 Jul 2024 10:46:14 -0700 Subject: [PATCH 06/22] Update schedule generator and tasks. --- BuildResidentialScheduleFile/measure.xml | 6 +++--- .../resources/schedules.rb | 10 ++++++---- HPXMLtoOpenStudio/measure.xml | 4 ++-- tasks.rb | 14 ++++++++------ 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/BuildResidentialScheduleFile/measure.xml b/BuildResidentialScheduleFile/measure.xml index 4e420e58e0..2a89373b68 100644 --- a/BuildResidentialScheduleFile/measure.xml +++ b/BuildResidentialScheduleFile/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_schedule_file f770b2db-1a9f-4e99-99a7-7f3161a594b1 - 82cc5cf7-51fc-435c-9ea1-429bf4b72080 - 2024-07-15T21:48:21Z + d92ee468-5c79-4dff-a600-0fc4a2ac5e68 + 2024-07-31T17:45:43Z 03F02484 BuildResidentialScheduleFile Schedule File Builder @@ -223,7 +223,7 @@ schedules.rb rb resource - A0CC250C + 74CF1B59 schedules_config.md diff --git a/BuildResidentialScheduleFile/resources/schedules.rb b/BuildResidentialScheduleFile/resources/schedules.rb index 935b267ffd..0664962056 100644 --- a/BuildResidentialScheduleFile/resources/schedules.rb +++ b/BuildResidentialScheduleFile/resources/schedules.rb @@ -92,6 +92,8 @@ def create(args:, # @return [Boolean] true if successful def create_stochastic_schedules(args:, weather:) + default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() + # initialize a random number generator prng = Random.new(@random_seed) @@ -165,14 +167,14 @@ def create_stochastic_schedules(args:, all_simulated_values << Matrix[*simulated_values] end # shape of all_simulated_values is [2, 35040, 7] i.e. (geometry_num_occupants, period_in_a_year, number_of_states) - plugload_other_weekday_sch = Schedule.validate_values(Schedule.PlugLoadsOtherWeekdayFractions, 24, 'weekday') # Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C - plugload_other_weekend_sch = Schedule.validate_values(Schedule.PlugLoadsOtherWeekendFractions, 24, 'weekend') # Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C + plugload_other_weekday_sch = Schedule.validate_values(default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['WeekdayScheduleFractions'], 24, 'weekday') # Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C + plugload_other_weekend_sch = Schedule.validate_values(default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['WeekendScheduleFractions'], 24, 'weekend') # Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C plugload_other_monthly_multiplier = Schedule.validate_values(Constants.PlugLoadsOtherMonthlyMultipliers, 12, 'monthly') # Figure 24 of the 2010 BAHSP plugload_tv_weekday_sch = Schedule.validate_values(Constants.PlugLoadsTVWeekdayFractions, 24, 'weekday') # American Time Use Survey plugload_tv_weekend_sch = Schedule.validate_values(Constants.PlugLoadsTVWeekendFractions, 24, 'weekend') # American Time Use Survey plugload_tv_monthly_multiplier = Schedule.validate_values(Constants.PlugLoadsTVMonthlyMultipliers, 12, 'monthly') # American Time Use Survey - ceiling_fan_weekday_sch = Schedule.validate_values(Schedule.CeilingFanWeekdayFractions, 24, 'weekday') # Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C - ceiling_fan_weekend_sch = Schedule.validate_values(Schedule.CeilingFanWeekendFractions, 24, 'weekend') # Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C + ceiling_fan_weekday_sch = Schedule.validate_values(default_schedules_csv_data[SchedulesFile::Columns[:CeilingFan].name]['WeekdayScheduleFractions'], 24, 'weekday') # Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C + ceiling_fan_weekend_sch = Schedule.validate_values(default_schedules_csv_data[SchedulesFile::Columns[:CeilingFan].name]['WeekendScheduleFractions'], 24, 'weekend') # Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C ceiling_fan_monthly_multiplier = Schedule.validate_values(Schedule.CeilingFanMonthlyMultipliers(weather: weather), 12, 'monthly') # based on monthly average outdoor temperatures per ANSI/RESNET/ICC 301-2019 sch = get_building_america_lighting_schedule(args[:time_zone_utc_offset], args[:latitude], args[:longitude]) diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index 3578e72e0f..e09594509f 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 0f6b8ac3-b313-4a5f-a498-8b0b718e409a - 2024-07-31T16:21:24Z + 155d6f36-1bd8-4f91-a968-b36c496264ec + 2024-07-31T17:45:45Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator diff --git a/tasks.rb b/tasks.rb index 0d13832022..33dbb26bfe 100644 --- a/tasks.rb +++ b/tasks.rb @@ -284,6 +284,8 @@ def apply_hpxml_modification_hers_hot_water(hpxml) end def apply_hpxml_modification_sample_files(hpxml_path, hpxml) + default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() + # Set detailed HPXML values for sample files hpxml_file = File.basename(hpxml_path) hpxml_bldg = hpxml.buildings[0] @@ -2050,13 +2052,13 @@ def apply_hpxml_modification_sample_files(hpxml_path, hpxml) 'base-schedules-simple.xml', 'base-schedules-simple-vacancy.xml', 'base-schedules-simple-power-outage.xml'].include? hpxml_file - hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekday_fractions = Schedule.RecirculationPumpDemandControlledWeekdayFractions - hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekend_fractions = Schedule.RecirculationPumpDemandControlledWeekendFractions - hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = Schedule.RecirculationPumpMonthlyMultipliers + hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekday_fractions = default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekdayScheduleFractions'] + hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekend_fractions = default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekendScheduleFractions'] + hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers'] elsif ['base-bldgtype-mf-unit-shared-water-heater-recirc-scheduled.xml'].include? hpxml_file - hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekday_fractions = Schedule.RecirculationPumpWithoutControlWeekdayFractions - hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekend_fractions = Schedule.RecirculationPumpWithoutControlWeekendFractions - hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = Schedule.RecirculationPumpMonthlyMultipliers + hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekday_fractions = default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekdayScheduleFractions'] + hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekend_fractions = default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekendScheduleFractions'] + hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers'] end # -------------------- # From 60e10d7817f88e9382cc92d57d3b5953e654891b Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Wed, 31 Jul 2024 11:44:14 -0700 Subject: [PATCH 07/22] Replacements in defaults and schedules test files. --- HPXMLtoOpenStudio/measure.xml | 28 ++++- HPXMLtoOpenStudio/resources/hpxml_defaults.rb | 2 +- HPXMLtoOpenStudio/tests/test_defaults.rb | 118 +++++++++--------- HPXMLtoOpenStudio/tests/test_schedules.rb | 52 ++++---- 4 files changed, 109 insertions(+), 91 deletions(-) diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index e09594509f..562763808d 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 155d6f36-1bd8-4f91-a968-b36c496264ec - 2024-07-31T17:45:45Z + d6980f7a-ce15-4b60-9a5a-284ba9803050 + 2024-07-31T18:42:51Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -357,7 +357,7 @@ hpxml_defaults.rb rb resource - 0F91379A + 75E403AB hpxml_schema/HPXML.xsd @@ -635,6 +635,24 @@ resource 93120E27 + + in.schedules.csv + csv + test + 8FBBC133 + + + results_annual.csv + csv + test + 02140231 + + + results_design_load_details.csv + csv + test + 974D58FB + test_airflow.rb rb @@ -651,7 +669,7 @@ test_defaults.rb rb test - 46825C0C + 6A5F7A95 test_enclosure.rb @@ -711,7 +729,7 @@ test_schedules.rb rb test - C93B4E8D + 08E3AAFF test_simcontrols.rb diff --git a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb index 2f3767c7e2..5cda39afb8 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +++ b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb @@ -3348,7 +3348,7 @@ def self.apply_lighting(hpxml_bldg, schedules_file) hpxml_bldg.lighting.exterior_weekday_fractions_isdefaulted = true end if hpxml_bldg.lighting.exterior_weekend_fractions.nil? && !schedules_file_includes_lighting_exterior - hpxml_bldg.lighting.exterior_weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorWeekdayScheduleFractions'] + hpxml_bldg.lighting.exterior_weekend_fractions = @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorWeekendScheduleFractions'] hpxml_bldg.lighting.exterior_weekend_fractions_isdefaulted = true end if hpxml_bldg.lighting.exterior_monthly_multipliers.nil? && !schedules_file_includes_lighting_exterior diff --git a/HPXMLtoOpenStudio/tests/test_defaults.rb b/HPXMLtoOpenStudio/tests/test_defaults.rb index 91d003346b..7a104e8b2c 100644 --- a/HPXMLtoOpenStudio/tests/test_defaults.rb +++ b/HPXMLtoOpenStudio/tests/test_defaults.rb @@ -3145,7 +3145,7 @@ def test_hot_water_distribution hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 166.96, 10.0, 50.0, 0.0, Schedule.RecirculationPumpDemandControlledWeekdayFractions, Schedule.RecirculationPumpDemandControlledWeekendFractions, Schedule.RecirculationPumpMonthlyMultipliers) + _test_default_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 166.96, 10.0, 50.0, 0.0, @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekdayScheduleFractions'], @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']) # Test defaults w/ recirculation & unconditioned basement hpxml, hpxml_bldg = _create_hpxml('base-foundation-unconditioned-basement.xml') @@ -3155,7 +3155,7 @@ def test_hot_water_distribution recirculation_control_type: HPXML::DHWRecircControlTypeSensor) XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 156.96, 10.0, 50.0, 0.0, Schedule.RecirculationPumpDemandControlledWeekdayFractions, Schedule.RecirculationPumpDemandControlledWeekendFractions, Schedule.RecirculationPumpMonthlyMultipliers) + _test_default_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 156.96, 10.0, 50.0, 0.0, @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekdayScheduleFractions'], @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']) # Test defaults w/ recirculation & 2-story building hpxml, hpxml_bldg = _create_hpxml('base-enclosure-2stories.xml') @@ -3165,7 +3165,7 @@ def test_hot_water_distribution recirculation_control_type: HPXML::DHWRecircControlTypeSensor) XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 186.96, 10.0, 50.0, 0.0, Schedule.RecirculationPumpDemandControlledWeekdayFractions, Schedule.RecirculationPumpDemandControlledWeekendFractions, Schedule.RecirculationPumpMonthlyMultipliers) + _test_default_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 186.96, 10.0, 50.0, 0.0, @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekdayScheduleFractions'], @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']) # Test defaults w/ shared recirculation hpxml, hpxml_bldg = _create_hpxml('base-bldgtype-mf-unit-shared-water-heater-recirc.xml') @@ -3175,7 +3175,7 @@ def test_hot_water_distribution hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_shared_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 220.0, Schedule.RecirculationPumpWithoutControlWeekdayFractions, Schedule.RecirculationPumpWithoutControlWeekendFractions, Schedule.RecirculationPumpMonthlyMultipliers) + _test_default_shared_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 220.0, @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekdayScheduleFractions'], @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']) end def test_water_fixtures @@ -3203,7 +3203,7 @@ def test_water_fixtures hpxml_bldg.water_fixtures[1].flow_rate = 2 XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_water_fixture_values(default_hpxml_bldg, 1.0, Schedule.FixturesWeekdayFractions, Schedule.FixturesWeekendFractions, Schedule.FixturesMonthlyMultipliers, true, true) + _test_default_water_fixture_values(default_hpxml_bldg, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterFixtures].name]['WaterFixturesWeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterFixtures].name]['WaterFixturesWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterFixtures].name]['WaterFixturesMonthlyScheduleMultipliers'], true, true) end def test_solar_thermal_systems @@ -3428,7 +3428,7 @@ def test_clothes_washers hpxml_bldg.clothes_washers[0].monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_clothes_washer_values(default_hpxml_bldg.clothes_washers[0], false, HPXML::LocationConditionedSpace, 1.0, 400.0, 0.12, 1.09, 27.0, 3.0, 6.0, 1.0, Schedule.ClothesWasherWeekdayFractions, Schedule.ClothesWasherWeekendFractions, Schedule.ClothesWasherMonthlyMultipliers) + _test_default_clothes_washer_values(default_hpxml_bldg.clothes_washers[0], false, HPXML::LocationConditionedSpace, 1.0, 400.0, 0.12, 1.09, 27.0, 3.0, 6.0, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['MonthlyScheduleMultipliers']) # Test defaults before 301-2019 Addendum A hpxml, hpxml_bldg = _create_hpxml('base.xml') @@ -3448,7 +3448,7 @@ def test_clothes_washers hpxml_bldg.clothes_washers[0].monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_clothes_washer_values(default_hpxml_bldg.clothes_washers[0], false, HPXML::LocationConditionedSpace, 0.331, 704.0, 0.08, 0.58, 23.0, 2.874, 999, 1.0, Schedule.ClothesWasherWeekdayFractions, Schedule.ClothesWasherWeekendFractions, Schedule.ClothesWasherMonthlyMultipliers) + _test_default_clothes_washer_values(default_hpxml_bldg.clothes_washers[0], false, HPXML::LocationConditionedSpace, 0.331, 704.0, 0.08, 0.58, 23.0, 2.874, 999, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['MonthlyScheduleMultipliers']) end def test_clothes_dryers @@ -3477,26 +3477,26 @@ def test_clothes_dryers hpxml_bldg.clothes_dryers[0].monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_clothes_dryer_values(default_hpxml_bldg.clothes_dryers[0], false, HPXML::LocationConditionedSpace, 3.01, 1.0, Schedule.ClothesDryerWeekdayFractions, Schedule.ClothesDryerWeekendFractions, Schedule.ClothesDryerMonthlyMultipliers) + _test_default_clothes_dryer_values(default_hpxml_bldg.clothes_dryers[0], false, HPXML::LocationConditionedSpace, 3.01, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['MonthlyScheduleMultipliers']) # Test defaults w/ gas clothes dryer hpxml_bldg.clothes_dryers[0].fuel_type = HPXML::FuelTypeNaturalGas XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_clothes_dryer_values(default_hpxml_bldg.clothes_dryers[0], false, HPXML::LocationConditionedSpace, 3.01, 1.0, Schedule.ClothesDryerWeekdayFractions, Schedule.ClothesDryerWeekendFractions, Schedule.ClothesDryerMonthlyMultipliers) + _test_default_clothes_dryer_values(default_hpxml_bldg.clothes_dryers[0], false, HPXML::LocationConditionedSpace, 3.01, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['MonthlyScheduleMultipliers']) # Test defaults w/ electric clothes dryer before 301-2019 Addendum A hpxml.header.eri_calculation_version = '2019' hpxml_bldg.clothes_dryers[0].fuel_type = HPXML::FuelTypeElectricity XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_clothes_dryer_values(default_hpxml_bldg.clothes_dryers[0], false, HPXML::LocationConditionedSpace, 2.62, 1.0, Schedule.ClothesDryerWeekdayFractions, Schedule.ClothesDryerWeekendFractions, Schedule.ClothesDryerMonthlyMultipliers) + _test_default_clothes_dryer_values(default_hpxml_bldg.clothes_dryers[0], false, HPXML::LocationConditionedSpace, 2.62, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['MonthlyScheduleMultipliers']) # Test defaults w/ gas clothes dryer before 301-2019 Addendum A hpxml_bldg.clothes_dryers[0].fuel_type = HPXML::FuelTypeNaturalGas XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_clothes_dryer_values(default_hpxml_bldg.clothes_dryers[0], false, HPXML::LocationConditionedSpace, 2.32, 1.0, Schedule.ClothesDryerWeekdayFractions, Schedule.ClothesDryerWeekendFractions, Schedule.ClothesDryerMonthlyMultipliers) + _test_default_clothes_dryer_values(default_hpxml_bldg.clothes_dryers[0], false, HPXML::LocationConditionedSpace, 2.32, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['MonthlyScheduleMultipliers']) end def test_clothes_dryer_exhaust @@ -3555,13 +3555,13 @@ def test_dishwashers hpxml_bldg.dishwashers[0].monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_dishwasher_values(default_hpxml_bldg.dishwashers[0], false, HPXML::LocationConditionedSpace, 467.0, 0.12, 1.09, 33.12, 4.0, 12, 1.0, Schedule.DishwasherWeekdayFractions, Schedule.DishwasherWeekendFractions, Schedule.DishwasherMonthlyMultipliers) + _test_default_dishwasher_values(default_hpxml_bldg.dishwashers[0], false, HPXML::LocationConditionedSpace, 467.0, 0.12, 1.09, 33.12, 4.0, 12, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:Dishwasher].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:Dishwasher].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:Dishwasher].name]['MonthlyScheduleMultipliers']) # Test defaults before 301-2019 Addendum A hpxml.header.eri_calculation_version = '2019' XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_dishwasher_values(default_hpxml_bldg.dishwashers[0], false, HPXML::LocationConditionedSpace, 467.0, 999, 999, 999, 999, 12, 1.0, Schedule.DishwasherWeekdayFractions, Schedule.DishwasherWeekendFractions, Schedule.DishwasherMonthlyMultipliers) + _test_default_dishwasher_values(default_hpxml_bldg.dishwashers[0], false, HPXML::LocationConditionedSpace, 467.0, 999, 999, 999, 999, 12, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:Dishwasher].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:Dishwasher].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:Dishwasher].name]['MonthlyScheduleMultipliers']) end def test_refrigerators @@ -3602,7 +3602,7 @@ def test_refrigerators hpxml_bldg.refrigerators[0].temperature_coefficients = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_refrigerator_values(default_hpxml_bldg, HPXML::LocationConditionedSpace, 691.0, 1.0, Schedule.RefrigeratorWeekdayFractions, ConstantDaySchedule, Schedule.RefrigeratorMonthlyMultipliers, nil, nil) + _test_default_refrigerator_values(default_hpxml_bldg, HPXML::LocationConditionedSpace, 691.0, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['WeekdayScheduleFractions'], ConstantDaySchedule, @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['MonthlyScheduleMultipliers'], nil, nil) # Test defaults 2 hpxml_bldg.refrigerators[0].location = nil @@ -3615,20 +3615,20 @@ def test_refrigerators hpxml_bldg.refrigerators[0].temperature_coefficients = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_refrigerator_values(default_hpxml_bldg, HPXML::LocationConditionedSpace, 691.0, 1.0, nil, nil, nil, Schedule.RefrigeratorConstantCoefficients, Schedule.RefrigeratorTemperatureCoefficients) + _test_default_refrigerator_values(default_hpxml_bldg, HPXML::LocationConditionedSpace, 691.0, 1.0, nil, nil, nil, @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['ConstantScheduleCoefficients'], @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['TemperatureScheduleCoefficients']) # Test defaults w/ refrigerator in 5-bedroom house hpxml_bldg.building_construction.number_of_bedrooms = 5 XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_refrigerator_values(default_hpxml_bldg, HPXML::LocationConditionedSpace, 727.0, 1.0, nil, nil, nil, Schedule.RefrigeratorConstantCoefficients, Schedule.RefrigeratorTemperatureCoefficients) + _test_default_refrigerator_values(default_hpxml_bldg, HPXML::LocationConditionedSpace, 727.0, 1.0, nil, nil, nil, @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['ConstantScheduleCoefficients'], @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['TemperatureScheduleCoefficients']) # Test defaults before 301-2019 Addendum A hpxml.header.eri_calculation_version = '2019' hpxml_bldg.building_construction.number_of_bedrooms = 3 XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_refrigerator_values(default_hpxml_bldg, HPXML::LocationConditionedSpace, 691.0, 1.0, nil, nil, nil, Schedule.RefrigeratorConstantCoefficients, Schedule.RefrigeratorTemperatureCoefficients) + _test_default_refrigerator_values(default_hpxml_bldg, HPXML::LocationConditionedSpace, 691.0, 1.0, nil, nil, nil, @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['ConstantScheduleCoefficients'], @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['TemperatureScheduleCoefficients']) end def test_extra_refrigerators @@ -3677,7 +3677,7 @@ def test_extra_refrigerators end XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_extra_refrigerators_values(default_hpxml_bldg, HPXML::LocationBasementConditioned, 244.0, 1.0, nil, nil, nil, Schedule.ExtraRefrigeratorConstantCoefficients, Schedule.ExtraRefrigeratorTemperatureCoefficients) + _test_default_extra_refrigerators_values(default_hpxml_bldg, HPXML::LocationBasementConditioned, 244.0, 1.0, nil, nil, nil, @default_schedules_csv_data[SchedulesFile::Columns[:ExtraRefrigerator].name]['ConstantScheduleCoefficients'], @default_schedules_csv_data[SchedulesFile::Columns[:ExtraRefrigerator].name]['TemperatureScheduleCoefficients']) end def test_freezers @@ -3726,7 +3726,7 @@ def test_freezers end XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_freezers_values(default_hpxml_bldg, HPXML::LocationBasementConditioned, 320.0, 1.0, Schedule.FreezerWeekdayFractions, Schedule.FreezerWeekendFractions, Schedule.FreezerMonthlyMultipliers, nil, nil) + _test_default_freezers_values(default_hpxml_bldg, HPXML::LocationBasementConditioned, 320.0, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:Freezer].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:Freezer].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:Freezer].name]['MonthlyScheduleMultipliers'], nil, nil) end def test_cooking_ranges @@ -3751,13 +3751,13 @@ def test_cooking_ranges hpxml_bldg.cooking_ranges[0].monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_cooking_range_values(default_hpxml_bldg.cooking_ranges[0], HPXML::LocationConditionedSpace, false, 1.0, Schedule.CookingRangeWeekdayFractions, Schedule.CookingRangeWeekendFractions, Schedule.CookingRangeMonthlyMultipliers) + _test_default_cooking_range_values(default_hpxml_bldg.cooking_ranges[0], HPXML::LocationConditionedSpace, false, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:CookingRange].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:CookingRange].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:CookingRange].name]['MonthlyScheduleMultipliers']) # Test defaults before 301-2019 Addendum A hpxml.header.eri_calculation_version = '2019' XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_cooking_range_values(default_hpxml_bldg.cooking_ranges[0], HPXML::LocationConditionedSpace, false, 1.0, Schedule.CookingRangeWeekdayFractions, Schedule.CookingRangeWeekendFractions, Schedule.CookingRangeMonthlyMultipliers) + _test_default_cooking_range_values(default_hpxml_bldg.cooking_ranges[0], HPXML::LocationConditionedSpace, false, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:CookingRange].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:CookingRange].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:CookingRange].name]['MonthlyScheduleMultipliers']) end def test_ovens @@ -3841,12 +3841,12 @@ def test_lighting XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() _test_default_lighting_values(default_hpxml_bldg, 1.0, 1.0, 1.0, - { int_wk_sch: Schedule.LightingInteriorWeekdayFractions, - int_wknd_sch: Schedule.LightingInteriorWeekendFractions, - int_month_mult: Schedule.LightingMonthlyMultipliers, - ext_wk_sch: Schedule.LightingExteriorWeekdayFractions, - ext_wknd_sch: Schedule.LightingExteriorWeekendFractions, - ext_month_mult: Schedule.LightingMonthlyMultipliers }) + { int_wk_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorWeekdayScheduleFractions'], + int_wknd_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorWeekendScheduleFractions'], + int_month_mult: @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorMonthlyScheduleMultipliers'], + ext_wk_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorWeekdayScheduleFractions'], + ext_wknd_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorWeekdayScheduleFractions'], + ext_month_mult: @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorMonthlyScheduleMultipliers'] }) # Test defaults w/ holiday lighting hpxml_bldg.lighting.holiday_exists = true @@ -3860,19 +3860,19 @@ def test_lighting XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() _test_default_lighting_values(default_hpxml_bldg, 1.0, 1.0, 1.0, - { int_wk_sch: Schedule.LightingInteriorWeekdayFractions, - int_wknd_sch: Schedule.LightingInteriorWeekendFractions, - int_month_mult: Schedule.LightingMonthlyMultipliers, - ext_wk_sch: Schedule.LightingExteriorWeekdayFractions, - ext_wknd_sch: Schedule.LightingExteriorWeekendFractions, - ext_month_mult: Schedule.LightingMonthlyMultipliers, + { int_wk_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorWeekdayScheduleFractions'], + int_wknd_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorWeekendScheduleFractions'], + int_month_mult: @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorMonthlyScheduleMultipliers'], + ext_wk_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorWeekdayScheduleFractions'], + ext_wknd_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorWeekdayScheduleFractions'], + ext_month_mult: @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorMonthlyScheduleMultipliers'], hol_kwh_per_day: 1.1, hol_begin_month: 11, hol_begin_day: 24, hol_end_month: 1, hol_end_day: 6, - hol_wk_sch: Schedule.LightingExteriorHolidayWeekdayFractions, - hol_wknd_sch: Schedule.LightingExteriorHolidayWeekendFractions }) + hol_wk_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingExteriorHoliday].name]['WeekdayScheduleFractions'], + hol_wknd_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingExteriorHoliday].name]['WeekendScheduleFractions'] }) # Test defaults w/ garage hpxml, hpxml_bldg = _create_hpxml('base-enclosure-garage.xml') hpxml_bldg.lighting.interior_usage_multiplier = nil @@ -3881,15 +3881,15 @@ def test_lighting XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() _test_default_lighting_values(default_hpxml_bldg, 1.0, 1.0, 1.0, - { int_wk_sch: Schedule.LightingInteriorWeekdayFractions, - int_wknd_sch: Schedule.LightingInteriorWeekendFractions, - int_month_mult: Schedule.LightingMonthlyMultipliers, - ext_wk_sch: Schedule.LightingExteriorWeekdayFractions, - ext_wknd_sch: Schedule.LightingExteriorWeekendFractions, - ext_month_mult: Schedule.LightingMonthlyMultipliers, - grg_wk_sch: Schedule.LightingGarageWeekdayFractions, - grg_wknd_sch: Schedule.LightingGarageWeekendFractions, - grg_month_mult: Schedule.LightingMonthlyMultipliers }) + { int_wk_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorWeekdayScheduleFractions'], + int_wknd_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorWeekendScheduleFractions'], + int_month_mult: @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorMonthlyScheduleMultipliers'], + ext_wk_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorWeekdayScheduleFractions'], + ext_wknd_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorWeekdayScheduleFractions'], + ext_month_mult: @default_schedules_csv_data[SchedulesFile::Columns[:LightingExterior].name]['ExteriorMonthlyScheduleMultipliers'], + grg_wk_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingGarage].name]['GarageWeekdayScheduleFractions'], + grg_wknd_sch: @default_schedules_csv_data[SchedulesFile::Columns[:LightingGarage].name]['GarageWeekendScheduleFractions'], + grg_month_mult: @default_schedules_csv_data[SchedulesFile::Columns[:LightingGarage].name]['GarageMonthlyScheduleMultipliers'] }) end def test_ceiling_fans @@ -3929,7 +3929,7 @@ def test_ceiling_fans end XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_ceiling_fan_values(default_hpxml_bldg.ceiling_fans[0], 4, nil, 42.6, Schedule.CeilingFanWeekdayFractions, Schedule.CeilingFanWeekendFractions, '0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0') + _test_default_ceiling_fan_values(default_hpxml_bldg.ceiling_fans[0], 4, nil, 42.6, @default_schedules_csv_data[SchedulesFile::Columns[:CeilingFan].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:CeilingFan].name]['WeekendScheduleFractions'], '0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0') end def test_pools @@ -3967,8 +3967,8 @@ def test_pools pool.pump_monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_pool_heater_values(default_hpxml_bldg.pools[0], HPXML::UnitsThermPerYear, 236, 1.0, Schedule.PoolHeaterWeekdayFractions, Schedule.PoolHeaterWeekendFractions, Schedule.PoolHeaterMonthlyMultipliers) - _test_default_pool_pump_values(default_hpxml_bldg.pools[0], 2496, 1.0, Schedule.PoolPumpWeekdayFractions, Schedule.PoolPumpWeekendFractions, Schedule.PoolPumpMonthlyMultipliers) + _test_default_pool_heater_values(default_hpxml_bldg.pools[0], HPXML::UnitsThermPerYear, 236, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:PoolHeater].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PoolHeater].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PoolHeater].name]['MonthlyScheduleMultipliers']) + _test_default_pool_pump_values(default_hpxml_bldg.pools[0], 2496, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:PoolPump].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PoolPump].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PoolPump].name]['MonthlyScheduleMultipliers']) # Test defaults 2 hpxml, hpxml_bldg = _create_hpxml('base-misc-loads-large-uncommon2.xml') @@ -3987,7 +3987,7 @@ def test_pools XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() _test_default_pool_heater_values(default_hpxml_bldg.pools[0], nil, nil, nil, nil, nil, nil) - _test_default_pool_pump_values(default_hpxml_bldg.pools[0], 2496, 1.0, Schedule.PoolPumpWeekdayFractions, Schedule.PoolPumpWeekendFractions, Schedule.PoolPumpMonthlyMultipliers) + _test_default_pool_pump_values(default_hpxml_bldg.pools[0], 2496, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:PoolPump].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PoolPump].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PoolPump].name]['MonthlyScheduleMultipliers']) end def test_permanent_spas @@ -4025,8 +4025,8 @@ def test_permanent_spas spa.pump_monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_permanent_spa_heater_values(default_hpxml_bldg.permanent_spas[0], HPXML::UnitsKwhPerYear, 1125, 1.0, Schedule.PermanentSpaHeaterWeekdayFractions, Schedule.PermanentSpaHeaterWeekendFractions, Schedule.PermanentSpaHeaterMonthlyMultipliers) - _test_default_permanent_spa_pump_values(default_hpxml_bldg.permanent_spas[0], 1111, 1.0, Schedule.PermanentSpaPumpWeekdayFractions, Schedule.PermanentSpaPumpWeekendFractions, Schedule.PermanentSpaPumpMonthlyMultipliers) + _test_default_permanent_spa_heater_values(default_hpxml_bldg.permanent_spas[0], HPXML::UnitsKwhPerYear, 1125, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaHeater].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaHeater].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaHeater].name]['MonthlyScheduleMultipliers']) + _test_default_permanent_spa_pump_values(default_hpxml_bldg.permanent_spas[0], 1111, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaPump].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaPump].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaPump].name]['MonthlyScheduleMultipliers']) # Test defaults 2 hpxml, hpxml_bldg = _create_hpxml('base-misc-loads-large-uncommon2.xml') @@ -4044,8 +4044,8 @@ def test_permanent_spas spa.pump_monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_permanent_spa_heater_values(default_hpxml_bldg.permanent_spas[0], HPXML::UnitsKwhPerYear, 225, 1.0, Schedule.PermanentSpaHeaterWeekdayFractions, Schedule.PermanentSpaHeaterWeekendFractions, Schedule.PermanentSpaHeaterMonthlyMultipliers) - _test_default_permanent_spa_pump_values(default_hpxml_bldg.permanent_spas[0], 1111, 1.0, Schedule.PermanentSpaPumpWeekdayFractions, Schedule.PermanentSpaPumpWeekendFractions, Schedule.PermanentSpaPumpMonthlyMultipliers) + _test_default_permanent_spa_heater_values(default_hpxml_bldg.permanent_spas[0], HPXML::UnitsKwhPerYear, 225, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaHeater].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaHeater].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaHeater].name]['MonthlyScheduleMultipliers']) + _test_default_permanent_spa_pump_values(default_hpxml_bldg.permanent_spas[0], 1111, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaPump].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaPump].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PermanentSpaPump].name]['MonthlyScheduleMultipliers']) end def test_plug_loads @@ -4102,10 +4102,10 @@ def test_plug_loads end XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_plug_load_values(default_hpxml_bldg, HPXML::PlugLoadTypeTelevision, 620, 1.0, 0.0, 1.0, Schedule.PlugLoadsTVWeekdayFractions, Schedule.PlugLoadsTVWeekendFractions, Schedule.PlugLoadsTVMonthlyMultipliers) - _test_default_plug_load_values(default_hpxml_bldg, HPXML::PlugLoadTypeOther, 2457, 0.855, 0.045, 1.0, Schedule.PlugLoadsOtherWeekdayFractions, Schedule.PlugLoadsOtherWeekendFractions, Schedule.PlugLoadsOtherMonthlyMultipliers) - _test_default_plug_load_values(default_hpxml_bldg, HPXML::PlugLoadTypeElectricVehicleCharging, 1667, 0.0, 0.0, 1.0, Schedule.PlugLoadsVehicleWeekdayFractions, Schedule.PlugLoadsVehicleWeekendFractions, Schedule.PlugLoadsVehicleMonthlyMultipliers) - _test_default_plug_load_values(default_hpxml_bldg, HPXML::PlugLoadTypeWellPump, 441, 0.0, 0.0, 1.0, Schedule.PlugLoadsWellPumpWeekdayFractions, Schedule.PlugLoadsWellPumpWeekendFractions, Schedule.PlugLoadsWellPumpMonthlyMultipliers) + _test_default_plug_load_values(default_hpxml_bldg, HPXML::PlugLoadTypeTelevision, 620, 1.0, 0.0, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['MonthlyScheduleMultipliers']) + _test_default_plug_load_values(default_hpxml_bldg, HPXML::PlugLoadTypeOther, 2457, 0.855, 0.045, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['MonthlyScheduleMultipliers']) + _test_default_plug_load_values(default_hpxml_bldg, HPXML::PlugLoadTypeElectricVehicleCharging, 1667, 0.0, 0.0, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsVehicle].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsVehicle].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsVehicle].name]['MonthlyScheduleMultipliers']) + _test_default_plug_load_values(default_hpxml_bldg, HPXML::PlugLoadTypeWellPump, 441, 0.0, 0.0, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsWellPump].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsWellPump].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsWellPump].name]['MonthlyScheduleMultipliers']) end def test_fuel_loads @@ -4153,9 +4153,9 @@ def test_fuel_loads end XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_fuel_load_values(default_hpxml_bldg, HPXML::FuelLoadTypeGrill, 33, 0.0, 0.0, 1.0, Schedule.FuelLoadsGrillWeekdayFractions, Schedule.FuelLoadsGrillWeekendFractions, Schedule.FuelLoadsGrillMonthlyMultipliers) - _test_default_fuel_load_values(default_hpxml_bldg, HPXML::FuelLoadTypeLighting, 20, 0.0, 0.0, 1.0, Schedule.FuelLoadsLightingWeekdayFractions, Schedule.FuelLoadsLightingWeekendFractions, Schedule.FuelLoadsLightingMonthlyMultipliers) - _test_default_fuel_load_values(default_hpxml_bldg, HPXML::FuelLoadTypeFireplace, 67, 0.5, 0.1, 1.0, Schedule.FuelLoadsFireplaceWeekdayFractions, Schedule.FuelLoadsFireplaceWeekendFractions, Schedule.FuelLoadsFireplaceMonthlyMultipliers) + _test_default_fuel_load_values(default_hpxml_bldg, HPXML::FuelLoadTypeGrill, 33, 0.0, 0.0, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsGrill].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsGrill].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsGrill].name]['MonthlyScheduleMultipliers']) + _test_default_fuel_load_values(default_hpxml_bldg, HPXML::FuelLoadTypeLighting, 20, 0.0, 0.0, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsLighting].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsLighting].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsLighting].name]['MonthlyScheduleMultipliers']) + _test_default_fuel_load_values(default_hpxml_bldg, HPXML::FuelLoadTypeFireplace, 67, 0.5, 0.1, 1.0, @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsFireplace].name]['WeekdayScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsFireplace].name]['WeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:FuelLoadsFireplace].name]['MonthlyScheduleMultipliers']) end def _test_measure() diff --git a/HPXMLtoOpenStudio/tests/test_schedules.rb b/HPXMLtoOpenStudio/tests/test_schedules.rb index aef4a19c63..534c9aad69 100644 --- a/HPXMLtoOpenStudio/tests/test_schedules.rb +++ b/HPXMLtoOpenStudio/tests/test_schedules.rb @@ -117,18 +117,18 @@ def test_simple_vacancy_schedules unavailable_month_hrs = { 0 => 31.0 * 24.0, 11 => 31.0 * 24.0 } - assert_in_epsilon(6020 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[Constants.ObjectNameOccupants]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameOccupants + ' schedule'), @tol) - assert_in_epsilon(3049 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.LightingMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingInterior + ' schedule'), @tol) - assert_in_epsilon(2895 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.LightingMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) + assert_in_epsilon(6020 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:Occupants].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameOccupants + ' schedule'), @tol) + assert_in_epsilon(3049 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingInterior + ' schedule'), @tol) + assert_in_epsilon(2895 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) assert_in_epsilon(6673, get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameRefrigerator + ' schedule'), @tol) - assert_in_epsilon(2441 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.CookingRangeMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameCookingRange + ' schedule'), @tol) - assert_in_epsilon(3285 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.DishwasherMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameDishwasher + ' schedule'), @tol) - assert_in_epsilon(4248 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.ClothesWasherMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameClothesWasher + ' schedule'), @tol) - assert_in_epsilon(4502 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.ClothesDryerMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameClothesDryer + ' schedule'), @tol) - assert_in_epsilon(6880 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.PlugLoadsOtherMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameMiscPlugLoads + ' schedule'), @tol) - assert_in_epsilon(3373 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.PlugLoadsTVMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameMiscTelevision + ' schedule'), @tol) - assert_in_epsilon(4204 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.FixturesMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameFixtures + ' schedule'), @tol) - assert_in_epsilon(4244 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.RecirculationPumpMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameHotWaterRecircPump + ' schedule'), @tol) + assert_in_epsilon(2441 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:CookingRange].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameCookingRange + ' schedule'), @tol) + assert_in_epsilon(3285 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:Dishwasher].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameDishwasher + ' schedule'), @tol) + assert_in_epsilon(4248 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameClothesWasher + ' schedule'), @tol) + assert_in_epsilon(4502 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameClothesDryer + ' schedule'), @tol) + assert_in_epsilon(6880 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameMiscPlugLoads + ' schedule'), @tol) + assert_in_epsilon(3373 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameMiscTelevision + ' schedule'), @tol) + assert_in_epsilon(4204 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterFixtures].name]['WaterFixturesMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameFixtures + ' schedule'), @tol) + assert_in_epsilon(4244 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameHotWaterRecircPump + ' schedule'), @tol) assert_in_epsilon(5000 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:GeneralWaterUse].name]['GeneralWaterUseMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameGeneralWaterUse + ' schedule'), @tol) assert_in_epsilon(8760, get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameMechanicalVentilationHouseFan + ' schedule'), @tol) end @@ -169,17 +169,17 @@ def test_simple_power_outage_schedules unavailable_month_hrs = { 6 => 31.0 * 24.0 - 15.0 } assert_in_epsilon(6020, get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameOccupants + ' schedule'), @tol) - assert_in_epsilon(3049 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.LightingMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingInterior + ' schedule'), @tol) - assert_in_epsilon(2895 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.LightingMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) - assert_in_epsilon(6673 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.RefrigeratorMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameRefrigerator + ' schedule'), @tol) - assert_in_epsilon(2441 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.CookingRangeMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameCookingRange + ' schedule'), @tol) - assert_in_epsilon(3285 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.DishwasherMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameDishwasher + ' schedule'), @tol) - assert_in_epsilon(4248 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.ClothesWasherMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameClothesWasher + ' schedule'), @tol) - assert_in_epsilon(4502 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.ClothesDryerMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameClothesDryer + ' schedule'), @tol) - assert_in_epsilon(6880 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.PlugLoadsOtherMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameMiscPlugLoads + ' schedule'), @tol) - assert_in_epsilon(3373 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.PlugLoadsTVMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameMiscTelevision + ' schedule'), @tol) - assert_in_epsilon(4204 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.FixturesMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameFixtures + ' schedule'), @tol) - assert_in_epsilon(4244 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.RecirculationPumpMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameHotWaterRecircPump + ' schedule'), @tol) + assert_in_epsilon(3049 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingInterior + ' schedule'), @tol) + assert_in_epsilon(2895 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) + assert_in_epsilon(6673 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:Refrigerator].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameRefrigerator + ' schedule'), @tol) + assert_in_epsilon(2441 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:CookingRange].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameCookingRange + ' schedule'), @tol) + assert_in_epsilon(3285 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:Dishwasher].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameDishwasher + ' schedule'), @tol) + assert_in_epsilon(4248 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameClothesWasher + ' schedule'), @tol) + assert_in_epsilon(4502 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameClothesDryer + ' schedule'), @tol) + assert_in_epsilon(6880 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameMiscPlugLoads + ' schedule'), @tol) + assert_in_epsilon(3373 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['MonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameMiscTelevision + ' schedule'), @tol) + assert_in_epsilon(4204 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterFixtures].name]['WaterFixturesMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameFixtures + ' schedule'), @tol) + assert_in_epsilon(4244 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameHotWaterRecircPump + ' schedule'), @tol) assert_in_epsilon(5000, get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameGeneralWaterUse + ' schedule'), @tol) assert_in_epsilon(8760 * get_available_hrs_ratio(unavailable_month_hrs), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameMechanicalVentilationHouseFan + ' schedule'), @tol) end @@ -267,7 +267,7 @@ def test_stochastic_vacancy_schedules assert_in_epsilon(6689 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Occupants].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Occupants].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(2086 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingInterior].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingInterior].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(2086 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingGarage].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingGarage].name, schedules: sf.tmp_schedules), @tol) - assert_in_epsilon(4342 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.LightingMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) + assert_in_epsilon(4342 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) assert_in_epsilon(534 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:CookingRange].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:CookingRange].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(213 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Dishwasher].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Dishwasher].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(134 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:ClothesWasher].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:ClothesWasher].name, schedules: sf.tmp_schedules), @tol) @@ -325,7 +325,7 @@ def test_stochastic_vacancy_schedules2 assert_in_epsilon(6689 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Occupants].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Occupants].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(2086 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingInterior].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingInterior].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(2086 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingGarage].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingGarage].name, schedules: sf.tmp_schedules), @tol) - assert_in_epsilon(4342 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.LightingMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) + assert_in_epsilon(4342 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) assert_in_epsilon(534 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:CookingRange].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:CookingRange].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(213 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Dishwasher].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Dishwasher].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(134 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:ClothesWasher].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:ClothesWasher].name, schedules: sf.tmp_schedules), @tol) @@ -409,7 +409,7 @@ def test_stochastic_power_outage_schedules assert_in_epsilon(6689, sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Occupants].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(2086 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingInterior].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingInterior].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(2086 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingGarage].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingGarage].name, schedules: sf.tmp_schedules), @tol) - assert_in_epsilon(4342 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.LightingMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) + assert_in_epsilon(4342 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) assert_in_epsilon(534 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:CookingRange].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:CookingRange].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(213 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Dishwasher].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Dishwasher].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(134 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:ClothesWasher].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:ClothesWasher].name, schedules: sf.tmp_schedules), @tol) @@ -469,7 +469,7 @@ def test_stochastic_power_outage_schedules2 assert_in_epsilon(6689, sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Occupants].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(2086 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingInterior].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingInterior].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(2086 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingGarage].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:LightingGarage].name, schedules: sf.tmp_schedules), @tol) - assert_in_epsilon(4342 * get_available_hrs_ratio(unavailable_month_hrs, Schedule.LightingMonthlyMultipliers), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) + assert_in_epsilon(4342 * get_available_hrs_ratio(unavailable_month_hrs, @default_schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['InteriorMonthlyScheduleMultipliers']), get_annual_equivalent_full_load_hrs(model, Constants.ObjectNameLightingExterior + ' schedule'), @tol) assert_in_epsilon(534 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:CookingRange].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:CookingRange].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(213 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Dishwasher].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:Dishwasher].name, schedules: sf.tmp_schedules), @tol) assert_in_epsilon(134 - sf.period_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:ClothesWasher].name, period: unavailable_period), sf.annual_equivalent_full_load_hrs(col_name: SchedulesFile::Columns[:ClothesWasher].name, schedules: sf.tmp_schedules), @tol) From 9e8139e74b95837fc7da86e2a68df7f3888cb70c Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Wed, 31 Jul 2024 13:28:47 -0700 Subject: [PATCH 08/22] Update docs and validation test file. --- HPXMLtoOpenStudio/measure.xml | 18 +--- HPXMLtoOpenStudio/tests/test_validation.rb | 8 +- docs/source/workflow_inputs.rst | 111 ++++++++++----------- 3 files changed, 60 insertions(+), 77 deletions(-) diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index 562763808d..d5dae953ee 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - d6980f7a-ce15-4b60-9a5a-284ba9803050 - 2024-07-31T18:42:51Z + 2fc8fe46-d289-40eb-aeb0-18d1844736df + 2024-07-31T20:28:10Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -641,18 +641,6 @@ test 8FBBC133 - - results_annual.csv - csv - test - 02140231 - - - results_design_load_details.csv - csv - test - 974D58FB - test_airflow.rb rb @@ -741,7 +729,7 @@ test_validation.rb rb test - CFDFF5FB + 1CE88B24 test_water_heater.rb diff --git a/HPXMLtoOpenStudio/tests/test_validation.rb b/HPXMLtoOpenStudio/tests/test_validation.rb index 796d94b118..a60043b614 100644 --- a/HPXMLtoOpenStudio/tests/test_validation.rb +++ b/HPXMLtoOpenStudio/tests/test_validation.rb @@ -22,6 +22,8 @@ def setup @tmp_csv_path = File.join(@sample_files_path, 'tmp.csv') @tmp_output_path = File.join(@sample_files_path, 'tmp_output') FileUtils.mkdir_p(@tmp_output_path) + + @default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() end def teardown @@ -1880,9 +1882,9 @@ def test_ruby_warning_messages hpxml_bldg.header.schedules_filepaths << File.join(File.dirname(__FILE__), '../resources/schedule_files/occupancy-non-stochastic.csv') hpxml_bldg.hot_water_distributions[0].system_type = HPXML::DHWDistTypeRecirc hpxml_bldg.hot_water_distributions[0].recirculation_control_type = HPXML::DHWRecircControlTypeNone - hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekday_fractions = Schedule.RecirculationPumpWithoutControlWeekdayFractions - hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekend_fractions = Schedule.RecirculationPumpWithoutControlWeekendFractions - hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = Schedule.RecirculationPumpMonthlyMultipliers + hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekday_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekdayScheduleFractions'] + hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekend_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekendScheduleFractions'] + hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers'] elsif ['schedule-file-and-refrigerators-freezer-coefficients'].include? warning_case hpxml, hpxml_bldg = _create_hpxml('base.xml') hpxml_bldg.header.schedules_filepaths << File.join(File.dirname(__FILE__), '../resources/schedule_files/occupancy-stochastic.csv') diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index 520daaac37..3aa898d1e3 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -584,11 +584,11 @@ Building occupancy is entered in ``/HPXML/Building/BuildingDetails/BuildingSumma \- **single-family attached or apartment unit**: NumberofBedrooms = -0.68 + 1.09 * NumberofResidents - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used (see table below). + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used (see table below). .. [#] Sensible and latent internal gains from general water use (floor mopping, shower evaporation, water films on showers, tubs & sinks surfaces, plant watering, etc.), as defined by `ANSI/RESNET/ICC 301-2019 `_. .. [#] If GeneralWaterUseWeekdayScheduleFractions or GeneralWaterUseWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used (see table below). - .. [#] If GeneralWaterUseMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used (see table below). + .. [#] If GeneralWaterUseMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/building_occupancy.csv @@ -4003,15 +4003,15 @@ An in-unit recirculation hot water distribution system is entered as a ``/HPXML/ .. [#] BranchPipingLength is the length of the branch hot water piping from the recirculation loop to the farthest hot water fixture from the recirculation loop, measured longitudinally from plans, assuming the branch hot water piping does not run diagonally. .. [#] PumpPower default based on `ANSI/RESNET/ICC 301-2019 `_. .. [#] Additional drain water heat recovery inputs are described in :ref:`water_heater_dwhr`. - .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), defaults as: + .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used: - \- **no control**, **timer**: "0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" (based on Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C) + \- **no control**, **timer**: based on Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C - \- **manual demand control**, **presence sensor demand control**: "0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" (based on Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C) + \- **manual demand control**, **presence sensor demand control**: based on Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C - \- **temperature**: "0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055" (based on Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C) + \- **temperature**: based on Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C - .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". + .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/recirculation.csv @@ -4069,15 +4069,15 @@ A shared recirculation hot water distribution system (serving multiple dwelling \- **no control**: The pump runs continuously. - .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), defaults as: + .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used: - \- **no control**, **timer**: "0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" (based on Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C) + \- **no control**, **timer**: based on Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C - \- **manual demand control**, **presence sensor demand control**: "0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" (based on Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C) + \- **manual demand control**, **presence sensor demand control**: based on Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C - \- **temperature**: "0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055" (based on Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C) + \- **temperature**: based on Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C - .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), defaults to: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". + .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/recirculation.csv @@ -4141,8 +4141,8 @@ Additional information can be entered in ``/HPXML/Building/BuildingDetails/Syste ``extension/WaterFixturesMonthlyScheduleMultipliers`` array No See [#]_ 12 comma-separated monthly multipliers ===================================================== ======= ===== =========== ======== ======== =============================================== - .. [#] If WaterFixturesWeekdayScheduleFractions or WaterFixturesWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026". - .. [#] If WaterFixturesMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". + .. [#] If WaterFixturesWeekdayScheduleFractions or WaterFixturesWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If WaterFixturesMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/water_fixtures.csv @@ -4402,8 +4402,8 @@ If not entered, the simulation will not include a clothes washer. IMEF may be found using the manufacturer’s data sheet, the `California Energy Commission Appliance Database `_, the `EPA ENERGY STAR website `_, or another reputable source. .. [#] AttachedToWaterHeatingSystem must reference a ``WaterHeatingSystem``; AttachedToHotWaterDistribution must reference a ``HotWaterDistribution``. .. [#] AttachedToWaterHeatingSystem (or AttachedToHotWaterDistribution) only required if IsSharedAppliance is true. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017". - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/clothes_washer.csv @@ -4456,8 +4456,8 @@ If not entered, the simulation will not include a clothes dryer. CEF = EF / 1.15. CEF may be found using the manufacturer’s data sheet, the `California Energy Commission Appliance Database `_, the `EPA ENERGY STAR website `_, or another reputable source. .. [#] VentedFlowRate default based on the `2010 BAHSP `_. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024". - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/clothes_dryer.csv @@ -4499,8 +4499,8 @@ If not entered, the simulation will not include a dishwasher. RatedAnnualkWh = 215.0 / EF. .. [#] AttachedToWaterHeatingSystem must reference a ``WaterHeatingSystem``; AttachedToHotWaterDistribution must reference a ``HotWaterDistribution``. .. [#] AttachedToWaterHeatingSystem (or AttachedToHotWaterDistribution) only required if IsSharedAppliance is true. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031". - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/dishwasher.csv @@ -4549,10 +4549,10 @@ If not entered, the simulation will not include a refrigerator. RatedAnnualkWh = 637.0 + 18.0 * NumberofBedrooms. .. [#] If multiple refrigerators are specified, there must be exactly one refrigerator described with PrimaryIndicator=true. .. [#] Either schedule fraction inputs (WeekdayScheduleFractions/WeekendScheduleFractions/MonthlyScheduleMultipliers) or schedule coefficient inputs (ConstantScheduleCoefficients/TemperatureScheduleCoefficients) may be used, but not both. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values from Figure 16 of the `2010 BAHSP `_ are used: "0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041". - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values from Figure 24 of the `2010 BAHSP `_ are used: "0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837". - .. [#] If ConstantScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values from Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, 0.077, -0.118, -0.247, -0.445, -0.544". - .. [#] If TemperatureScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values from Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) from Figure 16 of the `2010 BAHSP `_ are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) from Figure 24 of the `2010 BAHSP `_ are used. + .. [#] If ConstantScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values (see table below) from Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If TemperatureScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values (see table below) from Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C are used. .. csv-table:: :file: data/refrigerators.csv @@ -4591,8 +4591,8 @@ If not entered, the simulation will not include a standalone freezer. .. [#] If Location not provided, defaults to "garage" if present, otherwise "basement - unconditioned" if present, otherwise "basement - conditioned" if present, otherwise "conditioned space". .. [#] RatedAnnualkWh default based on the `2010 BAHSP `_. .. [#] Either schedule fraction inputs (WeekdayScheduleFractions/WeekendScheduleFractions/MonthlyScheduleMultipliers) or schedule coefficient inputs (ConstantScheduleCoefficients/TemperatureScheduleCoefficients) may be used, but not both. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values from Figure 16 of the `2010 BAHSP `_ are used: "0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041". - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values from Figure 24 of the `2010 BAHSP `_ are used: "0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) from Figure 16 of the `2010 BAHSP `_ are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) from Figure 24 of the `2010 BAHSP `_ are used. .. csv-table:: :file: data/freezers.csv @@ -4658,8 +4658,8 @@ If not entered, the simulation will not include a cooking range/oven. .. [#] Location choices are "conditioned space", "basement - conditioned", "basement - unconditioned", "garage", "other housing unit", "other heated space", "other multifamily buffer space", or "other non-freezing space". See :ref:`hpxmllocations` for descriptions. .. [#] FuelType choices are "natural gas", "fuel oil", "fuel oil 1", "fuel oil 2", "fuel oil 4", "fuel oil 5/6", "diesel", "propane", "kerosene", "coal", "coke", "bituminous coal", "anthracite coal", "electricity", "wood", or "wood pellets". - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015". - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/cooking_range.csv @@ -4711,12 +4711,12 @@ With either lighting specification, additional information can be entered in ``/ ``extension/ExteriorMonthlyScheduleMultipliers`` array No See [#]_ 12 comma-separated exterior monthly multipliers ================================================ ======= ====== =========== ======== ======== =============================================== - .. [#] If InteriorWeekdayScheduleFractions or InteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018". - .. [#] If InteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values from Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20". - .. [#] If GarageWeekdayScheduleFractions or GarageWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039". - .. [#] If GarageMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values from Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20". - .. [#] If ExteriorWeekdayScheduleFractions or ExteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047". - .. [#] If ExteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values from Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20". + .. [#] If InteriorWeekdayScheduleFractions or InteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If InteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If GarageWeekdayScheduleFractions or GarageWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If GarageMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If ExteriorWeekdayScheduleFractions or ExteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If ExteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C are used. .. csv-table:: :file: data/lighting.csv @@ -4782,7 +4782,7 @@ If exterior holiday lighting is specified, additional information is entered in =============================== ======= ======= =========== ======== ============= ============================================ .. [#] If Value not provided, defaults to 1.1 for single-family detached and 0.55 for others. - .. [#] If WeekdayScheduleFractions not provided (and :ref:`schedules_detailed` not used), defaults to: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019. + .. [#] If WeekdayScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/holiday_lighting.csv @@ -4808,7 +4808,7 @@ If not entered, the simulation will not include a ceiling fan. .. [#] If Efficiency and LabelEnergyUse not provided, LabelEnergyUse defaults to 42.6 W based on ANSI/RESNET/ICC 301-2022 Addendum C. If both are provided, LabelEnergyUse will be used in the model. .. [#] If Count not provided, defaults to NumberofBedrooms + 1 based on `ANSI/RESNET/ICC 301-2019 `_. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used: "0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), defaults based on monthly average outdoor temperatures per `ANSI/RESNET/ICC 301-2019 `_ .. csv-table:: @@ -4863,8 +4863,8 @@ If not entered, the simulation will not include a pool pump. If "none" is entered, the simulation will not include a pool pump. .. [#] If Value not provided, defaults based on the `2010 BAHSP `_: 158.5 / 0.070 * (0.5 + 0.25 * NumberofBedrooms / 3 + 0.25 * ConditionedFloorArea / 1920). If NumberofResidents provided, this value will be adjusted using the :ref:`buildingoccupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Figure 23 of the `2010 BAHSP `_ are used: "0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003". - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values from Figure 24 of the `2010 BAHSP `_ are used: "1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 23 of the `2010 BAHSP `_ are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 24 of the `2010 BAHSP `_ are used. .. csv-table:: :file: data/pool_pump.csv @@ -4900,8 +4900,8 @@ If not entered, the simulation will not include a pool heater. If NumberofResidents provided, this value will be adjusted using the :ref:`buildingoccupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Figure 23 of the `2010 BAHSP `_ are used: "0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003". - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values from Figure 24 of the `2010 BAHSP `_ are used: "1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 23 of the `2010 BAHSP `_ are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 24 of the `2010 BAHSP `_ are used. .. csv-table:: :file: data/pool_heater.csv @@ -4945,8 +4945,8 @@ If not entered, the simulation will not include a permanent spa pump. If "none" is entered, the simulation will not include a permanent spa pump. .. [#] If Value not provided, defaults based on the `2010 BAHSP `_: 59.5 / 0.059 * (0.5 + 0.25 * NumberofBedrooms / 3 + 0.25 * ConditionedFloorArea / 1920). If NumberofResidents provided, this value will be adjusted using the :ref:`buildingoccupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Figure 23 of the `2010 BAHSP `_ are used: "0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024". - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values from Figure 24 of the `2010 BAHSP `_ are used: "0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 23 of the `2010 BAHSP `_ are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 24 of the `2010 BAHSP `_ are used. .. csv-table:: :file: data/permanent_spa_pump.csv @@ -4982,8 +4982,8 @@ If not entered, the simulation will not include a permanent spa heater. If NumberofResidents provided, this value will be adjusted using the :ref:`buildingoccupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Figure 23 of the `2010 BAHSP `_ are used: "0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024". - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values from Figure 24 of the `2010 BAHSP `_ are used: "0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 23 of the `2010 BAHSP `_ are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 24 of the `2010 BAHSP `_ are used. .. csv-table:: :file: data/permanent_spa_heater.csv @@ -5054,17 +5054,17 @@ If not entered, the simulation will not include that type of plug load. \- **electric vehicle charging**: 0.0 - .. [#] If WeekdayScheduleFractions or WeekdendScheduleFractions not provided (and :ref:`schedules_detailed` not used), defaults as: + .. [#] If WeekdayScheduleFractions or WeekdendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used: - \- **other**: "0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037" (based on Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C) + \- **other**: based on Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C - \- **TV other**: "0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034" (based on Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C) + \- **TV other**: based on Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C - \- **well pump**: "0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" (based on Figure 23 of the `2010 BAHSP `_) + \- **well pump**: based on Figure 23 of the `2010 BAHSP `_ - \- **electric vehicle charging**: "0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" + \- **electric vehicle charging**: based on engineering judgment - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/plug_loads.csv @@ -5110,15 +5110,8 @@ If not entered, the simulation will not include that type of fuel load. .. [#] If FracSensible not provided, defaults to 0.5 for fireplace and 0.0 for all other types. .. [#] The remaining fraction (i.e., 1.0 - FracSensible - FracLatent) must be > 0 and is assumed to be heat gain outside conditioned space and thus lost. .. [#] If FracLatent not provided, defaults to 0.1 for fireplace and 0.0 for all other types. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Figure 23 of the `2010 BAHSP `_ are used: - - \- **grill**: "0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007"; - - \- **fireplace**: "0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065"; - - \- **lighting**: "0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065". - - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used: "1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0". + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 23 of the `2010 BAHSP `_ are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/fuel_loads.csv From ebaae98acdbc889a368327344a42128e4d1de9ed Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Thu, 1 Aug 2024 09:34:24 -0700 Subject: [PATCH 09/22] Update TODOs for pv, battery, generator files. --- HPXMLtoOpenStudio/measure.rb | 6 +-- HPXMLtoOpenStudio/measure.xml | 14 +++---- HPXMLtoOpenStudio/resources/battery.rb | 48 ++++++++++-------------- HPXMLtoOpenStudio/resources/generator.rb | 18 +++++---- HPXMLtoOpenStudio/resources/geometry.rb | 4 +- HPXMLtoOpenStudio/resources/pv.rb | 36 +++++++++--------- 6 files changed, 60 insertions(+), 66 deletions(-) diff --git a/HPXMLtoOpenStudio/measure.rb b/HPXMLtoOpenStudio/measure.rb index 2bd3438133..e0e71e9724 100644 --- a/HPXMLtoOpenStudio/measure.rb +++ b/HPXMLtoOpenStudio/measure.rb @@ -2368,7 +2368,7 @@ def create_ducts(model, hvac_distribution, spaces) # TODO # # @param model [OpenStudio::Model::Model] OpenStudio Model object - # @return [TODO] TODO + # @return [void] def add_photovoltaics(model) @hpxml_bldg.pv_systems.each do |pv_system| next if pv_system.inverter.inverter_efficiency == @hpxml_bldg.pv_systems[0].inverter.inverter_efficiency @@ -2383,7 +2383,7 @@ def add_photovoltaics(model) # TODO # # @param model [OpenStudio::Model::Model] OpenStudio Model object - # @return [TODO] TODO + # @return [void] def add_generators(model) @hpxml_bldg.generators.each do |generator| Generator.apply(model, @nbeds, generator, @hpxml_bldg.building_construction.number_of_units) @@ -2395,7 +2395,7 @@ def add_generators(model) # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param spaces [Hash] Map of HPXML locations => OpenStudio Space objects - # @return [TODO] TODO + # @return [void] def add_batteries(runner, model, spaces) @hpxml_bldg.batteries.each do |battery| # Assign space diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index d5dae953ee..ec6a59725b 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 2fc8fe46-d289-40eb-aeb0-18d1844736df - 2024-07-31T20:28:10Z + f2a8d71b-4de3-4d38-94ba-13ab36d0dde9 + 2024-08-01T16:33:28Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -183,7 +183,7 @@ measure.rb rb script - 4281DB73 + 1A30EF09 airflow.rb @@ -195,7 +195,7 @@ battery.rb rb resource - CE2C1767 + C4D2705E constants.rb @@ -333,13 +333,13 @@ generator.rb rb resource - 40380F84 + 4D05482A geometry.rb rb resource - E606A192 + C039095C hotwater_appliances.rb @@ -453,7 +453,7 @@ pv.rb rb resource - AA60733A + C664DCB6 schedule_files/battery.csv diff --git a/HPXMLtoOpenStudio/resources/battery.rb b/HPXMLtoOpenStudio/resources/battery.rb index f5a5f8465a..9a0deb7bb9 100644 --- a/HPXMLtoOpenStudio/resources/battery.rb +++ b/HPXMLtoOpenStudio/resources/battery.rb @@ -1,17 +1,21 @@ # frozen_string_literal: true -# TODO +# Collection of methods for adding battery-related OpenStudio objects. module Battery - # TODO + # Apply a home battery to the model using OpenStudio ElectricLoadCenterStorageLiIonNMCBattery, ElectricLoadCenterDistribution, ElectricLoadCenterStorageConverter, OtherEquipment, and EMS objects. + # Battery without PV specified, and no charging/discharging schedule provided; battery is assumed to operate as backup and will not be modeled. + # The system may be shared, in which case nominal/usable capacity (kWh) and usable fraction are apportioned to the dwelling unit by total number of bedrooms served. + # A battery may share an ElectricLoadCenterDistribution object with PV; electric buss type and storage operation scheme are therefore changed. + # Round trip efficiency is (temporarily) applied as an EMS program b/c E+ input is not hooked up. # # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param nbeds [Integer] Number of bedrooms in the dwelling unit - # @param pv_systems [TODO] TODO - # @param battery [TODO] TODO + # @param pv_systems [HPXML::PVSystems] Object that defines each solar electric photovoltaic (PV) system + # @param battery [HPXML::Battery] Object that defines a single home battery # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files # @param unit_multiplier [Integer] Number of similar dwelling units - # @return [TODO] TODO + # @return [nil or void] nil if unscheduled battery w/out PV; battery is not modeled def self.apply(runner, model, nbeds, pv_systems, battery, schedules_file, unit_multiplier) charging_schedule = nil discharging_schedule = nil @@ -195,10 +199,10 @@ def self.apply(runner, model, nbeds, pv_systems, battery, schedules_file, unit_m elcs.additionalProperties.setFeature('UsableCapacity_kWh', Float(usable_capacity_kwh)) end - # TODO + # Get default location, lifetime model, nominal capacity/voltage, round trip efficiency, and usable fraction for a battery. # - # @param has_garage [TODO] TODO - # @return [TODO] TODO + # @param has_garage [Boolean] whether the HPXML Building object has a garage + # @return [Hash] map of battery properties to default values def self.get_battery_default_values(has_garage = false) if has_garage location = HPXML::LocationGarage @@ -213,33 +217,21 @@ def self.get_battery_default_values(has_garage = false) usable_fraction: 0.9 } # Fraction of usable capacity to nominal capacity end - # TODO + # Get nominal capacity (amp-hours) from nominal capacity (kWh) and voltage (V). # - # @param nominal_capacity_kwh [TODO] TODO - # @param nominal_voltage [TODO] TODO - # @return [TODO] TODO + # @param nominal_capacity_kwh [Double] nominal (total) capacity (kWh) + # @param nominal_voltage [Double] nominal voltage (V) + # @return [Double] nominal (total) capacity (Ah) def self.get_Ah_from_kWh(nominal_capacity_kwh, nominal_voltage) return nominal_capacity_kwh * 1000.0 / nominal_voltage end - # TODO + # Get nominal capacity (kWh) from nominal capacity (amp-hours) and voltage (V). # - # @param nominal_capacity_ah [TODO] TODO - # @param nominal_voltage [TODO] TODO - # @return [TODO] TODO + # @param nominal_capacity_ah [Double] nominal (total) capacity (Ah) + # @param nominal_voltage [Double] nominal voltage (V) + # @return [Double] nominal (total) capacity (kWh) def self.get_kWh_from_Ah(nominal_capacity_ah, nominal_voltage) return nominal_capacity_ah * nominal_voltage / 1000.0 end - - # TODO - # - # @param battery [TODO] TODO - # @return [TODO] TODO - def self.get_usable_capacity_kWh(battery) - usable_capacity_kwh = battery.usable_capacity_kwh - if usable_capacity_kwh.nil? - usable_capacity_kwh = get_kWh_from_Ah(battery.usable_capacity_ah, battery.nominal_voltage) # kWh - end - return usable_capacity_kwh - end end diff --git a/HPXMLtoOpenStudio/resources/generator.rb b/HPXMLtoOpenStudio/resources/generator.rb index c6bcdd36fa..655a796315 100644 --- a/HPXMLtoOpenStudio/resources/generator.rb +++ b/HPXMLtoOpenStudio/resources/generator.rb @@ -1,14 +1,16 @@ # frozen_string_literal: true -# TODO +# Collection of methods for adding generator-related OpenStudio objects. module Generator - # TODO + # Apply a on-site power generator to the model using OpenStudio GeneratorMicroTurbine and ElectricLoadCenterDistribution objects. + # The system may be shared, in which case annual consumption (kBtu) and output (kWh) are apportioned to the dwelling unit by total number of bedrooms served. + # A new ElectricLoadCenterDistribution object is created for each generator. # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param nbeds [Integer] Number of bedrooms in the dwelling unit - # @param generator [TODO] TODO + # @param generator [HPXML::Generator] Object that defines a single generator that provides on-site power # @param unit_multiplier [Integer] Number of similar dwelling units - # @return [TODO] TODO + # @return [void] def self.apply(model, nbeds, generator, unit_multiplier) obj_name = generator.id @@ -57,10 +59,10 @@ def self.apply(model, nbeds, generator, unit_multiplier) elcd.setElectricalBussType('AlternatingCurrent') end - # TODO + # Create a cubic constant curve for electrical efficiency function of temperature and part load ratio. # # @param model [OpenStudio::Model::Model] OpenStudio Model object - # @return [TODO] TODO + # @return [OpenStudio::Model::CurveCubic] OpenStudio CurveCubic object def self.create_curve_cubic_constant(model) constant_cubic = OpenStudio::Model::CurveCubic.new(model) constant_cubic.setName('ConstantCubic') @@ -73,10 +75,10 @@ def self.create_curve_cubic_constant(model) return constant_cubic end - # TODO + # Create a biquadratic constant curve for electrical power function of temperature and elevation. # # @param model [OpenStudio::Model::Model] OpenStudio Model object - # @return [TODO] TODO + # @return [OpenStudio::Model::CurveBiquadratic] OpenStudio CurveBiquadratic object def self.create_curve_biquadratic_constant(model) const_biquadratic = OpenStudio::Model::CurveBiquadratic.new(model) const_biquadratic.setName('ConstantBiquadratic') diff --git a/HPXMLtoOpenStudio/resources/geometry.rb b/HPXMLtoOpenStudio/resources/geometry.rb index 6d767b5e20..2c15231a23 100644 --- a/HPXMLtoOpenStudio/resources/geometry.rb +++ b/HPXMLtoOpenStudio/resources/geometry.rb @@ -6,7 +6,7 @@ module Geometry # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings - # @return [TODO] TODO + # @return [void] def self.tear_down_model(model:, runner:) handles = OpenStudio::UUIDVector.new @@ -655,7 +655,7 @@ def self.calculate_zone_volume(hpxml_bldg:, # TODO # - # @param location [TODO] TODO + # @param location [String] the general HPXML location # @return [TODO] TODO def self.get_temperature_scheduled_space_values(location:) if location == HPXML::LocationOtherHeatedSpace diff --git a/HPXMLtoOpenStudio/resources/pv.rb b/HPXMLtoOpenStudio/resources/pv.rb index 75116217d2..3ed6afef13 100644 --- a/HPXMLtoOpenStudio/resources/pv.rb +++ b/HPXMLtoOpenStudio/resources/pv.rb @@ -1,14 +1,16 @@ # frozen_string_literal: true -# TODO +# Collection of methods for adding photovoltaic-related OpenStudio objects. module PV - # TODO + # Apply a photovoltaic system to the model using OpenStudio ElectricLoadCenterDistribution, ElectricLoadCenterInverterPVWatts, and GeneratorPVWatts objects. + # The system may be shared, in which case max power is apportioned to the dwelling unit by total number of bedrooms served. + # In case an ElectricLoadCenterDistribution object does not already exist, a new ElectricLoadCenterInverterPVWatts object is set on a new ElectricLoadCenterDistribution object. # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param nbeds [Integer] Number of bedrooms in the dwelling unit - # @param pv_system [TODO] TODO + # @param pv_system [HPXML::PVSystem] Object that defines a single solar electric photovoltaic (PV) system # @param unit_multiplier [Integer] Number of similar dwelling units - # @return [TODO] TODO + # @return [void] def self.apply(model, nbeds, pv_system, unit_multiplier) obj_name = pv_system.id @@ -63,39 +65,37 @@ def self.apply(model, nbeds, pv_system, unit_multiplier) elcd.addGenerator(gpvwatts) end - # TODO + # Calculation from HEScore for module power from year. # - # @param year_modules_manufactured [TODO] TODO - # @return [TODO] TODO + # @param year_modules_manufactured [Integer] year of manufacture of the modules + # @return [Double] the calculated module power from year (W/panel) def self.calc_module_power_from_year(year_modules_manufactured) - # Calculation from HEScore return 13.3 * year_modules_manufactured - 26494.0 # W/panel end - # TODO + # Calculation from HEScore for losses fraction from year. # - # @param year_modules_manufactured [TODO] TODO - # @param default_loss_fraction [TODO] TODO - # @return [TODO] TODO + # @param year_modules_manufactured [Integer] year of manufacture of the modules + # @param default_loss_fraction [Double] the default loss fraction + # @return [Double] the calculated losses fraction from year def self.calc_losses_fraction_from_year(year_modules_manufactured, default_loss_fraction) - # Calculation from HEScore age = Time.new.year - year_modules_manufactured age_losses = 1.0 - 0.995**Float(age) losses_fraction = 1.0 - (1.0 - default_loss_fraction) * (1.0 - age_losses) return losses_fraction end - # TODO + # Get the default inverter efficiency. # - # @return [TODO] TODO + # @return [Double] the default inverter efficiency def self.get_default_inv_eff() return 0.96 # PVWatts default inverter efficiency end - # TODO + # Get the default system losses. # - # @param year_modules_manufactured [TODO] TODO - # @return [TODO] TODO + # @param year_modules_manufactured [Integer] year of manufacture of the modules + # @return [Double] the default system losses def self.get_default_system_losses(year_modules_manufactured = nil) default_loss_fraction = 0.14 # PVWatts default system losses if not year_modules_manufactured.nil? From 88515ffecfdb429113c983d938fa53bc0cc1cda1 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Thu, 1 Aug 2024 12:58:45 -0700 Subject: [PATCH 10/22] Refactor schedule generator constants. --- BuildResidentialScheduleFile/measure.xml | 20 ++-- .../resources/README.md | 97 ++++++++++++++-- .../resources/constants.rb | 109 ++++-------------- .../resources/monthly_multipliers.csv | 10 ++ .../resources/schedules.rb | 46 ++++++-- .../resources/schedules_config.md | 44 ------- 6 files changed, 163 insertions(+), 163 deletions(-) create mode 100644 BuildResidentialScheduleFile/resources/monthly_multipliers.csv delete mode 100644 BuildResidentialScheduleFile/resources/schedules_config.md diff --git a/BuildResidentialScheduleFile/measure.xml b/BuildResidentialScheduleFile/measure.xml index 2a89373b68..7e911adcaa 100644 --- a/BuildResidentialScheduleFile/measure.xml +++ b/BuildResidentialScheduleFile/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_schedule_file f770b2db-1a9f-4e99-99a7-7f3161a594b1 - d92ee468-5c79-4dff-a600-0fc4a2ac5e68 - 2024-07-31T17:45:43Z + 9114572f-14cc-4417-a866-8b72cacba49e + 2024-08-01T19:57:35Z 03F02484 BuildResidentialScheduleFile Schedule File Builder @@ -139,7 +139,7 @@ README.md md resource - 08194138 + 9F3C063D clothes_dryer_consumption_dist.csv @@ -169,7 +169,7 @@ constants.rb rb resource - B2B70AD9 + 962DC751 cooking_consumption_dist.csv @@ -220,16 +220,16 @@ 419E598E - schedules.rb - rb + monthly_multipliers.csv + csv resource - 74CF1B59 + C0B68227 - schedules_config.md - md + schedules.rb + rb resource - 916BF4C3 + BF9B4AEC shower_cluster_size_probability.csv diff --git a/BuildResidentialScheduleFile/resources/README.md b/BuildResidentialScheduleFile/resources/README.md index 08326521c9..d05c104d17 100644 --- a/BuildResidentialScheduleFile/resources/README.md +++ b/BuildResidentialScheduleFile/resources/README.md @@ -1,9 +1,16 @@ -Stochastic Occupancy Modeling introduces major changes to most occupant-related schedules. -Occupant activities are now generated on-the-fly and saved to CSV files used by `OpenStudio` Schedule:File objects. +# Stochastic Occupancy Modeling + +The `BuildResidentialScheduleFile` measure introduces major changes to most occupant-related schedules. + +## Overview + +Occupant activities are now generated on-the-fly and saved to CSV files used by OpenStudio/EnergyPlus `Schedule:File` objects. Schedules are generated using time-inhomogenous Markov chains derived from American Time Use Survey data, supplemented with sampling duration and power level from NEEA RBSA data, as well as DHW draw duration and flow rate data from Aquacraft/AWWA data. See [Stochastic simulation of occupant-driven energy use in a bottom-up residential building stock model](https://www.sciencedirect.com/science/article/pii/S0306261922011540) for a more complete description of the methodology. -The `BuildResidentialScheduleFile` measure outputs a schedule CSV file (available inside the `run` folder of each building simulation output). +## Outputs + +The `BuildResidentialScheduleFile` measure outputs schedule CSV files (available inside the `run` folder of each building simulation output). The schedule CSV file contains the following columns: * `occupants` * `lighting_interior` @@ -27,42 +34,108 @@ The `sleeping` column represents the fractional percent of the total number of o There are the same number of rows as the total simulation time-step (e.g., 35040 if 15-min, 8760 if hourly [8784, if leap year]). -The `ScheduleGenerator` class uses Markov chain based simulation to generate the schedule.csv. +## The `ScheduleGenerator` + +This class uses Markov chain based simulation to generate the schedule CSV files. To support that, several pre-generated set of files are used, contained in the following folders: * `weekday` * `weekend` -These two folders contain the Markov chain initial probability, Markov chain transition and also appliance duration probabilities csv files. +These two folders contain the Markov chain initial probability, Markov chain transition and also appliance duration probabilities CSV files. The appliance duration probabilities here are used during the Markov chain simulation to determine duration of various appliances. The files are divided into four clusters (cluster0 to cluster3), for 4 occupant behavior types. -`_consumption_dist.csv` +The following sections describe the remaining files found in the schedule generator resources folder. + +### `_consumption_dist.csv` These files contain the 15-min power consumption kWh samples for the given end use, obtained from RBSA (average 15-min end use kWh for each submetered home; N=number of homes with that end use). The schedule generator randomly picks one of these values to determine the power level of the appliance schedule. -`_duration_dist.csv` +Here, `` may be: +* `clothes_dryer` +* `clothes_washer` +* `cooking` +* `dishwasher` + +### `_duration_dist.csv` These files contain the samples of runtime duration of different end uses, in 15-min increments, generated from the RBSA dataset. So, a value of 3 means 45 minutes. Each row is for one household, and each column is the duration of one instance of the appliance running. -For the above `_consumption_dist.csv` and `_duration_dist.csv` files, `` may be: +Again, `` may be: * `clothes_dryer` * `clothes_washer` * `cooking` * `dishwasher` -`_cluster_size_probability.csv` +### `_cluster_size_probability.csv` These files contain the probability distribution of the event cluster size for different domestic hot water end uses, obtained from the HotWaterEventScheduleGenerator Excel file. The first row is the probability of a cluster size of 1 event, second row for probability of cluster size of 2 events and so on. -For the above `_cluster_size_probability.csv` files, `` may be: +Here, `` may be: * `hot_water_clothes_washer` * `hot_water_dishwasher` * `shower` -`constants.rb` +### `_event_duration_probability.csv` + +TODO + +Again, `` may be: +* `hot_water_clothes_washer` +* `hot_water_dishwasher` +* `shower` + +### `constants.rb` and `monthly_multipliers.csv` + +These files contain various miscellaneous configurations for the schedule generator. +Their meanings and sources are defined below. + +#### Occupancy Types + +Occupancy cluster types: Mostly Home, Early Regular Worker, Mostly Away, Regular Worker. +Probabilities are derived from ATUS using the k-modes algorithm. + +#### Plug Loads + +This is the baseline schedule for misc plugload, lighting and ceiling fan. +It will be modified based on occupancy. +Television plugload uses the same schedule as misc plugload. + +#### Lighting + +Indoor lighting schedule is generated on the fly. +Garage lighting uses the same schedule as indoor lighting. + +#### Cooking + +Monthly energy use multipliers for cooking stove/oven/range from average of multiple end-use submetering datasets (HEMS, RBSAM, ELCAP, Mass Res 1, Pecan St.). +Power draw distribution is based on csv files. + +#### Clothes Dryer + +Monthly energy use multipliers for clothes dryer from average of multiple end-use submetering datasets (HEMS, RBSAM, ELCAP, Mass Res 1, Pecan St., FSEC). +Power draw distribution is based on csv files. + +#### Clothes Washer + +Monthly energy use multipliers for clothes washer and dishwasher from average of multiple end-use submetering datasets (generally HEMS, RBSAM, ELCAP, Mass Res 1, and Pecan St.). +Power draw distribution is based on csv files. + +#### Dishwasher + +Monthly energy use multipliers for clothes washer and dishwasher from average of multiple end-use submetering datasets (generally HEMS, RBSAM, ELCAP, Mass Res 1, Pecan St., and FSEC). +Power draw distribution is based on csv files. + +#### Water Draw Events + +Probabilities for all water draw events are extracted from DHW event generators. +The onset, duration, events_per_cluster_probs, flow rate mean and std could all refer to the DHW event generator excel sheet ('event characteristics' and 'Start Times' sheet). + +#### Sink -This file contains various miscellaneous configurations for the schedule generator, and their meanings and sources are defined within the file. +avg_sink_clusters_per_hh -> Average sink cluster per house hold. Set to 6657 for U.S. average of 2.53 occupants per household, based on relationship of 6885 clusters for 25 gpd, from Building America DHW Event Schedule Generator, +Set to 6657 for U.S. average of 2.53 occupants per household, based on relationship of 6885 clusters for 25 gpd, from Building America DHW Event Schedule Generator. diff --git a/BuildResidentialScheduleFile/resources/constants.rb b/BuildResidentialScheduleFile/resources/constants.rb index e506c0d02e..2df36a4768 100644 --- a/BuildResidentialScheduleFile/resources/constants.rb +++ b/BuildResidentialScheduleFile/resources/constants.rb @@ -4,225 +4,162 @@ module Constants # TODO # - # @return [TODO] TODO + # @return [String] TODO def self.OccupancyTypesProbabilities return '0.381, 0.297, 0.165, 0.157' end # TODO # - # @return [TODO] TODO - def self.LightingInteriorMonthlyMultipliers - return '1.075, 1.064951905, 1.0375, 1.0, 0.9625, 0.935048095, 0.925, 0.935048095, 0.9625, 1.0, 1.0375, 1.064951905' - end - - # TODO - # - # @return [TODO] TODO + # @return [String] TODO def self.SinkDurationProbability return '0.901242, 0.076572, 0.01722, 0.003798, 0.000944, 0.000154, 4.6e-05, 2.2e-05, 2.0e-06' end # TODO # - # @return [TODO] TODO + # @return [String] TODO def self.SinkEventsPerClusterProbs return '0.62458, 0.18693, 0.08011, 0.0433, 0.02178, 0.01504, 0.0083, 0.00467, 0.0057, 0.00285, 0.00181, 0.00233, 0.0013, 0.00104, 0.00026' end # TODO # - # @return [TODO] TODO + # @return [String] TODO def self.SinkHourlyOnsetProb return '0.007, 0.018, 0.042, 0.062, 0.066, 0.062, 0.054, 0.05, 0.049, 0.045, 0.041, 0.043, 0.048, 0.065, 0.075, 0.069, 0.057, 0.048, 0.04, 0.027, 0.014, 0.007, 0.005, 0.005' end # TODO # - # @return [TODO] TODO + # @return [Integer] TODO def self.SinkAvgSinkClustersPerHH return 6657 end # TODO # - # @return [TODO] TODO + # @return [Integer] TODO def self.SinkMinutesBetweenEventGap return 2 end # TODO # - # @return [TODO] TODO + # @return [Double] TODO def self.SinkFlowRateMean return 1.14 end # TODO # - # @return [TODO] TODO + # @return [Double] TODO def self.SinkFlowRateStd return 0.61 end # TODO # - # @return [TODO] TODO + # @return [Integer] TODO def self.ShowerMinutesBetweenEventGap return 30 end # TODO # - # @return [TODO] TODO + # @return [Double] TODO def self.ShowerFlowRateMean return 2.25 end # TODO # - # @return [TODO] TODO + # @return [Double] TODO def self.ShowerFlowRateStd return 0.68 end # TODO # - # @return [TODO] TODO + # @return [Double] TODO def self.BathBathToShowerRatio return 0.078843 end # TODO # - # @return [TODO] TODO + # @return [Double] TODO def self.BathDurationMean return 5.65 end # TODO # - # @return [TODO] TODO + # @return [Double] TODO def self.BathDurationStd return 2.09 end # TODO # - # @return [TODO] TODO + # @return [Double] TODO def self.BathFlowRateMean return 4.4 end # TODO # - # @return [TODO] TODO + # @return [Double] TODO def self.BathFlowRateStd return 1.17 end # TODO # - # @return [TODO] TODO + # @return [Double] TODO def self.HotWaterDishwasherFlowRateMean return 1.39 end # TODO # - # @return [TODO] TODO + # @return [Double] TODO def self.HotWaterDishwasherFlowRateStd return 0.2 end # TODO # - # @return [TODO] TODO + # @return [Integer] TODO def self.HotWaterDishwasherMinutesBetweenEventGap return 10 end # TODO # - # @return [TODO] TODO - def self.HotWaterDishwasherMonthlyMultiplier - return '1.083, 1.056, 1.023, 0.999, 0.975, 0.944, 0.918, 0.928, 0.938, 0.984, 1.059, 1.094' - end - - # TODO - # - # @return [TODO] TODO + # @return [Double] TODO def self.HotWaterClothesWasherFlowRateMean return 2.2 end # TODO # - # @return [TODO] TODO + # @return [Double] TODO def self.HotWaterClothesWasherFlowRateStd return 0.62 end # TODO # - # @return [TODO] TODO + # @return [Integer] TODO def self.HotWaterClothesWasherMinutesBetweenEventGap return 4 end # TODO # - # @return [TODO] TODO + # @return [String] TODO def self.HotWaterClothesWasherLoadSizeProbability return '0.682926829, 0.227642276, 0.056910569, 0.032520325' end - - # TODO - # - # @return [TODO] TODO - def self.HotWaterClothesWasherMonthlyMultiplier - return '0.968, 1.013, 0.99, 1.034, 1.019, 1.015, 1.048, 1, 1.021, 0.949, 0.945, 0.999' - end - - # TODO - # - # @return [TODO] TODO - def self.ClothesDryerMonthlyMultiplier - return '1.09, 1.054, 1.044, 0.996, 0.992, 0.967, 0.931, 0.906, 0.923, 0.955, 1.035, 1.108' - end - - # TODO - # - # @return [TODO] TODO - def self.CookingMonthlyMultiplier - return '1.038, 1.026, 0.976, 0.945, 0.965, 0.947, 0.939, 0.965, 0.967, 1.006, 1.098, 1.129' - end - - # TODO - # - # @return [TODO] TODO - def self.PlugLoadsOtherMonthlyMultipliers - return '1.248, 1.257, 0.993, 0.989, 0.993, 0.827, 0.821, 0.821, 0.827, 0.99, 0.987, 1.248' - end - - # TODO - # - # @return [TODO] TODO - def self.PlugLoadsTVWeekdayFractions - return '0.037, 0.018, 0.009, 0.007, 0.011, 0.018, 0.029, 0.040, 0.049, 0.058, 0.065, 0.072, 0.076, 0.086, 0.091, 0.102, 0.127, 0.156, 0.210, 0.294, 0.363, 0.344, 0.208, 0.090' - end - - # TODO - # - # @return [TODO] TODO - def self.PlugLoadsTVWeekendFractions - return '0.044, 0.022, 0.012, 0.008, 0.011, 0.014, 0.024, 0.043, 0.071, 0.094, 0.112, 0.123, 0.132, 0.156, 0.178, 0.196, 0.206, 0.213, 0.251, 0.330, 0.388, 0.358, 0.226, 0.103' - end - - # TODO - # - # @return [TODO] TODO - def self.PlugLoadsTVMonthlyMultipliers - return '1.137, 1.129, 0.961, 0.969, 0.961, 0.993, 0.996, 0.96, 0.993, 0.867, 0.86, 1.137' - end end diff --git a/BuildResidentialScheduleFile/resources/monthly_multipliers.csv b/BuildResidentialScheduleFile/resources/monthly_multipliers.csv new file mode 100644 index 0000000000..5a330d8e76 --- /dev/null +++ b/BuildResidentialScheduleFile/resources/monthly_multipliers.csv @@ -0,0 +1,10 @@ +Schedule Name,Element,Values +lighting_interior,LightingInteriorMonthlyMultipliers,"1.075, 1.064951905, 1.0375, 1.0, 0.9625, 0.935048095, 0.925, 0.935048095, 0.9625, 1.0, 1.0375, 1.064951905" +dishwasher,HotWaterDishwasherMonthlyMultiplier,"1.083, 1.056, 1.023, 0.999, 0.975, 0.944, 0.918, 0.928, 0.938, 0.984, 1.059, 1.094" +clothes_washer,HotWaterClothesWasherMonthlyMultiplier,"0.968, 1.013, 0.99, 1.034, 1.019, 1.015, 1.048, 1, 1.021, 0.949, 0.945, 0.999" +clothes_dryer,ClothesDryerMonthlyMultiplier,"1.09, 1.054, 1.044, 0.996, 0.992, 0.967, 0.931, 0.906, 0.923, 0.955, 1.035, 1.108" +cooking_range,CookingMonthlyMultiplier,"1.038, 1.026, 0.976, 0.945, 0.965, 0.947, 0.939, 0.965, 0.967, 1.006, 1.098, 1.129" +plug_loads_other,PlugLoadsOtherMonthlyMultipliers,"1.248, 1.257, 0.993, 0.989, 0.993, 0.827, 0.821, 0.821, 0.827, 0.99, 0.987, 1.248" +plug_loads_tv,PlugLoadsTVWeekdayFractions,"0.037, 0.018, 0.009, 0.007, 0.011, 0.018, 0.029, 0.040, 0.049, 0.058, 0.065, 0.072, 0.076, 0.086, 0.091, 0.102, 0.127, 0.156, 0.210, 0.294, 0.363, 0.344, 0.208, 0.090" +plug_loads_tv,PlugLoadsTVWeekendFractions,"0.044, 0.022, 0.012, 0.008, 0.011, 0.014, 0.024, 0.043, 0.071, 0.094, 0.112, 0.123, 0.132, 0.156, 0.178, 0.196, 0.206, 0.213, 0.251, 0.330, 0.388, 0.358, 0.226, 0.103" +plug_loads_tv,PlugLoadsTVMonthlyMultipliers,"1.137, 1.129, 0.961, 0.969, 0.961, 0.993, 0.996, 0.96, 0.993, 0.867, 0.86, 1.137" diff --git a/BuildResidentialScheduleFile/resources/schedules.rb b/BuildResidentialScheduleFile/resources/schedules.rb index 0664962056..c1300d82d7 100644 --- a/BuildResidentialScheduleFile/resources/schedules.rb +++ b/BuildResidentialScheduleFile/resources/schedules.rb @@ -93,6 +93,7 @@ def create(args:, def create_stochastic_schedules(args:, weather:) default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() + monthly_multipliers_csv_data = get_monthly_multipliers_csv_data() # initialize a random number generator prng = Random.new(@random_seed) @@ -169,15 +170,15 @@ def create_stochastic_schedules(args:, # shape of all_simulated_values is [2, 35040, 7] i.e. (geometry_num_occupants, period_in_a_year, number_of_states) plugload_other_weekday_sch = Schedule.validate_values(default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['WeekdayScheduleFractions'], 24, 'weekday') # Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C plugload_other_weekend_sch = Schedule.validate_values(default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['WeekendScheduleFractions'], 24, 'weekend') # Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C - plugload_other_monthly_multiplier = Schedule.validate_values(Constants.PlugLoadsOtherMonthlyMultipliers, 12, 'monthly') # Figure 24 of the 2010 BAHSP - plugload_tv_weekday_sch = Schedule.validate_values(Constants.PlugLoadsTVWeekdayFractions, 24, 'weekday') # American Time Use Survey - plugload_tv_weekend_sch = Schedule.validate_values(Constants.PlugLoadsTVWeekendFractions, 24, 'weekend') # American Time Use Survey - plugload_tv_monthly_multiplier = Schedule.validate_values(Constants.PlugLoadsTVMonthlyMultipliers, 12, 'monthly') # American Time Use Survey + plugload_other_monthly_multiplier = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['PlugLoadsOtherMonthlyMultipliers'], 12, 'monthly') # Figure 24 of the 2010 BAHSP + plugload_tv_weekday_sch = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['PlugLoadsTVWeekdayFractions'], 24, 'weekday') # American Time Use Survey + plugload_tv_weekend_sch = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['PlugLoadsTVWeekendFractions'], 24, 'weekend') # American Time Use Survey + plugload_tv_monthly_multiplier = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['PlugLoadsTVMonthlyMultipliers'], 12, 'monthly') # American Time Use Survey ceiling_fan_weekday_sch = Schedule.validate_values(default_schedules_csv_data[SchedulesFile::Columns[:CeilingFan].name]['WeekdayScheduleFractions'], 24, 'weekday') # Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C ceiling_fan_weekend_sch = Schedule.validate_values(default_schedules_csv_data[SchedulesFile::Columns[:CeilingFan].name]['WeekendScheduleFractions'], 24, 'weekend') # Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C ceiling_fan_monthly_multiplier = Schedule.validate_values(Schedule.CeilingFanMonthlyMultipliers(weather: weather), 12, 'monthly') # based on monthly average outdoor temperatures per ANSI/RESNET/ICC 301-2019 - sch = get_building_america_lighting_schedule(args[:time_zone_utc_offset], args[:latitude], args[:longitude]) + sch = get_building_america_lighting_schedule(args[:time_zone_utc_offset], args[:latitude], args[:longitude], monthly_multipliers_csv_data) interior_lighting_schedule = [] num_days_in_months = Constants.NumDaysInMonths(@sim_year) for month in 0..11 @@ -460,7 +461,7 @@ def create_stochastic_schedules(args:, step = 0 last_state = 0 start_time = Time.new(@sim_year, 1, 1) - hot_water_dishwasher_monthly_multiplier = Schedule.validate_values(Constants.HotWaterDishwasherMonthlyMultiplier, 12, 'hot_water_dishwasher_monthly_multiplier') + hot_water_dishwasher_monthly_multiplier = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:Dishwasher].name]['HotWaterDishwasherMonthlyMultiplier'], 12, 'hot_water_dishwasher_monthly_multiplier') while step < mkc_steps_in_a_year dish_state = sum_across_occupants(all_simulated_values, 4, step, max_clip: 1) step_jump = 1 @@ -485,8 +486,8 @@ def create_stochastic_schedules(args:, step = 0 last_state = 0 start_time = Time.new(@sim_year, 1, 1) - clothes_dryer_monthly_multiplier = Schedule.validate_values(Constants.ClothesDryerMonthlyMultiplier, 12, 'clothes_dryer_monthly_multiplier') - hot_water_clothes_washer_monthly_multiplier = Schedule.validate_values(Constants.HotWaterClothesWasherMonthlyMultiplier, 12, 'hot_water_clothes_washer_monthly_multiplier') + clothes_dryer_monthly_multiplier = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['ClothesDryerMonthlyMultiplier'], 12, 'clothes_dryer_monthly_multiplier') + hot_water_clothes_washer_monthly_multiplier = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['HotWaterClothesWasherMonthlyMultiplier'], 12, 'hot_water_clothes_washer_monthly_multiplier') while step < mkc_steps_in_a_year clothes_state = sum_across_occupants(all_simulated_values, 2, step, max_clip: 1) step_jump = 1 @@ -515,7 +516,7 @@ def create_stochastic_schedules(args:, step = 0 last_state = 0 start_time = Time.new(@sim_year, 1, 1) - cooking_monthly_multiplier = Schedule.validate_values(Constants.CookingMonthlyMultiplier, 12, 'cooking_monthly_multiplier') + cooking_monthly_multiplier = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:CookingRange].name]['CookingMonthlyMultiplier'], 12, 'cooking_monthly_multiplier') while step < mkc_steps_in_a_year cooking_state = sum_across_occupants(all_simulated_values, 3, step, max_clip: 1) step_jump = 1 @@ -960,7 +961,7 @@ def weighted_random(prng, weights) # @param latitude [TODO] TODO # @param longitude [TODO] TODO # @return [TODO] TODO - def get_building_america_lighting_schedule(time_zone_utc_offset, latitude, longitude) + def get_building_america_lighting_schedule(time_zone_utc_offset, latitude, longitude, monthly_multipliers_csv_data) # Sunrise and sunset hours sunrise_hour = [] sunset_hour = [] @@ -990,7 +991,7 @@ def get_building_america_lighting_schedule(time_zone_utc_offset, latitude, longi end june_kws = [0.060, 0.040, 0.035, 0.025, 0.020, 0.020, 0.020, 0.020, 0.020, 0.020, 0.020, 0.020, 0.020, 0.025, 0.030, 0.030, 0.025, 0.020, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.020, 0.020, 0.020, 0.025, 0.025, 0.030, 0.030, 0.035, 0.045, 0.060, 0.085, 0.125, 0.145, 0.130, 0.105, 0.080] - lighting_seasonal_multiplier = Constants.LightingInteriorMonthlyMultipliers.split(',').map { |v| v.to_f } + lighting_seasonal_multiplier = monthly_multipliers_csv_data[SchedulesFile::Columns[:LightingInterior].name]['LightingInteriorMonthlyMultipliers'].split(',').map { |v| v.to_f } amplConst1 = 0.929707907917098 sunsetLag1 = 2.45016230615269 stdDevCons1 = 1.58679810983444 @@ -1069,4 +1070,27 @@ def get_building_america_lighting_schedule(time_zone_utc_offset, latitude, longi return lighting_sch end + + # Get the monthly multipliers for interior lighting, dishwasher, clothes washer/dryer, cooking range, and other/TV plug loads. + # + # @return [Hash] { schedule_name => { element => values, ... }, ... } + def get_monthly_multipliers_csv_data() + monthly_multipliers_csv = File.join(File.dirname(__FILE__), 'monthly_multipliers.csv') + if not File.exist?(monthly_multipliers_csv) + fail 'Could not find monthly_multipliers.csv' + end + + require 'csv' + monthly_multipliers_csv_data = {} + CSV.foreach(monthly_multipliers_csv, headers: true) do |row| + schedule_name = row['Schedule Name'] + element = row['Element'] + values = row['Values'] + + monthly_multipliers_csv_data[schedule_name] = {} if !monthly_multipliers_csv_data.keys.include?(schedule_name) + monthly_multipliers_csv_data[schedule_name][element] = values + end + + return monthly_multipliers_csv_data + end end diff --git a/BuildResidentialScheduleFile/resources/schedules_config.md b/BuildResidentialScheduleFile/resources/schedules_config.md deleted file mode 100644 index e590b0344f..0000000000 --- a/BuildResidentialScheduleFile/resources/schedules_config.md +++ /dev/null @@ -1,44 +0,0 @@ -### Occupancy Types - -Occupancy cluster types: Mostly Home, Early Regular Worker, Mostly Away, Regular Worker. -Probabilities are derived from ATUS using the k-modes algorithm. - -### Plug Loads - -This is the baseline schedule for misc plugload, lighting and ceiling fan. -It will be modified based on occupancy. -Television plugload uses the same schedule as misc plugload. - -### Lighting - -Indoor lighting schedule is generated on the fly. -Garage lighting uses the same schedule as indoor lighting. - -### Cooking - -Monthly energy use multipliers for cooking stove/oven/range from average of multiple end-use submetering datasets (HEMS, RBSAM, ELCAP, Mass Res 1, Pecan St.). -Power draw distribution is based on csv files. - -### Clothes Dryer - -Monthly energy use multipliers for clothes dryer from average of multiple end-use submetering datasets (HEMS, RBSAM, ELCAP, Mass Res 1, Pecan St., FSEC). -Power draw distribution is based on csv files. - -### Clothes Washer - -Monthly energy use multipliers for clothes washer and dishwasher from average of multiple end-use submetering datasets (generally HEMS, RBSAM, ELCAP, Mass Res 1, and Pecan St.). -Power draw distribution is based on csv files. - -### Dishwasher - -Monthly energy use multipliers for clothes washer and dishwasher from average of multiple end-use submetering datasets (generally HEMS, RBSAM, ELCAP, Mass Res 1, Pecan St., and FSEC). -Power draw distribution is based on csv files. - -### Water Draw Events - -Probabilities for all water draw events are extracted from DHW event generators. -The onset, duration, events_per_cluster_probs, flow rate mean and std could all refer to the DHW event generator excel sheet ('event characteristics' and 'Start Times' sheet). - -#### Sink - -avg_sink_clusters_per_hh -> Average sink cluster per house hold. Set to 6657 for U.S. average of 2.53 occupants per household, based on relationship of 6885 clusters for 25 gpd, from Building America DHW Event Schedule Generator, From 33a863cd9cfd1081857613b60b9f09c4930ad34b Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Tue, 6 Aug 2024 14:12:06 -0700 Subject: [PATCH 11/22] Revert refactor that apparently causes tiny decimal differences. --- HPXMLtoOpenStudio/measure.xml | 6 +++--- HPXMLtoOpenStudio/resources/schedules.rb | 10 ++++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index ec6a59725b..a1d20ac7b4 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - f2a8d71b-4de3-4d38-94ba-13ab36d0dde9 - 2024-08-01T16:33:28Z + 34910dc3-11ab-487b-aab7-75375c1c812b + 2024-08-06T21:11:36Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -579,7 +579,7 @@ schedules.rb rb resource - 007595EE + 29B1D0F0 simcontrols.rb diff --git a/HPXMLtoOpenStudio/resources/schedules.rb b/HPXMLtoOpenStudio/resources/schedules.rb index f58b570a1b..ebfe14f826 100644 --- a/HPXMLtoOpenStudio/resources/schedules.rb +++ b/HPXMLtoOpenStudio/resources/schedules.rb @@ -514,8 +514,14 @@ def calc_max_val() # # @return [Double] the calculated schedule adjustment def calc_sch_adjust() - sum_wkdy = @weekday_hourly_values.sum - sum_wknd = @weekend_hourly_values.sum + sum_wkdy = 0 + sum_wknd = 0 + @weekday_hourly_values.each do |v| + sum_wkdy += v + end + @weekend_hourly_values.each do |v| + sum_wknd += v + end if sum_wkdy < sum_wknd return 1 / sum_wknd end From 0c20ed71cf984a2fb4f5d1532d79e6d6696e0cd6 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Tue, 6 Aug 2024 15:21:34 -0700 Subject: [PATCH 12/22] Add data source columns to both schedules csv files. --- BuildResidentialScheduleFile/measure.xml | 12 +- .../resources/README.md | 2 +- ...{monthly_multipliers.csv => schedules.csv} | 20 +- .../resources/schedules.rb | 46 ++--- HPXMLtoOpenStudio/measure.xml | 18 +- .../resources/data/default_schedules.csv | 176 +++++++++--------- HPXMLtoOpenStudio/resources/hpxml_defaults.rb | 9 +- HPXMLtoOpenStudio/tests/test_defaults.rb | 2 +- HPXMLtoOpenStudio/tests/test_schedules.rb | 2 +- docs/source/data/building_occupancy.csv | 14 +- docs/source/data/ceiling_fans.csv | 6 +- docs/source/data/clothes_dryer.csv | 8 +- docs/source/data/clothes_washer.csv | 8 +- docs/source/data/cooking_range.csv | 8 +- .../create_default_schedules_csv_tables.rb | 10 +- docs/source/data/dishwasher.csv | 8 +- docs/source/data/freezers.csv | 8 +- docs/source/data/fuel_loads.csv | 20 +- docs/source/data/holiday_lighting.csv | 6 +- docs/source/data/lighting.csv | 20 +- docs/source/data/permanent_spa_heater.csv | 8 +- docs/source/data/permanent_spa_pump.csv | 8 +- docs/source/data/plug_loads.csv | 26 +-- docs/source/data/pool_heater.csv | 8 +- docs/source/data/pool_pump.csv | 8 +- docs/source/data/recirculation.csv | 16 +- docs/source/data/refrigerators.csv | 17 +- docs/source/data/water_fixtures.csv | 8 +- docs/source/workflow_inputs.rst | 91 ++++----- 29 files changed, 287 insertions(+), 306 deletions(-) rename BuildResidentialScheduleFile/resources/{monthly_multipliers.csv => schedules.csv} (68%) diff --git a/BuildResidentialScheduleFile/measure.xml b/BuildResidentialScheduleFile/measure.xml index 7e911adcaa..de4e286589 100644 --- a/BuildResidentialScheduleFile/measure.xml +++ b/BuildResidentialScheduleFile/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_schedule_file f770b2db-1a9f-4e99-99a7-7f3161a594b1 - 9114572f-14cc-4417-a866-8b72cacba49e - 2024-08-01T19:57:35Z + b0a27d02-c1af-44cc-903a-403fbfc2f0de + 2024-08-06T22:17:59Z 03F02484 BuildResidentialScheduleFile Schedule File Builder @@ -139,7 +139,7 @@ README.md md resource - 9F3C063D + 7060BE69 clothes_dryer_consumption_dist.csv @@ -220,16 +220,16 @@ 419E598E - monthly_multipliers.csv + schedules.csv csv resource - C0B68227 + D5ECA021 schedules.rb rb resource - BF9B4AEC + F48302F1 shower_cluster_size_probability.csv diff --git a/BuildResidentialScheduleFile/resources/README.md b/BuildResidentialScheduleFile/resources/README.md index d05c104d17..2561418635 100644 --- a/BuildResidentialScheduleFile/resources/README.md +++ b/BuildResidentialScheduleFile/resources/README.md @@ -89,7 +89,7 @@ Again, `` may be: * `hot_water_dishwasher` * `shower` -### `constants.rb` and `monthly_multipliers.csv` +### `constants.rb` and `schedules.csv` These files contain various miscellaneous configurations for the schedule generator. Their meanings and sources are defined below. diff --git a/BuildResidentialScheduleFile/resources/monthly_multipliers.csv b/BuildResidentialScheduleFile/resources/schedules.csv similarity index 68% rename from BuildResidentialScheduleFile/resources/monthly_multipliers.csv rename to BuildResidentialScheduleFile/resources/schedules.csv index 5a330d8e76..8101b83617 100644 --- a/BuildResidentialScheduleFile/resources/monthly_multipliers.csv +++ b/BuildResidentialScheduleFile/resources/schedules.csv @@ -1,10 +1,10 @@ -Schedule Name,Element,Values -lighting_interior,LightingInteriorMonthlyMultipliers,"1.075, 1.064951905, 1.0375, 1.0, 0.9625, 0.935048095, 0.925, 0.935048095, 0.9625, 1.0, 1.0375, 1.064951905" -dishwasher,HotWaterDishwasherMonthlyMultiplier,"1.083, 1.056, 1.023, 0.999, 0.975, 0.944, 0.918, 0.928, 0.938, 0.984, 1.059, 1.094" -clothes_washer,HotWaterClothesWasherMonthlyMultiplier,"0.968, 1.013, 0.99, 1.034, 1.019, 1.015, 1.048, 1, 1.021, 0.949, 0.945, 0.999" -clothes_dryer,ClothesDryerMonthlyMultiplier,"1.09, 1.054, 1.044, 0.996, 0.992, 0.967, 0.931, 0.906, 0.923, 0.955, 1.035, 1.108" -cooking_range,CookingMonthlyMultiplier,"1.038, 1.026, 0.976, 0.945, 0.965, 0.947, 0.939, 0.965, 0.967, 1.006, 1.098, 1.129" -plug_loads_other,PlugLoadsOtherMonthlyMultipliers,"1.248, 1.257, 0.993, 0.989, 0.993, 0.827, 0.821, 0.821, 0.827, 0.99, 0.987, 1.248" -plug_loads_tv,PlugLoadsTVWeekdayFractions,"0.037, 0.018, 0.009, 0.007, 0.011, 0.018, 0.029, 0.040, 0.049, 0.058, 0.065, 0.072, 0.076, 0.086, 0.091, 0.102, 0.127, 0.156, 0.210, 0.294, 0.363, 0.344, 0.208, 0.090" -plug_loads_tv,PlugLoadsTVWeekendFractions,"0.044, 0.022, 0.012, 0.008, 0.011, 0.014, 0.024, 0.043, 0.071, 0.094, 0.112, 0.123, 0.132, 0.156, 0.178, 0.196, 0.206, 0.213, 0.251, 0.330, 0.388, 0.358, 0.226, 0.103" -plug_loads_tv,PlugLoadsTVMonthlyMultipliers,"1.137, 1.129, 0.961, 0.969, 0.961, 0.993, 0.996, 0.96, 0.993, 0.867, 0.86, 1.137" +Schedule Name,Element,Values,Data Source +lighting_interior,LightingInteriorMonthlyMultipliers,"1.075, 1.064951905, 1.0375, 1.0, 0.9625, 0.935048095, 0.925, 0.935048095, 0.9625, 1.0, 1.0375, 1.064951905", +dishwasher,HotWaterDishwasherMonthlyMultiplier,"1.083, 1.056, 1.023, 0.999, 0.975, 0.944, 0.918, 0.928, 0.938, 0.984, 1.059, 1.094", +clothes_washer,HotWaterClothesWasherMonthlyMultiplier,"0.968, 1.013, 0.99, 1.034, 1.019, 1.015, 1.048, 1, 1.021, 0.949, 0.945, 0.999", +clothes_dryer,ClothesDryerMonthlyMultiplier,"1.09, 1.054, 1.044, 0.996, 0.992, 0.967, 0.931, 0.906, 0.923, 0.955, 1.035, 1.108", +cooking_range,CookingMonthlyMultiplier,"1.038, 1.026, 0.976, 0.945, 0.965, 0.947, 0.939, 0.965, 0.967, 1.006, 1.098, 1.129", +plug_loads_other,PlugLoadsOtherMonthlyMultipliers,"1.248, 1.257, 0.993, 0.989, 0.993, 0.827, 0.821, 0.821, 0.827, 0.99, 0.987, 1.248",Figure 24 of the `2010 BAHSP `_ +plug_loads_tv,PlugLoadsTVWeekdayFractions,"0.037, 0.018, 0.009, 0.007, 0.011, 0.018, 0.029, 0.040, 0.049, 0.058, 0.065, 0.072, 0.076, 0.086, 0.091, 0.102, 0.127, 0.156, 0.210, 0.294, 0.363, 0.344, 0.208, 0.090", +plug_loads_tv,PlugLoadsTVWeekendFractions,"0.044, 0.022, 0.012, 0.008, 0.011, 0.014, 0.024, 0.043, 0.071, 0.094, 0.112, 0.123, 0.132, 0.156, 0.178, 0.196, 0.206, 0.213, 0.251, 0.330, 0.388, 0.358, 0.226, 0.103", +plug_loads_tv,PlugLoadsTVMonthlyMultipliers,"1.137, 1.129, 0.961, 0.969, 0.961, 0.993, 0.996, 0.96, 0.993, 0.867, 0.86, 1.137",`American Time Use Survey `_ diff --git a/BuildResidentialScheduleFile/resources/schedules.rb b/BuildResidentialScheduleFile/resources/schedules.rb index c1300d82d7..731ef60e68 100644 --- a/BuildResidentialScheduleFile/resources/schedules.rb +++ b/BuildResidentialScheduleFile/resources/schedules.rb @@ -92,8 +92,8 @@ def create(args:, # @return [Boolean] true if successful def create_stochastic_schedules(args:, weather:) - default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() - monthly_multipliers_csv_data = get_monthly_multipliers_csv_data() + default_schedules_csv_data, _ = HPXMLDefaults.get_default_schedules_csv_data() + schedules_csv_data = get_schedules_csv_data() # initialize a random number generator prng = Random.new(@random_seed) @@ -170,15 +170,15 @@ def create_stochastic_schedules(args:, # shape of all_simulated_values is [2, 35040, 7] i.e. (geometry_num_occupants, period_in_a_year, number_of_states) plugload_other_weekday_sch = Schedule.validate_values(default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['WeekdayScheduleFractions'], 24, 'weekday') # Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C plugload_other_weekend_sch = Schedule.validate_values(default_schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['WeekendScheduleFractions'], 24, 'weekend') # Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C - plugload_other_monthly_multiplier = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['PlugLoadsOtherMonthlyMultipliers'], 12, 'monthly') # Figure 24 of the 2010 BAHSP - plugload_tv_weekday_sch = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['PlugLoadsTVWeekdayFractions'], 24, 'weekday') # American Time Use Survey - plugload_tv_weekend_sch = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['PlugLoadsTVWeekendFractions'], 24, 'weekend') # American Time Use Survey - plugload_tv_monthly_multiplier = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['PlugLoadsTVMonthlyMultipliers'], 12, 'monthly') # American Time Use Survey + plugload_other_monthly_multiplier = Schedule.validate_values(schedules_csv_data[SchedulesFile::Columns[:PlugLoadsOther].name]['PlugLoadsOtherMonthlyMultipliers'], 12, 'monthly') # Figure 24 of the 2010 BAHSP + plugload_tv_weekday_sch = Schedule.validate_values(schedules_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['PlugLoadsTVWeekdayFractions'], 24, 'weekday') # American Time Use Survey + plugload_tv_weekend_sch = Schedule.validate_values(schedules_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['PlugLoadsTVWeekendFractions'], 24, 'weekend') # American Time Use Survey + plugload_tv_monthly_multiplier = Schedule.validate_values(schedules_csv_data[SchedulesFile::Columns[:PlugLoadsTV].name]['PlugLoadsTVMonthlyMultipliers'], 12, 'monthly') # American Time Use Survey ceiling_fan_weekday_sch = Schedule.validate_values(default_schedules_csv_data[SchedulesFile::Columns[:CeilingFan].name]['WeekdayScheduleFractions'], 24, 'weekday') # Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C ceiling_fan_weekend_sch = Schedule.validate_values(default_schedules_csv_data[SchedulesFile::Columns[:CeilingFan].name]['WeekendScheduleFractions'], 24, 'weekend') # Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C ceiling_fan_monthly_multiplier = Schedule.validate_values(Schedule.CeilingFanMonthlyMultipliers(weather: weather), 12, 'monthly') # based on monthly average outdoor temperatures per ANSI/RESNET/ICC 301-2019 - sch = get_building_america_lighting_schedule(args[:time_zone_utc_offset], args[:latitude], args[:longitude], monthly_multipliers_csv_data) + sch = get_building_america_lighting_schedule(args[:time_zone_utc_offset], args[:latitude], args[:longitude], schedules_csv_data) interior_lighting_schedule = [] num_days_in_months = Constants.NumDaysInMonths(@sim_year) for month in 0..11 @@ -461,7 +461,7 @@ def create_stochastic_schedules(args:, step = 0 last_state = 0 start_time = Time.new(@sim_year, 1, 1) - hot_water_dishwasher_monthly_multiplier = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:Dishwasher].name]['HotWaterDishwasherMonthlyMultiplier'], 12, 'hot_water_dishwasher_monthly_multiplier') + hot_water_dishwasher_monthly_multiplier = Schedule.validate_values(schedules_csv_data[SchedulesFile::Columns[:Dishwasher].name]['HotWaterDishwasherMonthlyMultiplier'], 12, 'hot_water_dishwasher_monthly_multiplier') while step < mkc_steps_in_a_year dish_state = sum_across_occupants(all_simulated_values, 4, step, max_clip: 1) step_jump = 1 @@ -486,8 +486,8 @@ def create_stochastic_schedules(args:, step = 0 last_state = 0 start_time = Time.new(@sim_year, 1, 1) - clothes_dryer_monthly_multiplier = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['ClothesDryerMonthlyMultiplier'], 12, 'clothes_dryer_monthly_multiplier') - hot_water_clothes_washer_monthly_multiplier = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['HotWaterClothesWasherMonthlyMultiplier'], 12, 'hot_water_clothes_washer_monthly_multiplier') + clothes_dryer_monthly_multiplier = Schedule.validate_values(schedules_csv_data[SchedulesFile::Columns[:ClothesDryer].name]['ClothesDryerMonthlyMultiplier'], 12, 'clothes_dryer_monthly_multiplier') + hot_water_clothes_washer_monthly_multiplier = Schedule.validate_values(schedules_csv_data[SchedulesFile::Columns[:ClothesWasher].name]['HotWaterClothesWasherMonthlyMultiplier'], 12, 'hot_water_clothes_washer_monthly_multiplier') while step < mkc_steps_in_a_year clothes_state = sum_across_occupants(all_simulated_values, 2, step, max_clip: 1) step_jump = 1 @@ -516,7 +516,7 @@ def create_stochastic_schedules(args:, step = 0 last_state = 0 start_time = Time.new(@sim_year, 1, 1) - cooking_monthly_multiplier = Schedule.validate_values(monthly_multipliers_csv_data[SchedulesFile::Columns[:CookingRange].name]['CookingMonthlyMultiplier'], 12, 'cooking_monthly_multiplier') + cooking_monthly_multiplier = Schedule.validate_values(schedules_csv_data[SchedulesFile::Columns[:CookingRange].name]['CookingMonthlyMultiplier'], 12, 'cooking_monthly_multiplier') while step < mkc_steps_in_a_year cooking_state = sum_across_occupants(all_simulated_values, 3, step, max_clip: 1) step_jump = 1 @@ -961,7 +961,7 @@ def weighted_random(prng, weights) # @param latitude [TODO] TODO # @param longitude [TODO] TODO # @return [TODO] TODO - def get_building_america_lighting_schedule(time_zone_utc_offset, latitude, longitude, monthly_multipliers_csv_data) + def get_building_america_lighting_schedule(time_zone_utc_offset, latitude, longitude, schedules_csv_data) # Sunrise and sunset hours sunrise_hour = [] sunset_hour = [] @@ -991,7 +991,7 @@ def get_building_america_lighting_schedule(time_zone_utc_offset, latitude, longi end june_kws = [0.060, 0.040, 0.035, 0.025, 0.020, 0.020, 0.020, 0.020, 0.020, 0.020, 0.020, 0.020, 0.020, 0.025, 0.030, 0.030, 0.025, 0.020, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.020, 0.020, 0.020, 0.025, 0.025, 0.030, 0.030, 0.035, 0.045, 0.060, 0.085, 0.125, 0.145, 0.130, 0.105, 0.080] - lighting_seasonal_multiplier = monthly_multipliers_csv_data[SchedulesFile::Columns[:LightingInterior].name]['LightingInteriorMonthlyMultipliers'].split(',').map { |v| v.to_f } + lighting_seasonal_multiplier = schedules_csv_data[SchedulesFile::Columns[:LightingInterior].name]['LightingInteriorMonthlyMultipliers'].split(',').map { |v| v.to_f } amplConst1 = 0.929707907917098 sunsetLag1 = 2.45016230615269 stdDevCons1 = 1.58679810983444 @@ -1071,26 +1071,26 @@ def get_building_america_lighting_schedule(time_zone_utc_offset, latitude, longi return lighting_sch end - # Get the monthly multipliers for interior lighting, dishwasher, clothes washer/dryer, cooking range, and other/TV plug loads. + # Get the weekday/weekend schedule fractions for TV plug loads and monthly multipliers for interior lighting, dishwasher, clothes washer/dryer, cooking range, and other/TV plug loads. # # @return [Hash] { schedule_name => { element => values, ... }, ... } - def get_monthly_multipliers_csv_data() - monthly_multipliers_csv = File.join(File.dirname(__FILE__), 'monthly_multipliers.csv') - if not File.exist?(monthly_multipliers_csv) - fail 'Could not find monthly_multipliers.csv' + def get_schedules_csv_data() + schedules_csv = File.join(File.dirname(__FILE__), 'schedules.csv') + if not File.exist?(schedules_csv) + fail 'Could not find schedules.csv' end require 'csv' - monthly_multipliers_csv_data = {} - CSV.foreach(monthly_multipliers_csv, headers: true) do |row| + schedules_csv_data = {} + CSV.foreach(schedules_csv, headers: true) do |row| schedule_name = row['Schedule Name'] element = row['Element'] values = row['Values'] - monthly_multipliers_csv_data[schedule_name] = {} if !monthly_multipliers_csv_data.keys.include?(schedule_name) - monthly_multipliers_csv_data[schedule_name][element] = values + schedules_csv_data[schedule_name] = {} if !schedules_csv_data.keys.include?(schedule_name) + schedules_csv_data[schedule_name][element] = values end - return monthly_multipliers_csv_data + return schedules_csv_data end end diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index a1d20ac7b4..76378646c6 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 34910dc3-11ab-487b-aab7-75375c1c812b - 2024-08-06T21:11:36Z + 81ae20ed-4389-4454-bcd9-270e93037395 + 2024-08-06T22:21:07Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -267,7 +267,7 @@ data/default_schedules.csv csv resource - 4EA36A39 + C18EE5B0 data/g_functions/C_configurations_5m_v1.0.json @@ -357,7 +357,7 @@ hpxml_defaults.rb rb resource - 75E403AB + F070CC21 hpxml_schema/HPXML.xsd @@ -635,12 +635,6 @@ resource 93120E27 - - in.schedules.csv - csv - test - 8FBBC133 - test_airflow.rb rb @@ -657,7 +651,7 @@ test_defaults.rb rb test - 6A5F7A95 + 01FB25E6 test_enclosure.rb @@ -717,7 +711,7 @@ test_schedules.rb rb test - 08E3AAFF + C058372B test_simcontrols.rb diff --git a/HPXMLtoOpenStudio/resources/data/default_schedules.csv b/HPXMLtoOpenStudio/resources/data/default_schedules.csv index e172be31d6..c97d9a22e4 100644 --- a/HPXMLtoOpenStudio/resources/data/default_schedules.csv +++ b/HPXMLtoOpenStudio/resources/data/default_schedules.csv @@ -1,88 +1,88 @@ -Schedule Name,Element,Values -occupants,WeekdayScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035" -occupants,WeekendScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035" -occupants,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -general_water_use,GeneralWaterUseWeekdayScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034" -general_water_use,GeneralWaterUseWeekendScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034" -general_water_use,GeneralWaterUseMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -lighting_interior,InteriorWeekdayScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018" -lighting_interior,InteriorWeekendScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018" -lighting_interior,InteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20" -lighting_exterior,ExteriorWeekdayScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047" -lighting_exterior,ExteriorWeekendScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047" -lighting_exterior,ExteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20" -lighting_garage,GarageWeekdayScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039" -lighting_garage,GarageWeekendScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039" -lighting_garage,GarageMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20" -lighting_exterior_holiday,WeekdayScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019" -lighting_exterior_holiday,WeekendScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019" -cooking_range,WeekdayScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015" -cooking_range,WeekendScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015" -cooking_range,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -refrigerator,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" -refrigerator,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" -refrigerator,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" -refrigerator,ConstantScheduleCoefficients,"-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, 0.077, -0.118, -0.247, -0.445, -0.544" -refrigerator,TemperatureScheduleCoefficients,"0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020" -extra_refrigerator,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" -extra_refrigerator,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" -extra_refrigerator,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" -extra_refrigerator,ConstantScheduleCoefficients,"-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, -0.077, -0.118, -0.247, -0.445, -0.544" -extra_refrigerator,TemperatureScheduleCoefficients,"0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020" -freezer,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" -freezer,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" -freezer,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" -dishwasher,WeekdayScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031" -dishwasher,WeekendScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031" -dishwasher,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -clothes_washer,WeekdayScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017" -clothes_washer,WeekendScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017" -clothes_washer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -clothes_dryer,WeekdayScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024" -clothes_dryer,WeekendScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024" -clothes_dryer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -ceiling_fan,WeekdayScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057" -ceiling_fan,WeekendScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057" -plug_loads_other,WeekdayScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037" -plug_loads_other,WeekendScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037" -plug_loads_other,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -plug_loads_tv,WeekdayScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034" -plug_loads_tv,WeekendScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034" -plug_loads_tv,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -plug_loads_vehicle,WeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" -plug_loads_vehicle,WeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" -plug_loads_vehicle,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -plug_loads_well_pump,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" -plug_loads_well_pump,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" -plug_loads_well_pump,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -fuel_loads_grill,WeekdayScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007" -fuel_loads_grill,WeekendScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007" -fuel_loads_grill,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -fuel_loads_lighting,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" -fuel_loads_lighting,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" -fuel_loads_lighting,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -fuel_loads_fireplace,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" -fuel_loads_fireplace,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" -fuel_loads_fireplace,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -pool_pump,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" -pool_pump,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" -pool_pump,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154" -pool_heater,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" -pool_heater,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" -pool_heater,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154" -permanent_spa_pump,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" -permanent_spa_pump,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" -permanent_spa_pump,MonthlyScheduleMultipliers,"0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921" -permanent_spa_heater,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" -permanent_spa_heater,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" -permanent_spa_heater,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" -hot_water_fixtures,WaterFixturesWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" -hot_water_fixtures,WaterFixturesWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" -hot_water_fixtures,WaterFixturesMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -hot_water_recirculation_pump_without_control,RecirculationPumpWeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" -hot_water_recirculation_pump_without_control,RecirculationPumpWeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" -hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" -hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" -hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekdayScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055" -hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekendScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055" -hot_water_recirculation_pump,RecirculationPumpMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +Schedule Name,Element,Values,Data Source +occupants,WeekdayScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +occupants,WeekendScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +occupants,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +general_water_use,GeneralWaterUseWeekdayScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +general_water_use,GeneralWaterUseWeekendScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +general_water_use,GeneralWaterUseMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +lighting_interior,InteriorWeekdayScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_interior,InteriorWeekendScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_interior,InteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20",Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_exterior,ExteriorWeekdayScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_exterior,ExteriorWeekendScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_exterior,ExteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20",Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_garage,GarageWeekdayScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_garage,GarageWeekendScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_garage,GarageMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20",Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_exterior_holiday,WeekdayScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019", +lighting_exterior_holiday,WeekendScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019", +cooking_range,WeekdayScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +cooking_range,WeekendScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +cooking_range,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +refrigerator,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ +refrigerator,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ +refrigerator,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837",Figure 24 of the `2010 BAHSP `_ +refrigerator,ConstantScheduleCoefficients,"-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, 0.077, -0.118, -0.247, -0.445, -0.544",Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C +refrigerator,TemperatureScheduleCoefficients,"0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020",Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C +extra_refrigerator,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ +extra_refrigerator,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ +extra_refrigerator,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837",Figure 24 of the `2010 BAHSP `_ +extra_refrigerator,ConstantScheduleCoefficients,"-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, -0.077, -0.118, -0.247, -0.445, -0.544",Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C +extra_refrigerator,TemperatureScheduleCoefficients,"0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020",Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C +freezer,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ +freezer,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ +freezer,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837",Figure 24 of the `2010 BAHSP `_ +dishwasher,WeekdayScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +dishwasher,WeekendScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +dishwasher,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +clothes_washer,WeekdayScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +clothes_washer,WeekendScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +clothes_washer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +clothes_dryer,WeekdayScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +clothes_dryer,WeekendScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +clothes_dryer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +ceiling_fan,WeekdayScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +ceiling_fan,WeekendScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +plug_loads_other,WeekdayScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +plug_loads_other,WeekendScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +plug_loads_other,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +plug_loads_tv,WeekdayScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +plug_loads_tv,WeekendScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +plug_loads_tv,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +plug_loads_vehicle,WeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",based on engineering judgment +plug_loads_vehicle,WeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",based on engineering judgment +plug_loads_vehicle,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +plug_loads_well_pump,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ +plug_loads_well_pump,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ +plug_loads_well_pump,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +fuel_loads_grill,WeekdayScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007",Figure 23 of the `2010 BAHSP `_ +fuel_loads_grill,WeekendScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007",Figure 23 of the `2010 BAHSP `_ +fuel_loads_grill,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +fuel_loads_lighting,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ +fuel_loads_lighting,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ +fuel_loads_lighting,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +fuel_loads_fireplace,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ +fuel_loads_fireplace,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ +fuel_loads_fireplace,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +pool_pump,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003",Figure 23 of the `2010 BAHSP `_ +pool_pump,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003",Figure 23 of the `2010 BAHSP `_ +pool_pump,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154",Figure 24 of the `2010 BAHSP `_ +pool_heater,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003",Figure 23 of the `2010 BAHSP `_ +pool_heater,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003",Figure 23 of the `2010 BAHSP `_ +pool_heater,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154",Figure 24 of the `2010 BAHSP `_ +permanent_spa_pump,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024",Figure 23 of the `2010 BAHSP `_ +permanent_spa_pump,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024",Figure 23 of the `2010 BAHSP `_ +permanent_spa_pump,MonthlyScheduleMultipliers,"0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921",Figure 24 of the `2010 BAHSP `_ +permanent_spa_heater,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024",Figure 23 of the `2010 BAHSP `_ +permanent_spa_heater,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024",Figure 23 of the `2010 BAHSP `_ +permanent_spa_heater,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837",Figure 24 of the `2010 BAHSP `_ +hot_water_fixtures,WaterFixturesWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_fixtures,WaterFixturesWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_fixtures,WaterFixturesMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +hot_water_recirculation_pump_without_control,RecirculationPumpWeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_without_control,RecirculationPumpWeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekdayScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekendScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump,RecirculationPumpMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb index 5cda39afb8..2fd563eeb3 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +++ b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb @@ -39,7 +39,7 @@ def self.apply(runner, hpxml, hpxml_bldg, eri_version, weather, schedules_file: add_zones_spaces_if_needed(hpxml, hpxml_bldg, cfa) - @default_schedules_csv_data = get_default_schedules_csv_data() + @default_schedules_csv_data, _ = get_default_schedules_csv_data() apply_header(hpxml.header, hpxml_bldg, weather) apply_building(hpxml_bldg, weather) @@ -3963,15 +3963,20 @@ def self.get_default_schedules_csv_data() require 'csv' default_schedules_csv_data = {} + default_schedules_data_sources = {} CSV.foreach(default_schedules_csv, headers: true) do |row| schedule_name = row['Schedule Name'] element = row['Element'] values = row['Values'] + data_source = row['Data Source'] default_schedules_csv_data[schedule_name] = {} if !default_schedules_csv_data.keys.include?(schedule_name) default_schedules_csv_data[schedule_name][element] = values + + default_schedules_data_sources[schedule_name] = {} if !default_schedules_data_sources.keys.include?(schedule_name) + default_schedules_data_sources[schedule_name][element] = data_source end - return default_schedules_csv_data + return default_schedules_csv_data, default_schedules_data_sources end end diff --git a/HPXMLtoOpenStudio/tests/test_defaults.rb b/HPXMLtoOpenStudio/tests/test_defaults.rb index 7a104e8b2c..dd15cacb94 100644 --- a/HPXMLtoOpenStudio/tests/test_defaults.rb +++ b/HPXMLtoOpenStudio/tests/test_defaults.rb @@ -23,7 +23,7 @@ def setup @args_hash['debug'] = true @args_hash['output_dir'] = File.absolute_path(@tmp_output_path) - @default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() + @default_schedules_csv_data, _ = HPXMLDefaults.get_default_schedules_csv_data() end def teardown diff --git a/HPXMLtoOpenStudio/tests/test_schedules.rb b/HPXMLtoOpenStudio/tests/test_schedules.rb index 534c9aad69..884a236474 100644 --- a/HPXMLtoOpenStudio/tests/test_schedules.rb +++ b/HPXMLtoOpenStudio/tests/test_schedules.rb @@ -17,7 +17,7 @@ def setup @year = 2007 @tol = 0.005 - @default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() + @default_schedules_csv_data, _ = HPXMLDefaults.get_default_schedules_csv_data() end def teardown diff --git a/docs/source/data/building_occupancy.csv b/docs/source/data/building_occupancy.csv index 899ab64a1b..6a314e9eeb 100644 --- a/docs/source/data/building_occupancy.csv +++ b/docs/source/data/building_occupancy.csv @@ -1,7 +1,7 @@ -Schedule Name,Element,Values -occupants,WeekdayScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035" -occupants,WeekendScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035" -occupants,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -general_water_use,GeneralWaterUseWeekdayScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034" -general_water_use,GeneralWaterUseWeekendScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034" -general_water_use,GeneralWaterUseMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +Schedule Name,Element,Values,Data Source +occupants,WeekdayScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +occupants,WeekendScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +occupants,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +general_water_use,GeneralWaterUseWeekdayScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +general_water_use,GeneralWaterUseWeekendScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +general_water_use,GeneralWaterUseMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/ceiling_fans.csv b/docs/source/data/ceiling_fans.csv index 9252e4ebb0..1484421fde 100644 --- a/docs/source/data/ceiling_fans.csv +++ b/docs/source/data/ceiling_fans.csv @@ -1,3 +1,3 @@ -Schedule Name,Element,Values -ceiling_fan,WeekdayScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057" -ceiling_fan,WeekendScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057" +Schedule Name,Element,Values,Data Source +ceiling_fan,WeekdayScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +ceiling_fan,WeekendScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C diff --git a/docs/source/data/clothes_dryer.csv b/docs/source/data/clothes_dryer.csv index e1a6b1fe15..f51441906d 100644 --- a/docs/source/data/clothes_dryer.csv +++ b/docs/source/data/clothes_dryer.csv @@ -1,4 +1,4 @@ -Schedule Name,Element,Values -clothes_dryer,WeekdayScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024" -clothes_dryer,WeekendScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024" -clothes_dryer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +Schedule Name,Element,Values,Data Source +clothes_dryer,WeekdayScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +clothes_dryer,WeekendScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +clothes_dryer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/clothes_washer.csv b/docs/source/data/clothes_washer.csv index d7dfd87ed6..b009b27f7e 100644 --- a/docs/source/data/clothes_washer.csv +++ b/docs/source/data/clothes_washer.csv @@ -1,4 +1,4 @@ -Schedule Name,Element,Values -clothes_washer,WeekdayScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017" -clothes_washer,WeekendScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017" -clothes_washer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +Schedule Name,Element,Values,Data Source +clothes_washer,WeekdayScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +clothes_washer,WeekendScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +clothes_washer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/cooking_range.csv b/docs/source/data/cooking_range.csv index f983ffef00..3fe7d799a4 100644 --- a/docs/source/data/cooking_range.csv +++ b/docs/source/data/cooking_range.csv @@ -1,4 +1,4 @@ -Schedule Name,Element,Values -cooking_range,WeekdayScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015" -cooking_range,WeekendScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015" -cooking_range,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +Schedule Name,Element,Values,Data Source +cooking_range,WeekdayScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +cooking_range,WeekendScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +cooking_range,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/create_default_schedules_csv_tables.rb b/docs/source/data/create_default_schedules_csv_tables.rb index 2f44a25ca1..ca7cc5f53d 100644 --- a/docs/source/data/create_default_schedules_csv_tables.rb +++ b/docs/source/data/create_default_schedules_csv_tables.rb @@ -6,7 +6,7 @@ 'lighting' => ['lighting_interior', 'lighting_exterior', 'lighting_garage'], 'holiday_lighting' => ['lighting_exterior_holiday'], 'cooking_range' => ['cooking_range'], - 'refrigerators' => ['refrigerator'], + 'refrigerators' => ['refrigerator', 'extra_refrigerator'], 'freezers' => ['freezer'], 'dishwasher' => ['dishwasher'], 'clothes_washer' => ['clothes_washer'], @@ -21,15 +21,15 @@ 'water_fixtures' => ['hot_water_fixtures'], 'recirculation' => ['hot_water_recirculation_pump_without_control', 'hot_water_recirculation_pump_demand_controlled', 'hot_water_recirculation_pump_temperature_controlled', 'hot_water_recirculation_pump'] } -@default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() +default_schedules_csv_data, default_schedules_data_sources = HPXMLDefaults.get_default_schedules_csv_data() filename_to_schedule_names.each do |filename, schedule_names| CSV.open(File.join(File.dirname(__FILE__), "#{filename}.csv"), 'w') do |csv| - csv << ['Schedule Name', 'Element', 'Values'] + csv << ['Schedule Name', 'Element', 'Values', 'Data Source'] schedule_names.each do |schedule_name| - elements_values = @default_schedules_csv_data[schedule_name] + elements_values = default_schedules_csv_data[schedule_name] elements_values.each do |element, values| - csv << [schedule_name, element, values] + csv << [schedule_name, element, values, default_schedules_data_sources[schedule_name][element]] end end end diff --git a/docs/source/data/dishwasher.csv b/docs/source/data/dishwasher.csv index 873e7be1e3..654f2a83f3 100644 --- a/docs/source/data/dishwasher.csv +++ b/docs/source/data/dishwasher.csv @@ -1,4 +1,4 @@ -Schedule Name,Element,Values -dishwasher,WeekdayScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031" -dishwasher,WeekendScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031" -dishwasher,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +Schedule Name,Element,Values,Data Source +dishwasher,WeekdayScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +dishwasher,WeekendScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +dishwasher,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/freezers.csv b/docs/source/data/freezers.csv index 7b470e70d7..04c3e555a5 100644 --- a/docs/source/data/freezers.csv +++ b/docs/source/data/freezers.csv @@ -1,4 +1,4 @@ -Schedule Name,Element,Values -freezer,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" -freezer,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" -freezer,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" +Schedule Name,Element,Values,Data Source +freezer,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ +freezer,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ +freezer,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837",Figure 24 of the `2010 BAHSP `_ diff --git a/docs/source/data/fuel_loads.csv b/docs/source/data/fuel_loads.csv index 153b7536df..18ec6c3cd9 100644 --- a/docs/source/data/fuel_loads.csv +++ b/docs/source/data/fuel_loads.csv @@ -1,10 +1,10 @@ -Schedule Name,Element,Values -fuel_loads_grill,WeekdayScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007" -fuel_loads_grill,WeekendScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007" -fuel_loads_grill,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -fuel_loads_fireplace,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" -fuel_loads_fireplace,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" -fuel_loads_fireplace,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -fuel_loads_lighting,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" -fuel_loads_lighting,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" -fuel_loads_lighting,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +Schedule Name,Element,Values,Data Source +fuel_loads_grill,WeekdayScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007",Figure 23 of the `2010 BAHSP `_ +fuel_loads_grill,WeekendScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007",Figure 23 of the `2010 BAHSP `_ +fuel_loads_grill,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +fuel_loads_fireplace,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ +fuel_loads_fireplace,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ +fuel_loads_fireplace,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +fuel_loads_lighting,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ +fuel_loads_lighting,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ +fuel_loads_lighting,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/holiday_lighting.csv b/docs/source/data/holiday_lighting.csv index 84d0855a3e..5ccc396694 100644 --- a/docs/source/data/holiday_lighting.csv +++ b/docs/source/data/holiday_lighting.csv @@ -1,3 +1,3 @@ -Schedule Name,Element,Values -lighting_exterior_holiday,WeekdayScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019" -lighting_exterior_holiday,WeekendScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019" +Schedule Name,Element,Values,Data Source +lighting_exterior_holiday,WeekdayScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019", +lighting_exterior_holiday,WeekendScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019", diff --git a/docs/source/data/lighting.csv b/docs/source/data/lighting.csv index 579afccaf1..80a45af61e 100644 --- a/docs/source/data/lighting.csv +++ b/docs/source/data/lighting.csv @@ -1,10 +1,10 @@ -Schedule Name,Element,Values -lighting_interior,InteriorWeekdayScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018" -lighting_interior,InteriorWeekendScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018" -lighting_interior,InteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20" -lighting_exterior,ExteriorWeekdayScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047" -lighting_exterior,ExteriorWeekendScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047" -lighting_exterior,ExteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20" -lighting_garage,GarageWeekdayScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039" -lighting_garage,GarageWeekendScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039" -lighting_garage,GarageMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20" +Schedule Name,Element,Values,Data Source +lighting_interior,InteriorWeekdayScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_interior,InteriorWeekendScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_interior,InteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20",Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_exterior,ExteriorWeekdayScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_exterior,ExteriorWeekendScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_exterior,ExteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20",Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_garage,GarageWeekdayScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_garage,GarageWeekendScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C +lighting_garage,GarageMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20",Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C diff --git a/docs/source/data/permanent_spa_heater.csv b/docs/source/data/permanent_spa_heater.csv index e89810bd08..fdba0b64c5 100644 --- a/docs/source/data/permanent_spa_heater.csv +++ b/docs/source/data/permanent_spa_heater.csv @@ -1,4 +1,4 @@ -Schedule Name,Element,Values -permanent_spa_heater,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" -permanent_spa_heater,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" -permanent_spa_heater,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" +Schedule Name,Element,Values,Data Source +permanent_spa_heater,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024",Figure 23 of the `2010 BAHSP `_ +permanent_spa_heater,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024",Figure 23 of the `2010 BAHSP `_ +permanent_spa_heater,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837",Figure 24 of the `2010 BAHSP `_ diff --git a/docs/source/data/permanent_spa_pump.csv b/docs/source/data/permanent_spa_pump.csv index 96f672b340..af88e8a64d 100644 --- a/docs/source/data/permanent_spa_pump.csv +++ b/docs/source/data/permanent_spa_pump.csv @@ -1,4 +1,4 @@ -Schedule Name,Element,Values -permanent_spa_pump,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" -permanent_spa_pump,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024" -permanent_spa_pump,MonthlyScheduleMultipliers,"0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921" +Schedule Name,Element,Values,Data Source +permanent_spa_pump,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024",Figure 23 of the `2010 BAHSP `_ +permanent_spa_pump,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024",Figure 23 of the `2010 BAHSP `_ +permanent_spa_pump,MonthlyScheduleMultipliers,"0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921",Figure 24 of the `2010 BAHSP `_ diff --git a/docs/source/data/plug_loads.csv b/docs/source/data/plug_loads.csv index c5e9f28918..656a20f617 100644 --- a/docs/source/data/plug_loads.csv +++ b/docs/source/data/plug_loads.csv @@ -1,13 +1,13 @@ -Schedule Name,Element,Values -plug_loads_other,WeekdayScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037" -plug_loads_other,WeekendScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037" -plug_loads_other,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -plug_loads_tv,WeekdayScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034" -plug_loads_tv,WeekendScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034" -plug_loads_tv,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -plug_loads_well_pump,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" -plug_loads_well_pump,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065" -plug_loads_well_pump,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" -plug_loads_vehicle,WeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" -plug_loads_vehicle,WeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" -plug_loads_vehicle,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +Schedule Name,Element,Values,Data Source +plug_loads_other,WeekdayScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +plug_loads_other,WeekendScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +plug_loads_other,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +plug_loads_tv,WeekdayScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +plug_loads_tv,WeekendScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C +plug_loads_tv,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +plug_loads_well_pump,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ +plug_loads_well_pump,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ +plug_loads_well_pump,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", +plug_loads_vehicle,WeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",based on engineering judgment +plug_loads_vehicle,WeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",based on engineering judgment +plug_loads_vehicle,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/pool_heater.csv b/docs/source/data/pool_heater.csv index 323411fda2..8cc5cc8826 100644 --- a/docs/source/data/pool_heater.csv +++ b/docs/source/data/pool_heater.csv @@ -1,4 +1,4 @@ -Schedule Name,Element,Values -pool_heater,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" -pool_heater,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" -pool_heater,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154" +Schedule Name,Element,Values,Data Source +pool_heater,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003",Figure 23 of the `2010 BAHSP `_ +pool_heater,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003",Figure 23 of the `2010 BAHSP `_ +pool_heater,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154",Figure 24 of the `2010 BAHSP `_ diff --git a/docs/source/data/pool_pump.csv b/docs/source/data/pool_pump.csv index 89aaf0e9b3..a45b8519df 100644 --- a/docs/source/data/pool_pump.csv +++ b/docs/source/data/pool_pump.csv @@ -1,4 +1,4 @@ -Schedule Name,Element,Values -pool_pump,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" -pool_pump,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003" -pool_pump,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154" +Schedule Name,Element,Values,Data Source +pool_pump,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003",Figure 23 of the `2010 BAHSP `_ +pool_pump,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003",Figure 23 of the `2010 BAHSP `_ +pool_pump,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154",Figure 24 of the `2010 BAHSP `_ diff --git a/docs/source/data/recirculation.csv b/docs/source/data/recirculation.csv index 4005f5a94f..0b522c6b7f 100644 --- a/docs/source/data/recirculation.csv +++ b/docs/source/data/recirculation.csv @@ -1,8 +1,8 @@ -Schedule Name,Element,Values -hot_water_recirculation_pump_without_control,RecirculationPumpWeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" -hot_water_recirculation_pump_without_control,RecirculationPumpWeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042" -hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" -hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" -hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekdayScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055" -hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekendScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055" -hot_water_recirculation_pump,RecirculationPumpMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +Schedule Name,Element,Values,Data Source +hot_water_recirculation_pump_without_control,RecirculationPumpWeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_without_control,RecirculationPumpWeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekdayScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekendScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump,RecirculationPumpMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/refrigerators.csv b/docs/source/data/refrigerators.csv index 9fcb6fda61..87afb178cb 100644 --- a/docs/source/data/refrigerators.csv +++ b/docs/source/data/refrigerators.csv @@ -1,6 +1,11 @@ -Schedule Name,Element,Values -refrigerator,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" -refrigerator,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041" -refrigerator,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837" -refrigerator,ConstantScheduleCoefficients,"-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, 0.077, -0.118, -0.247, -0.445, -0.544" -refrigerator,TemperatureScheduleCoefficients,"0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020" +Schedule Name,Element,Values,Data Source +refrigerator,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ +refrigerator,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ +refrigerator,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837",Figure 24 of the `2010 BAHSP `_ +refrigerator,ConstantScheduleCoefficients,"-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, 0.077, -0.118, -0.247, -0.445, -0.544",Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C +refrigerator,TemperatureScheduleCoefficients,"0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020",Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C +extra_refrigerator,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ +extra_refrigerator,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ +extra_refrigerator,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837",Figure 24 of the `2010 BAHSP `_ +extra_refrigerator,ConstantScheduleCoefficients,"-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, -0.077, -0.118, -0.247, -0.445, -0.544",Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C +extra_refrigerator,TemperatureScheduleCoefficients,"0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020",Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C diff --git a/docs/source/data/water_fixtures.csv b/docs/source/data/water_fixtures.csv index eec6f53122..5ec1496cec 100644 --- a/docs/source/data/water_fixtures.csv +++ b/docs/source/data/water_fixtures.csv @@ -1,4 +1,4 @@ -Schedule Name,Element,Values -hot_water_fixtures,WaterFixturesWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" -hot_water_fixtures,WaterFixturesWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026" -hot_water_fixtures,WaterFixturesMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0" +Schedule Name,Element,Values,Data Source +hot_water_fixtures,WaterFixturesWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_fixtures,WaterFixturesWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_fixtures,WaterFixturesMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index 3aa898d1e3..ac5db52013 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -584,10 +584,10 @@ Building occupancy is entered in ``/HPXML/Building/BuildingDetails/BuildingSumma \- **single-family attached or apartment unit**: NumberofBedrooms = -0.68 + 1.09 * NumberofResidents - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values are used (see table below). + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. [#] Sensible and latent internal gains from general water use (floor mopping, shower evaporation, water films on showers, tubs & sinks surfaces, plant watering, etc.), as defined by `ANSI/RESNET/ICC 301-2019 `_. - .. [#] If GeneralWaterUseWeekdayScheduleFractions or GeneralWaterUseWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used (see table below). + .. [#] If GeneralWaterUseWeekdayScheduleFractions or GeneralWaterUseWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. [#] If GeneralWaterUseMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: @@ -4003,14 +4003,7 @@ An in-unit recirculation hot water distribution system is entered as a ``/HPXML/ .. [#] BranchPipingLength is the length of the branch hot water piping from the recirculation loop to the farthest hot water fixture from the recirculation loop, measured longitudinally from plans, assuming the branch hot water piping does not run diagonally. .. [#] PumpPower default based on `ANSI/RESNET/ICC 301-2019 `_. .. [#] Additional drain water heat recovery inputs are described in :ref:`water_heater_dwhr`. - .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used: - - \- **no control**, **timer**: based on Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C - - \- **manual demand control**, **presence sensor demand control**: based on Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C - - \- **temperature**: based on Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C - + .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: @@ -4069,14 +4062,7 @@ A shared recirculation hot water distribution system (serving multiple dwelling \- **no control**: The pump runs continuously. - .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used: - - \- **no control**, **timer**: based on Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C - - \- **manual demand control**, **presence sensor demand control**: based on Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C - - \- **temperature**: based on Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C - + .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: @@ -4141,7 +4127,7 @@ Additional information can be entered in ``/HPXML/Building/BuildingDetails/Syste ``extension/WaterFixturesMonthlyScheduleMultipliers`` array No See [#]_ 12 comma-separated monthly multipliers ===================================================== ======= ===== =========== ======== ======== =============================================== - .. [#] If WaterFixturesWeekdayScheduleFractions or WaterFixturesWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If WaterFixturesWeekdayScheduleFractions or WaterFixturesWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. [#] If WaterFixturesMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: @@ -4402,7 +4388,7 @@ If not entered, the simulation will not include a clothes washer. IMEF may be found using the manufacturer’s data sheet, the `California Energy Commission Appliance Database `_, the `EPA ENERGY STAR website `_, or another reputable source. .. [#] AttachedToWaterHeatingSystem must reference a ``WaterHeatingSystem``; AttachedToHotWaterDistribution must reference a ``HotWaterDistribution``. .. [#] AttachedToWaterHeatingSystem (or AttachedToHotWaterDistribution) only required if IsSharedAppliance is true. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: @@ -4456,7 +4442,7 @@ If not entered, the simulation will not include a clothes dryer. CEF = EF / 1.15. CEF may be found using the manufacturer’s data sheet, the `California Energy Commission Appliance Database `_, the `EPA ENERGY STAR website `_, or another reputable source. .. [#] VentedFlowRate default based on the `2010 BAHSP `_. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: @@ -4499,7 +4485,7 @@ If not entered, the simulation will not include a dishwasher. RatedAnnualkWh = 215.0 / EF. .. [#] AttachedToWaterHeatingSystem must reference a ``WaterHeatingSystem``; AttachedToHotWaterDistribution must reference a ``HotWaterDistribution``. .. [#] AttachedToWaterHeatingSystem (or AttachedToHotWaterDistribution) only required if IsSharedAppliance is true. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: @@ -4549,10 +4535,10 @@ If not entered, the simulation will not include a refrigerator. RatedAnnualkWh = 637.0 + 18.0 * NumberofBedrooms. .. [#] If multiple refrigerators are specified, there must be exactly one refrigerator described with PrimaryIndicator=true. .. [#] Either schedule fraction inputs (WeekdayScheduleFractions/WeekendScheduleFractions/MonthlyScheduleMultipliers) or schedule coefficient inputs (ConstantScheduleCoefficients/TemperatureScheduleCoefficients) may be used, but not both. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) from Figure 16 of the `2010 BAHSP `_ are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) from Figure 24 of the `2010 BAHSP `_ are used. - .. [#] If ConstantScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values (see table below) from Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C are used. - .. [#] If TemperatureScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values (see table below) from Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) are used. + .. [#] If ConstantScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values (see table below) are used. + .. [#] If TemperatureScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values (see table below) are used. .. csv-table:: :file: data/refrigerators.csv @@ -4591,8 +4577,8 @@ If not entered, the simulation will not include a standalone freezer. .. [#] If Location not provided, defaults to "garage" if present, otherwise "basement - unconditioned" if present, otherwise "basement - conditioned" if present, otherwise "conditioned space". .. [#] RatedAnnualkWh default based on the `2010 BAHSP `_. .. [#] Either schedule fraction inputs (WeekdayScheduleFractions/WeekendScheduleFractions/MonthlyScheduleMultipliers) or schedule coefficient inputs (ConstantScheduleCoefficients/TemperatureScheduleCoefficients) may be used, but not both. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) from Figure 16 of the `2010 BAHSP `_ are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) from Figure 24 of the `2010 BAHSP `_ are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) are used. .. csv-table:: :file: data/freezers.csv @@ -4658,7 +4644,7 @@ If not entered, the simulation will not include a cooking range/oven. .. [#] Location choices are "conditioned space", "basement - conditioned", "basement - unconditioned", "garage", "other housing unit", "other heated space", "other multifamily buffer space", or "other non-freezing space". See :ref:`hpxmllocations` for descriptions. .. [#] FuelType choices are "natural gas", "fuel oil", "fuel oil 1", "fuel oil 2", "fuel oil 4", "fuel oil 5/6", "diesel", "propane", "kerosene", "coal", "coke", "bituminous coal", "anthracite coal", "electricity", "wood", or "wood pellets". - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: @@ -4711,12 +4697,12 @@ With either lighting specification, additional information can be entered in ``/ ``extension/ExteriorMonthlyScheduleMultipliers`` array No See [#]_ 12 comma-separated exterior monthly multipliers ================================================ ======= ====== =========== ======== ======== =============================================== - .. [#] If InteriorWeekdayScheduleFractions or InteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C are used. - .. [#] If InteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C are used. - .. [#] If GarageWeekdayScheduleFractions or GarageWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C are used. - .. [#] If GarageMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C are used. - .. [#] If ExteriorWeekdayScheduleFractions or ExteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C are used. - .. [#] If ExteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If InteriorWeekdayScheduleFractions or InteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If InteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If GarageWeekdayScheduleFractions or GarageWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If GarageMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If ExteriorWeekdayScheduleFractions or ExteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If ExteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/lighting.csv @@ -4782,7 +4768,7 @@ If exterior holiday lighting is specified, additional information is entered in =============================== ======= ======= =========== ======== ============= ============================================ .. [#] If Value not provided, defaults to 1.1 for single-family detached and 0.55 for others. - .. [#] If WeekdayScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/holiday_lighting.csv @@ -4808,7 +4794,7 @@ If not entered, the simulation will not include a ceiling fan. .. [#] If Efficiency and LabelEnergyUse not provided, LabelEnergyUse defaults to 42.6 W based on ANSI/RESNET/ICC 301-2022 Addendum C. If both are provided, LabelEnergyUse will be used in the model. .. [#] If Count not provided, defaults to NumberofBedrooms + 1 based on `ANSI/RESNET/ICC 301-2019 `_. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), defaults based on monthly average outdoor temperatures per `ANSI/RESNET/ICC 301-2019 `_ .. csv-table:: @@ -4863,8 +4849,8 @@ If not entered, the simulation will not include a pool pump. If "none" is entered, the simulation will not include a pool pump. .. [#] If Value not provided, defaults based on the `2010 BAHSP `_: 158.5 / 0.070 * (0.5 + 0.25 * NumberofBedrooms / 3 + 0.25 * ConditionedFloorArea / 1920). If NumberofResidents provided, this value will be adjusted using the :ref:`buildingoccupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 23 of the `2010 BAHSP `_ are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 24 of the `2010 BAHSP `_ are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/pool_pump.csv @@ -4900,8 +4886,8 @@ If not entered, the simulation will not include a pool heater. If NumberofResidents provided, this value will be adjusted using the :ref:`buildingoccupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 23 of the `2010 BAHSP `_ are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 24 of the `2010 BAHSP `_ are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/pool_heater.csv @@ -4945,8 +4931,8 @@ If not entered, the simulation will not include a permanent spa pump. If "none" is entered, the simulation will not include a permanent spa pump. .. [#] If Value not provided, defaults based on the `2010 BAHSP `_: 59.5 / 0.059 * (0.5 + 0.25 * NumberofBedrooms / 3 + 0.25 * ConditionedFloorArea / 1920). If NumberofResidents provided, this value will be adjusted using the :ref:`buildingoccupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 23 of the `2010 BAHSP `_ are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 24 of the `2010 BAHSP `_ are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/permanent_spa_pump.csv @@ -4982,8 +4968,8 @@ If not entered, the simulation will not include a permanent spa heater. If NumberofResidents provided, this value will be adjusted using the :ref:`buildingoccupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 23 of the `2010 BAHSP `_ are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 24 of the `2010 BAHSP `_ are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: :file: data/permanent_spa_heater.csv @@ -5054,16 +5040,7 @@ If not entered, the simulation will not include that type of plug load. \- **electric vehicle charging**: 0.0 - .. [#] If WeekdayScheduleFractions or WeekdendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used: - - \- **other**: based on Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C - - \- **TV other**: based on Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C - - \- **well pump**: based on Figure 23 of the `2010 BAHSP `_ - - \- **electric vehicle charging**: based on engineering judgment - + .. [#] If WeekdayScheduleFractions or WeekdendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: @@ -5110,7 +5087,7 @@ If not entered, the simulation will not include that type of fuel load. .. [#] If FracSensible not provided, defaults to 0.5 for fireplace and 0.0 for all other types. .. [#] The remaining fraction (i.e., 1.0 - FracSensible - FracLatent) must be > 0 and is assumed to be heat gain outside conditioned space and thus lost. .. [#] If FracLatent not provided, defaults to 0.1 for fireplace and 0.0 for all other types. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) from Figure 23 of the `2010 BAHSP `_ are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. .. csv-table:: From ff5405448a09d0c6b4f0c053d9f930d2ad103247 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Tue, 6 Aug 2024 16:03:57 -0700 Subject: [PATCH 13/22] Update tasks.rb. --- tasks.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks.rb b/tasks.rb index a5753c35cd..92350cc63d 100644 --- a/tasks.rb +++ b/tasks.rb @@ -284,7 +284,7 @@ def apply_hpxml_modification_hers_hot_water(hpxml) end def apply_hpxml_modification_sample_files(hpxml_path, hpxml) - default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() + default_schedules_csv_data, _ = HPXMLDefaults.get_default_schedules_csv_data() # Set detailed HPXML values for sample files hpxml_file = File.basename(hpxml_path) From c08b2aa7791ffdb696665e41e5aebb48f9a4d896 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Wed, 7 Aug 2024 07:38:11 -0700 Subject: [PATCH 14/22] More updates for method and name changes. --- HPXMLtoOpenStudio/measure.xml | 12 ++++++------ .../resources/data/default_schedules.csv | 12 ++++++------ HPXMLtoOpenStudio/resources/hpxml_defaults.rb | 12 ++++++------ HPXMLtoOpenStudio/tests/test_defaults.rb | 8 ++++---- HPXMLtoOpenStudio/tests/test_validation.rb | 6 +++--- docs/source/data/building_occupancy.csv | 7 ------- docs/source/data/ceiling_fans.csv | 3 --- docs/source/data/clothes_dryer.csv | 4 ---- docs/source/data/clothes_washer.csv | 4 ---- docs/source/data/cooking_range.csv | 4 ---- .../data/create_default_schedules_csv_tables.rb | 2 +- docs/source/data/dishwasher.csv | 4 ---- docs/source/data/freezers.csv | 4 ---- docs/source/data/fuel_loads.csv | 10 ---------- docs/source/data/holiday_lighting.csv | 3 --- docs/source/data/lighting.csv | 10 ---------- docs/source/data/permanent_spa_heater.csv | 4 ---- docs/source/data/permanent_spa_pump.csv | 4 ---- docs/source/data/plug_loads.csv | 13 ------------- docs/source/data/pool_heater.csv | 4 ---- docs/source/data/pool_pump.csv | 4 ---- docs/source/data/recirculation.csv | 8 -------- docs/source/data/refrigerators.csv | 11 ----------- docs/source/data/water_fixtures.csv | 4 ---- tasks.rb | 8 ++++---- 25 files changed, 30 insertions(+), 135 deletions(-) delete mode 100644 docs/source/data/building_occupancy.csv delete mode 100644 docs/source/data/ceiling_fans.csv delete mode 100644 docs/source/data/clothes_dryer.csv delete mode 100644 docs/source/data/clothes_washer.csv delete mode 100644 docs/source/data/cooking_range.csv delete mode 100644 docs/source/data/dishwasher.csv delete mode 100644 docs/source/data/freezers.csv delete mode 100644 docs/source/data/fuel_loads.csv delete mode 100644 docs/source/data/holiday_lighting.csv delete mode 100644 docs/source/data/lighting.csv delete mode 100644 docs/source/data/permanent_spa_heater.csv delete mode 100644 docs/source/data/permanent_spa_pump.csv delete mode 100644 docs/source/data/plug_loads.csv delete mode 100644 docs/source/data/pool_heater.csv delete mode 100644 docs/source/data/pool_pump.csv delete mode 100644 docs/source/data/recirculation.csv delete mode 100644 docs/source/data/refrigerators.csv delete mode 100644 docs/source/data/water_fixtures.csv diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index 1a897f73bb..170345e193 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 2326b4c2-4a73-4b21-8f4a-e8a0a28a8543 - 2024-08-06T22:53:12Z + 24224f3e-178f-4f64-a894-e8191700912b + 2024-08-07T14:37:27Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -267,7 +267,7 @@ data/default_schedules.csv csv resource - C18EE5B0 + 143F5A55 data/g_functions/C_configurations_5m_v1.0.json @@ -357,7 +357,7 @@ hpxml_defaults.rb rb resource - F070CC21 + A667F3E1 hpxml_schema/HPXML.xsd @@ -651,7 +651,7 @@ test_defaults.rb rb test - 01FB25E6 + 1A0AA426 test_enclosure.rb @@ -723,7 +723,7 @@ test_validation.rb rb test - 1CE88B24 + 83533CC6 test_water_heater.rb diff --git a/HPXMLtoOpenStudio/resources/data/default_schedules.csv b/HPXMLtoOpenStudio/resources/data/default_schedules.csv index c97d9a22e4..cd4bd68abe 100644 --- a/HPXMLtoOpenStudio/resources/data/default_schedules.csv +++ b/HPXMLtoOpenStudio/resources/data/default_schedules.csv @@ -79,10 +79,10 @@ permanent_spa_heater,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.0 hot_water_fixtures,WaterFixturesWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C hot_water_fixtures,WaterFixturesWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C hot_water_fixtures,WaterFixturesMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", -hot_water_recirculation_pump_without_control,RecirculationPumpWeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_recirculation_pump_without_control,RecirculationPumpWeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekdayScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekendScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_no_control,RecirculationPumpWeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_no_control,RecirculationPumpWeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_demand_control,RecirculationPumpWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_demand_control,RecirculationPumpWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_temperature_control,RecirculationPumpWeekdayScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C +hot_water_recirculation_pump_temperature_control,RecirculationPumpWeekendScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C hot_water_recirculation_pump,RecirculationPumpMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb index 2fd563eeb3..23fb1084d0 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +++ b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb @@ -2773,29 +2773,29 @@ def self.apply_hot_water_distribution(hpxml_bldg, cfa, ncfl, schedules_file) recirc_control_type = hot_water_distribution.has_shared_recirculation ? hot_water_distribution.shared_recirculation_control_type : hot_water_distribution.recirculation_control_type if [HPXML::DHWRecircControlTypeNone, HPXML::DHWRecircControlTypeTimer].include?(recirc_control_type) if hot_water_distribution.recirculation_pump_weekday_fractions.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_weekday_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekdayScheduleFractions'] + hot_water_distribution.recirculation_pump_weekday_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_no_control"]['RecirculationPumpWeekdayScheduleFractions'] hot_water_distribution.recirculation_pump_weekday_fractions_isdefaulted = true end if hot_water_distribution.recirculation_pump_weekend_fractions.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_weekend_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekendScheduleFractions'] + hot_water_distribution.recirculation_pump_weekend_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_no_control"]['RecirculationPumpWeekendScheduleFractions'] hot_water_distribution.recirculation_pump_weekend_fractions_isdefaulted = true end elsif [HPXML::DHWRecircControlTypeSensor, HPXML::DHWRecircControlTypeManual].include?(recirc_control_type) if hot_water_distribution.recirculation_pump_weekday_fractions.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_weekday_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekdayScheduleFractions'] + hot_water_distribution.recirculation_pump_weekday_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_control"]['RecirculationPumpWeekdayScheduleFractions'] hot_water_distribution.recirculation_pump_weekday_fractions_isdefaulted = true end if hot_water_distribution.recirculation_pump_weekend_fractions.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_weekend_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekendScheduleFractions'] + hot_water_distribution.recirculation_pump_weekend_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_control"]['RecirculationPumpWeekendScheduleFractions'] hot_water_distribution.recirculation_pump_weekend_fractions_isdefaulted = true end elsif [HPXML::DHWRecircControlTypeTemperature].include?(recirc_control_type) if hot_water_distribution.recirculation_pump_weekday_fractions.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_weekday_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_temperature_controlled"]['RecirculationPumpWeekdayScheduleFractions'] + hot_water_distribution.recirculation_pump_weekday_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_temperature_control"]['RecirculationPumpWeekdayScheduleFractions'] hot_water_distribution.recirculation_pump_weekday_fractions_isdefaulted = true end if hot_water_distribution.recirculation_pump_weekend_fractions.nil? && !schedules_file_includes_recirculation_pump - hot_water_distribution.recirculation_pump_weekend_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_temperature_controlled"]['RecirculationPumpWeekendScheduleFractions'] + hot_water_distribution.recirculation_pump_weekend_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_temperature_control"]['RecirculationPumpWeekendScheduleFractions'] hot_water_distribution.recirculation_pump_weekend_fractions_isdefaulted = true end end diff --git a/HPXMLtoOpenStudio/tests/test_defaults.rb b/HPXMLtoOpenStudio/tests/test_defaults.rb index dd15cacb94..ad757c71b3 100644 --- a/HPXMLtoOpenStudio/tests/test_defaults.rb +++ b/HPXMLtoOpenStudio/tests/test_defaults.rb @@ -3145,7 +3145,7 @@ def test_hot_water_distribution hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 166.96, 10.0, 50.0, 0.0, @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekdayScheduleFractions'], @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']) + _test_default_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 166.96, 10.0, 50.0, 0.0, @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_control"]['RecirculationPumpWeekdayScheduleFractions'], @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_control"]['RecirculationPumpWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']) # Test defaults w/ recirculation & unconditioned basement hpxml, hpxml_bldg = _create_hpxml('base-foundation-unconditioned-basement.xml') @@ -3155,7 +3155,7 @@ def test_hot_water_distribution recirculation_control_type: HPXML::DHWRecircControlTypeSensor) XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 156.96, 10.0, 50.0, 0.0, @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekdayScheduleFractions'], @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']) + _test_default_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 156.96, 10.0, 50.0, 0.0, @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_control"]['RecirculationPumpWeekdayScheduleFractions'], @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_control"]['RecirculationPumpWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']) # Test defaults w/ recirculation & 2-story building hpxml, hpxml_bldg = _create_hpxml('base-enclosure-2stories.xml') @@ -3165,7 +3165,7 @@ def test_hot_water_distribution recirculation_control_type: HPXML::DHWRecircControlTypeSensor) XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 186.96, 10.0, 50.0, 0.0, @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekdayScheduleFractions'], @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']) + _test_default_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 186.96, 10.0, 50.0, 0.0, @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_control"]['RecirculationPumpWeekdayScheduleFractions'], @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_control"]['RecirculationPumpWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']) # Test defaults w/ shared recirculation hpxml, hpxml_bldg = _create_hpxml('base-bldgtype-mf-unit-shared-water-heater-recirc.xml') @@ -3175,7 +3175,7 @@ def test_hot_water_distribution hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_shared_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 220.0, @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekdayScheduleFractions'], @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']) + _test_default_shared_recirc_distribution_values(default_hpxml_bldg.hot_water_distributions[0], 220.0, @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_no_control"]['RecirculationPumpWeekdayScheduleFractions'], @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_no_control"]['RecirculationPumpWeekendScheduleFractions'], @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers']) end def test_water_fixtures diff --git a/HPXMLtoOpenStudio/tests/test_validation.rb b/HPXMLtoOpenStudio/tests/test_validation.rb index a60043b614..930342d9ce 100644 --- a/HPXMLtoOpenStudio/tests/test_validation.rb +++ b/HPXMLtoOpenStudio/tests/test_validation.rb @@ -23,7 +23,7 @@ def setup @tmp_output_path = File.join(@sample_files_path, 'tmp_output') FileUtils.mkdir_p(@tmp_output_path) - @default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() + @default_schedules_csv_data, _ = HPXMLDefaults.get_default_schedules_csv_data() end def teardown @@ -1882,8 +1882,8 @@ def test_ruby_warning_messages hpxml_bldg.header.schedules_filepaths << File.join(File.dirname(__FILE__), '../resources/schedule_files/occupancy-non-stochastic.csv') hpxml_bldg.hot_water_distributions[0].system_type = HPXML::DHWDistTypeRecirc hpxml_bldg.hot_water_distributions[0].recirculation_control_type = HPXML::DHWRecircControlTypeNone - hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekday_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekdayScheduleFractions'] - hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekend_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekendScheduleFractions'] + hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekday_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_no_control"]['RecirculationPumpWeekdayScheduleFractions'] + hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekend_fractions = @default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_no_control"]['RecirculationPumpWeekendScheduleFractions'] hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = @default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers'] elsif ['schedule-file-and-refrigerators-freezer-coefficients'].include? warning_case hpxml, hpxml_bldg = _create_hpxml('base.xml') diff --git a/docs/source/data/building_occupancy.csv b/docs/source/data/building_occupancy.csv deleted file mode 100644 index 6a314e9eeb..0000000000 --- a/docs/source/data/building_occupancy.csv +++ /dev/null @@ -1,7 +0,0 @@ -Schedule Name,Element,Values,Data Source -occupants,WeekdayScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -occupants,WeekendScheduleFractions,"0.035, 0.035, 0.035, 0.035, 0.035, 0.059, 0.082, 0.055, 0.027, 0.014, 0.014, 0.014, 0.014, 0.014, 0.019, 0.027, 0.041, 0.055, 0.068, 0.082, 0.082, 0.070, 0.053, 0.035",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -occupants,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", -general_water_use,GeneralWaterUseWeekdayScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -general_water_use,GeneralWaterUseWeekendScheduleFractions,"0.023, 0.021, 0.021, 0.025, 0.027, 0.038, 0.044, 0.039, 0.037, 0.037, 0.034, 0.035, 0.035, 0.035, 0.039, 0.043, 0.051, 0.064, 0.065, 0.072, 0.073, 0.063, 0.045, 0.034",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -general_water_use,GeneralWaterUseMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/ceiling_fans.csv b/docs/source/data/ceiling_fans.csv deleted file mode 100644 index 1484421fde..0000000000 --- a/docs/source/data/ceiling_fans.csv +++ /dev/null @@ -1,3 +0,0 @@ -Schedule Name,Element,Values,Data Source -ceiling_fan,WeekdayScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -ceiling_fan,WeekendScheduleFractions,"0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.057, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.024, 0.052, 0.057, 0.057, 0.057, 0.057, 0.057",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C diff --git a/docs/source/data/clothes_dryer.csv b/docs/source/data/clothes_dryer.csv deleted file mode 100644 index f51441906d..0000000000 --- a/docs/source/data/clothes_dryer.csv +++ /dev/null @@ -1,4 +0,0 @@ -Schedule Name,Element,Values,Data Source -clothes_dryer,WeekdayScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C -clothes_dryer,WeekendScheduleFractions,"0.010, 0.006, 0.004, 0.002, 0.004, 0.006, 0.016, 0.032, 0.048, 0.068, 0.078, 0.081, 0.074, 0.067, 0.058, 0.061, 0.055, 0.054, 0.051, 0.051, 0.052, 0.054, 0.044, 0.024",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C -clothes_dryer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/clothes_washer.csv b/docs/source/data/clothes_washer.csv deleted file mode 100644 index b009b27f7e..0000000000 --- a/docs/source/data/clothes_washer.csv +++ /dev/null @@ -1,4 +0,0 @@ -Schedule Name,Element,Values,Data Source -clothes_washer,WeekdayScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C -clothes_washer,WeekendScheduleFractions,"0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.051, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C -clothes_washer,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/cooking_range.csv b/docs/source/data/cooking_range.csv deleted file mode 100644 index 3fe7d799a4..0000000000 --- a/docs/source/data/cooking_range.csv +++ /dev/null @@ -1,4 +0,0 @@ -Schedule Name,Element,Values,Data Source -cooking_range,WeekdayScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C -cooking_range,WeekendScheduleFractions,"0.008, 0.008, 0.008, 0.008, 0.008, 0.015, 0.023, 0.039, 0.046, 0.046, 0.046, 0.054, 0.062, 0.046, 0.039, 0.054, 0.076, 0.134, 0.114, 0.058, 0.039, 0.031, 0.023, 0.015",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C -cooking_range,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/create_default_schedules_csv_tables.rb b/docs/source/data/create_default_schedules_csv_tables.rb index ca7cc5f53d..9db3618942 100644 --- a/docs/source/data/create_default_schedules_csv_tables.rb +++ b/docs/source/data/create_default_schedules_csv_tables.rb @@ -19,7 +19,7 @@ 'permanent_spa_pump' => ['permanent_spa_pump'], 'permanent_spa_heater' => ['permanent_spa_heater'], 'water_fixtures' => ['hot_water_fixtures'], - 'recirculation' => ['hot_water_recirculation_pump_without_control', 'hot_water_recirculation_pump_demand_controlled', 'hot_water_recirculation_pump_temperature_controlled', 'hot_water_recirculation_pump'] } + 'recirculation' => ['hot_water_recirculation_pump_no_control', 'hot_water_recirculation_pump_demand_control', 'hot_water_recirculation_pump_temperature_control', 'hot_water_recirculation_pump'] } default_schedules_csv_data, default_schedules_data_sources = HPXMLDefaults.get_default_schedules_csv_data() diff --git a/docs/source/data/dishwasher.csv b/docs/source/data/dishwasher.csv deleted file mode 100644 index 654f2a83f3..0000000000 --- a/docs/source/data/dishwasher.csv +++ /dev/null @@ -1,4 +0,0 @@ -Schedule Name,Element,Values,Data Source -dishwasher,WeekdayScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C -dishwasher,WeekendScheduleFractions,"0.015, 0.007, 0.005, 0.003, 0.003, 0.010, 0.020, 0.031, 0.058, 0.065, 0.056, 0.048, 0.042, 0.046, 0.036, 0.038, 0.038, 0.049, 0.087, 0.111, 0.090, 0.067, 0.044, 0.031",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C -dishwasher,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/freezers.csv b/docs/source/data/freezers.csv deleted file mode 100644 index 04c3e555a5..0000000000 --- a/docs/source/data/freezers.csv +++ /dev/null @@ -1,4 +0,0 @@ -Schedule Name,Element,Values,Data Source -freezer,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ -freezer,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ -freezer,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837",Figure 24 of the `2010 BAHSP `_ diff --git a/docs/source/data/fuel_loads.csv b/docs/source/data/fuel_loads.csv deleted file mode 100644 index 18ec6c3cd9..0000000000 --- a/docs/source/data/fuel_loads.csv +++ /dev/null @@ -1,10 +0,0 @@ -Schedule Name,Element,Values,Data Source -fuel_loads_grill,WeekdayScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007",Figure 23 of the `2010 BAHSP `_ -fuel_loads_grill,WeekendScheduleFractions,"0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007",Figure 23 of the `2010 BAHSP `_ -fuel_loads_grill,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", -fuel_loads_fireplace,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ -fuel_loads_fireplace,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ -fuel_loads_fireplace,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", -fuel_loads_lighting,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ -fuel_loads_lighting,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ -fuel_loads_lighting,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/holiday_lighting.csv b/docs/source/data/holiday_lighting.csv deleted file mode 100644 index 5ccc396694..0000000000 --- a/docs/source/data/holiday_lighting.csv +++ /dev/null @@ -1,3 +0,0 @@ -Schedule Name,Element,Values,Data Source -lighting_exterior_holiday,WeekdayScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019", -lighting_exterior_holiday,WeekendScheduleFractions,"0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019", diff --git a/docs/source/data/lighting.csv b/docs/source/data/lighting.csv deleted file mode 100644 index 80a45af61e..0000000000 --- a/docs/source/data/lighting.csv +++ /dev/null @@ -1,10 +0,0 @@ -Schedule Name,Element,Values,Data Source -lighting_interior,InteriorWeekdayScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C -lighting_interior,InteriorWeekendScheduleFractions,"0.012, 0.010, 0.010, 0.010, 0.011, 0.018, 0.030, 0.038, 0.041, 0.041, 0.039, 0.037, 0.036, 0.035, 0.037, 0.041, 0.050, 0.065, 0.086, 0.106, 0.110, 0.079, 0.040, 0.018",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C -lighting_interior,InteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20",Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C -lighting_exterior,ExteriorWeekdayScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C -lighting_exterior,ExteriorWeekendScheduleFractions,"0.040, 0.037, 0.037, 0.035, 0.035, 0.039, 0.044, 0.041, 0.031, 0.025, 0.024, 0.024, 0.025, 0.028, 0.030, 0.035, 0.044, 0.056, 0.064, 0.068, 0.070, 0.065, 0.056, 0.047",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C -lighting_exterior,ExteriorMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20",Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C -lighting_garage,GarageWeekdayScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C -lighting_garage,GarageWeekendScheduleFractions,"0.023, 0.019, 0.015, 0.017, 0.021, 0.031, 0.042, 0.041, 0.034, 0.029, 0.027, 0.025, 0.021, 0.021, 0.021, 0.026, 0.031, 0.044, 0.084, 0.117, 0.113, 0.096, 0.063, 0.039",Table C.3(3) of ANSI/RESNET/ICC 301-2022 Addendum C -lighting_garage,GarageMonthlyScheduleMultipliers,"1.19, 1.11, 1.02, 0.93, 0.84, 0.80, 0.82, 0.88, 0.98, 1.07, 1.16, 1.20",Table C.3(4) of ANSI/RESNET/ICC 301-2022 Addendum C diff --git a/docs/source/data/permanent_spa_heater.csv b/docs/source/data/permanent_spa_heater.csv deleted file mode 100644 index fdba0b64c5..0000000000 --- a/docs/source/data/permanent_spa_heater.csv +++ /dev/null @@ -1,4 +0,0 @@ -Schedule Name,Element,Values,Data Source -permanent_spa_heater,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024",Figure 23 of the `2010 BAHSP `_ -permanent_spa_heater,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024",Figure 23 of the `2010 BAHSP `_ -permanent_spa_heater,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837",Figure 24 of the `2010 BAHSP `_ diff --git a/docs/source/data/permanent_spa_pump.csv b/docs/source/data/permanent_spa_pump.csv deleted file mode 100644 index af88e8a64d..0000000000 --- a/docs/source/data/permanent_spa_pump.csv +++ /dev/null @@ -1,4 +0,0 @@ -Schedule Name,Element,Values,Data Source -permanent_spa_pump,WeekdayScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024",Figure 23 of the `2010 BAHSP `_ -permanent_spa_pump,WeekendScheduleFractions,"0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024",Figure 23 of the `2010 BAHSP `_ -permanent_spa_pump,MonthlyScheduleMultipliers,"0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921",Figure 24 of the `2010 BAHSP `_ diff --git a/docs/source/data/plug_loads.csv b/docs/source/data/plug_loads.csv deleted file mode 100644 index 656a20f617..0000000000 --- a/docs/source/data/plug_loads.csv +++ /dev/null @@ -1,13 +0,0 @@ -Schedule Name,Element,Values,Data Source -plug_loads_other,WeekdayScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C -plug_loads_other,WeekendScheduleFractions,"0.036, 0.036, 0.036, 0.036, 0.036, 0.036, 0.038, 0.041, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.044, 0.047, 0.050, 0.051, 0.050, 0.048, 0.044, 0.040, 0.037",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C -plug_loads_other,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", -plug_loads_tv,WeekdayScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C -plug_loads_tv,WeekendScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C -plug_loads_tv,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", -plug_loads_well_pump,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ -plug_loads_well_pump,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ -plug_loads_well_pump,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", -plug_loads_vehicle,WeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",based on engineering judgment -plug_loads_vehicle,WeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",based on engineering judgment -plug_loads_vehicle,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/pool_heater.csv b/docs/source/data/pool_heater.csv deleted file mode 100644 index 8cc5cc8826..0000000000 --- a/docs/source/data/pool_heater.csv +++ /dev/null @@ -1,4 +0,0 @@ -Schedule Name,Element,Values,Data Source -pool_heater,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003",Figure 23 of the `2010 BAHSP `_ -pool_heater,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003",Figure 23 of the `2010 BAHSP `_ -pool_heater,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154",Figure 24 of the `2010 BAHSP `_ diff --git a/docs/source/data/pool_pump.csv b/docs/source/data/pool_pump.csv deleted file mode 100644 index a45b8519df..0000000000 --- a/docs/source/data/pool_pump.csv +++ /dev/null @@ -1,4 +0,0 @@ -Schedule Name,Element,Values,Data Source -pool_pump,WeekdayScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003",Figure 23 of the `2010 BAHSP `_ -pool_pump,WeekendScheduleFractions,"0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003",Figure 23 of the `2010 BAHSP `_ -pool_pump,MonthlyScheduleMultipliers,"1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154",Figure 24 of the `2010 BAHSP `_ diff --git a/docs/source/data/recirculation.csv b/docs/source/data/recirculation.csv deleted file mode 100644 index 0b522c6b7f..0000000000 --- a/docs/source/data/recirculation.csv +++ /dev/null @@ -1,8 +0,0 @@ -Schedule Name,Element,Values,Data Source -hot_water_recirculation_pump_without_control,RecirculationPumpWeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_recirculation_pump_without_control,RecirculationPumpWeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",Equation 4.2-43a of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_recirculation_pump_demand_controlled,RecirculationPumpWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekdayScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_recirculation_pump_temperature_controlled,RecirculationPumpWeekendScheduleFractions,"0.067, 0.072, 0.074, 0.073, 0.069, 0.048, 0.011, 0.003, 0.009, 0.020, 0.030, 0.037, 0.043, 0.047, 0.050, 0.051, 0.044, 0.034, 0.026, 0.026, 0.030, 0.036, 0.045, 0.055",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_recirculation_pump,RecirculationPumpMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/docs/source/data/refrigerators.csv b/docs/source/data/refrigerators.csv deleted file mode 100644 index 87afb178cb..0000000000 --- a/docs/source/data/refrigerators.csv +++ /dev/null @@ -1,11 +0,0 @@ -Schedule Name,Element,Values,Data Source -refrigerator,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ -refrigerator,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ -refrigerator,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837",Figure 24 of the `2010 BAHSP `_ -refrigerator,ConstantScheduleCoefficients,"-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, 0.077, -0.118, -0.247, -0.445, -0.544",Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C -refrigerator,TemperatureScheduleCoefficients,"0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020",Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C -extra_refrigerator,WeekdayScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ -extra_refrigerator,WeekendScheduleFractions,"0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041",Figure 16 of the `2010 BAHSP `_ -extra_refrigerator,MonthlyScheduleMultipliers,"0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837",Figure 24 of the `2010 BAHSP `_ -extra_refrigerator,ConstantScheduleCoefficients,"-0.487, -0.340, -0.370, -0.361, -0.515, -0.684, -0.471, -0.159, -0.079, -0.417, -0.411, -0.386, -0.240, -0.314, -0.160, -0.121, -0.469, -0.412, -0.091, -0.077, -0.118, -0.247, -0.445, -0.544",Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C -extra_refrigerator,TemperatureScheduleCoefficients,"0.019, 0.016, 0.017, 0.016, 0.018, 0.021, 0.019, 0.015, 0.015, 0.019, 0.018, 0.018, 0.016, 0.017, 0.015, 0.015, 0.020, 0.020, 0.017, 0.014, 0.016, 0.017, 0.019, 0.020",Table C.3(2) of ANSI/RESNET/ICC 301-2022 Addendum C diff --git a/docs/source/data/water_fixtures.csv b/docs/source/data/water_fixtures.csv deleted file mode 100644 index 5ec1496cec..0000000000 --- a/docs/source/data/water_fixtures.csv +++ /dev/null @@ -1,4 +0,0 @@ -Schedule Name,Element,Values,Data Source -hot_water_fixtures,WaterFixturesWeekdayScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_fixtures,WaterFixturesWeekendScheduleFractions,"0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.086, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.038, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026",Table C.3(5) of ANSI/RESNET/ICC 301-2022 Addendum C -hot_water_fixtures,WaterFixturesMonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", diff --git a/tasks.rb b/tasks.rb index 92350cc63d..48f993ef9d 100644 --- a/tasks.rb +++ b/tasks.rb @@ -2052,12 +2052,12 @@ def apply_hpxml_modification_sample_files(hpxml_path, hpxml) 'base-schedules-simple.xml', 'base-schedules-simple-vacancy.xml', 'base-schedules-simple-power-outage.xml'].include? hpxml_file - hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekday_fractions = default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekdayScheduleFractions'] - hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekend_fractions = default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_controlled"]['RecirculationPumpWeekendScheduleFractions'] + hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekday_fractions = default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_control"]['RecirculationPumpWeekdayScheduleFractions'] + hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekend_fractions = default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_demand_control"]['RecirculationPumpWeekendScheduleFractions'] hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers'] elsif ['base-bldgtype-mf-unit-shared-water-heater-recirc-scheduled.xml'].include? hpxml_file - hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekday_fractions = default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekdayScheduleFractions'] - hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekend_fractions = default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_without_control"]['RecirculationPumpWeekendScheduleFractions'] + hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekday_fractions = default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_no_control"]['RecirculationPumpWeekdayScheduleFractions'] + hpxml_bldg.hot_water_distributions[0].recirculation_pump_weekend_fractions = default_schedules_csv_data["#{SchedulesFile::Columns[:HotWaterRecirculationPump].name}_no_control"]['RecirculationPumpWeekendScheduleFractions'] hpxml_bldg.hot_water_distributions[0].recirculation_pump_monthly_multipliers = default_schedules_csv_data[SchedulesFile::Columns[:HotWaterRecirculationPump].name]['RecirculationPumpMonthlyScheduleMultipliers'] end From c9f989ede2250481cf5aa02029325489fb43fb44 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 7 Aug 2024 15:41:57 +0000 Subject: [PATCH 15/22] Latest results. --- .../results_simulations_loads.csv | 635 +++++++++--------- 1 file changed, 318 insertions(+), 317 deletions(-) diff --git a/workflow/tests/base_results/results_simulations_loads.csv b/workflow/tests/base_results/results_simulations_loads.csv index 8ed38ecc90..2896321bdf 100644 --- a/workflow/tests/base_results/results_simulations_loads.csv +++ b/workflow/tests/base_results/results_simulations_loads.csv @@ -1,32 +1,32 @@ HPXML,Load: Heating: Delivered (MBtu),Load: Heating: Heat Pump Backup (MBtu),Load: Cooling: Delivered (MBtu),Load: Hot Water: Delivered (MBtu),Load: Hot Water: Tank Losses (MBtu),Load: Hot Water: Desuperheater (MBtu),Load: Hot Water: Solar Thermal (MBtu),Component Load: Heating: Roofs (MBtu),Component Load: Heating: Ceilings (MBtu),Component Load: Heating: Walls (MBtu),Component Load: Heating: Rim Joists (MBtu),Component Load: Heating: Foundation Walls (MBtu),Component Load: Heating: Doors (MBtu),Component Load: Heating: Windows Conduction (MBtu),Component Load: Heating: Windows Solar (MBtu),Component Load: Heating: Skylights Conduction (MBtu),Component Load: Heating: Skylights Solar (MBtu),Component Load: Heating: Floors (MBtu),Component Load: Heating: Slabs (MBtu),Component Load: Heating: Internal Mass (MBtu),Component Load: Heating: Infiltration (MBtu),Component Load: Heating: Natural Ventilation (MBtu),Component Load: Heating: Mechanical Ventilation (MBtu),Component Load: Heating: Whole House Fan (MBtu),Component Load: Heating: Ducts (MBtu),Component Load: Heating: Internal Gains (MBtu),Component Load: Heating: Lighting (MBtu),Component Load: Cooling: Roofs (MBtu),Component Load: Cooling: Ceilings (MBtu),Component Load: Cooling: Walls (MBtu),Component Load: Cooling: Rim Joists (MBtu),Component Load: Cooling: Foundation Walls (MBtu),Component Load: Cooling: Doors (MBtu),Component Load: Cooling: Windows Conduction (MBtu),Component Load: Cooling: Windows Solar (MBtu),Component Load: Cooling: Skylights Conduction (MBtu),Component Load: Cooling: Skylights Solar (MBtu),Component Load: Cooling: Floors (MBtu),Component Load: Cooling: Slabs (MBtu),Component Load: Cooling: Internal Mass (MBtu),Component Load: Cooling: Infiltration (MBtu),Component Load: Cooling: Natural Ventilation (MBtu),Component Load: Cooling: Mechanical Ventilation (MBtu),Component Load: Cooling: Whole House Fan (MBtu),Component Load: Cooling: Ducts (MBtu),Component Load: Cooling: Internal Gains (MBtu),Component Load: Cooling: Lighting (MBtu) -base-appliances-coal.xml,21.861,0.0,14.118,9.071,0.615,0.0,0.0,0.0,3.819,3.877,0.545,7.591,0.681,10.745,-13.51,0.0,0.0,0.0,8.381,-0.112,5.407,0.0,0.513,0.0,5.184,-8.965,-2.651,0.0,0.003,-0.209,-0.017,2.8,0.03,-0.696,10.903,0.0,0.0,0.0,-6.191,-0.109,-0.899,-3.95,-0.08,0.0,3.186,7.605,1.856 +base-appliances-coal.xml,21.861,0.0,14.118,9.071,0.615,0.0,0.0,0.0,3.819,3.877,0.545,7.591,0.681,10.745,-13.51,0.0,0.0,0.0,8.381,-0.112,5.405,0.0,0.513,0.0,5.187,-8.965,-2.651,0.0,0.003,-0.209,-0.017,2.8,0.03,-0.696,10.903,0.0,0.0,0.0,-6.191,-0.109,-0.899,-3.95,-0.08,0.0,3.186,7.605,1.856 base-appliances-dehumidifier-ief-portable.xml,1.583,0.0,30.477,6.557,0.574,0.0,0.0,0.0,1.4,1.27,0.0,0.0,0.308,3.603,-3.652,0.0,0.0,0.0,0.769,-0.332,0.808,0.191,0.293,0.0,0.048,-2.926,-0.531,0.0,0.028,-0.349,0.0,0.0,0.133,1.617,18.519,0.0,0.0,0.0,1.43,-0.327,-0.455,-2.369,-0.182,0.0,0.471,9.926,2.115 base-appliances-dehumidifier-ief-whole-home.xml,1.568,0.0,30.477,6.557,0.574,0.0,0.0,0.0,1.393,1.268,0.0,0.0,0.31,3.635,-3.629,0.0,0.0,0.0,0.764,-0.341,0.814,0.213,0.294,0.0,0.047,-2.951,-0.534,0.0,0.021,-0.352,0.0,0.0,0.134,1.647,18.542,0.0,0.0,0.0,1.424,-0.336,-0.45,-2.348,-0.181,0.0,0.471,9.907,2.111 base-appliances-dehumidifier-multiple.xml,1.619,0.0,30.454,6.557,0.574,0.0,0.0,0.0,1.407,1.276,0.0,0.0,0.308,3.606,-3.693,0.0,0.0,0.0,0.769,-0.329,0.811,0.18,0.294,0.0,0.049,-2.828,-0.535,0.0,0.039,-0.339,0.0,0.0,0.133,1.631,18.478,0.0,0.0,0.0,1.442,-0.324,-0.451,-2.366,-0.179,0.0,0.471,9.903,2.111 base-appliances-dehumidifier.xml,1.573,0.0,30.462,6.557,0.574,0.0,0.0,0.0,1.403,1.276,0.0,0.0,0.312,3.653,-3.653,0.0,0.0,0.0,0.765,-0.34,0.817,0.215,0.296,0.0,0.047,-2.93,-0.538,0.0,0.033,-0.342,0.0,0.0,0.137,1.671,18.518,0.0,0.0,0.0,1.43,-0.335,-0.446,-2.342,-0.178,0.0,0.471,9.879,2.108 -base-appliances-freezer-temperature-dependent-schedule.xml,21.85,0.0,14.241,9.071,0.615,0.0,0.0,0.0,3.815,3.874,0.544,7.598,0.68,10.731,-13.501,0.0,0.0,0.0,8.389,-0.107,5.241,0.0,0.768,0.0,5.179,-9.069,-2.649,0.0,-0.006,-0.216,-0.018,2.796,0.028,-0.72,10.913,0.0,0.0,0.0,-6.196,-0.104,-0.876,-3.975,-0.121,0.0,3.202,7.789,1.858 -base-appliances-gas.xml,21.861,0.0,14.118,9.071,0.615,0.0,0.0,0.0,3.819,3.877,0.545,7.591,0.681,10.745,-13.51,0.0,0.0,0.0,8.381,-0.112,5.407,0.0,0.513,0.0,5.184,-8.965,-2.651,0.0,0.003,-0.209,-0.017,2.8,0.03,-0.696,10.903,0.0,0.0,0.0,-6.191,-0.109,-0.899,-3.95,-0.08,0.0,3.186,7.605,1.856 -base-appliances-modified.xml,21.567,0.0,14.21,9.633,0.615,0.0,0.0,0.0,3.821,3.876,0.545,7.594,0.682,10.746,-13.481,0.0,0.0,0.0,8.38,-0.117,5.789,0.0,0.0,0.0,5.123,-9.097,-2.647,0.0,-0.004,-0.216,-0.018,2.788,0.029,-0.71,10.932,0.0,0.0,0.0,-6.213,-0.113,-0.981,-3.971,0.0,0.0,3.2,7.744,1.86 -base-appliances-none.xml,24.12,0.0,12.393,7.75,0.617,0.0,0.0,0.0,3.828,3.904,0.548,7.496,0.687,10.832,-13.792,0.0,0.0,0.0,8.304,-0.129,5.858,0.0,0.0,0.0,5.662,-6.728,-2.709,0.0,0.119,-0.113,-0.004,2.911,0.052,-0.403,10.622,0.0,0.0,0.0,-5.968,-0.125,-0.864,-3.658,0.0,0.0,2.854,5.284,1.799 -base-appliances-oil.xml,21.861,0.0,14.118,9.071,0.615,0.0,0.0,0.0,3.819,3.877,0.545,7.591,0.681,10.745,-13.51,0.0,0.0,0.0,8.381,-0.112,5.407,0.0,0.513,0.0,5.184,-8.965,-2.651,0.0,0.003,-0.209,-0.017,2.8,0.03,-0.696,10.903,0.0,0.0,0.0,-6.191,-0.109,-0.899,-3.95,-0.08,0.0,3.186,7.605,1.856 -base-appliances-propane.xml,21.861,0.0,14.118,9.071,0.615,0.0,0.0,0.0,3.819,3.877,0.545,7.591,0.681,10.745,-13.51,0.0,0.0,0.0,8.381,-0.112,5.407,0.0,0.513,0.0,5.184,-8.965,-2.651,0.0,0.003,-0.209,-0.017,2.8,0.03,-0.696,10.903,0.0,0.0,0.0,-6.191,-0.109,-0.899,-3.95,-0.08,0.0,3.186,7.605,1.856 -base-appliances-refrigerator-temperature-dependent-schedule.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-appliances-wood.xml,21.861,0.0,14.118,9.071,0.615,0.0,0.0,0.0,3.819,3.877,0.545,7.591,0.681,10.745,-13.51,0.0,0.0,0.0,8.381,-0.112,5.407,0.0,0.513,0.0,5.184,-8.965,-2.651,0.0,0.003,-0.209,-0.017,2.8,0.03,-0.696,10.903,0.0,0.0,0.0,-6.191,-0.109,-0.899,-3.95,-0.08,0.0,3.186,7.605,1.856 +base-appliances-freezer-temperature-dependent-schedule.xml,21.85,0.0,14.241,9.071,0.615,0.0,0.0,0.0,3.815,3.874,0.544,7.598,0.68,10.731,-13.501,0.0,0.0,0.0,8.389,-0.107,5.239,0.0,0.768,0.0,5.182,-9.069,-2.649,0.0,-0.006,-0.216,-0.018,2.796,0.028,-0.72,10.913,0.0,0.0,0.0,-6.196,-0.104,-0.876,-3.975,-0.121,0.0,3.202,7.789,1.858 +base-appliances-gas.xml,21.861,0.0,14.118,9.071,0.615,0.0,0.0,0.0,3.819,3.877,0.545,7.591,0.681,10.745,-13.51,0.0,0.0,0.0,8.381,-0.112,5.405,0.0,0.513,0.0,5.187,-8.965,-2.651,0.0,0.003,-0.209,-0.017,2.8,0.03,-0.696,10.903,0.0,0.0,0.0,-6.191,-0.109,-0.899,-3.95,-0.08,0.0,3.186,7.605,1.856 +base-appliances-modified.xml,21.568,0.0,14.21,9.633,0.615,0.0,0.0,0.0,3.821,3.876,0.545,7.594,0.682,10.746,-13.481,0.0,0.0,0.0,8.38,-0.117,5.787,0.0,0.0,0.0,5.126,-9.097,-2.647,0.0,-0.004,-0.216,-0.018,2.788,0.029,-0.71,10.932,0.0,0.0,0.0,-6.213,-0.113,-0.981,-3.971,0.0,0.0,3.2,7.744,1.86 +base-appliances-none.xml,24.122,0.0,12.393,7.75,0.617,0.0,0.0,0.0,3.828,3.904,0.548,7.496,0.687,10.832,-13.792,0.0,0.0,0.0,8.304,-0.129,5.857,0.0,0.0,0.0,5.666,-6.728,-2.709,0.0,0.119,-0.113,-0.004,2.911,0.052,-0.403,10.622,0.0,0.0,0.0,-5.968,-0.125,-0.864,-3.658,0.0,0.0,2.854,5.284,1.799 +base-appliances-oil.xml,21.861,0.0,14.118,9.071,0.615,0.0,0.0,0.0,3.819,3.877,0.545,7.591,0.681,10.745,-13.51,0.0,0.0,0.0,8.381,-0.112,5.405,0.0,0.513,0.0,5.187,-8.965,-2.651,0.0,0.003,-0.209,-0.017,2.8,0.03,-0.696,10.903,0.0,0.0,0.0,-6.191,-0.109,-0.899,-3.95,-0.08,0.0,3.186,7.605,1.856 +base-appliances-propane.xml,21.861,0.0,14.118,9.071,0.615,0.0,0.0,0.0,3.819,3.877,0.545,7.591,0.681,10.745,-13.51,0.0,0.0,0.0,8.381,-0.112,5.405,0.0,0.513,0.0,5.187,-8.965,-2.651,0.0,0.003,-0.209,-0.017,2.8,0.03,-0.696,10.903,0.0,0.0,0.0,-6.191,-0.109,-0.899,-3.95,-0.08,0.0,3.186,7.605,1.856 +base-appliances-refrigerator-temperature-dependent-schedule.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-appliances-wood.xml,21.861,0.0,14.118,9.071,0.615,0.0,0.0,0.0,3.819,3.877,0.545,7.591,0.681,10.745,-13.51,0.0,0.0,0.0,8.381,-0.112,5.405,0.0,0.513,0.0,5.187,-8.965,-2.651,0.0,0.003,-0.209,-0.017,2.8,0.03,-0.696,10.903,0.0,0.0,0.0,-6.191,-0.109,-0.899,-3.95,-0.08,0.0,3.186,7.605,1.856 base-atticroof-cathedral.xml,24.958,0.0,13.028,9.071,0.617,0.0,0.0,7.306,0.0,4.589,0.554,7.497,0.692,13.748,-17.248,0.0,0.0,0.0,8.214,-0.167,9.987,0.0,0.787,0.0,0.0,-8.714,-2.74,0.718,0.0,-0.118,-0.002,2.819,0.048,-0.035,14.052,0.0,0.0,0.0,-6.372,-0.141,-1.379,-4.935,-0.092,0.0,0.0,6.863,1.767 -base-atticroof-conditioned.xml,22.477,0.0,16.285,9.019,0.614,0.0,0.0,4.885,1.278,5.983,0.557,7.625,0.699,15.618,-18.211,0.0,0.0,0.0,8.193,-0.267,7.603,0.0,0.778,0.0,0.359,-9.736,-3.385,0.334,0.083,-0.178,-0.015,2.659,0.034,-0.526,17.094,0.0,0.0,0.0,-6.683,-0.261,-1.225,-5.429,-0.114,0.0,0.116,8.237,2.363 +base-atticroof-conditioned.xml,22.474,0.0,16.285,9.019,0.614,0.0,0.0,4.885,1.278,5.983,0.557,7.625,0.699,15.618,-18.211,0.0,0.0,0.0,8.193,-0.267,7.603,0.0,0.778,0.0,0.356,-9.736,-3.385,0.334,0.083,-0.178,-0.015,2.659,0.034,-0.526,17.094,0.0,0.0,0.0,-6.683,-0.261,-1.225,-5.429,-0.114,0.0,0.116,8.237,2.363 base-atticroof-flat.xml,19.189,0.0,11.232,9.071,0.616,0.0,0.0,6.442,0.0,3.89,0.546,7.503,0.681,10.781,-13.711,0.0,0.0,0.0,8.213,-0.14,5.108,0.0,0.775,0.0,0.0,-8.567,-2.693,0.736,0.0,-0.153,-0.009,2.835,0.039,-0.539,10.697,0.0,0.0,0.0,-6.171,-0.115,-0.822,-3.851,-0.108,0.0,0.0,7.013,1.814 base-atticroof-radiant-barrier-ceiling.xml,4.703,0.0,33.012,6.557,0.582,0.0,0.0,0.0,6.717,1.452,0.0,0.0,0.318,3.851,-5.356,0.0,0.0,0.0,0.201,-0.455,0.944,0.0,0.351,0.0,0.14,-2.862,-0.687,0.0,3.097,0.079,0.0,0.0,0.203,2.567,16.84,0.0,0.0,0.0,1.63,-0.447,-0.185,-2.104,-0.08,0.0,0.516,9.212,1.959 base-atticroof-radiant-barrier.xml,3.995,0.0,31.822,6.557,0.58,0.0,0.0,0.0,5.494,1.437,0.0,0.0,0.31,3.783,-5.119,0.0,0.0,0.0,0.394,-0.396,0.916,0.0,0.341,0.0,0.12,-2.733,-0.658,0.0,1.817,0.025,0.0,0.0,0.185,2.396,17.052,0.0,0.0,0.0,1.703,-0.388,-0.243,-2.191,-0.097,0.0,0.498,9.344,1.987 -base-atticroof-unvented-insulated-roof.xml,22.091,0.0,11.602,9.071,0.616,0.0,0.0,0.0,5.975,3.919,0.55,7.488,0.688,10.882,-13.825,0.0,0.0,0.0,8.208,-0.152,5.314,0.0,0.782,0.0,3.285,-8.646,-2.713,0.0,-1.078,-0.097,-0.001,2.903,0.053,-0.355,10.588,0.0,0.0,0.0,-6.064,-0.144,-0.753,-3.638,-0.1,0.0,1.694,6.933,1.794 -base-atticroof-vented.xml,23.104,0.0,12.576,9.071,0.804,0.0,0.0,0.0,4.166,3.889,0.546,7.55,0.685,10.788,-13.649,0.0,0.0,0.0,8.365,-0.121,5.578,0.0,0.772,0.0,5.038,-8.169,-2.681,0.0,-0.274,-0.164,-0.011,2.856,0.041,-0.552,10.764,0.0,0.0,0.0,-6.068,-0.117,-0.8,-3.794,-0.112,0.0,2.317,6.795,1.826 -base-battery-scheduled.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-battery.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-bldgtype-mf-unit-adjacent-to-multifamily-buffer-space.xml,11.721,0.0,3.113,9.37,0.731,0.0,0.0,0.0,3.136,3.808,0.0,0.0,0.595,1.353,-1.802,0.0,0.0,3.181,0.0,-0.037,1.599,0.0,0.0,0.0,5.071,-3.911,-1.303,0.0,-0.707,-0.046,0.0,0.0,-0.037,-0.054,1.101,0.0,0.0,-0.711,0.0,-0.034,-0.181,-0.34,0.0,0.0,0.708,2.705,0.723 +base-atticroof-unvented-insulated-roof.xml,22.088,0.0,11.602,9.071,0.616,0.0,0.0,0.0,5.962,3.919,0.55,7.488,0.688,10.883,-13.825,0.0,0.0,0.0,8.209,-0.152,5.312,0.0,0.782,0.0,3.295,-8.646,-2.713,0.0,-1.078,-0.097,-0.001,2.903,0.053,-0.355,10.588,0.0,0.0,0.0,-6.064,-0.144,-0.753,-3.638,-0.1,0.0,1.694,6.933,1.794 +base-atticroof-vented.xml,23.106,0.0,12.576,9.071,0.804,0.0,0.0,0.0,4.166,3.889,0.546,7.55,0.685,10.788,-13.649,0.0,0.0,0.0,8.365,-0.121,5.571,0.0,0.772,0.0,5.047,-8.169,-2.681,0.0,-0.274,-0.164,-0.011,2.856,0.041,-0.552,10.764,0.0,0.0,0.0,-6.068,-0.117,-0.8,-3.794,-0.112,0.0,2.317,6.795,1.826 +base-battery-scheduled.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-battery.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-bldgtype-mf-unit-adjacent-to-multifamily-buffer-space.xml,11.774,0.0,3.113,9.37,0.731,0.0,0.0,0.0,3.136,3.808,0.0,0.0,0.595,1.353,-1.802,0.0,0.0,3.181,0.0,-0.037,1.599,0.0,0.0,0.0,5.125,-3.911,-1.303,0.0,-0.707,-0.046,0.0,0.0,-0.037,-0.054,1.101,0.0,0.0,-0.711,0.0,-0.034,-0.181,-0.34,0.0,0.0,0.708,2.705,0.723 base-bldgtype-mf-unit-adjacent-to-multiple-hvac-none.xml,0.0,0.0,0.0,9.37,0.616,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-bldgtype-mf-unit-adjacent-to-multiple.xml,6.605,0.0,5.211,9.37,0.611,0.0,0.0,0.0,0.0,3.311,0.0,0.0,1.395,3.683,-4.256,0.0,0.0,4.536,0.0,-0.235,1.131,0.0,0.767,0.0,2.677,-5.37,-1.083,0.0,0.004,-0.416,0.0,0.0,-0.402,-0.205,3.949,0.0,0.0,-2.993,0.0,-0.23,-0.209,-1.116,-0.143,0.0,0.615,5.442,0.942 -base-bldgtype-mf-unit-adjacent-to-non-freezing-space.xml,24.113,0.0,2.595,9.37,0.818,0.0,0.0,0.0,5.724,4.345,0.0,0.0,0.807,1.303,-1.973,0.0,0.0,5.796,0.0,-0.069,1.614,0.0,0.0,0.0,12.238,-4.282,-1.41,0.0,-0.811,0.101,0.0,0.0,-0.031,0.015,0.929,0.0,0.0,-0.794,0.0,-0.066,-0.113,-0.248,0.0,0.0,0.667,2.335,0.615 -base-bldgtype-mf-unit-adjacent-to-other-heated-space.xml,1.615,0.0,3.219,9.37,0.637,0.0,0.0,0.0,0.28,3.292,0.0,0.0,0.37,1.398,-1.602,0.0,0.0,0.31,0.0,-0.071,1.593,0.0,0.0,0.0,0.497,-3.375,-1.132,0.0,-0.827,-0.261,0.0,0.0,-0.068,-0.176,1.3,0.0,0.0,-0.834,0.0,-0.068,-0.301,-0.386,0.0,0.0,0.729,3.242,0.893 -base-bldgtype-mf-unit-adjacent-to-other-housing-unit.xml,1.378,0.0,5.117,9.37,0.592,0.0,0.0,0.0,-0.003,2.596,0.0,0.0,0.277,1.102,-1.129,0.0,0.0,-0.001,0.0,-0.103,1.277,0.0,0.0,0.0,0.428,-2.312,-0.789,0.0,-0.001,-1.058,0.0,0.0,-0.119,-0.644,1.774,0.0,0.0,0.0,0.0,-0.101,-0.773,-0.548,0.0,0.0,1.111,4.304,1.236 +base-bldgtype-mf-unit-adjacent-to-multiple.xml,6.615,0.0,5.211,9.37,0.611,0.0,0.0,0.0,0.0,3.311,0.0,0.0,1.395,3.683,-4.256,0.0,0.0,4.536,0.0,-0.235,1.131,0.0,0.767,0.0,2.688,-5.37,-1.083,0.0,0.004,-0.416,0.0,0.0,-0.402,-0.205,3.949,0.0,0.0,-2.993,0.0,-0.23,-0.209,-1.116,-0.143,0.0,0.615,5.442,0.942 +base-bldgtype-mf-unit-adjacent-to-non-freezing-space.xml,24.233,0.0,2.595,9.37,0.818,0.0,0.0,0.0,5.724,4.345,0.0,0.0,0.807,1.303,-1.973,0.0,0.0,5.796,0.0,-0.069,1.614,0.0,0.0,0.0,12.358,-4.282,-1.41,0.0,-0.811,0.101,0.0,0.0,-0.031,0.015,0.929,0.0,0.0,-0.794,0.0,-0.066,-0.113,-0.248,0.0,0.0,0.667,2.335,0.615 +base-bldgtype-mf-unit-adjacent-to-other-heated-space.xml,1.622,0.0,3.219,9.37,0.637,0.0,0.0,0.0,0.28,3.292,0.0,0.0,0.37,1.398,-1.602,0.0,0.0,0.31,0.0,-0.071,1.593,0.0,0.0,0.0,0.504,-3.375,-1.132,0.0,-0.827,-0.261,0.0,0.0,-0.068,-0.176,1.3,0.0,0.0,-0.834,0.0,-0.068,-0.301,-0.386,0.0,0.0,0.729,3.242,0.893 +base-bldgtype-mf-unit-adjacent-to-other-housing-unit.xml,1.384,0.0,5.117,9.37,0.592,0.0,0.0,0.0,-0.003,2.596,0.0,0.0,0.277,1.102,-1.129,0.0,0.0,-0.001,0.0,-0.103,1.277,0.0,0.0,0.0,0.434,-2.312,-0.789,0.0,-0.001,-1.058,0.0,0.0,-0.119,-0.644,1.774,0.0,0.0,0.0,0.0,-0.101,-0.773,-0.548,0.0,0.0,1.111,4.304,1.236 base-bldgtype-mf-unit-infil-compartmentalization-test.xml,0.646,0.0,8.743,9.37,0.578,0.0,0.0,0.0,-0.001,1.485,0.0,0.0,0.229,2.098,-1.467,0.0,0.0,0.008,0.0,-0.25,0.51,0.0,0.388,0.0,0.0,-2.03,-0.405,0.0,0.004,-2.049,0.0,0.0,-0.231,-2.906,6.735,0.0,0.0,0.013,0.0,-0.241,-0.735,-1.421,-0.665,0.0,0.0,8.858,1.62 base-bldgtype-mf-unit-infil-leakiness-description.xml,0.407,0.0,9.116,9.37,0.574,0.0,0.0,0.0,0.002,1.308,0.0,0.0,0.196,1.798,-1.249,0.0,0.0,0.011,0.0,-0.187,0.166,0.0,0.339,0.0,0.0,-1.706,-0.342,0.0,0.007,-2.283,0.0,0.0,-0.274,-3.295,6.954,0.0,0.0,0.016,0.0,-0.177,-0.306,-1.452,-0.731,0.0,0.0,9.19,1.684 base-bldgtype-mf-unit-residents-1.xml,1.218,0.0,6.975,4.142,0.586,0.0,0.0,0.0,-0.004,1.878,0.0,0.0,0.292,2.715,-2.019,0.0,0.0,0.006,0.0,-0.327,0.825,0.0,0.499,0.0,0.0,-2.166,-0.573,0.0,0.001,-1.502,0.0,0.0,-0.14,-2.053,6.184,0.0,0.0,0.011,0.0,-0.319,-0.708,-1.286,-0.514,0.0,0.0,6.062,1.453 @@ -38,19 +38,19 @@ base-bldgtype-mf-unit-shared-boiler-cooling-tower-water-loop-heat-pump.xml,0.78, base-bldgtype-mf-unit-shared-boiler-only-baseboard.xml,0.652,0.0,0.0,9.37,0.496,0.0,0.0,0.0,-0.002,1.28,0.0,0.0,0.195,1.823,-1.288,0.0,0.0,0.005,0.0,-0.219,0.576,0.0,0.335,0.0,0.0,-1.762,-0.357,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-bldgtype-mf-unit-shared-boiler-only-fan-coil-ducted.xml,0.693,0.0,0.0,9.37,0.496,0.0,0.0,0.0,-0.002,1.282,0.0,0.0,0.195,1.826,-1.291,0.0,0.0,0.005,0.0,-0.218,0.579,0.0,0.335,0.0,0.04,-1.766,-0.358,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-bldgtype-mf-unit-shared-boiler-only-fan-coil-eae.xml,0.652,0.0,0.0,9.37,0.496,0.0,0.0,0.0,-0.002,1.28,0.0,0.0,0.195,1.823,-1.288,0.0,0.0,0.005,0.0,-0.219,0.576,0.0,0.335,0.0,0.0,-1.762,-0.357,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-bldgtype-mf-unit-shared-boiler-only-fan-coil-fireplace-elec.xml,0.652,0.0,0.0,9.37,0.496,0.0,0.0,0.0,-0.002,1.283,0.0,0.0,0.195,1.827,-1.291,0.0,0.0,0.005,0.0,-0.218,0.577,0.0,0.336,0.0,0.0,-1.768,-0.358,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-bldgtype-mf-unit-shared-boiler-only-fan-coil-fireplace-elec.xml,0.651,0.0,0.0,9.37,0.496,0.0,0.0,0.0,-0.002,1.283,0.0,0.0,0.195,1.827,-1.291,0.0,0.0,0.005,0.0,-0.218,0.577,0.0,0.336,0.0,0.0,-1.768,-0.358,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-bldgtype-mf-unit-shared-boiler-only-fan-coil.xml,0.652,0.0,0.0,9.37,0.496,0.0,0.0,0.0,-0.002,1.28,0.0,0.0,0.195,1.823,-1.288,0.0,0.0,0.005,0.0,-0.219,0.576,0.0,0.335,0.0,0.0,-1.762,-0.357,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-bldgtype-mf-unit-shared-boiler-only-water-loop-heat-pump.xml,0.668,0.0,0.0,9.37,0.496,0.0,0.0,0.0,-0.002,1.283,0.0,0.0,0.195,1.828,-1.291,0.0,0.0,0.005,0.0,-0.218,0.578,0.0,0.336,0.0,0.016,-1.768,-0.358,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-bldgtype-mf-unit-shared-chiller-only-baseboard.xml,0.0,0.0,8.494,9.37,0.591,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.002,-1.729,0.0,0.0,-0.193,-2.454,6.272,0.0,0.0,0.008,0.0,-0.212,-0.814,-1.402,-0.568,0.0,0.0,8.291,1.495 -base-bldgtype-mf-unit-shared-chiller-only-fan-coil-ducted.xml,0.0,0.0,9.856,9.37,0.591,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.002,-1.73,0.0,0.0,-0.193,-2.455,6.272,0.0,0.0,0.008,0.0,-0.212,-0.821,-1.407,-0.568,0.0,1.378,8.291,1.495 +base-bldgtype-mf-unit-shared-chiller-only-fan-coil-ducted.xml,0.0,0.0,9.856,9.37,0.591,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.002,-1.73,0.0,0.0,-0.193,-2.455,6.272,0.0,0.0,0.008,0.0,-0.212,-0.821,-1.407,-0.568,0.0,1.379,8.291,1.495 base-bldgtype-mf-unit-shared-chiller-only-fan-coil.xml,0.0,0.0,8.494,9.37,0.591,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.002,-1.729,0.0,0.0,-0.193,-2.454,6.272,0.0,0.0,0.008,0.0,-0.212,-0.814,-1.402,-0.568,0.0,0.0,8.291,1.495 -base-bldgtype-mf-unit-shared-chiller-only-water-loop-heat-pump.xml,0.0,0.0,9.856,9.37,0.591,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.002,-1.73,0.0,0.0,-0.193,-2.455,6.272,0.0,0.0,0.008,0.0,-0.212,-0.821,-1.407,-0.568,0.0,1.378,8.291,1.495 -base-bldgtype-mf-unit-shared-cooling-tower-only-water-loop-heat-pump.xml,0.0,0.0,9.856,9.37,0.591,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.002,-1.73,0.0,0.0,-0.193,-2.455,6.272,0.0,0.0,0.008,0.0,-0.212,-0.821,-1.407,-0.568,0.0,1.378,8.291,1.495 +base-bldgtype-mf-unit-shared-chiller-only-water-loop-heat-pump.xml,0.0,0.0,9.856,9.37,0.591,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.002,-1.73,0.0,0.0,-0.193,-2.455,6.272,0.0,0.0,0.008,0.0,-0.212,-0.821,-1.407,-0.568,0.0,1.379,8.291,1.495 +base-bldgtype-mf-unit-shared-cooling-tower-only-water-loop-heat-pump.xml,0.0,0.0,9.856,9.37,0.591,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.002,-1.73,0.0,0.0,-0.193,-2.455,6.272,0.0,0.0,0.008,0.0,-0.212,-0.821,-1.407,-0.568,0.0,1.379,8.291,1.495 base-bldgtype-mf-unit-shared-generator.xml,0.761,0.0,8.595,9.37,0.579,0.0,0.0,0.0,-0.002,1.55,0.0,0.0,0.242,2.22,-1.544,0.0,0.0,0.006,0.0,-0.272,0.691,0.0,0.407,0.0,0.0,-2.175,-0.436,0.0,0.002,-1.961,0.0,0.0,-0.213,-2.748,6.658,0.0,0.0,0.011,0.0,-0.263,-0.903,-1.407,-0.639,0.0,0.0,8.709,1.589 base-bldgtype-mf-unit-shared-ground-loop-ground-to-air-heat-pump.xml,0.762,0.0,8.594,9.37,0.579,0.0,0.0,0.0,-0.002,1.55,0.0,0.0,0.242,2.22,-1.544,0.0,0.0,0.006,0.0,-0.272,0.691,0.0,0.408,0.0,0.0,-2.175,-0.436,0.0,0.002,-1.961,0.0,0.0,-0.213,-2.748,6.658,0.0,0.0,0.011,0.0,-0.263,-0.903,-1.407,-0.64,0.0,0.0,8.709,1.589 base-bldgtype-mf-unit-shared-laundry-room-multiple-water-heaters.xml,0.684,0.0,8.893,9.37,2.275,0.0,0.0,0.0,-0.003,1.488,0.0,0.0,0.235,2.141,-1.461,0.0,0.0,0.005,0.0,-0.281,1.081,0.0,0.0,0.0,0.0,-2.183,-0.406,0.0,0.002,-2.037,0.0,0.0,-0.223,-2.851,6.741,0.0,0.0,0.01,0.0,-0.272,-1.638,-1.433,0.0,0.0,0.0,9.198,1.619 base-bldgtype-mf-unit-shared-laundry-room.xml,0.873,0.0,8.189,9.37,0.572,0.0,0.0,0.0,-0.003,1.614,0.0,0.0,0.253,2.323,-1.647,0.0,0.0,0.006,0.0,-0.295,1.167,0.0,0.0,0.0,0.0,-2.159,-0.46,0.0,0.002,-1.866,0.0,0.0,-0.196,-2.597,6.556,0.0,0.0,0.011,0.0,-0.286,-1.511,-1.379,0.0,0.0,0.0,8.114,1.566 -base-bldgtype-mf-unit-shared-mechvent-multiple.xml,8.04,0.0,4.906,9.37,0.618,0.0,0.0,0.0,-0.035,2.572,0.0,0.0,0.42,4.2,-4.16,0.0,0.0,-0.039,0.0,-0.682,0.173,0.0,12.815,0.0,0.0,-5.98,-1.181,0.0,-0.032,-0.319,0.0,0.0,0.08,0.197,4.042,0.0,0.0,-0.036,0.0,-0.677,-0.014,-0.603,-3.448,0.0,0.0,4.816,0.845 +base-bldgtype-mf-unit-shared-mechvent-multiple.xml,8.04,0.0,4.906,9.37,0.618,0.0,0.0,0.0,-0.035,2.572,0.0,0.0,0.42,4.2,-4.16,0.0,0.0,-0.039,0.0,-0.683,0.173,0.0,12.815,0.0,0.0,-5.98,-1.181,0.0,-0.032,-0.319,0.0,0.0,0.08,0.197,4.042,0.0,0.0,-0.036,0.0,-0.677,-0.014,-0.603,-3.448,0.0,0.0,4.816,0.845 base-bldgtype-mf-unit-shared-mechvent-preconditioning.xml,1.293,0.0,7.209,9.37,0.589,0.0,0.0,0.0,-0.009,1.952,0.0,0.0,0.311,2.89,-2.149,0.0,0.0,-0.001,0.0,-0.415,0.913,0.0,1.419,0.0,0.0,-3.072,-0.608,0.0,-0.004,-1.415,0.0,0.0,-0.116,-1.851,6.053,0.0,0.0,0.003,0.0,-0.407,-0.724,-1.153,-2.225,0.0,0.0,7.792,1.417 base-bldgtype-mf-unit-shared-mechvent.xml,3.537,0.0,6.973,9.37,0.599,0.0,0.0,0.0,-0.015,2.344,0.0,0.0,0.364,3.508,-2.985,0.0,0.0,-0.009,0.0,-0.477,1.093,0.0,4.63,0.0,0.0,-4.117,-0.823,0.0,-0.011,-0.862,0.0,0.0,-0.033,-0.978,5.218,0.0,0.0,-0.005,0.0,-0.471,-0.44,-1.152,-2.119,0.0,0.0,6.723,1.202 base-bldgtype-mf-unit-shared-pv-battery.xml,0.761,0.0,8.595,9.37,0.579,0.0,0.0,0.0,-0.002,1.55,0.0,0.0,0.242,2.22,-1.544,0.0,0.0,0.006,0.0,-0.272,0.691,0.0,0.407,0.0,0.0,-2.175,-0.436,0.0,0.002,-1.961,0.0,0.0,-0.213,-2.748,6.658,0.0,0.0,0.011,0.0,-0.263,-0.903,-1.407,-0.639,0.0,0.0,8.709,1.589 @@ -62,154 +62,155 @@ base-bldgtype-mf-unit-shared-water-heater-recirc.xml,0.929,0.0,8.276,9.37,0.572, base-bldgtype-mf-unit-shared-water-heater.xml,0.929,0.0,8.276,9.37,0.572,0.0,0.0,0.0,-0.002,1.656,0.0,0.0,0.256,2.365,-1.712,0.0,0.0,0.008,0.0,-0.284,0.913,0.0,0.434,0.0,0.0,-2.31,-0.473,0.0,0.003,-1.82,0.0,0.0,-0.193,-2.548,6.49,0.0,0.0,0.012,0.0,-0.276,-1.104,-1.377,-0.601,0.0,0.0,8.36,1.552 base-bldgtype-mf-unit.xml,0.761,0.0,8.595,9.37,0.579,0.0,0.0,0.0,-0.002,1.55,0.0,0.0,0.242,2.22,-1.544,0.0,0.0,0.006,0.0,-0.272,0.691,0.0,0.407,0.0,0.0,-2.175,-0.436,0.0,0.002,-1.961,0.0,0.0,-0.213,-2.748,6.658,0.0,0.0,0.011,0.0,-0.263,-0.903,-1.407,-0.639,0.0,0.0,8.709,1.589 base-bldgtype-mf-whole-building.xml,30.908,0.0,52.412,55.316,3.596,0.0,0.0,0.0,7.253,16.856,0.0,0.0,2.159,24.853,-22.438,0.0,0.0,6.559,0.0,-3.014,46.86,0.0,0.0,0.0,0.0,-42.321,-6.099,0.0,-1.727,-5.547,0.0,0.0,-0.213,-6.975,34.924,0.0,0.0,-5.111,0.0,-2.989,-17.933,-8.915,0.0,0.0,0.0,58.942,8.542 -base-bldgtype-sfa-unit-2stories.xml,16.183,0.0,10.166,9.106,0.614,0.0,0.0,0.0,2.643,5.423,0.318,4.405,0.687,7.617,-9.228,0.0,0.0,0.0,4.959,-0.137,7.162,0.0,0.775,0.0,2.473,-8.499,-2.679,0.0,0.069,-0.28,-0.005,1.658,0.033,-0.52,7.268,0.0,0.0,0.0,-4.015,-0.133,-1.149,-2.912,-0.112,0.0,1.403,7.083,1.828 +base-bldgtype-sfa-unit-2stories.xml,16.182,0.0,10.166,9.106,0.614,0.0,0.0,0.0,2.643,5.423,0.318,4.405,0.687,7.617,-9.228,0.0,0.0,0.0,4.959,-0.137,7.161,0.0,0.775,0.0,2.473,-8.499,-2.679,0.0,0.069,-0.28,-0.005,1.658,0.033,-0.52,7.268,0.0,0.0,0.0,-4.015,-0.133,-1.149,-2.912,-0.112,0.0,1.403,7.083,1.828 base-bldgtype-sfa-unit-atticroof-cathedral.xml,56.759,0.0,15.849,9.106,0.623,0.0,0.0,51.613,0.0,3.035,0.299,3.177,0.705,5.042,-5.695,0.0,0.0,0.0,2.818,-1.349,7.398,0.0,0.812,0.0,0.0,-9.358,-2.888,10.542,0.0,-0.064,0.014,1.014,0.156,0.357,4.715,0.0,0.0,0.0,-4.893,-1.312,-0.504,-1.14,-0.049,0.0,0.0,6.205,1.619 -base-bldgtype-sfa-unit-infil-compartmentalization-test.xml,12.659,0.0,7.979,9.221,0.614,0.0,0.0,0.0,2.44,2.457,0.303,4.293,0.65,3.691,-4.55,0.0,0.0,0.0,4.879,-0.046,3.009,0.0,0.753,0.0,3.559,-7.012,-1.898,0.0,-0.003,-0.187,-0.015,1.635,0.007,-0.464,3.724,0.0,0.0,0.0,-3.844,-0.044,-0.59,-1.327,-0.136,0.0,1.72,6.182,1.368 -base-bldgtype-sfa-unit.xml,12.659,0.0,7.979,9.221,0.614,0.0,0.0,0.0,2.44,2.457,0.303,4.293,0.65,3.691,-4.55,0.0,0.0,0.0,4.879,-0.046,3.009,0.0,0.753,0.0,3.559,-7.012,-1.898,0.0,-0.003,-0.187,-0.015,1.635,0.007,-0.464,3.724,0.0,0.0,0.0,-3.844,-0.044,-0.59,-1.327,-0.136,0.0,1.72,6.182,1.368 +base-bldgtype-sfa-unit-infil-compartmentalization-test.xml,12.662,0.0,7.979,9.221,0.614,0.0,0.0,0.0,2.44,2.457,0.303,4.293,0.65,3.691,-4.55,0.0,0.0,0.0,4.879,-0.046,3.007,0.0,0.753,0.0,3.563,-7.012,-1.898,0.0,-0.003,-0.187,-0.015,1.635,0.007,-0.464,3.724,0.0,0.0,0.0,-3.844,-0.044,-0.59,-1.327,-0.136,0.0,1.72,6.182,1.368 +base-bldgtype-sfa-unit.xml,12.662,0.0,7.979,9.221,0.614,0.0,0.0,0.0,2.44,2.457,0.303,4.293,0.65,3.691,-4.55,0.0,0.0,0.0,4.879,-0.046,3.007,0.0,0.753,0.0,3.563,-7.012,-1.898,0.0,-0.003,-0.187,-0.015,1.635,0.007,-0.464,3.724,0.0,0.0,0.0,-3.844,-0.044,-0.59,-1.327,-0.136,0.0,1.72,6.182,1.368 base-dhw-combi-tankless-outside.xml,17.43,0.0,0.0,9.173,0.0,0.0,0.0,0.0,4.078,3.855,0.542,7.534,0.677,10.68,-13.496,0.0,0.0,0.0,8.201,-0.109,5.051,0.0,0.766,0.0,0.0,-8.06,-2.648,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-combi-tankless.xml,18.491,0.0,0.0,9.173,0.0,0.0,0.0,0.0,4.097,3.87,0.544,7.514,0.681,10.734,-13.56,0.0,0.0,0.0,8.175,-0.123,6.209,0.0,0.768,0.0,0.0,-8.112,-2.662,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-desuperheater-2-speed.xml,0.0,0.0,14.46,9.07,0.666,2.801,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.054,-0.145,-0.008,2.769,0.048,-0.499,10.57,0.0,0.0,0.0,-6.334,-0.132,-0.793,-3.787,-0.108,0.0,3.598,7.54,1.801 -base-dhw-desuperheater-gshp.xml,21.758,0.0,13.315,9.07,0.615,2.826,0.0,0.0,3.872,3.884,0.546,7.566,0.683,10.77,-13.602,0.0,0.0,0.0,8.366,-0.118,5.224,0.0,0.77,0.0,4.275,-8.163,-2.669,0.0,0.068,-0.184,-0.013,2.832,0.036,-0.613,10.811,0.0,0.0,0.0,-6.125,-0.114,-0.848,-3.909,-0.115,0.0,2.078,7.699,1.838 -base-dhw-desuperheater-hpwh.xml,26.715,0.0,14.253,9.081,1.811,2.918,0.0,0.0,3.835,3.937,0.552,7.522,0.689,10.9,-14.049,0.0,0.0,0.0,8.43,-0.124,5.359,0.0,0.782,0.0,6.188,-4.934,-2.753,0.0,0.134,-0.086,-0.0,2.938,0.054,-0.343,10.364,0.0,0.0,0.0,-5.878,-0.12,-0.731,-3.674,-0.093,0.0,3.191,6.862,1.754 +base-dhw-desuperheater-gshp.xml,21.735,0.0,13.315,9.07,0.615,2.826,0.0,0.0,3.874,3.884,0.546,7.566,0.683,10.77,-13.602,0.0,0.0,0.0,8.366,-0.118,5.221,0.0,0.77,0.0,4.252,-8.163,-2.669,0.0,0.068,-0.184,-0.013,2.832,0.036,-0.613,10.811,0.0,0.0,0.0,-6.125,-0.114,-0.848,-3.909,-0.115,0.0,2.078,7.699,1.838 +base-dhw-desuperheater-hpwh.xml,26.716,0.0,14.253,9.081,1.811,2.918,0.0,0.0,3.835,3.937,0.552,7.522,0.689,10.9,-14.049,0.0,0.0,0.0,8.43,-0.124,5.356,0.0,0.782,0.0,6.193,-4.934,-2.753,0.0,0.134,-0.086,-0.0,2.938,0.054,-0.343,10.364,0.0,0.0,0.0,-5.878,-0.12,-0.731,-3.674,-0.093,0.0,3.191,6.862,1.754 base-dhw-desuperheater-tankless.xml,0.0,0.0,13.89,9.076,0.0,2.831,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.083,-0.133,-0.007,2.776,0.05,-0.463,10.508,0.0,0.0,0.0,-6.293,-0.135,-0.781,-3.747,-0.106,0.0,3.187,7.276,1.791 base-dhw-desuperheater-var-speed.xml,0.0,0.0,15.432,9.069,0.666,2.855,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.021,-0.144,-0.008,2.769,0.048,-0.499,10.57,0.0,0.0,0.0,-6.334,-0.132,-0.797,-3.795,-0.108,0.0,4.605,7.555,1.801 base-dhw-desuperheater.xml,0.0,0.0,14.111,9.07,0.666,2.88,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.068,-0.145,-0.008,2.768,0.048,-0.5,10.57,0.0,0.0,0.0,-6.335,-0.132,-0.797,-3.789,-0.108,0.0,3.226,7.563,1.801 -base-dhw-dwhr.xml,22.502,0.0,13.745,6.631,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-dhw-dwhr.xml,22.503,0.0,13.745,6.631,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 base-dhw-indirect-detailed-setpoints.xml,17.211,0.0,0.0,9.095,2.379,0.0,0.0,0.0,4.067,3.846,0.541,7.548,0.676,10.665,-13.408,0.0,0.0,0.0,8.171,-0.108,6.178,0.0,0.765,0.0,0.0,-9.441,-2.636,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-indirect-dse.xml,17.255,0.0,0.0,9.098,2.282,0.0,0.0,0.0,4.068,3.847,0.541,7.546,0.676,10.669,-13.408,0.0,0.0,0.0,8.169,-0.11,6.18,0.0,0.765,0.0,0.0,-9.396,-2.636,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-indirect-outside.xml,17.43,0.0,0.0,9.101,3.299,0.0,0.0,0.0,4.078,3.855,0.542,7.534,0.677,10.68,-13.496,0.0,0.0,0.0,8.201,-0.109,5.051,0.0,0.766,0.0,0.0,-8.06,-2.648,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-indirect-standbyloss.xml,17.027,0.0,0.0,9.101,2.707,0.0,0.0,0.0,4.064,3.843,0.54,7.55,0.675,10.659,-13.388,0.0,0.0,0.0,8.178,-0.108,6.175,0.0,0.764,0.0,0.0,-9.638,-2.632,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-indirect-with-solar-fraction.xml,18.061,0.0,0.0,9.076,0.788,0.0,5.9,0.0,4.085,3.861,0.542,7.522,0.678,10.699,-13.495,0.0,0.0,0.0,8.168,-0.117,6.194,0.0,0.766,0.0,0.0,-8.548,-2.649,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-indirect.xml,17.255,0.0,0.0,9.098,2.282,0.0,0.0,0.0,4.068,3.847,0.541,7.546,0.676,10.669,-13.408,0.0,0.0,0.0,8.169,-0.11,6.18,0.0,0.765,0.0,0.0,-9.396,-2.636,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-dhw-jacket-electric.xml,22.713,0.0,13.636,9.071,0.296,0.0,0.0,0.0,3.82,3.885,0.546,7.568,0.683,10.772,-13.598,0.0,0.0,0.0,8.37,-0.118,5.267,0.0,0.771,0.0,5.365,-8.305,-2.668,0.0,0.036,-0.182,-0.013,2.834,0.037,-0.611,10.815,0.0,0.0,0.0,-6.121,-0.114,-0.839,-3.863,-0.115,0.0,3.094,6.956,1.839 -base-dhw-jacket-gas.xml,23.057,0.0,14.047,9.071,2.73,0.0,0.0,0.0,3.82,3.89,0.546,7.572,0.684,10.777,-13.588,0.0,0.0,0.0,8.348,-0.113,6.395,0.0,0.771,0.0,5.445,-9.178,-2.669,0.0,0.032,-0.182,-0.013,2.826,0.036,-0.619,10.825,0.0,0.0,0.0,-6.16,-0.109,-1.053,-3.894,-0.115,0.0,3.176,7.569,1.838 -base-dhw-jacket-hpwh.xml,26.74,0.0,11.944,9.122,1.312,0.0,0.0,0.0,3.842,3.942,0.553,7.522,0.69,10.893,-14.098,0.0,0.0,0.0,8.45,-0.115,5.363,0.0,0.783,0.0,6.19,-4.897,-2.756,0.0,0.166,-0.074,0.001,2.96,0.057,-0.328,10.315,0.0,0.0,0.0,-5.826,-0.111,-0.722,-3.525,-0.091,0.0,2.775,4.716,1.751 +base-dhw-jacket-electric.xml,22.713,0.0,13.636,9.071,0.296,0.0,0.0,0.0,3.82,3.885,0.546,7.568,0.683,10.772,-13.598,0.0,0.0,0.0,8.37,-0.118,5.265,0.0,0.771,0.0,5.368,-8.305,-2.668,0.0,0.036,-0.182,-0.013,2.834,0.037,-0.611,10.815,0.0,0.0,0.0,-6.121,-0.114,-0.839,-3.863,-0.115,0.0,3.094,6.956,1.839 +base-dhw-jacket-gas.xml,23.058,0.0,14.047,9.071,2.73,0.0,0.0,0.0,3.82,3.89,0.546,7.572,0.684,10.777,-13.588,0.0,0.0,0.0,8.348,-0.113,6.393,0.0,0.771,0.0,5.448,-9.178,-2.669,0.0,0.032,-0.182,-0.013,2.826,0.036,-0.619,10.825,0.0,0.0,0.0,-6.16,-0.109,-1.053,-3.894,-0.115,0.0,3.176,7.569,1.838 +base-dhw-jacket-hpwh.xml,26.742,0.0,11.944,9.122,1.312,0.0,0.0,0.0,3.842,3.942,0.553,7.522,0.69,10.893,-14.098,0.0,0.0,0.0,8.45,-0.115,5.36,0.0,0.783,0.0,6.195,-4.897,-2.756,0.0,0.166,-0.074,0.001,2.96,0.057,-0.328,10.315,0.0,0.0,0.0,-5.826,-0.111,-0.722,-3.525,-0.091,0.0,2.775,4.716,1.751 base-dhw-jacket-indirect.xml,17.448,0.0,0.0,9.097,1.923,0.0,0.0,0.0,4.074,3.852,0.541,7.536,0.677,10.686,-13.43,0.0,0.0,0.0,8.165,-0.116,6.187,0.0,0.765,0.0,0.0,-9.197,-2.64,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-dhw-low-flow-fixtures.xml,22.502,0.0,13.745,8.834,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-dhw-low-flow-fixtures.xml,22.503,0.0,13.745,8.834,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 base-dhw-multiple.xml,17.617,0.0,0.0,9.062,2.833,0.0,5.891,0.0,4.078,3.856,0.542,7.54,0.679,10.7,-13.46,0.0,0.0,0.0,8.174,-0.119,6.192,0.0,0.767,0.0,0.0,-9.027,-2.649,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-dhw-none.xml,22.855,0.0,13.375,0.0,0.0,0.0,0.0,0.0,3.82,3.887,0.546,7.554,0.685,10.79,-13.614,0.0,0.0,0.0,8.356,-0.126,5.82,0.0,0.0,0.0,5.395,-7.933,-2.675,0.0,0.047,-0.173,-0.012,2.842,0.04,-0.571,10.799,0.0,0.0,0.0,-6.103,-0.122,-0.927,-3.828,0.0,0.0,3.04,6.633,1.832 -base-dhw-recirc-demand-scheduled.xml,22.502,0.0,13.745,9.013,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-dhw-recirc-demand.xml,22.502,0.0,13.745,9.013,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-dhw-recirc-manual.xml,22.502,0.0,13.745,9.013,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-dhw-recirc-nocontrol.xml,22.502,0.0,13.745,9.105,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-dhw-recirc-temperature.xml,22.502,0.0,13.745,9.105,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-dhw-recirc-timer.xml,22.502,0.0,13.745,9.105,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-dhw-solar-direct-evacuated-tube.xml,22.502,0.0,13.76,9.095,0.629,0.0,6.636,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.885,-0.117,0.0,3.116,7.12,1.845 -base-dhw-solar-direct-flat-plate.xml,22.493,0.0,13.811,9.208,0.696,0.0,8.354,0.0,3.819,3.882,0.545,7.571,0.682,10.758,-13.574,0.0,0.0,0.0,8.365,-0.114,5.261,0.0,0.77,0.0,5.318,-8.484,-2.662,0.0,0.028,-0.189,-0.014,2.825,0.035,-0.637,10.839,0.0,0.0,0.0,-6.14,-0.111,-0.849,-3.893,-0.117,0.0,3.125,7.178,1.845 -base-dhw-solar-direct-ics.xml,22.502,0.0,13.783,9.131,0.65,0.0,6.624,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.847,-3.887,-0.117,0.0,3.12,7.141,1.845 -base-dhw-solar-fraction.xml,22.766,0.0,13.609,9.071,0.215,0.0,5.896,0.0,3.819,3.885,0.546,7.567,0.684,10.775,-13.598,0.0,0.0,0.0,8.367,-0.12,5.268,0.0,0.77,0.0,5.376,-8.259,-2.668,0.0,0.037,-0.181,-0.013,2.835,0.037,-0.606,10.815,0.0,0.0,0.0,-6.12,-0.116,-0.837,-3.857,-0.115,0.0,3.089,6.922,1.839 -base-dhw-solar-indirect-flat-plate.xml,22.137,0.0,14.242,9.186,0.684,0.0,8.35,0.0,3.817,3.877,0.545,7.579,0.68,10.737,-13.523,0.0,0.0,0.0,8.352,-0.111,5.251,0.0,0.769,0.0,5.242,-8.782,-2.651,0.0,0.01,-0.203,-0.016,2.806,0.03,-0.685,10.89,0.0,0.0,0.0,-6.188,-0.107,-0.867,-3.96,-0.119,0.0,3.204,7.703,1.856 -base-dhw-solar-thermosyphon-flat-plate.xml,22.494,0.0,13.808,9.2,0.691,0.0,8.317,0.0,3.819,3.883,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.262,0.0,0.77,0.0,5.318,-8.485,-2.662,0.0,0.028,-0.188,-0.014,2.826,0.035,-0.634,10.839,0.0,0.0,0.0,-6.141,-0.112,-0.848,-3.892,-0.117,0.0,3.124,7.173,1.845 -base-dhw-tank-coal.xml,22.669,0.0,14.249,9.071,3.629,0.0,0.0,0.0,3.814,3.88,0.545,7.574,0.683,10.763,-13.523,0.0,0.0,0.0,8.331,-0.119,6.383,0.0,0.77,0.0,5.362,-9.486,-2.657,0.0,0.015,-0.197,-0.015,2.811,0.033,-0.651,10.89,0.0,0.0,0.0,-6.197,-0.115,-1.071,-3.933,-0.118,0.0,3.211,7.852,1.85 -base-dhw-tank-detailed-setpoints.xml,22.496,0.0,13.749,9.045,0.624,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.364,-0.116,5.261,0.0,0.77,0.0,5.318,-8.48,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.847,-3.885,-0.117,0.0,3.113,7.11,1.845 -base-dhw-tank-elec-uef.xml,22.451,0.0,13.772,9.071,0.692,0.0,0.0,0.0,3.82,3.882,0.545,7.572,0.682,10.758,-13.574,0.0,0.0,0.0,8.366,-0.114,5.26,0.0,0.77,0.0,5.309,-8.52,-2.662,0.0,0.028,-0.188,-0.014,2.826,0.035,-0.636,10.839,0.0,0.0,0.0,-6.139,-0.11,-0.848,-3.89,-0.117,0.0,3.118,7.139,1.845 -base-dhw-tank-gas-outside.xml,22.908,0.0,13.535,9.071,5.067,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.269,0.0,0.77,0.0,5.406,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 -base-dhw-tank-gas-uef-fhr.xml,22.939,0.0,14.108,9.071,2.983,0.0,0.0,0.0,3.819,3.887,0.546,7.571,0.684,10.781,-13.562,0.0,0.0,0.0,8.337,-0.119,6.394,0.0,0.771,0.0,5.42,-9.275,-2.667,0.0,0.028,-0.186,-0.014,2.82,0.036,-0.621,10.852,0.0,0.0,0.0,-6.177,-0.115,-1.056,-3.905,-0.116,0.0,3.186,7.651,1.84 -base-dhw-tank-gas-uef.xml,22.939,0.0,14.108,9.071,2.983,0.0,0.0,0.0,3.819,3.887,0.546,7.571,0.684,10.781,-13.562,0.0,0.0,0.0,8.337,-0.119,6.394,0.0,0.771,0.0,5.42,-9.275,-2.667,0.0,0.028,-0.186,-0.014,2.82,0.036,-0.621,10.852,0.0,0.0,0.0,-6.177,-0.115,-1.056,-3.905,-0.116,0.0,3.186,7.651,1.84 -base-dhw-tank-gas.xml,22.669,0.0,14.249,9.071,3.629,0.0,0.0,0.0,3.814,3.88,0.545,7.574,0.683,10.763,-13.523,0.0,0.0,0.0,8.331,-0.119,6.383,0.0,0.77,0.0,5.362,-9.486,-2.657,0.0,0.015,-0.197,-0.015,2.811,0.033,-0.651,10.89,0.0,0.0,0.0,-6.197,-0.115,-1.071,-3.933,-0.118,0.0,3.211,7.852,1.85 -base-dhw-tank-heat-pump-detailed-schedules.xml,27.436,0.0,11.725,9.212,1.418,0.0,0.0,0.0,3.825,3.931,0.552,7.459,0.694,10.962,-14.009,0.0,0.0,0.0,8.372,-0.194,5.377,0.0,0.781,0.0,6.34,-4.284,-2.746,0.0,0.164,-0.073,0.002,2.922,0.063,-0.224,10.404,0.0,0.0,0.0,-5.863,-0.19,-0.695,-3.422,-0.093,0.0,2.71,4.379,1.761 -base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml,27.466,0.0,11.607,9.127,1.31,0.0,0.0,0.0,3.838,3.945,0.553,7.5,0.691,10.909,-14.116,0.0,0.0,0.0,8.448,-0.118,5.373,0.0,0.783,0.0,6.343,-4.299,-2.763,0.0,0.18,-0.062,0.003,2.964,0.06,-0.287,10.298,0.0,0.0,0.0,-5.801,-0.114,-0.707,-3.492,-0.089,0.0,2.71,4.337,1.745 -base-dhw-tank-heat-pump-outside.xml,22.908,0.0,13.535,9.093,2.525,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.269,0.0,0.77,0.0,5.406,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 -base-dhw-tank-heat-pump-uef.xml,27.466,0.0,11.607,9.127,1.31,0.0,0.0,0.0,3.838,3.945,0.553,7.5,0.691,10.909,-14.116,0.0,0.0,0.0,8.448,-0.118,5.373,0.0,0.783,0.0,6.343,-4.299,-2.763,0.0,0.18,-0.062,0.003,2.964,0.06,-0.287,10.298,0.0,0.0,0.0,-5.801,-0.114,-0.707,-3.492,-0.089,0.0,2.71,4.337,1.745 -base-dhw-tank-heat-pump-with-solar-fraction.xml,24.193,0.0,12.981,9.103,0.603,0.0,5.917,0.0,3.822,3.902,0.548,7.542,0.687,10.82,-13.728,0.0,0.0,0.0,8.369,-0.127,5.299,0.0,0.774,0.0,5.671,-7.055,-2.696,0.0,0.077,-0.146,-0.008,2.868,0.045,-0.503,10.685,0.0,0.0,0.0,-6.042,-0.123,-0.798,-3.741,-0.107,0.0,2.97,6.11,1.812 -base-dhw-tank-heat-pump-with-solar.xml,23.102,0.0,14.402,9.017,1.972,0.0,8.047,0.0,3.813,3.886,0.546,7.578,0.683,10.785,-13.562,0.0,0.0,0.0,8.317,-0.125,5.276,0.0,0.772,0.0,5.444,-8.001,-2.667,0.0,0.019,-0.19,-0.014,2.816,0.035,-0.625,10.851,0.0,0.0,0.0,-6.203,-0.121,-0.847,-3.949,-0.115,0.0,3.23,7.783,1.84 -base-dhw-tank-heat-pump.xml,26.646,0.0,11.932,9.116,1.721,0.0,0.0,0.0,3.836,3.938,0.552,7.526,0.689,10.892,-14.038,0.0,0.0,0.0,8.415,-0.119,5.358,0.0,0.781,0.0,6.173,-4.997,-2.749,0.0,0.157,-0.08,0.001,2.951,0.054,-0.338,10.375,0.0,0.0,0.0,-5.874,-0.115,-0.729,-3.555,-0.093,0.0,2.761,4.778,1.758 -base-dhw-tank-model-type-stratified-detailed-occupancy-stochastic.xml,22.223,0.0,13.796,9.117,0.021,0.0,0.0,0.0,3.837,3.898,0.548,7.612,0.683,10.79,-13.626,0.0,0.0,0.0,8.389,-0.104,5.686,0.0,0.814,0.0,5.253,-9.241,-2.673,0.0,0.038,-0.178,-0.013,2.848,0.035,-0.617,10.787,0.0,0.0,0.0,-6.141,-0.1,-0.916,-3.888,-0.145,0.0,3.114,7.258,1.837 -base-dhw-tank-model-type-stratified.xml,22.895,0.0,13.543,9.121,0.021,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.771,-13.61,0.0,0.0,0.0,8.372,-0.116,5.269,0.0,0.77,0.0,5.403,-8.148,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.109,-0.113,-0.836,-3.844,-0.115,0.0,3.077,6.839,1.837 -base-dhw-tank-oil.xml,22.669,0.0,14.249,9.071,3.629,0.0,0.0,0.0,3.814,3.88,0.545,7.574,0.683,10.763,-13.523,0.0,0.0,0.0,8.331,-0.119,6.383,0.0,0.77,0.0,5.362,-9.486,-2.657,0.0,0.015,-0.197,-0.015,2.811,0.033,-0.651,10.89,0.0,0.0,0.0,-6.197,-0.115,-1.071,-3.933,-0.118,0.0,3.211,7.852,1.85 -base-dhw-tank-wood.xml,22.669,0.0,14.249,9.071,3.629,0.0,0.0,0.0,3.814,3.88,0.545,7.574,0.683,10.763,-13.523,0.0,0.0,0.0,8.331,-0.119,6.383,0.0,0.77,0.0,5.362,-9.486,-2.657,0.0,0.015,-0.197,-0.015,2.811,0.033,-0.651,10.89,0.0,0.0,0.0,-6.197,-0.115,-1.071,-3.933,-0.118,0.0,3.211,7.852,1.85 -base-dhw-tankless-detailed-setpoints.xml,22.908,0.0,13.535,9.052,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.269,0.0,0.77,0.0,5.406,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 -base-dhw-tankless-electric-outside.xml,22.908,0.0,13.535,9.071,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.269,0.0,0.77,0.0,5.406,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 -base-dhw-tankless-electric-uef.xml,22.908,0.0,13.535,9.071,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.269,0.0,0.77,0.0,5.406,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 -base-dhw-tankless-electric.xml,22.908,0.0,13.535,9.071,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.269,0.0,0.77,0.0,5.406,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 -base-dhw-tankless-gas-uef.xml,22.908,0.0,13.535,9.071,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.269,0.0,0.77,0.0,5.406,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 -base-dhw-tankless-gas-with-solar-fraction.xml,22.908,0.0,13.535,9.071,0.0,0.0,5.896,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.269,0.0,0.77,0.0,5.406,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 -base-dhw-tankless-gas-with-solar.xml,22.543,0.0,13.98,9.262,0.0,0.0,8.0,0.0,3.817,3.881,0.545,7.573,0.682,10.759,-13.559,0.0,0.0,0.0,8.357,-0.115,5.261,0.0,0.77,0.0,5.329,-8.45,-2.661,0.0,0.022,-0.192,-0.015,2.82,0.034,-0.644,10.854,0.0,0.0,0.0,-6.159,-0.111,-0.852,-3.913,-0.117,0.0,3.158,7.364,1.846 -base-dhw-tankless-gas.xml,22.908,0.0,13.535,9.071,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.269,0.0,0.77,0.0,5.406,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 -base-dhw-tankless-propane.xml,22.908,0.0,13.535,9.071,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.269,0.0,0.77,0.0,5.406,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 -base-enclosure-2stories-garage.xml,24.501,0.0,21.255,9.049,0.611,0.0,0.0,0.0,4.091,7.657,1.114,4.964,0.78,21.791,-23.603,0.0,0.0,0.83,4.983,-0.987,9.334,0.0,0.767,0.0,3.651,-8.65,-2.876,0.0,-0.094,-0.892,-0.073,1.032,0.079,0.008,24.731,0.0,0.0,-0.161,-6.38,-0.979,-1.589,-7.584,-0.144,0.0,2.885,8.4,2.39 -base-enclosure-2stories-infil-leakiness-description.xml,23.484,0.0,21.307,8.985,0.612,0.0,0.0,0.0,4.059,8.226,0.558,7.396,0.742,21.894,-24.905,0.0,0.0,0.0,7.857,-0.663,6.615,0.0,0.771,0.0,3.662,-9.918,-3.562,0.0,-0.067,-0.691,-0.027,2.133,0.052,-0.698,23.656,0.0,0.0,0.0,-7.651,-0.654,-1.119,-8.212,-0.136,0.0,2.996,9.255,2.806 -base-enclosure-2stories.xml,29.091,0.0,20.796,8.985,0.614,0.0,0.0,0.0,4.092,8.321,1.129,7.441,0.745,22.122,-25.809,0.0,0.0,0.0,7.984,-0.645,11.863,0.0,0.784,0.0,4.281,-10.247,-3.683,0.0,0.036,-0.506,-0.03,2.306,0.067,-0.219,22.757,0.0,0.0,0.0,-7.335,-0.636,-1.765,-7.887,-0.114,0.0,2.814,8.922,2.685 -base-enclosure-beds-1.xml,23.962,0.0,12.843,5.264,0.616,0.0,0.0,0.0,3.823,3.901,0.548,7.525,0.688,10.839,-13.718,0.0,0.0,0.0,8.334,-0.134,5.306,0.0,0.774,0.0,5.635,-7.213,-2.699,0.0,0.087,-0.137,-0.007,2.88,0.048,-0.457,10.695,0.0,0.0,0.0,-6.033,-0.13,-0.786,-3.71,-0.106,0.0,2.946,5.87,1.808 -base-enclosure-beds-2.xml,23.229,0.0,13.291,7.209,0.616,0.0,0.0,0.0,3.818,3.889,0.546,7.547,0.685,10.798,-13.637,0.0,0.0,0.0,8.355,-0.126,5.283,0.0,0.771,0.0,5.477,-7.848,-2.681,0.0,0.055,-0.165,-0.011,2.852,0.042,-0.547,10.776,0.0,0.0,0.0,-6.081,-0.122,-0.817,-3.797,-0.112,0.0,3.029,6.484,1.826 -base-enclosure-beds-4.xml,21.778,0.0,14.205,10.893,0.615,0.0,0.0,0.0,3.817,3.875,0.544,7.591,0.68,10.734,-13.504,0.0,0.0,0.0,8.375,-0.11,5.243,0.0,0.769,0.0,5.162,-9.102,-2.649,0.0,-0.0,-0.211,-0.017,2.799,0.029,-0.707,10.909,0.0,0.0,0.0,-6.193,-0.107,-0.874,-3.972,-0.12,0.0,3.198,7.729,1.858 -base-enclosure-beds-5.xml,21.063,0.0,14.669,12.689,0.614,0.0,0.0,0.0,3.815,3.867,0.544,7.618,0.678,10.712,-13.452,0.0,0.0,0.0,8.406,-0.103,5.228,0.0,0.769,0.0,5.006,-9.733,-2.64,0.0,-0.029,-0.235,-0.02,2.777,0.023,-0.778,10.962,0.0,0.0,0.0,-6.231,-0.1,-0.898,-4.061,-0.124,0.0,3.282,8.346,1.867 -base-enclosure-ceilingtypes.xml,37.395,0.0,14.807,9.071,0.619,0.0,0.0,0.0,18.394,3.872,0.543,7.291,0.658,10.726,-14.408,0.0,0.0,0.0,7.758,-0.119,5.512,0.0,0.791,0.0,7.747,-8.976,-2.822,0.0,1.25,-0.023,0.009,2.995,0.052,-0.149,10.005,0.0,0.0,0.0,-5.995,-0.109,-0.642,-3.617,-0.077,0.0,2.956,6.597,1.685 -base-enclosure-floortypes.xml,37.259,0.0,10.684,9.178,0.622,0.0,0.0,0.0,3.667,3.794,0.0,0.0,0.668,9.575,-14.415,0.0,0.0,30.527,0.0,-0.268,2.641,0.0,0.809,0.0,8.521,-7.018,-1.663,0.0,0.443,0.088,0.0,0.0,0.096,1.03,9.553,0.0,0.0,-6.421,0.0,-0.263,-0.182,-2.153,-0.056,0.0,2.658,4.964,0.982 -base-enclosure-garage.xml,24.781,0.0,9.038,9.071,0.726,0.0,0.0,0.0,3.922,4.132,0.549,5.912,0.671,8.971,-7.706,0.0,0.0,0.0,6.683,-0.101,5.909,0.0,0.0,0.0,5.041,-6.613,-2.816,0.0,0.355,0.069,0.014,2.548,0.064,-0.291,7.227,0.0,0.0,0.0,-5.461,-0.098,-0.74,-2.654,0.0,0.0,1.614,4.783,1.691 -base-enclosure-infil-ach-house-pressure.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-enclosure-infil-cfm-house-pressure.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-enclosure-infil-cfm50.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-enclosure-infil-ela.xml,29.668,0.0,13.33,9.071,0.617,0.0,0.0,0.0,3.816,3.946,0.554,7.476,0.699,11.022,-13.922,0.0,0.0,0.0,8.256,-0.192,11.511,0.0,0.783,0.0,6.881,-8.758,-2.745,0.0,0.148,-0.081,0.001,2.874,0.063,-0.232,10.491,0.0,0.0,0.0,-6.064,-0.188,-1.552,-3.588,-0.093,0.0,3.078,6.819,1.762 -base-enclosure-infil-flue.xml,23.825,0.0,13.652,9.071,0.616,0.0,0.0,0.0,3.82,3.898,0.547,7.554,0.686,10.821,-13.636,0.0,0.0,0.0,8.332,-0.13,6.419,0.0,0.773,0.0,5.608,-8.536,-2.682,0.0,0.055,-0.163,-0.011,2.842,0.041,-0.541,10.777,0.0,0.0,0.0,-6.132,-0.126,-1.018,-3.817,-0.111,0.0,3.106,7.044,1.825 -base-enclosure-infil-leakiness-description.xml,46.209,0.0,12.548,9.071,0.621,0.0,0.0,0.0,3.71,3.995,0.56,7.35,0.699,11.206,-14.578,0.0,0.0,0.0,8.256,-0.243,25.84,0.0,0.798,0.0,10.328,-9.169,-2.864,0.0,0.282,0.045,0.018,2.973,0.083,0.191,9.836,0.0,0.0,0.0,-5.743,-0.24,-2.67,-3.14,-0.062,0.0,3.01,6.399,1.643 -base-enclosure-infil-natural-ach.xml,29.312,0.0,13.349,9.071,0.617,0.0,0.0,0.0,3.814,3.942,0.553,7.485,0.697,11.001,-13.9,0.0,0.0,0.0,8.263,-0.183,11.192,0.0,0.783,0.0,6.804,-8.741,-2.741,0.0,0.14,-0.087,0.0,2.877,0.06,-0.259,10.513,0.0,0.0,0.0,-6.065,-0.18,-1.53,-3.601,-0.094,0.0,3.079,6.836,1.766 -base-enclosure-infil-natural-cfm.xml,29.312,0.0,13.349,9.071,0.617,0.0,0.0,0.0,3.814,3.942,0.553,7.485,0.697,11.001,-13.9,0.0,0.0,0.0,8.263,-0.183,11.192,0.0,0.783,0.0,6.804,-8.741,-2.741,0.0,0.14,-0.087,0.0,2.877,0.06,-0.259,10.513,0.0,0.0,0.0,-6.065,-0.18,-1.53,-3.601,-0.094,0.0,3.079,6.836,1.766 -base-enclosure-orientations.xml,22.742,0.0,13.654,9.071,0.615,0.0,0.0,0.0,3.819,3.885,0.546,7.568,0.927,10.764,-13.606,0.0,0.0,0.0,8.351,-0.113,5.268,0.0,0.77,0.0,5.368,-8.491,-2.668,0.0,0.039,-0.179,-0.013,2.839,-0.083,-0.61,10.808,0.0,0.0,0.0,-6.126,-0.109,-0.839,-3.866,-0.115,0.0,3.092,7.09,1.84 -base-enclosure-overhangs.xml,22.788,0.0,13.186,9.071,0.616,0.0,0.0,0.0,3.811,3.88,0.545,7.552,0.681,10.665,-13.17,0.0,0.0,0.0,8.356,-0.112,5.265,0.0,0.77,0.0,5.374,-8.508,-2.672,0.0,0.05,-0.172,-0.012,2.859,0.039,-0.644,10.206,0.0,0.0,0.0,-6.049,-0.108,-0.837,-3.824,-0.114,0.0,2.993,7.072,1.835 -base-enclosure-rooftypes.xml,22.561,0.0,13.275,9.071,0.615,0.0,0.0,0.0,3.926,3.88,0.545,7.567,0.683,10.765,-13.585,0.0,0.0,0.0,8.368,-0.117,5.263,0.0,0.77,0.0,5.308,-8.491,-2.667,0.0,-0.195,-0.183,-0.013,2.84,0.037,-0.609,10.828,0.0,0.0,0.0,-6.108,-0.114,-0.843,-3.863,-0.116,0.0,2.812,7.089,1.84 +base-dhw-none.xml,22.856,0.0,13.375,0.0,0.0,0.0,0.0,0.0,3.82,3.887,0.546,7.554,0.685,10.79,-13.614,0.0,0.0,0.0,8.356,-0.126,5.818,0.0,0.0,0.0,5.398,-7.933,-2.675,0.0,0.047,-0.173,-0.012,2.842,0.04,-0.571,10.799,0.0,0.0,0.0,-6.103,-0.122,-0.927,-3.828,0.0,0.0,3.04,6.633,1.832 +base-dhw-recirc-demand-scheduled.xml,22.503,0.0,13.745,9.013,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-dhw-recirc-demand.xml,22.503,0.0,13.745,9.013,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-dhw-recirc-manual.xml,22.503,0.0,13.745,9.013,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-dhw-recirc-nocontrol.xml,22.503,0.0,13.745,9.105,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-dhw-recirc-temperature.xml,22.503,0.0,13.745,9.105,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-dhw-recirc-timer.xml,22.503,0.0,13.745,9.105,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-dhw-solar-direct-evacuated-tube.xml,22.503,0.0,13.76,9.095,0.629,0.0,6.636,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.885,-0.117,0.0,3.116,7.12,1.845 +base-dhw-solar-direct-flat-plate.xml,22.493,0.0,13.811,9.208,0.696,0.0,8.354,0.0,3.819,3.882,0.545,7.571,0.682,10.758,-13.574,0.0,0.0,0.0,8.365,-0.114,5.258,0.0,0.77,0.0,5.321,-8.484,-2.662,0.0,0.028,-0.189,-0.014,2.825,0.035,-0.637,10.839,0.0,0.0,0.0,-6.14,-0.111,-0.849,-3.893,-0.117,0.0,3.125,7.178,1.845 +base-dhw-solar-direct-ics.xml,22.503,0.0,13.783,9.131,0.65,0.0,6.624,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.847,-3.887,-0.117,0.0,3.12,7.141,1.845 +base-dhw-solar-fraction.xml,22.766,0.0,13.609,9.071,0.215,0.0,5.896,0.0,3.819,3.885,0.546,7.567,0.684,10.775,-13.598,0.0,0.0,0.0,8.367,-0.12,5.266,0.0,0.77,0.0,5.379,-8.259,-2.668,0.0,0.037,-0.181,-0.013,2.835,0.037,-0.606,10.815,0.0,0.0,0.0,-6.12,-0.116,-0.837,-3.857,-0.115,0.0,3.089,6.922,1.839 +base-dhw-solar-indirect-flat-plate.xml,22.138,0.0,14.242,9.186,0.684,0.0,8.35,0.0,3.817,3.877,0.545,7.579,0.68,10.737,-13.523,0.0,0.0,0.0,8.352,-0.111,5.248,0.0,0.769,0.0,5.245,-8.782,-2.651,0.0,0.01,-0.203,-0.016,2.806,0.03,-0.685,10.89,0.0,0.0,0.0,-6.188,-0.107,-0.867,-3.96,-0.119,0.0,3.204,7.703,1.856 +base-dhw-solar-thermosyphon-flat-plate.xml,22.494,0.0,13.808,9.2,0.691,0.0,8.317,0.0,3.819,3.883,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.259,0.0,0.77,0.0,5.321,-8.485,-2.662,0.0,0.028,-0.188,-0.014,2.826,0.035,-0.634,10.839,0.0,0.0,0.0,-6.141,-0.112,-0.848,-3.892,-0.117,0.0,3.124,7.173,1.845 +base-dhw-tank-coal.xml,22.67,0.0,14.249,9.071,3.629,0.0,0.0,0.0,3.814,3.88,0.545,7.574,0.683,10.763,-13.523,0.0,0.0,0.0,8.331,-0.119,6.38,0.0,0.77,0.0,5.365,-9.486,-2.657,0.0,0.015,-0.197,-0.015,2.811,0.033,-0.651,10.89,0.0,0.0,0.0,-6.197,-0.115,-1.071,-3.933,-0.118,0.0,3.211,7.852,1.85 +base-dhw-tank-detailed-setpoints.xml,22.497,0.0,13.749,9.045,0.624,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.364,-0.116,5.259,0.0,0.77,0.0,5.321,-8.48,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.847,-3.885,-0.117,0.0,3.113,7.11,1.845 +base-dhw-tank-elec-uef.xml,22.452,0.0,13.772,9.071,0.692,0.0,0.0,0.0,3.82,3.882,0.545,7.572,0.682,10.758,-13.574,0.0,0.0,0.0,8.366,-0.114,5.258,0.0,0.77,0.0,5.312,-8.52,-2.662,0.0,0.028,-0.188,-0.014,2.826,0.035,-0.636,10.839,0.0,0.0,0.0,-6.139,-0.11,-0.848,-3.89,-0.117,0.0,3.118,7.139,1.845 +base-dhw-tank-gas-outside.xml,22.909,0.0,13.535,9.071,5.067,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.266,0.0,0.77,0.0,5.409,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 +base-dhw-tank-gas-uef-fhr.xml,22.94,0.0,14.108,9.071,2.983,0.0,0.0,0.0,3.819,3.887,0.546,7.571,0.684,10.781,-13.562,0.0,0.0,0.0,8.337,-0.119,6.392,0.0,0.771,0.0,5.423,-9.275,-2.667,0.0,0.028,-0.186,-0.014,2.82,0.036,-0.621,10.852,0.0,0.0,0.0,-6.177,-0.115,-1.056,-3.905,-0.116,0.0,3.186,7.651,1.84 +base-dhw-tank-gas-uef.xml,22.94,0.0,14.108,9.071,2.983,0.0,0.0,0.0,3.819,3.887,0.546,7.571,0.684,10.781,-13.562,0.0,0.0,0.0,8.337,-0.119,6.392,0.0,0.771,0.0,5.423,-9.275,-2.667,0.0,0.028,-0.186,-0.014,2.82,0.036,-0.621,10.852,0.0,0.0,0.0,-6.177,-0.115,-1.056,-3.905,-0.116,0.0,3.186,7.651,1.84 +base-dhw-tank-gas.xml,22.67,0.0,14.249,9.071,3.629,0.0,0.0,0.0,3.814,3.88,0.545,7.574,0.683,10.763,-13.523,0.0,0.0,0.0,8.331,-0.119,6.38,0.0,0.77,0.0,5.365,-9.486,-2.657,0.0,0.015,-0.197,-0.015,2.811,0.033,-0.651,10.89,0.0,0.0,0.0,-6.197,-0.115,-1.071,-3.933,-0.118,0.0,3.211,7.852,1.85 +base-dhw-tank-heat-pump-detailed-schedules.xml,27.438,0.0,11.725,9.212,1.418,0.0,0.0,0.0,3.825,3.931,0.552,7.459,0.694,10.962,-14.009,0.0,0.0,0.0,8.372,-0.194,5.374,0.0,0.781,0.0,6.345,-4.284,-2.746,0.0,0.164,-0.073,0.002,2.922,0.063,-0.224,10.404,0.0,0.0,0.0,-5.863,-0.19,-0.695,-3.422,-0.093,0.0,2.71,4.379,1.761 +base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml,27.467,0.0,11.607,9.127,1.31,0.0,0.0,0.0,3.838,3.945,0.553,7.5,0.691,10.909,-14.116,0.0,0.0,0.0,8.448,-0.118,5.37,0.0,0.783,0.0,6.347,-4.299,-2.763,0.0,0.18,-0.062,0.003,2.964,0.06,-0.287,10.298,0.0,0.0,0.0,-5.801,-0.114,-0.707,-3.492,-0.089,0.0,2.71,4.337,1.745 +base-dhw-tank-heat-pump-outside.xml,22.909,0.0,13.535,9.093,2.525,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.266,0.0,0.77,0.0,5.409,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 +base-dhw-tank-heat-pump-uef.xml,27.467,0.0,11.607,9.127,1.31,0.0,0.0,0.0,3.838,3.945,0.553,7.5,0.691,10.909,-14.116,0.0,0.0,0.0,8.448,-0.118,5.37,0.0,0.783,0.0,6.347,-4.299,-2.763,0.0,0.18,-0.062,0.003,2.964,0.06,-0.287,10.298,0.0,0.0,0.0,-5.801,-0.114,-0.707,-3.492,-0.089,0.0,2.71,4.337,1.745 +base-dhw-tank-heat-pump-with-solar-fraction.xml,24.194,0.0,12.981,9.103,0.603,0.0,5.917,0.0,3.822,3.902,0.548,7.542,0.687,10.82,-13.728,0.0,0.0,0.0,8.369,-0.127,5.297,0.0,0.774,0.0,5.675,-7.055,-2.696,0.0,0.077,-0.146,-0.008,2.868,0.045,-0.503,10.685,0.0,0.0,0.0,-6.042,-0.123,-0.798,-3.741,-0.107,0.0,2.97,6.11,1.812 +base-dhw-tank-heat-pump-with-solar.xml,23.103,0.0,14.402,9.017,1.972,0.0,8.047,0.0,3.813,3.886,0.546,7.578,0.683,10.785,-13.562,0.0,0.0,0.0,8.317,-0.125,5.273,0.0,0.772,0.0,5.447,-8.0,-2.667,0.0,0.019,-0.19,-0.014,2.816,0.035,-0.625,10.851,0.0,0.0,0.0,-6.203,-0.121,-0.847,-3.949,-0.115,0.0,3.23,7.783,1.84 +base-dhw-tank-heat-pump.xml,26.647,0.0,11.932,9.116,1.721,0.0,0.0,0.0,3.836,3.938,0.552,7.526,0.689,10.892,-14.038,0.0,0.0,0.0,8.415,-0.119,5.355,0.0,0.781,0.0,6.178,-4.997,-2.749,0.0,0.157,-0.08,0.001,2.951,0.054,-0.338,10.375,0.0,0.0,0.0,-5.874,-0.115,-0.729,-3.555,-0.093,0.0,2.761,4.778,1.758 +base-dhw-tank-model-type-stratified-detailed-occupancy-stochastic.xml,22.224,0.0,13.796,9.117,0.021,0.0,0.0,0.0,3.837,3.898,0.548,7.612,0.683,10.79,-13.626,0.0,0.0,0.0,8.389,-0.104,5.684,0.0,0.814,0.0,5.256,-9.241,-2.673,0.0,0.038,-0.178,-0.013,2.848,0.035,-0.617,10.787,0.0,0.0,0.0,-6.141,-0.1,-0.916,-3.888,-0.145,0.0,3.114,7.258,1.837 +base-dhw-tank-model-type-stratified.xml,22.895,0.0,13.543,9.121,0.021,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.771,-13.61,0.0,0.0,0.0,8.372,-0.116,5.266,0.0,0.77,0.0,5.406,-8.148,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.109,-0.113,-0.836,-3.844,-0.115,0.0,3.077,6.839,1.837 +base-dhw-tank-oil.xml,22.67,0.0,14.249,9.071,3.629,0.0,0.0,0.0,3.814,3.88,0.545,7.574,0.683,10.763,-13.523,0.0,0.0,0.0,8.331,-0.119,6.38,0.0,0.77,0.0,5.365,-9.486,-2.657,0.0,0.015,-0.197,-0.015,2.811,0.033,-0.651,10.89,0.0,0.0,0.0,-6.197,-0.115,-1.071,-3.933,-0.118,0.0,3.211,7.852,1.85 +base-dhw-tank-wood.xml,22.67,0.0,14.249,9.071,3.629,0.0,0.0,0.0,3.814,3.88,0.545,7.574,0.683,10.763,-13.523,0.0,0.0,0.0,8.331,-0.119,6.38,0.0,0.77,0.0,5.365,-9.486,-2.657,0.0,0.015,-0.197,-0.015,2.811,0.033,-0.651,10.89,0.0,0.0,0.0,-6.197,-0.115,-1.071,-3.933,-0.118,0.0,3.211,7.852,1.85 +base-dhw-tankless-detailed-setpoints.xml,22.909,0.0,13.535,9.052,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.266,0.0,0.77,0.0,5.409,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 +base-dhw-tankless-electric-outside.xml,22.909,0.0,13.535,9.071,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.266,0.0,0.77,0.0,5.409,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 +base-dhw-tankless-electric-uef.xml,22.909,0.0,13.535,9.071,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.266,0.0,0.77,0.0,5.409,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 +base-dhw-tankless-electric.xml,22.909,0.0,13.535,9.071,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.266,0.0,0.77,0.0,5.409,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 +base-dhw-tankless-gas-uef.xml,22.909,0.0,13.535,9.071,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.266,0.0,0.77,0.0,5.409,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 +base-dhw-tankless-gas-with-solar-fraction.xml,22.909,0.0,13.535,9.071,0.0,0.0,5.896,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.266,0.0,0.77,0.0,5.409,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 +base-dhw-tankless-gas-with-solar.xml,22.544,0.0,13.98,9.262,0.0,0.0,8.0,0.0,3.817,3.881,0.545,7.573,0.682,10.759,-13.559,0.0,0.0,0.0,8.357,-0.115,5.258,0.0,0.77,0.0,5.332,-8.45,-2.661,0.0,0.022,-0.192,-0.015,2.82,0.034,-0.644,10.854,0.0,0.0,0.0,-6.159,-0.111,-0.852,-3.913,-0.117,0.0,3.158,7.364,1.846 +base-dhw-tankless-gas.xml,22.909,0.0,13.535,9.071,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.266,0.0,0.77,0.0,5.409,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 +base-dhw-tankless-propane.xml,22.909,0.0,13.535,9.071,0.0,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.266,0.0,0.77,0.0,5.409,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 +base-enclosure-2stories-garage.xml,24.503,0.0,21.255,9.049,0.611,0.0,0.0,0.0,4.091,7.657,1.114,4.964,0.78,21.791,-23.603,0.0,0.0,0.83,4.983,-0.987,9.333,0.0,0.767,0.0,3.655,-8.65,-2.876,0.0,-0.094,-0.892,-0.073,1.032,0.079,0.008,24.731,0.0,0.0,-0.161,-6.38,-0.979,-1.589,-7.584,-0.144,0.0,2.885,8.4,2.39 +base-enclosure-2stories-infil-leakiness-description.xml,23.483,0.0,21.307,8.985,0.612,0.0,0.0,0.0,4.059,8.226,0.558,7.396,0.742,21.894,-24.905,0.0,0.0,0.0,7.857,-0.663,6.613,0.0,0.771,0.0,3.661,-9.918,-3.562,0.0,-0.067,-0.691,-0.027,2.133,0.052,-0.698,23.656,0.0,0.0,0.0,-7.651,-0.654,-1.119,-8.212,-0.136,0.0,2.996,9.255,2.806 +base-enclosure-2stories.xml,29.094,0.0,20.796,8.985,0.614,0.0,0.0,0.0,4.092,8.321,1.129,7.441,0.745,22.122,-25.809,0.0,0.0,0.0,7.984,-0.645,11.862,0.0,0.784,0.0,4.285,-10.247,-3.683,0.0,0.036,-0.506,-0.03,2.306,0.067,-0.219,22.757,0.0,0.0,0.0,-7.335,-0.636,-1.765,-7.887,-0.114,0.0,2.814,8.922,2.685 +base-enclosure-beds-1.xml,23.963,0.0,12.843,5.264,0.616,0.0,0.0,0.0,3.823,3.901,0.548,7.525,0.688,10.839,-13.718,0.0,0.0,0.0,8.334,-0.134,5.304,0.0,0.774,0.0,5.639,-7.213,-2.699,0.0,0.087,-0.137,-0.007,2.88,0.048,-0.457,10.695,0.0,0.0,0.0,-6.033,-0.13,-0.786,-3.71,-0.106,0.0,2.946,5.87,1.808 +base-enclosure-beds-2.xml,23.23,0.0,13.291,7.209,0.616,0.0,0.0,0.0,3.818,3.889,0.546,7.547,0.685,10.798,-13.637,0.0,0.0,0.0,8.355,-0.126,5.28,0.0,0.771,0.0,5.48,-7.848,-2.681,0.0,0.055,-0.165,-0.011,2.852,0.042,-0.547,10.776,0.0,0.0,0.0,-6.081,-0.122,-0.817,-3.797,-0.112,0.0,3.029,6.484,1.826 +base-enclosure-beds-4.xml,21.779,0.0,14.205,10.893,0.615,0.0,0.0,0.0,3.817,3.875,0.544,7.591,0.68,10.734,-13.504,0.0,0.0,0.0,8.375,-0.11,5.241,0.0,0.769,0.0,5.165,-9.102,-2.649,0.0,-0.0,-0.211,-0.017,2.799,0.029,-0.707,10.909,0.0,0.0,0.0,-6.193,-0.107,-0.874,-3.972,-0.12,0.0,3.198,7.729,1.858 +base-enclosure-beds-5.xml,21.063,0.0,14.669,12.689,0.614,0.0,0.0,0.0,3.815,3.867,0.544,7.618,0.678,10.712,-13.452,0.0,0.0,0.0,8.406,-0.103,5.225,0.0,0.769,0.0,5.009,-9.733,-2.64,0.0,-0.029,-0.235,-0.02,2.777,0.023,-0.778,10.962,0.0,0.0,0.0,-6.231,-0.1,-0.898,-4.061,-0.124,0.0,3.282,8.346,1.867 +base-enclosure-ceilingtypes.xml,37.399,0.0,14.807,9.071,0.619,0.0,0.0,0.0,18.392,3.872,0.543,7.291,0.658,10.726,-14.408,0.0,0.0,0.0,7.758,-0.119,5.507,0.0,0.791,0.0,7.757,-8.976,-2.822,0.0,1.25,-0.023,0.009,2.995,0.052,-0.149,10.005,0.0,0.0,0.0,-5.995,-0.109,-0.642,-3.617,-0.077,0.0,2.956,6.597,1.685 +base-enclosure-floortypes.xml,37.258,0.0,10.684,9.178,0.622,0.0,0.0,0.0,3.667,3.794,0.0,0.0,0.668,9.575,-14.415,0.0,0.0,30.527,0.0,-0.268,2.635,0.0,0.809,0.0,8.526,-7.018,-1.663,0.0,0.443,0.088,0.0,0.0,0.096,1.03,9.553,0.0,0.0,-6.421,0.0,-0.263,-0.182,-2.153,-0.056,0.0,2.658,4.964,0.982 +base-enclosure-garage.xml,24.787,0.0,9.038,9.071,0.726,0.0,0.0,0.0,3.922,4.132,0.549,5.912,0.671,8.971,-7.706,0.0,0.0,0.0,6.683,-0.101,5.907,0.0,0.0,0.0,5.048,-6.613,-2.816,0.0,0.355,0.069,0.014,2.548,0.064,-0.291,7.227,0.0,0.0,0.0,-5.461,-0.098,-0.74,-2.654,0.0,0.0,1.614,4.783,1.691 +base-enclosure-infil-ach-house-pressure.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-enclosure-infil-cfm-house-pressure.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-enclosure-infil-cfm50.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-enclosure-infil-ela.xml,29.671,0.0,13.33,9.071,0.617,0.0,0.0,0.0,3.816,3.946,0.554,7.476,0.699,11.022,-13.922,0.0,0.0,0.0,8.256,-0.192,11.509,0.0,0.783,0.0,6.886,-8.758,-2.745,0.0,0.148,-0.081,0.001,2.874,0.063,-0.232,10.491,0.0,0.0,0.0,-6.064,-0.188,-1.552,-3.588,-0.093,0.0,3.078,6.819,1.762 +base-enclosure-infil-flue.xml,23.827,0.0,13.652,9.071,0.616,0.0,0.0,0.0,3.82,3.898,0.547,7.554,0.686,10.821,-13.636,0.0,0.0,0.0,8.332,-0.13,6.417,0.0,0.773,0.0,5.612,-8.536,-2.682,0.0,0.055,-0.163,-0.011,2.842,0.041,-0.541,10.777,0.0,0.0,0.0,-6.132,-0.126,-1.018,-3.817,-0.111,0.0,3.106,7.044,1.825 +base-enclosure-infil-leakiness-description.xml,46.216,0.0,12.548,9.071,0.621,0.0,0.0,0.0,3.709,3.995,0.56,7.35,0.699,11.206,-14.578,0.0,0.0,0.0,8.256,-0.243,25.838,0.0,0.798,0.0,10.338,-9.169,-2.864,0.0,0.282,0.045,0.018,2.973,0.083,0.191,9.836,0.0,0.0,0.0,-5.743,-0.24,-2.67,-3.14,-0.062,0.0,3.01,6.399,1.643 +base-enclosure-infil-natural-ach.xml,29.315,0.0,13.349,9.071,0.617,0.0,0.0,0.0,3.814,3.942,0.553,7.485,0.697,11.001,-13.9,0.0,0.0,0.0,8.263,-0.183,11.19,0.0,0.783,0.0,6.809,-8.741,-2.741,0.0,0.14,-0.087,0.0,2.877,0.06,-0.259,10.513,0.0,0.0,0.0,-6.065,-0.18,-1.53,-3.601,-0.094,0.0,3.079,6.836,1.766 +base-enclosure-infil-natural-cfm.xml,29.315,0.0,13.349,9.071,0.617,0.0,0.0,0.0,3.814,3.942,0.553,7.485,0.697,11.001,-13.9,0.0,0.0,0.0,8.263,-0.183,11.19,0.0,0.783,0.0,6.809,-8.741,-2.741,0.0,0.14,-0.087,0.0,2.877,0.06,-0.259,10.513,0.0,0.0,0.0,-6.065,-0.18,-1.53,-3.601,-0.094,0.0,3.079,6.836,1.766 +base-enclosure-orientations.xml,22.742,0.0,13.654,9.071,0.615,0.0,0.0,0.0,3.819,3.885,0.546,7.568,0.927,10.764,-13.606,0.0,0.0,0.0,8.351,-0.113,5.265,0.0,0.77,0.0,5.372,-8.491,-2.668,0.0,0.039,-0.179,-0.013,2.839,-0.083,-0.61,10.808,0.0,0.0,0.0,-6.126,-0.109,-0.839,-3.866,-0.115,0.0,3.092,7.09,1.84 +base-enclosure-overhangs.xml,22.789,0.0,13.186,9.071,0.616,0.0,0.0,0.0,3.812,3.88,0.545,7.552,0.681,10.665,-13.17,0.0,0.0,0.0,8.356,-0.112,5.262,0.0,0.77,0.0,5.377,-8.508,-2.672,0.0,0.05,-0.172,-0.012,2.859,0.039,-0.644,10.206,0.0,0.0,0.0,-6.049,-0.108,-0.837,-3.824,-0.114,0.0,2.993,7.072,1.835 +base-enclosure-rooftypes.xml,22.562,0.0,13.275,9.071,0.615,0.0,0.0,0.0,3.926,3.88,0.545,7.567,0.683,10.765,-13.585,0.0,0.0,0.0,8.368,-0.117,5.261,0.0,0.77,0.0,5.311,-8.491,-2.667,0.0,-0.195,-0.183,-0.013,2.84,0.037,-0.609,10.828,0.0,0.0,0.0,-6.108,-0.114,-0.843,-3.863,-0.116,0.0,2.812,7.089,1.84 base-enclosure-skylights-cathedral.xml,26.291,0.0,15.582,8.985,0.616,0.0,0.0,7.253,0.0,4.685,0.559,7.674,0.704,14.342,-17.062,1.421,-1.886,0.0,8.311,-0.321,11.748,0.0,0.787,0.0,0.0,-8.63,-3.839,0.615,0.0,-0.194,-0.004,2.807,0.05,-0.39,14.341,0.395,2.753,0.0,-6.378,-0.277,-1.676,-5.623,-0.098,0.0,0.0,6.95,2.529 -base-enclosure-skylights-physical-properties.xml,25.641,0.0,17.429,9.071,0.614,0.0,0.0,0.0,3.633,3.916,0.55,7.528,0.696,10.915,-13.493,4.822,-2.417,0.0,8.242,-0.17,5.341,0.0,0.779,0.0,5.981,-8.504,-2.677,0.0,-0.009,-0.197,-0.015,2.692,0.038,-0.576,10.84,0.179,3.507,0.0,-6.589,-0.165,-0.802,-3.982,-0.112,0.0,3.932,7.079,1.831 -base-enclosure-skylights-shading.xml,25.374,0.0,14.078,9.071,0.616,0.0,0.0,0.0,3.629,3.911,0.549,7.508,0.686,10.849,-13.757,3.164,-0.357,0.0,8.233,-0.138,5.337,0.0,0.779,0.0,5.895,-8.605,-2.703,0.0,0.089,-0.125,-0.006,2.855,0.047,-0.452,10.647,-0.31,0.395,0.0,-6.149,-0.133,-0.774,-3.762,-0.104,0.0,3.2,6.974,1.804 -base-enclosure-skylights-storms.xml,24.079,0.0,16.42,9.071,0.614,0.0,0.0,0.0,3.63,3.901,0.548,7.561,0.689,10.843,-13.487,2.825,-1.573,0.0,8.303,-0.142,5.301,0.0,0.774,0.0,5.633,-8.464,-2.664,0.0,-0.012,-0.207,-0.017,2.732,0.033,-0.648,10.873,0.338,2.372,0.0,-6.451,-0.137,-0.834,-4.0,-0.116,0.0,3.692,7.119,1.843 -base-enclosure-skylights.xml,23.743,0.0,16.765,9.071,0.614,0.0,0.0,0.0,3.635,3.902,0.548,7.579,0.689,10.839,-13.471,2.727,-1.844,0.0,8.343,-0.134,5.296,0.0,0.774,0.0,5.562,-8.448,-2.659,0.0,-0.026,-0.218,-0.018,2.719,0.03,-0.685,10.88,0.325,2.783,0.0,-6.48,-0.13,-0.844,-4.042,-0.118,0.0,3.761,7.136,1.848 -base-enclosure-split-level.xml,11.072,0.0,11.79,9.291,0.608,0.0,0.0,0.0,4.071,3.741,0.0,0.0,0.771,10.247,-10.851,0.0,0.0,0.0,6.361,-0.511,2.757,0.0,0.735,0.0,0.36,-5.593,-1.324,0.0,-0.187,-0.658,0.0,0.0,0.069,-0.408,13.405,0.0,0.0,0.0,-3.122,-0.508,-0.575,-3.656,-0.196,0.0,0.131,6.421,1.322 -base-enclosure-thermal-mass.xml,22.372,0.0,13.617,9.071,0.615,0.0,0.0,0.0,3.806,3.871,0.544,7.572,0.679,10.75,-13.574,0.0,0.0,0.0,8.389,-0.181,5.245,0.0,0.767,0.0,5.276,-8.468,-2.661,0.0,0.022,-0.194,-0.015,2.865,0.033,-0.68,10.854,0.0,0.0,0.0,-6.068,-0.176,-0.861,-3.943,-0.118,0.0,3.056,7.113,1.846 -base-enclosure-walltypes.xml,39.882,0.0,9.162,9.071,0.622,0.0,0.0,0.0,3.555,18.175,0.507,7.006,0.894,1.375,-1.978,0.0,0.0,0.0,7.874,-0.068,5.542,0.0,0.796,0.0,8.585,-9.71,-3.018,0.0,0.377,0.636,0.026,3.286,-0.024,0.011,1.264,0.0,0.0,0.0,-4.399,-0.062,-0.573,-0.493,-0.056,0.0,1.917,5.856,1.489 -base-enclosure-windows-natural-ventilation-availability.xml,22.571,0.0,9.828,9.071,0.618,0.0,0.0,0.0,3.877,3.933,0.552,7.569,0.695,10.918,-13.755,0.0,0.0,0.0,8.416,-0.124,5.321,0.0,0.78,0.0,5.336,-8.615,-2.701,0.0,0.176,-0.074,0.002,3.023,0.063,-0.278,10.658,0.0,0.0,0.0,-5.837,-0.12,-0.707,-8.202,-0.096,0.0,2.529,6.959,1.806 -base-enclosure-windows-none.xml,25.151,0.0,7.543,9.071,0.619,0.0,0.0,0.0,3.638,5.463,0.527,7.127,0.623,0.0,0.0,0.0,0.0,0.0,8.435,-0.064,5.256,0.0,0.773,0.0,5.492,-9.304,-2.886,0.0,0.207,-0.044,0.007,3.157,0.04,0.0,0.0,0.0,0.0,0.0,-4.173,-0.062,-0.801,0.0,-0.089,0.0,1.439,6.267,1.621 -base-enclosure-windows-physical-properties.xml,29.852,0.0,13.648,9.071,0.617,0.0,0.0,0.0,3.804,3.931,0.552,7.421,0.695,21.358,-18.371,0.0,0.0,0.0,8.279,-0.204,5.438,0.0,0.788,0.0,6.942,-8.787,-2.753,0.0,0.17,-0.06,0.004,2.835,0.067,-3.026,12.741,0.0,0.0,0.0,-6.175,-0.198,-0.678,-3.511,-0.089,0.0,3.198,6.789,1.754 -base-enclosure-windows-shading-seasons.xml,22.404,0.0,13.843,9.071,0.615,0.0,0.0,0.0,3.775,3.843,0.54,7.55,0.675,10.631,-13.484,0.0,0.0,0.0,8.36,-0.106,5.22,0.0,0.764,0.0,5.296,-8.378,-2.638,0.0,-0.035,-0.246,-0.022,2.757,0.023,-0.671,11.34,0.0,0.0,0.0,-6.228,-0.102,-0.905,-4.025,-0.125,0.0,3.131,7.204,1.869 -base-enclosure-windows-shading.xml,24.561,0.0,5.77,9.071,0.623,0.0,0.0,0.0,3.839,3.945,0.552,7.353,0.652,12.133,-12.42,0.0,0.0,0.0,9.117,-0.043,5.465,0.0,0.809,0.0,5.747,-9.881,-3.069,0.0,0.457,0.188,0.037,3.442,0.08,-1.981,2.279,0.0,0.0,0.0,-3.895,-0.04,-0.479,-2.737,-0.041,0.0,1.375,5.682,1.438 -base-enclosure-windows-storms.xml,24.001,0.0,11.783,9.071,0.617,0.0,0.0,0.0,3.8,3.879,0.544,7.467,0.679,9.242,-10.257,0.0,0.0,0.0,8.148,-0.126,5.297,0.0,0.774,0.0,5.606,-8.634,-2.708,0.0,0.131,-0.104,-0.002,2.962,0.052,0.003,7.871,0.0,0.0,0.0,-5.804,-0.122,-0.781,-3.652,-0.104,0.0,2.692,6.943,1.799 -base-foundation-ambient.xml,17.266,0.0,14.77,9.178,0.608,0.0,0.0,0.0,3.824,3.644,0.0,0.0,0.782,9.922,-10.687,0.0,0.0,9.857,0.0,-0.764,2.203,0.0,0.71,0.0,4.236,-5.405,-1.255,0.0,-0.3,-0.706,0.0,0.0,0.056,-0.614,13.282,0.0,0.0,-3.986,0.0,-0.758,-0.474,-2.81,-0.221,0.0,3.542,6.609,1.391 -base-foundation-basement-garage.xml,20.004,0.0,13.742,9.2,0.614,0.0,0.0,0.0,3.977,5.033,0.549,5.451,0.766,10.591,-13.4,0.0,0.0,0.868,5.925,-0.117,3.662,0.0,0.78,0.0,4.895,-7.301,-2.012,0.0,0.11,-0.301,-0.016,1.934,0.032,-0.318,10.888,0.0,0.0,-0.083,-4.716,-0.114,-0.544,-3.73,-0.113,0.0,3.277,6.159,1.392 -base-foundation-belly-wing-no-skirt.xml,20.613,0.0,12.174,9.178,0.609,0.0,0.0,0.0,4.079,5.111,0.0,0.0,0.778,8.273,-10.425,0.0,0.0,9.956,0.0,-0.718,2.278,0.0,0.72,0.0,7.213,-5.54,-1.287,0.0,0.139,-0.81,0.0,0.0,0.073,-0.262,10.269,0.0,0.0,-3.67,0.0,-0.712,-0.455,-2.57,-0.203,0.0,2.773,6.472,1.358 -base-foundation-belly-wing-skirt.xml,20.236,0.0,12.225,9.178,0.609,0.0,0.0,0.0,4.074,5.104,0.0,0.0,0.777,8.253,-10.351,0.0,0.0,9.621,0.0,-0.709,2.265,0.0,0.717,0.0,7.085,-5.503,-1.279,0.0,0.123,-0.834,0.0,0.0,0.069,-0.313,10.343,0.0,0.0,-3.63,0.0,-0.704,-0.466,-2.588,-0.207,0.0,2.781,6.509,1.366 -base-foundation-complex.xml,39.637,0.0,17.171,9.071,0.618,0.0,0.0,0.0,3.667,3.918,0.557,20.494,0.687,10.848,-14.311,0.0,0.0,0.0,8.651,-0.176,6.784,0.0,0.792,0.0,8.952,-8.919,-2.804,0.0,0.138,-0.085,-0.006,4.844,0.038,-0.218,10.1,0.0,0.0,0.0,-4.512,-0.169,-0.807,-4.094,-0.079,0.0,3.767,6.655,1.703 -base-foundation-conditioned-basement-slab-insulation-full.xml,19.41,0.0,15.673,9.071,0.613,0.0,0.0,0.0,3.911,3.933,0.553,8.253,0.69,10.899,-13.459,0.0,0.0,0.0,4.74,-0.123,5.253,0.0,0.774,0.0,4.666,-8.388,-2.644,0.0,-0.027,-0.235,-0.02,2.304,0.019,-0.778,10.954,0.0,0.0,0.0,-3.676,-0.117,-0.883,-4.182,-0.121,0.0,3.479,7.198,1.863 -base-foundation-conditioned-basement-slab-insulation.xml,21.252,0.0,14.498,9.071,0.614,0.0,0.0,0.0,3.849,3.901,0.548,7.888,0.684,10.809,-13.564,0.0,0.0,0.0,6.927,-0.109,5.258,0.0,0.772,0.0,5.058,-8.458,-2.663,0.0,0.004,-0.205,-0.016,2.666,0.028,-0.687,10.849,0.0,0.0,0.0,-5.189,-0.105,-0.857,-3.988,-0.117,0.0,3.258,7.124,1.844 -base-foundation-conditioned-basement-wall-insulation.xml,21.692,0.0,12.247,9.071,0.615,0.0,0.0,0.0,3.896,3.946,0.554,6.333,0.695,10.933,-13.737,0.0,0.0,0.0,8.89,-0.17,5.316,0.0,0.782,0.0,5.171,-8.581,-2.695,0.0,0.128,-0.107,-0.003,1.448,0.052,-0.411,10.676,0.0,0.0,0.0,-6.448,-0.165,-0.779,-3.625,-0.103,0.0,2.881,7.0,1.812 +base-enclosure-skylights-physical-properties.xml,25.642,0.0,17.429,9.071,0.614,0.0,0.0,0.0,3.633,3.916,0.55,7.528,0.696,10.915,-13.493,4.822,-2.417,0.0,8.242,-0.17,5.339,0.0,0.779,0.0,5.985,-8.504,-2.677,0.0,-0.009,-0.197,-0.015,2.692,0.038,-0.576,10.84,0.179,3.507,0.0,-6.589,-0.165,-0.802,-3.982,-0.112,0.0,3.932,7.079,1.831 +base-enclosure-skylights-shading.xml,25.375,0.0,14.078,9.071,0.616,0.0,0.0,0.0,3.629,3.911,0.549,7.508,0.686,10.849,-13.757,3.164,-0.357,0.0,8.233,-0.138,5.334,0.0,0.779,0.0,5.899,-8.605,-2.703,0.0,0.089,-0.125,-0.006,2.855,0.047,-0.452,10.647,-0.31,0.395,0.0,-6.149,-0.133,-0.774,-3.762,-0.104,0.0,3.2,6.974,1.804 +base-enclosure-skylights-storms.xml,24.08,0.0,16.42,9.071,0.614,0.0,0.0,0.0,3.63,3.901,0.548,7.561,0.689,10.843,-13.487,2.825,-1.573,0.0,8.303,-0.142,5.299,0.0,0.774,0.0,5.637,-8.464,-2.664,0.0,-0.012,-0.207,-0.017,2.732,0.033,-0.648,10.873,0.338,2.372,0.0,-6.451,-0.137,-0.834,-4.0,-0.116,0.0,3.692,7.119,1.843 +base-enclosure-skylights.xml,23.743,0.0,16.765,9.071,0.614,0.0,0.0,0.0,3.635,3.902,0.548,7.579,0.689,10.839,-13.471,2.727,-1.844,0.0,8.343,-0.134,5.293,0.0,0.774,0.0,5.566,-8.448,-2.659,0.0,-0.026,-0.218,-0.018,2.719,0.03,-0.685,10.88,0.325,2.783,0.0,-6.48,-0.13,-0.844,-4.042,-0.118,0.0,3.761,7.136,1.848 +base-enclosure-split-level.xml,11.071,0.0,11.79,9.291,0.608,0.0,0.0,0.0,4.071,3.741,0.0,0.0,0.771,10.247,-10.851,0.0,0.0,0.0,6.361,-0.511,2.755,0.0,0.735,0.0,0.361,-5.593,-1.324,0.0,-0.187,-0.658,0.0,0.0,0.069,-0.408,13.405,0.0,0.0,0.0,-3.122,-0.508,-0.575,-3.656,-0.196,0.0,0.131,6.421,1.322 +base-enclosure-thermal-mass.xml,22.373,0.0,13.617,9.071,0.615,0.0,0.0,0.0,3.806,3.871,0.544,7.572,0.679,10.75,-13.574,0.0,0.0,0.0,8.389,-0.181,5.242,0.0,0.767,0.0,5.279,-8.468,-2.661,0.0,0.022,-0.194,-0.015,2.865,0.033,-0.68,10.854,0.0,0.0,0.0,-6.068,-0.176,-0.861,-3.943,-0.118,0.0,3.056,7.113,1.846 +base-enclosure-walltypes.xml,39.887,0.0,9.162,9.071,0.622,0.0,0.0,0.0,3.554,18.175,0.507,7.006,0.894,1.375,-1.978,0.0,0.0,0.0,7.874,-0.068,5.538,0.0,0.796,0.0,8.594,-9.71,-3.018,0.0,0.377,0.636,0.026,3.286,-0.024,0.011,1.264,0.0,0.0,0.0,-4.399,-0.062,-0.573,-0.493,-0.056,0.0,1.917,5.856,1.489 +base-enclosure-windows-natural-ventilation-availability.xml,22.572,0.0,9.828,9.071,0.618,0.0,0.0,0.0,3.877,3.933,0.552,7.569,0.695,10.918,-13.755,0.0,0.0,0.0,8.416,-0.124,5.318,0.0,0.78,0.0,5.339,-8.615,-2.701,0.0,0.176,-0.074,0.002,3.023,0.063,-0.278,10.658,0.0,0.0,0.0,-5.837,-0.12,-0.707,-8.202,-0.096,0.0,2.529,6.959,1.806 +base-enclosure-windows-none.xml,25.155,0.0,7.543,9.071,0.619,0.0,0.0,0.0,3.638,5.463,0.527,7.127,0.623,0.0,0.0,0.0,0.0,0.0,8.435,-0.064,5.254,0.0,0.773,0.0,5.497,-9.304,-2.886,0.0,0.207,-0.044,0.007,3.157,0.04,0.0,0.0,0.0,0.0,0.0,-4.173,-0.062,-0.801,0.0,-0.089,0.0,1.439,6.267,1.621 +base-enclosure-windows-physical-properties.xml,29.853,0.0,13.648,9.071,0.617,0.0,0.0,0.0,3.804,3.931,0.552,7.421,0.695,21.358,-18.371,0.0,0.0,0.0,8.279,-0.204,5.435,0.0,0.788,0.0,6.946,-8.787,-2.753,0.0,0.17,-0.06,0.004,2.835,0.067,-3.026,12.741,0.0,0.0,0.0,-6.175,-0.198,-0.678,-3.511,-0.089,0.0,3.198,6.789,1.754 +base-enclosure-windows-shading-seasons.xml,22.405,0.0,13.843,9.071,0.615,0.0,0.0,0.0,3.775,3.843,0.54,7.55,0.675,10.631,-13.484,0.0,0.0,0.0,8.36,-0.106,5.218,0.0,0.764,0.0,5.299,-8.378,-2.638,0.0,-0.035,-0.246,-0.022,2.757,0.023,-0.671,11.34,0.0,0.0,0.0,-6.228,-0.102,-0.905,-4.025,-0.125,0.0,3.131,7.204,1.869 +base-enclosure-windows-shading.xml,24.562,0.0,5.77,9.071,0.623,0.0,0.0,0.0,3.839,3.945,0.552,7.353,0.652,12.133,-12.42,0.0,0.0,0.0,9.117,-0.043,5.463,0.0,0.809,0.0,5.751,-9.881,-3.069,0.0,0.457,0.188,0.037,3.442,0.08,-1.981,2.279,0.0,0.0,0.0,-3.895,-0.04,-0.479,-2.737,-0.041,0.0,1.375,5.682,1.438 +base-enclosure-windows-storms.xml,24.003,0.0,11.783,9.071,0.617,0.0,0.0,0.0,3.8,3.879,0.544,7.467,0.679,9.242,-10.257,0.0,0.0,0.0,8.148,-0.126,5.295,0.0,0.774,0.0,5.609,-8.634,-2.708,0.0,0.131,-0.104,-0.002,2.962,0.052,0.003,7.871,0.0,0.0,0.0,-5.804,-0.122,-0.781,-3.652,-0.104,0.0,2.692,6.943,1.799 +base-foundation-ambient.xml,17.264,0.0,14.77,9.178,0.608,0.0,0.0,0.0,3.824,3.644,0.0,0.0,0.782,9.922,-10.687,0.0,0.0,9.857,0.0,-0.764,2.2,0.0,0.71,0.0,4.237,-5.405,-1.255,0.0,-0.3,-0.706,0.0,0.0,0.056,-0.614,13.282,0.0,0.0,-3.986,0.0,-0.758,-0.474,-2.81,-0.221,0.0,3.542,6.609,1.391 +base-foundation-basement-garage.xml,20.003,0.0,13.742,9.2,0.614,0.0,0.0,0.0,3.977,5.033,0.549,5.451,0.766,10.59,-13.4,0.0,0.0,0.868,5.925,-0.117,3.66,0.0,0.78,0.0,4.896,-7.301,-2.012,0.0,0.11,-0.301,-0.016,1.934,0.032,-0.318,10.888,0.0,0.0,-0.083,-4.716,-0.114,-0.544,-3.73,-0.113,0.0,3.277,6.159,1.392 +base-foundation-belly-wing-no-skirt.xml,20.64,0.0,12.174,9.178,0.609,0.0,0.0,0.0,4.079,5.111,0.0,0.0,0.778,8.275,-10.425,0.0,0.0,9.958,0.0,-0.718,2.275,0.0,0.72,0.0,7.243,-5.542,-1.288,0.0,0.139,-0.809,0.0,0.0,0.073,-0.26,10.269,0.0,0.0,-3.669,0.0,-0.713,-0.455,-2.57,-0.203,0.0,2.773,6.47,1.358 +base-foundation-belly-wing-skirt.xml,20.262,0.0,12.225,9.178,0.609,0.0,0.0,0.0,4.074,5.104,0.0,0.0,0.777,8.252,-10.351,0.0,0.0,9.621,0.0,-0.709,2.262,0.0,0.717,0.0,7.115,-5.503,-1.279,0.0,0.123,-0.834,0.0,0.0,0.069,-0.313,10.343,0.0,0.0,-3.63,0.0,-0.704,-0.466,-2.588,-0.207,0.0,2.781,6.509,1.366 +base-foundation-complex.xml,39.64,0.0,17.171,9.071,0.618,0.0,0.0,0.0,3.667,3.918,0.557,20.494,0.687,10.848,-14.311,0.0,0.0,0.0,8.651,-0.176,6.779,0.0,0.792,0.0,8.959,-8.919,-2.804,0.0,0.138,-0.085,-0.006,4.844,0.038,-0.218,10.1,0.0,0.0,0.0,-4.512,-0.169,-0.807,-4.094,-0.079,0.0,3.767,6.655,1.703 +base-foundation-conditioned-basement-slab-insulation-full.xml,19.41,0.0,15.673,9.071,0.613,0.0,0.0,0.0,3.911,3.933,0.553,8.253,0.69,10.899,-13.459,0.0,0.0,0.0,4.74,-0.123,5.251,0.0,0.774,0.0,4.668,-8.388,-2.644,0.0,-0.027,-0.235,-0.02,2.304,0.019,-0.778,10.954,0.0,0.0,0.0,-3.676,-0.117,-0.883,-4.182,-0.121,0.0,3.479,7.198,1.863 +base-foundation-conditioned-basement-slab-insulation.xml,21.252,0.0,14.498,9.071,0.614,0.0,0.0,0.0,3.849,3.901,0.548,7.888,0.684,10.809,-13.564,0.0,0.0,0.0,6.927,-0.109,5.256,0.0,0.772,0.0,5.061,-8.458,-2.663,0.0,0.004,-0.205,-0.016,2.666,0.028,-0.687,10.849,0.0,0.0,0.0,-5.189,-0.105,-0.857,-3.988,-0.117,0.0,3.258,7.124,1.844 +base-foundation-conditioned-basement-wall-insulation.xml,21.692,0.0,12.247,9.071,0.615,0.0,0.0,0.0,3.896,3.946,0.554,6.333,0.695,10.933,-13.737,0.0,0.0,0.0,8.89,-0.17,5.314,0.0,0.782,0.0,5.174,-8.581,-2.695,0.0,0.128,-0.107,-0.003,1.448,0.052,-0.411,10.676,0.0,0.0,0.0,-6.448,-0.165,-0.779,-3.625,-0.103,0.0,2.881,7.0,1.812 base-foundation-conditioned-crawlspace.xml,17.752,0.0,10.388,9.178,0.616,0.0,0.0,0.0,4.115,3.879,0.545,5.201,0.683,10.579,-13.64,0.0,0.0,0.0,9.852,-0.141,3.728,0.0,0.78,0.0,0.0,-6.59,-1.583,0.0,0.209,-0.162,-0.01,1.937,0.042,-0.324,10.714,0.0,0.0,0.0,-3.832,-0.138,-0.585,-3.695,-0.106,0.0,0.0,5.406,1.062 -base-foundation-multiple.xml,12.863,0.0,13.526,9.122,0.696,0.0,0.0,0.0,3.996,3.639,0.0,0.0,0.822,10.149,-9.933,0.0,0.0,4.484,0.0,-0.753,2.524,0.0,0.0,0.0,2.344,-3.446,-1.231,0.0,-0.342,-0.891,0.0,0.0,0.042,-0.726,14.035,0.0,0.0,-1.482,0.0,-0.75,-0.677,-3.118,0.0,0.0,1.992,4.365,1.415 -base-foundation-slab.xml,10.578,0.0,12.163,9.178,0.607,0.0,0.0,0.0,4.055,3.706,0.0,0.0,0.766,10.177,-10.778,0.0,0.0,0.0,6.504,-0.494,2.119,0.0,0.732,0.0,0.344,-5.537,-1.313,0.0,-0.184,-0.646,0.0,0.0,0.058,-0.547,13.478,0.0,0.0,0.0,-3.094,-0.492,-0.46,-3.446,-0.203,0.0,0.135,6.479,1.333 -base-foundation-unconditioned-basement-above-grade.xml,13.843,0.0,13.896,9.122,0.714,0.0,0.0,0.0,4.037,3.671,0.0,0.0,0.81,10.137,-10.206,0.0,0.0,5.23,0.0,-0.702,2.538,0.0,0.0,0.0,2.757,-3.477,-1.245,0.0,-0.283,-0.84,0.0,0.0,0.035,-0.785,13.763,0.0,0.0,-1.208,0.0,-0.698,-0.665,-3.103,0.0,0.0,2.246,4.334,1.401 -base-foundation-unconditioned-basement-assembly-r.xml,11.862,0.0,11.993,9.122,0.713,0.0,0.0,0.0,3.985,3.603,0.0,0.0,0.812,10.077,-9.773,0.0,0.0,3.623,0.0,-0.781,2.501,0.0,0.0,0.0,2.122,-3.39,-1.202,0.0,-0.322,-0.848,0.0,0.0,0.071,-0.768,14.196,0.0,0.0,-2.907,0.0,-0.778,-0.697,-2.969,0.0,0.0,1.498,4.421,1.444 -base-foundation-unconditioned-basement-wall-insulation.xml,19.754,0.0,10.747,9.122,0.641,0.0,0.0,0.0,4.156,3.847,0.0,0.0,0.724,10.129,-12.952,0.0,0.0,13.837,0.0,-0.222,2.745,0.0,0.0,0.0,3.1,-4.272,-1.55,0.0,0.248,-0.195,0.0,0.0,0.081,0.477,11.016,0.0,0.0,-3.517,0.0,-0.22,-0.349,-2.901,0.0,0.0,1.579,3.539,1.096 -base-foundation-unconditioned-basement.xml,12.897,0.0,13.609,9.122,0.705,0.0,0.0,0.0,3.996,3.615,0.0,0.0,0.804,10.08,-9.929,0.0,0.0,4.522,0.0,-0.748,2.521,0.0,0.0,0.0,2.439,-3.439,-1.228,0.0,-0.315,-0.838,0.0,0.0,0.062,-0.77,14.039,0.0,0.0,-1.546,0.0,-0.744,-0.68,-3.118,0.0,0.0,2.067,4.373,1.417 -base-foundation-unvented-crawlspace.xml,10.776,0.0,13.705,9.178,0.71,0.0,0.0,0.0,3.891,3.522,0.0,0.0,0.806,9.914,-9.216,0.0,0.0,3.565,0.0,-0.817,2.044,0.0,0.669,0.0,1.92,-4.637,-1.137,0.0,-0.517,-1.032,0.0,0.0,0.04,-1.236,14.752,0.0,0.0,-3.005,0.0,-0.813,-0.599,-3.221,-0.286,0.0,1.698,6.785,1.509 -base-foundation-vented-crawlspace-above-grade.xml,13.034,0.0,13.757,9.178,0.778,0.0,0.0,0.0,3.969,3.574,0.0,0.0,0.789,9.902,-9.782,0.0,0.0,5.75,0.0,-0.756,2.181,0.0,0.69,0.0,2.529,-4.848,-1.199,0.0,-0.34,-0.854,0.0,0.0,0.063,-0.919,14.186,0.0,0.0,-3.347,0.0,-0.753,-0.44,-3.129,-0.255,0.0,1.845,6.567,1.447 -base-foundation-vented-crawlspace.xml,13.11,0.0,13.163,9.178,0.786,0.0,0.0,0.0,3.983,3.597,0.0,0.0,0.8,9.98,-9.86,0.0,0.0,5.778,0.0,-0.752,2.189,0.0,0.693,0.0,2.546,-4.877,-1.206,0.0,-0.319,-0.85,0.0,0.0,0.059,-0.862,14.108,0.0,0.0,-3.855,0.0,-0.748,-0.43,-3.059,-0.25,0.0,1.702,6.537,1.44 -base-foundation-walkout-basement.xml,27.817,0.0,14.653,9.071,0.616,0.0,0.0,0.0,3.835,3.989,0.561,7.598,0.708,11.765,-14.074,0.0,0.0,0.0,10.04,-0.153,7.273,0.0,0.783,0.0,6.491,-8.656,-2.722,0.0,0.038,-0.195,-0.016,1.742,0.035,-0.538,10.953,0.0,0.0,0.0,-3.695,-0.148,-1.02,-4.289,-0.099,0.0,3.278,6.923,1.785 -base-hvac-air-to-air-heat-pump-1-speed-autosize-factor.xml,21.433,0.114,12.013,9.071,0.615,0.0,0.0,0.0,3.875,3.882,0.545,7.569,0.682,10.759,-13.574,0.0,0.0,0.0,8.361,-0.116,5.261,0.0,0.77,0.0,4.203,-8.475,-2.662,0.0,0.093,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.14,-0.112,-0.859,-3.88,-0.116,0.0,1.343,7.106,1.845 +base-foundation-multiple.xml,12.866,0.0,13.526,9.122,0.696,0.0,0.0,0.0,3.996,3.639,0.0,0.0,0.822,10.149,-9.933,0.0,0.0,4.484,0.0,-0.753,2.523,0.0,0.0,0.0,2.349,-3.446,-1.231,0.0,-0.342,-0.891,0.0,0.0,0.042,-0.726,14.035,0.0,0.0,-1.481,0.0,-0.75,-0.677,-3.119,0.0,0.0,1.992,4.365,1.415 +base-foundation-slab.xml,10.577,0.0,12.163,9.178,0.607,0.0,0.0,0.0,4.055,3.706,0.0,0.0,0.766,10.177,-10.778,0.0,0.0,0.0,6.504,-0.494,2.118,0.0,0.732,0.0,0.345,-5.537,-1.313,0.0,-0.184,-0.646,0.0,0.0,0.058,-0.547,13.478,0.0,0.0,0.0,-3.094,-0.492,-0.46,-3.446,-0.203,0.0,0.135,6.479,1.333 +base-foundation-unconditioned-basement-above-grade.xml,13.845,0.0,13.896,9.122,0.714,0.0,0.0,0.0,4.037,3.671,0.0,0.0,0.81,10.137,-10.206,0.0,0.0,5.23,0.0,-0.702,2.536,0.0,0.0,0.0,2.761,-3.477,-1.245,0.0,-0.283,-0.84,0.0,0.0,0.035,-0.785,13.763,0.0,0.0,-1.208,0.0,-0.698,-0.665,-3.103,0.0,0.0,2.246,4.334,1.401 +base-foundation-unconditioned-basement-assembly-r.xml,11.864,0.0,11.993,9.122,0.713,0.0,0.0,0.0,3.985,3.603,0.0,0.0,0.812,10.077,-9.773,0.0,0.0,3.622,0.0,-0.781,2.5,0.0,0.0,0.0,2.126,-3.39,-1.202,0.0,-0.322,-0.848,0.0,0.0,0.071,-0.769,14.196,0.0,0.0,-2.907,0.0,-0.778,-0.697,-2.969,0.0,0.0,1.498,4.421,1.444 +base-foundation-unconditioned-basement-wall-insulation.xml,19.754,0.0,10.747,9.122,0.641,0.0,0.0,0.0,4.157,3.847,0.0,0.0,0.724,10.129,-12.951,0.0,0.0,13.824,0.0,-0.221,2.743,0.0,0.0,0.0,3.109,-4.271,-1.549,0.0,0.249,-0.195,0.0,0.0,0.081,0.476,11.017,0.0,0.0,-3.522,0.0,-0.22,-0.349,-2.901,0.0,0.0,1.579,3.54,1.096 +base-foundation-unconditioned-basement.xml,12.9,0.0,13.609,9.122,0.705,0.0,0.0,0.0,3.998,3.616,0.0,0.0,0.803,10.081,-9.938,0.0,0.0,4.524,0.0,-0.747,2.52,0.0,0.0,0.0,2.443,-3.439,-1.229,0.0,-0.313,-0.836,0.0,0.0,0.062,-0.769,14.03,0.0,0.0,-1.544,0.0,-0.743,-0.679,-3.118,0.0,0.0,2.067,4.372,1.417 +base-foundation-unvented-crawlspace.xml,10.777,0.0,13.705,9.178,0.71,0.0,0.0,0.0,3.891,3.522,0.0,0.0,0.806,9.914,-9.216,0.0,0.0,3.564,0.0,-0.817,2.042,0.0,0.669,0.0,1.924,-4.637,-1.137,0.0,-0.517,-1.032,0.0,0.0,0.04,-1.236,14.752,0.0,0.0,-3.005,0.0,-0.814,-0.599,-3.221,-0.286,0.0,1.698,6.785,1.509 +base-foundation-vented-crawlspace-above-grade.xml,13.451,0.0,13.536,9.178,0.783,0.0,0.0,0.0,4.002,3.637,0.0,0.0,0.814,10.1,-9.96,0.0,0.0,5.953,0.0,-0.735,2.201,0.0,0.697,0.0,2.636,-4.918,-1.22,0.0,-0.33,-0.889,0.0,0.0,0.035,-0.872,14.009,0.0,0.0,-3.361,0.0,-0.731,-0.424,-3.092,-0.246,0.0,1.816,6.495,1.426 +base-foundation-vented-crawlspace-above-grade2.xml,13.033,0.0,13.757,9.178,0.778,0.0,0.0,0.0,3.969,3.574,0.0,0.0,0.789,9.902,-9.782,0.0,0.0,5.749,0.0,-0.756,2.176,0.0,0.69,0.0,2.533,-4.848,-1.199,0.0,-0.34,-0.854,0.0,0.0,0.063,-0.919,14.186,0.0,0.0,-3.347,0.0,-0.753,-0.44,-3.129,-0.255,0.0,1.845,6.567,1.447 +base-foundation-vented-crawlspace.xml,13.109,0.0,13.163,9.178,0.786,0.0,0.0,0.0,3.983,3.597,0.0,0.0,0.8,9.98,-9.86,0.0,0.0,5.778,0.0,-0.752,2.183,0.0,0.693,0.0,2.551,-4.877,-1.206,0.0,-0.319,-0.85,0.0,0.0,0.059,-0.862,14.108,0.0,0.0,-3.855,0.0,-0.748,-0.43,-3.059,-0.25,0.0,1.702,6.537,1.44 +base-foundation-walkout-basement.xml,27.818,0.0,14.653,9.071,0.616,0.0,0.0,0.0,3.835,3.989,0.561,7.598,0.708,11.765,-14.074,0.0,0.0,0.0,10.04,-0.153,7.27,0.0,0.783,0.0,6.496,-8.656,-2.722,0.0,0.038,-0.195,-0.016,1.742,0.035,-0.538,10.953,0.0,0.0,0.0,-3.695,-0.148,-1.02,-4.289,-0.099,0.0,3.278,6.923,1.785 +base-hvac-air-to-air-heat-pump-1-speed-autosize-factor.xml,21.525,0.108,11.994,9.071,0.615,0.0,0.0,0.0,3.87,3.882,0.545,7.569,0.682,10.76,-13.574,0.0,0.0,0.0,8.361,-0.116,5.255,0.0,0.77,0.0,4.304,-8.475,-2.662,0.0,0.094,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.14,-0.112,-0.859,-3.88,-0.116,0.0,1.323,7.106,1.845 base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml,0.0,0.0,12.26,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.108,-0.151,-0.009,2.77,0.045,-0.539,10.592,0.0,0.0,0.0,-6.351,-0.119,-0.817,-3.754,-0.11,0.0,1.945,6.958,1.811 -base-hvac-air-to-air-heat-pump-1-speed-heating-capacity-17f.xml,23.043,0.32,12.652,9.071,0.615,0.0,0.0,0.0,3.794,3.883,0.545,7.571,0.683,10.761,-13.574,0.0,0.0,0.0,8.365,-0.116,5.396,0.0,0.77,0.0,5.745,-8.475,-2.662,0.0,0.066,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.855,-3.881,-0.117,0.0,1.998,7.106,1.845 -base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml,22.872,0.324,0.0,9.071,0.592,0.0,0.0,0.0,3.763,3.855,0.542,7.547,0.677,10.679,-13.459,0.0,0.0,0.0,8.213,-0.109,5.385,0.0,0.765,0.0,5.693,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-air-to-air-heat-pump-1-speed-lockout-temperatures-research-features.xml,71.116,0.868,1.43,11.33,0.634,0.0,0.0,0.0,6.319,6.969,0.98,15.299,1.466,19.289,-14.655,0.0,0.0,0.0,17.642,0.375,13.281,0.0,1.681,0.0,15.084,-10.558,-3.277,0.0,-0.296,-0.556,-0.076,0.315,-0.142,-1.96,6.974,0.0,0.0,0.0,-6.937,0.356,-1.195,-1.721,-0.199,0.0,0.103,4.979,1.231 -base-hvac-air-to-air-heat-pump-1-speed-lockout-temperatures.xml,24.257,2.008,12.204,9.071,0.614,0.0,0.0,0.0,3.901,3.967,0.554,7.966,0.669,10.638,-14.043,0.0,0.0,0.0,9.507,0.146,5.411,0.0,0.817,0.0,5.177,-8.515,-2.713,0.0,0.124,-0.142,-0.01,2.964,0.013,-0.857,10.371,0.0,0.0,0.0,-5.93,0.136,-0.892,-4.396,-0.103,0.0,1.942,7.069,1.794 -base-hvac-air-to-air-heat-pump-1-speed-research-features.xml,71.184,0.696,1.5,11.33,0.633,0.0,0.0,0.0,6.189,6.896,0.975,14.881,1.504,19.737,-13.887,0.0,0.0,0.0,16.341,-0.089,13.525,0.0,1.608,0.0,16.358,-10.462,-3.2,0.0,-0.363,-0.628,-0.081,0.111,-0.107,-1.533,7.742,0.0,0.0,0.0,-7.335,-0.09,-1.099,-1.638,-0.222,0.0,0.17,5.078,1.307 -base-hvac-air-to-air-heat-pump-1-speed-seer2-hspf2.xml,23.043,0.32,12.652,9.071,0.615,0.0,0.0,0.0,3.794,3.883,0.545,7.571,0.683,10.761,-13.574,0.0,0.0,0.0,8.365,-0.116,5.396,0.0,0.77,0.0,5.745,-8.475,-2.662,0.0,0.066,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.855,-3.881,-0.117,0.0,1.998,7.106,1.845 -base-hvac-air-to-air-heat-pump-1-speed.xml,23.043,0.32,12.652,9.071,0.615,0.0,0.0,0.0,3.794,3.883,0.545,7.571,0.683,10.761,-13.574,0.0,0.0,0.0,8.365,-0.116,5.396,0.0,0.77,0.0,5.745,-8.475,-2.662,0.0,0.066,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.855,-3.881,-0.117,0.0,1.998,7.106,1.845 -base-hvac-air-to-air-heat-pump-2-speed-research-features.xml,72.152,0.532,1.529,11.33,0.633,0.0,0.0,0.0,6.129,6.878,0.973,14.839,1.499,19.675,-13.85,0.0,0.0,0.0,16.291,-0.07,13.466,0.0,1.602,0.0,17.418,-10.445,-3.194,0.0,-0.372,-0.641,-0.084,0.084,-0.11,-1.581,7.779,0.0,0.0,0.0,-7.359,-0.071,-1.14,-1.641,-0.227,0.0,0.155,5.094,1.313 -base-hvac-air-to-air-heat-pump-2-speed.xml,23.994,0.312,12.877,9.071,0.615,0.0,0.0,0.0,3.75,3.883,0.545,7.573,0.683,10.763,-13.574,0.0,0.0,0.0,8.368,-0.116,5.455,0.0,0.77,0.0,6.674,-8.475,-2.662,0.0,0.06,-0.188,-0.014,2.827,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.853,-3.882,-0.117,0.0,2.225,7.106,1.845 -base-hvac-air-to-air-heat-pump-var-speed-autosize-maxload.xml,22.035,0.0,12.354,9.071,0.615,0.0,0.0,0.0,3.844,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.164,0.0,0.77,0.0,4.93,-8.475,-2.662,0.0,0.082,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.14,-0.112,-0.861,-3.881,-0.117,0.0,1.698,7.106,1.845 -base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-advanced-defrost.xml,29.742,11.438,15.796,9.071,0.616,0.0,0.0,0.0,3.533,3.9,0.548,7.558,0.686,10.822,-13.636,0.0,0.0,0.0,8.342,-0.128,7.006,0.0,0.772,0.0,11.182,-8.533,-2.68,0.0,-0.031,-0.163,-0.011,2.841,0.041,-0.546,10.777,0.0,0.0,0.0,-6.131,-0.124,-1.013,-3.829,-0.111,0.0,5.324,7.047,1.827 -base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-hvac-seasons.xml,29.434,11.434,15.664,9.071,0.616,0.0,0.0,0.0,3.23,3.596,0.506,7.524,0.612,9.898,-12.635,0.0,0.0,0.0,8.256,-0.019,6.567,0.0,0.718,0.0,11.027,-7.712,-2.474,0.0,0.153,0.082,0.022,3.1,0.055,0.186,8.047,0.0,0.0,0.0,-4.058,-0.006,-0.546,-3.176,-0.036,0.0,5.277,5.301,1.326 -base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-switchover-temperature.xml,28.896,14.644,15.806,9.071,0.616,0.0,0.0,0.0,3.486,3.82,0.535,7.388,0.656,10.39,-13.59,0.0,0.0,0.0,8.233,-0.032,6.824,0.0,0.751,0.0,10.164,-8.334,-2.611,0.0,-0.093,-0.234,-0.022,2.693,0.013,-0.952,10.823,0.0,0.0,0.0,-6.203,-0.029,-1.211,-3.828,-0.131,0.0,4.921,7.245,1.896 -base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml,29.741,11.438,15.796,9.071,0.616,0.0,0.0,0.0,3.533,3.9,0.548,7.558,0.686,10.822,-13.636,0.0,0.0,0.0,8.342,-0.128,7.006,0.0,0.772,0.0,11.181,-8.533,-2.68,0.0,-0.031,-0.163,-0.011,2.841,0.041,-0.546,10.777,0.0,0.0,0.0,-6.131,-0.124,-1.013,-3.829,-0.111,0.0,5.324,7.047,1.827 -base-hvac-air-to-air-heat-pump-var-speed-backup-furnace-autosize-factor.xml,27.802,14.348,12.836,9.071,0.615,0.0,0.0,0.0,3.604,3.884,0.546,7.575,0.683,10.761,-13.574,0.0,0.0,0.0,8.373,-0.114,5.856,0.0,0.769,0.0,10.201,-8.472,-2.661,0.0,0.066,-0.188,-0.014,2.825,0.035,-0.637,10.839,0.0,0.0,0.0,-6.14,-0.11,-0.861,-3.882,-0.117,0.0,2.192,7.109,1.846 -base-hvac-air-to-air-heat-pump-var-speed-backup-furnace.xml,30.151,12.693,15.905,9.071,0.615,0.0,0.0,0.0,3.469,3.885,0.546,7.576,0.683,10.763,-13.574,0.0,0.0,0.0,8.377,-0.114,6.072,0.0,0.769,0.0,12.457,-8.472,-2.661,0.0,-0.057,-0.188,-0.014,2.826,0.035,-0.636,10.839,0.0,0.0,0.0,-6.137,-0.11,-0.84,-3.896,-0.117,0.0,5.347,7.109,1.846 -base-hvac-air-to-air-heat-pump-var-speed-detailed-performance-autosize.xml,27.636,0.337,14.646,9.071,0.615,0.0,0.0,0.0,3.571,3.884,0.546,7.577,0.683,10.766,-13.574,0.0,0.0,0.0,8.376,-0.116,5.556,0.0,0.77,0.0,10.376,-8.475,-2.662,0.0,0.002,-0.188,-0.014,2.828,0.035,-0.632,10.839,0.0,0.0,0.0,-6.136,-0.112,-0.852,-3.888,-0.117,0.0,4.053,7.106,1.845 -base-hvac-air-to-air-heat-pump-var-speed-detailed-performance-heating-only.xml,26.714,0.094,13.885,9.071,0.615,0.0,0.0,0.0,3.614,3.884,0.546,7.576,0.683,10.766,-13.574,0.0,0.0,0.0,8.375,-0.116,5.469,0.0,0.77,0.0,9.5,-8.475,-2.662,0.0,0.031,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.855,-3.885,-0.117,0.0,3.266,7.106,1.845 -base-hvac-air-to-air-heat-pump-var-speed-detailed-performance-normalized-capacities.xml,26.852,0.097,14.21,9.071,0.615,0.0,0.0,0.0,3.607,3.884,0.546,7.576,0.683,10.766,-13.574,0.0,0.0,0.0,8.376,-0.116,5.469,0.0,0.77,0.0,9.647,-8.475,-2.662,0.0,0.02,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.854,-3.886,-0.117,0.0,3.603,7.106,1.845 -base-hvac-air-to-air-heat-pump-var-speed-detailed-performance-other-temperatures.xml,27.316,6.29,14.192,9.071,0.615,0.0,0.0,0.0,3.591,3.885,0.546,7.577,0.683,10.766,-13.574,0.0,0.0,0.0,8.376,-0.116,5.724,0.0,0.77,0.0,9.866,-8.475,-2.662,0.0,0.021,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.854,-3.886,-0.117,0.0,3.584,7.106,1.845 -base-hvac-air-to-air-heat-pump-var-speed-detailed-performance.xml,26.713,0.094,14.214,9.071,0.615,0.0,0.0,0.0,3.615,3.884,0.546,7.576,0.683,10.766,-13.574,0.0,0.0,0.0,8.375,-0.116,5.469,0.0,0.77,0.0,9.499,-8.475,-2.662,0.0,0.02,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.854,-3.886,-0.117,0.0,3.607,7.106,1.845 -base-hvac-air-to-air-heat-pump-var-speed-max-power-ratio-schedule-10-mins.xml,26.094,0.387,14.285,9.071,0.615,0.0,0.0,0.0,3.681,3.912,0.55,7.601,0.696,10.867,-13.521,0.0,0.0,0.0,8.323,-0.108,5.365,0.0,0.778,0.0,8.784,-8.492,-2.669,0.0,0.057,-0.2,-0.017,2.828,0.032,-0.621,10.832,0.0,0.0,0.0,-6.156,-0.103,-0.82,-3.714,-0.119,0.0,3.485,7.089,1.838 -base-hvac-air-to-air-heat-pump-var-speed-max-power-ratio-schedule-two-systems.xml,26.893,0.038,13.9,9.071,0.615,0.0,0.0,0.0,3.618,3.885,0.546,7.578,0.683,10.767,-13.574,0.0,0.0,0.0,8.378,-0.116,5.367,0.0,0.77,0.0,9.78,-8.475,-2.662,0.0,0.031,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.855,-3.884,-0.116,0.0,3.287,7.106,1.845 -base-hvac-air-to-air-heat-pump-var-speed-research-features.xml,73.838,0.386,1.905,11.33,0.635,0.0,0.0,0.0,6.024,6.888,0.975,14.805,1.501,19.723,-13.925,0.0,0.0,0.0,16.03,-0.118,13.484,0.0,1.612,0.0,19.99,-10.482,-3.21,0.0,-0.343,-0.593,-0.076,0.212,-0.099,-1.414,7.704,0.0,0.0,0.0,-7.241,-0.115,-1.011,-1.6,-0.211,0.0,0.425,5.054,1.297 -base-hvac-air-to-air-heat-pump-var-speed.xml,25.721,0.313,13.884,9.071,0.615,0.0,0.0,0.0,3.664,3.884,0.546,7.575,0.683,10.764,-13.574,0.0,0.0,0.0,8.372,-0.116,5.365,0.0,0.77,0.0,8.568,-8.475,-2.662,0.0,0.031,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.855,-3.885,-0.117,0.0,3.266,7.106,1.845 -base-hvac-autosize-sizing-controls.xml,7.109,0.0,8.429,16.197,0.647,0.0,0.0,0.0,3.009,2.856,0.399,5.393,0.429,7.648,-13.03,0.0,0.0,0.0,5.849,-0.037,3.611,0.0,0.583,0.0,1.614,-8.997,-2.542,0.0,-0.197,-0.46,-0.052,2.501,-0.029,-1.441,11.383,0.0,0.0,0.0,-7.05,-0.038,-1.116,-6.861,-0.167,0.0,1.556,8.555,1.965 -base-hvac-autosize.xml,22.759,0.0,13.649,9.071,0.615,0.0,0.0,0.0,3.806,3.883,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.259,0.0,0.77,0.0,5.59,-8.475,-2.662,0.0,0.033,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.848,-3.884,-0.117,0.0,3.015,7.106,1.845 +base-hvac-air-to-air-heat-pump-1-speed-heating-capacity-17f.xml,23.028,0.325,12.652,9.071,0.615,0.0,0.0,0.0,3.795,3.883,0.545,7.571,0.683,10.761,-13.574,0.0,0.0,0.0,8.365,-0.116,5.392,0.0,0.77,0.0,5.733,-8.475,-2.662,0.0,0.066,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.855,-3.881,-0.117,0.0,1.998,7.106,1.845 +base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml,22.912,0.33,0.0,9.071,0.592,0.0,0.0,0.0,3.762,3.855,0.542,7.547,0.677,10.679,-13.459,0.0,0.0,0.0,8.213,-0.109,5.387,0.0,0.765,0.0,5.733,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-air-to-air-heat-pump-1-speed-lockout-temperatures-research-features.xml,71.106,0.86,1.43,11.33,0.634,0.0,0.0,0.0,6.318,6.969,0.98,15.297,1.466,19.287,-14.655,0.0,0.0,0.0,17.64,0.376,13.275,0.0,1.68,0.0,15.082,-10.558,-3.277,0.0,-0.296,-0.557,-0.077,0.314,-0.143,-1.961,6.974,0.0,0.0,0.0,-6.937,0.357,-1.196,-1.721,-0.199,0.0,0.102,4.979,1.231 +base-hvac-air-to-air-heat-pump-1-speed-lockout-temperatures.xml,24.244,2.016,12.204,9.071,0.614,0.0,0.0,0.0,3.902,3.967,0.554,7.966,0.669,10.638,-14.043,0.0,0.0,0.0,9.507,0.146,5.407,0.0,0.817,0.0,5.169,-8.515,-2.713,0.0,0.124,-0.142,-0.01,2.964,0.013,-0.857,10.371,0.0,0.0,0.0,-5.93,0.136,-0.892,-4.396,-0.103,0.0,1.942,7.069,1.794 +base-hvac-air-to-air-heat-pump-1-speed-research-features.xml,71.176,0.69,1.5,11.33,0.633,0.0,0.0,0.0,6.189,6.896,0.975,14.882,1.504,19.738,-13.887,0.0,0.0,0.0,16.342,-0.089,13.521,0.0,1.608,0.0,16.353,-10.462,-3.2,0.0,-0.363,-0.628,-0.081,0.111,-0.107,-1.532,7.742,0.0,0.0,0.0,-7.335,-0.091,-1.098,-1.638,-0.222,0.0,0.171,5.077,1.307 +base-hvac-air-to-air-heat-pump-1-speed-seer2-hspf2.xml,23.028,0.325,12.652,9.071,0.615,0.0,0.0,0.0,3.795,3.883,0.545,7.571,0.683,10.761,-13.574,0.0,0.0,0.0,8.365,-0.116,5.392,0.0,0.77,0.0,5.733,-8.475,-2.662,0.0,0.066,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.855,-3.881,-0.117,0.0,1.998,7.106,1.845 +base-hvac-air-to-air-heat-pump-1-speed.xml,23.028,0.325,12.652,9.071,0.615,0.0,0.0,0.0,3.795,3.883,0.545,7.571,0.683,10.761,-13.574,0.0,0.0,0.0,8.365,-0.116,5.392,0.0,0.77,0.0,5.733,-8.475,-2.662,0.0,0.066,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.855,-3.881,-0.117,0.0,1.998,7.106,1.845 +base-hvac-air-to-air-heat-pump-2-speed-research-features.xml,72.146,0.527,1.529,11.33,0.633,0.0,0.0,0.0,6.129,6.878,0.972,14.837,1.499,19.673,-13.849,0.0,0.0,0.0,16.29,-0.07,13.46,0.0,1.601,0.0,17.415,-10.444,-3.194,0.0,-0.373,-0.642,-0.084,0.083,-0.11,-1.583,7.78,0.0,0.0,0.0,-7.36,-0.07,-1.141,-1.641,-0.228,0.0,0.154,5.095,1.313 +base-hvac-air-to-air-heat-pump-2-speed.xml,24.148,0.315,12.877,9.071,0.615,0.0,0.0,0.0,3.743,3.883,0.545,7.573,0.683,10.763,-13.574,0.0,0.0,0.0,8.368,-0.116,5.452,0.0,0.77,0.0,6.839,-8.475,-2.662,0.0,0.06,-0.188,-0.014,2.827,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.853,-3.882,-0.117,0.0,2.225,7.106,1.845 +base-hvac-air-to-air-heat-pump-var-speed-autosize-maxload.xml,21.974,0.0,12.329,9.071,0.615,0.0,0.0,0.0,3.847,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.161,0.0,0.77,0.0,4.869,-8.475,-2.662,0.0,0.083,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.14,-0.112,-0.861,-3.881,-0.117,0.0,1.673,7.106,1.845 +base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-advanced-defrost.xml,29.603,11.42,15.796,9.071,0.616,0.0,0.0,0.0,3.54,3.9,0.548,7.558,0.686,10.822,-13.636,0.0,0.0,0.0,8.343,-0.128,6.992,0.0,0.772,0.0,11.05,-8.533,-2.68,0.0,-0.031,-0.163,-0.011,2.841,0.041,-0.546,10.777,0.0,0.0,0.0,-6.131,-0.124,-1.013,-3.829,-0.111,0.0,5.324,7.047,1.827 +base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-hvac-seasons.xml,29.301,11.416,15.664,9.071,0.616,0.0,0.0,0.0,3.237,3.596,0.506,7.525,0.612,9.898,-12.635,0.0,0.0,0.0,8.256,-0.019,6.553,0.0,0.718,0.0,10.901,-7.712,-2.474,0.0,0.153,0.082,0.022,3.101,0.055,0.186,8.047,0.0,0.0,0.0,-4.058,-0.006,-0.546,-3.176,-0.036,0.0,5.277,5.301,1.326 +base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-switchover-temperature.xml,28.759,14.615,15.806,9.071,0.616,0.0,0.0,0.0,3.493,3.82,0.535,7.388,0.656,10.391,-13.59,0.0,0.0,0.0,8.233,-0.032,6.81,0.0,0.751,0.0,10.037,-8.334,-2.611,0.0,-0.093,-0.234,-0.022,2.693,0.013,-0.952,10.823,0.0,0.0,0.0,-6.203,-0.029,-1.211,-3.828,-0.131,0.0,4.924,7.245,1.896 +base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml,29.603,11.42,15.796,9.071,0.616,0.0,0.0,0.0,3.54,3.9,0.548,7.558,0.686,10.822,-13.636,0.0,0.0,0.0,8.343,-0.128,6.992,0.0,0.772,0.0,11.05,-8.533,-2.68,0.0,-0.031,-0.163,-0.011,2.841,0.041,-0.546,10.777,0.0,0.0,0.0,-6.131,-0.124,-1.013,-3.829,-0.111,0.0,5.324,7.047,1.827 +base-hvac-air-to-air-heat-pump-var-speed-backup-furnace-autosize-factor.xml,27.706,14.301,12.803,9.071,0.615,0.0,0.0,0.0,3.608,3.884,0.546,7.575,0.683,10.761,-13.574,0.0,0.0,0.0,8.373,-0.114,5.841,0.0,0.769,0.0,10.117,-8.472,-2.661,0.0,0.067,-0.188,-0.014,2.825,0.035,-0.638,10.839,0.0,0.0,0.0,-6.14,-0.11,-0.861,-3.882,-0.117,0.0,2.158,7.109,1.846 +base-hvac-air-to-air-heat-pump-var-speed-backup-furnace.xml,30.017,12.685,15.905,9.071,0.615,0.0,0.0,0.0,3.476,3.885,0.546,7.577,0.683,10.763,-13.574,0.0,0.0,0.0,8.377,-0.114,6.056,0.0,0.769,0.0,12.331,-8.472,-2.661,0.0,-0.057,-0.188,-0.014,2.826,0.035,-0.636,10.839,0.0,0.0,0.0,-6.137,-0.11,-0.84,-3.896,-0.117,0.0,5.347,7.109,1.846 +base-hvac-air-to-air-heat-pump-var-speed-detailed-performance-autosize.xml,27.557,0.309,14.607,9.071,0.615,0.0,0.0,0.0,3.574,3.884,0.546,7.577,0.683,10.766,-13.574,0.0,0.0,0.0,8.376,-0.116,5.54,0.0,0.77,0.0,10.31,-8.475,-2.662,0.0,0.004,-0.188,-0.014,2.828,0.035,-0.632,10.839,0.0,0.0,0.0,-6.136,-0.112,-0.852,-3.888,-0.117,0.0,4.013,7.106,1.845 +base-hvac-air-to-air-heat-pump-var-speed-detailed-performance-heating-only.xml,26.71,0.095,13.885,9.071,0.615,0.0,0.0,0.0,3.615,3.884,0.546,7.576,0.683,10.766,-13.574,0.0,0.0,0.0,8.375,-0.116,5.463,0.0,0.77,0.0,9.502,-8.475,-2.662,0.0,0.031,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.855,-3.885,-0.117,0.0,3.266,7.106,1.845 +base-hvac-air-to-air-heat-pump-var-speed-detailed-performance-normalized-capacities.xml,26.743,0.098,14.21,9.071,0.615,0.0,0.0,0.0,3.613,3.884,0.546,7.576,0.683,10.766,-13.574,0.0,0.0,0.0,8.375,-0.116,5.462,0.0,0.77,0.0,9.539,-8.475,-2.662,0.0,0.02,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.854,-3.886,-0.117,0.0,3.603,7.106,1.845 +base-hvac-air-to-air-heat-pump-var-speed-detailed-performance-other-temperatures.xml,27.298,6.294,14.192,9.071,0.615,0.0,0.0,0.0,3.592,3.885,0.546,7.577,0.683,10.766,-13.574,0.0,0.0,0.0,8.376,-0.116,5.714,0.0,0.77,0.0,9.858,-8.475,-2.662,0.0,0.021,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.854,-3.886,-0.117,0.0,3.584,7.106,1.845 +base-hvac-air-to-air-heat-pump-var-speed-detailed-performance.xml,26.709,0.094,14.214,9.071,0.615,0.0,0.0,0.0,3.615,3.884,0.546,7.576,0.683,10.766,-13.574,0.0,0.0,0.0,8.375,-0.116,5.463,0.0,0.77,0.0,9.501,-8.475,-2.662,0.0,0.02,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.854,-3.886,-0.117,0.0,3.607,7.106,1.845 +base-hvac-air-to-air-heat-pump-var-speed-max-power-ratio-schedule-10-mins.xml,25.757,0.388,14.285,9.071,0.615,0.0,0.0,0.0,3.696,3.912,0.55,7.6,0.696,10.866,-13.521,0.0,0.0,0.0,8.321,-0.108,5.358,0.0,0.778,0.0,8.442,-8.492,-2.669,0.0,0.057,-0.2,-0.017,2.828,0.032,-0.621,10.832,0.0,0.0,0.0,-6.156,-0.103,-0.82,-3.714,-0.119,0.0,3.485,7.089,1.838 +base-hvac-air-to-air-heat-pump-var-speed-max-power-ratio-schedule-two-systems.xml,26.02,0.036,13.9,9.071,0.615,0.0,0.0,0.0,3.659,3.884,0.546,7.577,0.683,10.766,-13.574,0.0,0.0,0.0,8.376,-0.116,5.351,0.0,0.77,0.0,8.888,-8.475,-2.662,0.0,0.031,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.855,-3.884,-0.116,0.0,3.287,7.106,1.845 +base-hvac-air-to-air-heat-pump-var-speed-research-features.xml,73.642,0.383,1.897,11.33,0.635,0.0,0.0,0.0,6.031,6.888,0.975,14.803,1.501,19.723,-13.921,0.0,0.0,0.0,16.024,-0.119,13.477,0.0,1.612,0.0,19.802,-10.48,-3.209,0.0,-0.344,-0.593,-0.076,0.211,-0.099,-1.413,7.708,0.0,0.0,0.0,-7.247,-0.117,-1.011,-1.6,-0.211,0.0,0.425,5.055,1.298 +base-hvac-air-to-air-heat-pump-var-speed.xml,25.372,0.315,13.884,9.071,0.615,0.0,0.0,0.0,3.683,3.884,0.546,7.574,0.683,10.764,-13.574,0.0,0.0,0.0,8.372,-0.116,5.358,0.0,0.77,0.0,8.21,-8.475,-2.662,0.0,0.031,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.855,-3.885,-0.117,0.0,3.266,7.106,1.845 +base-hvac-autosize-sizing-controls.xml,7.093,0.0,8.415,16.197,0.647,0.0,0.0,0.0,3.009,2.856,0.399,5.393,0.429,7.648,-13.03,0.0,0.0,0.0,5.849,-0.037,3.61,0.0,0.583,0.0,1.598,-8.997,-2.542,0.0,-0.196,-0.46,-0.052,2.501,-0.029,-1.441,11.383,0.0,0.0,0.0,-7.05,-0.038,-1.116,-6.861,-0.167,0.0,1.541,8.555,1.965 +base-hvac-autosize.xml,22.692,0.0,13.626,9.071,0.615,0.0,0.0,0.0,3.81,3.883,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.254,0.0,0.77,0.0,5.526,-8.475,-2.662,0.0,0.034,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.848,-3.884,-0.117,0.0,2.991,7.106,1.845 base-hvac-boiler-coal-only.xml,17.11,0.0,0.0,9.071,0.592,0.0,0.0,0.0,4.074,3.852,0.541,7.539,0.676,10.671,-13.459,0.0,0.0,0.0,8.197,-0.109,5.047,0.0,0.765,0.0,0.0,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-hvac-boiler-elec-only.xml,17.11,0.0,0.0,9.071,0.592,0.0,0.0,0.0,4.074,3.852,0.541,7.539,0.676,10.671,-13.459,0.0,0.0,0.0,8.197,-0.109,5.047,0.0,0.765,0.0,0.0,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-hvac-boiler-gas-central-ac-1-speed.xml,17.258,0.0,13.82,9.071,0.615,0.0,0.0,0.0,4.107,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.475,-2.662,0.0,0.026,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.847,-3.884,-0.117,0.0,3.188,7.106,1.845 @@ -223,87 +224,87 @@ base-hvac-central-ac-only-1-speed-seer2.xml,0.0,0.0,13.399,9.071,0.666,0.0,0.0,0 base-hvac-central-ac-only-1-speed.xml,0.0,0.0,13.399,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.069,-0.15,-0.009,2.771,0.045,-0.539,10.592,0.0,0.0,0.0,-6.35,-0.119,-0.809,-3.758,-0.11,0.0,3.105,6.958,1.811 base-hvac-central-ac-only-2-speed-research-features.xml,0.0,0.0,14.21,9.071,0.667,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.081,-0.166,-0.012,2.75,0.043,-0.519,10.597,0.0,0.0,0.0,-6.423,-0.115,-0.756,-3.614,-0.114,0.0,3.846,6.935,1.803 base-hvac-central-ac-only-2-speed.xml,0.0,0.0,13.763,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.056,-0.15,-0.009,2.771,0.045,-0.538,10.592,0.0,0.0,0.0,-6.349,-0.119,-0.806,-3.758,-0.11,0.0,3.475,6.958,1.811 -base-hvac-central-ac-only-var-speed-detailed-performance-autosize.xml,0.0,0.0,14.879,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.016,-0.15,-0.009,2.771,0.045,-0.538,10.592,0.0,0.0,0.0,-6.349,-0.119,-0.809,-3.766,-0.11,0.0,4.645,6.958,1.811 +base-hvac-central-ac-only-var-speed-detailed-performance-autosize.xml,0.0,0.0,14.864,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.017,-0.15,-0.009,2.771,0.045,-0.538,10.592,0.0,0.0,0.0,-6.349,-0.119,-0.809,-3.766,-0.11,0.0,4.629,6.958,1.811 base-hvac-central-ac-only-var-speed-detailed-performance.xml,0.0,0.0,13.904,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.058,-0.15,-0.009,2.771,0.045,-0.539,10.592,0.0,0.0,0.0,-6.35,-0.119,-0.817,-3.76,-0.11,0.0,3.64,6.958,1.811 base-hvac-central-ac-only-var-speed-max-power-ratio-schedule.xml,0.0,0.0,14.723,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.02,-0.151,-0.009,2.77,0.044,-0.548,10.579,0.0,0.0,0.0,-6.341,-0.114,-0.811,-3.766,-0.111,0.0,4.484,6.955,1.81 base-hvac-central-ac-only-var-speed.xml,0.0,0.0,14.739,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.022,-0.15,-0.009,2.771,0.045,-0.538,10.592,0.0,0.0,0.0,-6.349,-0.119,-0.809,-3.764,-0.11,0.0,4.497,6.958,1.811 -base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml,23.065,0.326,13.821,9.071,0.615,0.0,0.0,0.0,3.794,3.883,0.545,7.571,0.683,10.761,-13.574,0.0,0.0,0.0,8.365,-0.116,5.421,0.0,0.77,0.0,5.738,-8.475,-2.662,0.0,0.026,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.188,7.106,1.845 +base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml,23.106,0.332,13.821,9.071,0.615,0.0,0.0,0.0,3.792,3.883,0.545,7.571,0.683,10.761,-13.574,0.0,0.0,0.0,8.365,-0.116,5.423,0.0,0.77,0.0,5.778,-8.475,-2.662,0.0,0.026,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.188,7.106,1.845 base-hvac-dse.xml,17.257,0.0,10.74,9.071,0.615,0.0,0.0,0.0,4.108,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.145,-0.112,-0.865,-3.879,-0.116,0.0,0.0,7.106,1.845 -base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-lockout-temperatures.xml,24.413,11.519,12.652,9.071,0.615,0.0,0.0,0.0,3.735,3.883,0.546,7.573,0.683,10.763,-13.574,0.0,0.0,0.0,8.368,-0.116,5.603,0.0,0.77,0.0,6.961,-8.475,-2.662,0.0,0.066,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.855,-3.881,-0.117,0.0,1.998,7.106,1.845 -base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml,25.324,15.78,12.652,9.071,0.615,0.0,0.0,0.0,3.696,3.884,0.546,7.575,0.683,10.764,-13.574,0.0,0.0,0.0,8.371,-0.116,5.739,0.0,0.77,0.0,7.769,-8.475,-2.662,0.0,0.066,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.855,-3.881,-0.117,0.0,1.998,7.106,1.845 -base-hvac-dual-fuel-air-to-air-heat-pump-2-speed-advanced-defrost.xml,25.62,15.8,12.877,9.071,0.615,0.0,0.0,0.0,3.68,3.884,0.546,7.575,0.683,10.765,-13.574,0.0,0.0,0.0,8.372,-0.116,5.754,0.0,0.77,0.0,8.063,-8.475,-2.662,0.0,0.06,-0.188,-0.014,2.827,0.035,-0.633,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.853,-3.882,-0.117,0.0,2.225,7.106,1.845 -base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml,25.62,15.8,12.877,9.071,0.615,0.0,0.0,0.0,3.68,3.884,0.546,7.575,0.683,10.765,-13.574,0.0,0.0,0.0,8.372,-0.116,5.754,0.0,0.77,0.0,8.063,-8.475,-2.662,0.0,0.06,-0.188,-0.014,2.827,0.035,-0.633,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.853,-3.882,-0.117,0.0,2.225,7.106,1.845 -base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml,26.862,16.049,13.884,9.071,0.615,0.0,0.0,0.0,3.618,3.884,0.546,7.576,0.683,10.766,-13.574,0.0,0.0,0.0,8.375,-0.116,5.763,0.0,0.77,0.0,9.354,-8.475,-2.662,0.0,0.031,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.855,-3.885,-0.117,0.0,3.266,7.106,1.845 -base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml,20.31,11.77,11.775,9.071,0.615,0.0,0.0,0.0,3.932,3.882,0.545,7.568,0.682,10.758,-13.574,0.0,0.0,0.0,8.358,-0.116,5.154,0.0,0.77,0.0,3.139,-8.475,-2.662,0.0,0.114,-0.188,-0.014,2.825,0.035,-0.634,10.839,0.0,0.0,0.0,-6.141,-0.112,-0.864,-3.881,-0.117,0.0,1.096,7.106,1.845 -base-hvac-ducts-area-fractions.xml,45.496,0.0,28.907,8.985,0.613,0.0,0.0,0.0,3.453,8.328,1.13,7.452,0.745,22.14,-25.817,0.0,0.0,0.0,7.998,-0.647,11.939,0.0,0.784,0.0,21.211,-10.249,-3.684,0.0,-0.244,-0.509,-0.03,2.304,0.066,-0.226,22.748,0.0,0.0,0.0,-7.339,-0.635,-1.759,-7.943,-0.114,0.0,11.28,8.92,2.684 -base-hvac-ducts-area-multipliers.xml,21.828,0.0,13.337,9.071,0.615,0.0,0.0,0.0,3.852,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.362,-0.116,5.253,0.0,0.77,0.0,4.624,-8.475,-2.662,0.0,0.043,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.848,-3.882,-0.116,0.0,2.693,7.106,1.845 -base-hvac-ducts-buried.xml,20.582,0.0,12.609,9.071,0.615,0.0,0.0,0.0,3.915,3.882,0.545,7.568,0.682,10.758,-13.574,0.0,0.0,0.0,8.359,-0.116,5.241,0.0,0.77,0.0,3.336,-8.475,-2.662,0.0,0.061,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.14,-0.112,-0.849,-3.882,-0.116,0.0,1.952,7.106,1.845 -base-hvac-ducts-defaults.xml,19.023,0.0,10.74,9.071,0.615,0.0,0.0,0.0,4.107,3.88,0.545,7.562,0.682,10.753,-13.574,0.0,0.0,0.0,8.348,-0.116,5.18,0.0,0.77,0.0,1.669,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.145,-0.112,-0.865,-3.879,-0.116,0.0,0.0,7.106,1.845 -base-hvac-ducts-effective-rvalue.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-hvac-ducts-leakage-cfm50.xml,22.542,0.0,13.851,9.071,0.615,0.0,0.0,0.0,3.838,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.201,0.0,0.77,0.0,5.411,-8.475,-2.662,0.0,0.043,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.863,-3.883,-0.117,0.0,3.243,7.106,1.845 -base-hvac-ducts-leakage-percent.xml,22.76,0.0,13.939,9.071,0.615,0.0,0.0,0.0,3.807,3.883,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.217,0.0,0.77,0.0,5.635,-8.475,-2.662,0.0,0.026,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.851,-3.885,-0.117,0.0,3.319,7.106,1.845 -base-hvac-ducts-shape-mixed.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-hvac-ducts-shape-rectangular.xml,22.259,0.0,13.602,9.071,0.615,0.0,0.0,0.0,3.831,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.069,-8.475,-2.662,0.0,0.034,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,2.966,7.106,1.845 -base-hvac-ducts-shape-round.xml,22.581,0.0,13.792,9.071,0.615,0.0,0.0,0.0,3.815,3.882,0.545,7.57,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.262,0.0,0.77,0.0,5.402,-8.475,-2.662,0.0,0.028,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.161,7.106,1.845 +base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-lockout-temperatures.xml,24.389,11.503,12.652,9.071,0.615,0.0,0.0,0.0,3.737,3.883,0.546,7.573,0.683,10.763,-13.574,0.0,0.0,0.0,8.368,-0.116,5.595,0.0,0.77,0.0,6.944,-8.475,-2.662,0.0,0.066,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.855,-3.881,-0.117,0.0,1.998,7.106,1.845 +base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml,25.294,15.756,12.652,9.071,0.615,0.0,0.0,0.0,3.697,3.884,0.546,7.575,0.683,10.764,-13.574,0.0,0.0,0.0,8.371,-0.116,5.729,0.0,0.77,0.0,7.749,-8.475,-2.662,0.0,0.066,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.855,-3.881,-0.117,0.0,1.998,7.106,1.845 +base-hvac-dual-fuel-air-to-air-heat-pump-2-speed-advanced-defrost.xml,25.688,15.788,12.877,9.071,0.615,0.0,0.0,0.0,3.676,3.884,0.546,7.575,0.683,10.765,-13.574,0.0,0.0,0.0,8.372,-0.116,5.744,0.0,0.77,0.0,8.145,-8.475,-2.662,0.0,0.06,-0.188,-0.014,2.827,0.035,-0.633,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.853,-3.882,-0.117,0.0,2.225,7.106,1.845 +base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml,25.687,15.788,12.877,9.071,0.615,0.0,0.0,0.0,3.676,3.884,0.546,7.575,0.683,10.765,-13.574,0.0,0.0,0.0,8.372,-0.116,5.744,0.0,0.77,0.0,8.145,-8.475,-2.662,0.0,0.06,-0.188,-0.014,2.827,0.035,-0.633,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.853,-3.882,-0.117,0.0,2.225,7.106,1.845 +base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml,26.586,15.997,13.885,9.071,0.615,0.0,0.0,0.0,3.632,3.884,0.546,7.576,0.683,10.765,-13.574,0.0,0.0,0.0,8.374,-0.116,5.75,0.0,0.77,0.0,9.078,-8.475,-2.662,0.0,0.031,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.855,-3.885,-0.117,0.0,3.266,7.106,1.845 +base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml,20.428,11.778,11.775,9.071,0.615,0.0,0.0,0.0,3.925,3.882,0.545,7.568,0.682,10.758,-13.574,0.0,0.0,0.0,8.358,-0.116,5.153,0.0,0.77,0.0,3.264,-8.475,-2.662,0.0,0.114,-0.188,-0.014,2.825,0.035,-0.634,10.839,0.0,0.0,0.0,-6.141,-0.112,-0.864,-3.881,-0.117,0.0,1.096,7.106,1.845 +base-hvac-ducts-area-fractions.xml,45.599,0.0,28.907,8.985,0.613,0.0,0.0,0.0,3.449,8.328,1.13,7.452,0.745,22.14,-25.817,0.0,0.0,0.0,7.998,-0.647,11.937,0.0,0.784,0.0,21.32,-10.249,-3.684,0.0,-0.244,-0.509,-0.03,2.304,0.066,-0.226,22.748,0.0,0.0,0.0,-7.339,-0.635,-1.759,-7.943,-0.114,0.0,11.28,8.92,2.684 +base-hvac-ducts-area-multipliers.xml,21.822,0.0,13.337,9.071,0.615,0.0,0.0,0.0,3.853,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.362,-0.116,5.251,0.0,0.77,0.0,4.621,-8.475,-2.662,0.0,0.043,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.848,-3.882,-0.116,0.0,2.693,7.106,1.845 +base-hvac-ducts-buried.xml,20.573,0.0,12.609,9.071,0.615,0.0,0.0,0.0,3.916,3.882,0.545,7.568,0.682,10.758,-13.574,0.0,0.0,0.0,8.358,-0.116,5.238,0.0,0.77,0.0,3.329,-8.475,-2.662,0.0,0.061,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.14,-0.112,-0.849,-3.882,-0.116,0.0,1.952,7.106,1.845 +base-hvac-ducts-defaults.xml,19.04,0.0,10.74,9.071,0.615,0.0,0.0,0.0,4.107,3.88,0.545,7.562,0.682,10.753,-13.574,0.0,0.0,0.0,8.348,-0.116,5.18,0.0,0.77,0.0,1.685,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.145,-0.112,-0.865,-3.879,-0.116,0.0,0.0,7.106,1.845 +base-hvac-ducts-effective-rvalue.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-hvac-ducts-leakage-cfm50.xml,22.538,0.0,13.851,9.071,0.615,0.0,0.0,0.0,3.838,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.2,0.0,0.77,0.0,5.408,-8.475,-2.662,0.0,0.043,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.863,-3.883,-0.117,0.0,3.243,7.106,1.845 +base-hvac-ducts-leakage-percent.xml,22.76,0.0,13.939,9.071,0.615,0.0,0.0,0.0,3.807,3.883,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.215,0.0,0.77,0.0,5.636,-8.475,-2.662,0.0,0.026,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.851,-3.885,-0.117,0.0,3.319,7.106,1.845 +base-hvac-ducts-shape-mixed.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-hvac-ducts-shape-rectangular.xml,22.258,0.0,13.602,9.071,0.615,0.0,0.0,0.0,3.831,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.256,0.0,0.77,0.0,5.07,-8.475,-2.662,0.0,0.034,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,2.966,7.106,1.845 +base-hvac-ducts-shape-round.xml,22.583,0.0,13.792,9.071,0.615,0.0,0.0,0.0,3.815,3.882,0.545,7.57,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.26,0.0,0.77,0.0,5.405,-8.475,-2.662,0.0,0.028,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.161,7.106,1.845 base-hvac-elec-resistance-only.xml,17.11,0.0,0.0,9.071,0.592,0.0,0.0,0.0,4.074,3.852,0.541,7.539,0.676,10.671,-13.459,0.0,0.0,0.0,8.197,-0.109,5.047,0.0,0.765,0.0,0.0,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-evap-cooler-furnace-gas.xml,22.529,0.0,10.74,9.071,0.615,0.0,0.0,0.0,3.818,3.882,0.545,7.57,0.682,10.761,-13.574,0.0,0.0,0.0,8.363,-0.116,5.263,0.0,0.77,0.0,5.342,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.636,10.839,0.0,0.0,0.0,-6.143,-0.112,-0.865,-3.88,-0.117,0.0,0.0,7.106,1.845 -base-hvac-evap-cooler-only-ducted.xml,0.0,0.0,11.053,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.161,-0.151,-0.009,2.769,0.045,-0.541,10.592,0.0,0.0,0.0,-6.353,-0.119,-0.808,-3.752,-0.111,0.0,0.682,6.958,1.811 +base-hvac-evap-cooler-furnace-gas.xml,22.571,0.0,10.74,9.071,0.615,0.0,0.0,0.0,3.816,3.882,0.545,7.57,0.682,10.761,-13.574,0.0,0.0,0.0,8.363,-0.116,5.264,0.0,0.77,0.0,5.385,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.636,10.839,0.0,0.0,0.0,-6.143,-0.112,-0.865,-3.88,-0.117,0.0,0.0,7.106,1.845 +base-hvac-evap-cooler-only-ducted.xml,0.0,0.0,11.061,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.161,-0.151,-0.009,2.769,0.045,-0.541,10.592,0.0,0.0,0.0,-6.353,-0.119,-0.808,-3.752,-0.111,0.0,0.69,6.958,1.811 base-hvac-evap-cooler-only.xml,0.0,0.0,10.397,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.219,-0.152,-0.009,2.767,0.045,-0.542,10.592,0.0,0.0,0.0,-6.355,-0.119,-0.828,-3.753,-0.111,0.0,0.0,6.958,1.811 base-hvac-fireplace-wood-only.xml,18.168,0.0,0.0,9.071,0.593,0.0,0.0,0.0,4.088,3.863,0.543,7.518,0.679,10.707,-13.505,0.0,0.0,0.0,8.165,-0.121,6.197,0.0,0.766,0.0,0.0,-8.436,-2.651,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-hvac-floor-furnace-propane-only.xml,18.168,0.0,0.0,9.071,0.593,0.0,0.0,0.0,4.088,3.863,0.543,7.518,0.679,10.707,-13.505,0.0,0.0,0.0,8.165,-0.121,6.197,0.0,0.766,0.0,0.0,-8.436,-2.651,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-furnace-coal-only.xml,22.338,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.787,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.229,0.0,0.765,0.0,5.298,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-furnace-elec-central-ac-1-speed.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-hvac-furnace-elec-only.xml,22.338,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.787,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.229,0.0,0.765,0.0,5.298,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-furnace-gas-central-ac-2-speed.xml,22.502,0.0,14.189,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.364,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.012,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.843,-3.884,-0.117,0.0,3.564,7.106,1.845 -base-hvac-furnace-gas-central-ac-var-speed-max-power-ratio-schedule.xml,22.502,0.0,15.152,9.071,0.615,0.0,0.0,0.0,3.818,3.882,0.545,7.57,0.682,10.752,-13.587,0.0,0.0,0.0,8.373,-0.111,5.26,0.0,0.769,0.0,5.308,-8.479,-2.663,0.0,-0.024,-0.189,-0.014,2.826,0.034,-0.642,10.827,0.0,0.0,0.0,-6.13,-0.107,-0.848,-3.893,-0.117,0.0,4.577,7.102,1.844 -base-hvac-furnace-gas-central-ac-var-speed.xml,22.502,0.0,15.168,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,-0.022,-0.188,-0.014,2.828,0.035,-0.631,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.847,-3.891,-0.117,0.0,4.59,7.106,1.845 -base-hvac-furnace-gas-only-autosize-factor.xml,21.183,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.845,3.854,0.542,7.545,0.677,10.677,-13.459,0.0,0.0,0.0,8.209,-0.109,5.175,0.0,0.765,0.0,4.147,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-furnace-gas-only-detailed-setpoints.xml,7.862,0.0,0.0,9.071,0.637,0.0,0.0,0.0,2.94,2.803,0.391,5.252,0.42,7.502,-12.926,0.0,0.0,0.0,5.605,-0.045,3.571,0.0,0.573,0.0,1.84,-7.876,-2.526,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-furnace-gas-only-pilot.xml,22.338,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.787,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.229,0.0,0.765,0.0,5.298,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-furnace-gas-only.xml,22.338,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.787,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.229,0.0,0.765,0.0,5.298,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-furnace-gas-room-ac.xml,22.529,0.0,10.741,9.071,0.615,0.0,0.0,0.0,3.818,3.882,0.545,7.57,0.682,10.761,-13.574,0.0,0.0,0.0,8.363,-0.116,5.263,0.0,0.77,0.0,5.342,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.636,10.839,0.0,0.0,0.0,-6.143,-0.112,-0.865,-3.88,-0.116,0.0,0.0,7.106,1.845 -base-hvac-furnace-oil-only.xml,22.338,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.787,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.229,0.0,0.765,0.0,5.298,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-furnace-propane-only.xml,22.338,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.787,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.229,0.0,0.765,0.0,5.298,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-furnace-wood-only.xml,22.338,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.787,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.229,0.0,0.765,0.0,5.298,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-furnace-coal-only.xml,22.38,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.785,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.23,0.0,0.765,0.0,5.341,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-furnace-elec-central-ac-1-speed.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-hvac-furnace-elec-only.xml,22.38,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.785,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.23,0.0,0.765,0.0,5.341,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-furnace-gas-central-ac-2-speed.xml,22.503,0.0,14.189,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.364,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.012,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.843,-3.884,-0.117,0.0,3.564,7.106,1.845 +base-hvac-furnace-gas-central-ac-var-speed-max-power-ratio-schedule.xml,22.502,0.0,15.151,9.071,0.615,0.0,0.0,0.0,3.818,3.882,0.545,7.57,0.682,10.752,-13.587,0.0,0.0,0.0,8.373,-0.111,5.258,0.0,0.769,0.0,5.311,-8.479,-2.663,0.0,-0.024,-0.189,-0.014,2.826,0.034,-0.642,10.827,0.0,0.0,0.0,-6.13,-0.107,-0.848,-3.893,-0.117,0.0,4.577,7.102,1.844 +base-hvac-furnace-gas-central-ac-var-speed.xml,22.503,0.0,15.169,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,-0.022,-0.188,-0.014,2.828,0.035,-0.631,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.847,-3.891,-0.117,0.0,4.59,7.106,1.845 +base-hvac-furnace-gas-only-autosize-factor.xml,21.161,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.846,3.854,0.542,7.545,0.677,10.677,-13.459,0.0,0.0,0.0,8.209,-0.109,5.173,0.0,0.765,0.0,4.125,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-furnace-gas-only-detailed-setpoints.xml,7.877,0.0,0.0,9.071,0.637,0.0,0.0,0.0,2.94,2.803,0.391,5.252,0.42,7.502,-12.926,0.0,0.0,0.0,5.605,-0.045,3.571,0.0,0.573,0.0,1.855,-7.876,-2.526,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-furnace-gas-only-pilot.xml,22.38,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.785,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.23,0.0,0.765,0.0,5.341,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-furnace-gas-only.xml,22.38,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.785,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.23,0.0,0.765,0.0,5.341,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-furnace-gas-room-ac.xml,22.571,0.0,10.741,9.071,0.615,0.0,0.0,0.0,3.816,3.882,0.545,7.57,0.682,10.761,-13.574,0.0,0.0,0.0,8.363,-0.116,5.264,0.0,0.77,0.0,5.385,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.636,10.839,0.0,0.0,0.0,-6.143,-0.112,-0.865,-3.88,-0.116,0.0,0.0,7.106,1.845 +base-hvac-furnace-oil-only.xml,22.38,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.785,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.23,0.0,0.765,0.0,5.341,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-furnace-propane-only.xml,22.38,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.785,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.23,0.0,0.765,0.0,5.341,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-furnace-wood-only.xml,22.38,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.785,3.854,0.542,7.546,0.677,10.678,-13.459,0.0,0.0,0.0,8.212,-0.109,5.23,0.0,0.765,0.0,5.341,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-hvac-furnace-x3-dse.xml,17.43,0.0,10.74,9.071,0.615,0.0,0.0,0.0,4.149,3.919,0.55,7.638,0.689,10.861,-13.71,0.0,0.0,0.0,8.432,-0.117,5.131,0.0,0.778,0.0,0.0,-8.56,-2.689,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.145,-0.112,-0.865,-3.879,-0.116,0.0,0.0,7.106,1.845 -base-hvac-ground-to-air-heat-pump-cooling-only.xml,0.0,0.0,12.445,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.102,-0.151,-0.009,2.77,0.045,-0.539,10.592,0.0,0.0,0.0,-6.351,-0.119,-0.818,-3.756,-0.11,0.0,2.137,6.958,1.811 -base-hvac-ground-to-air-heat-pump-detailed-geothermal-loop.xml,25.373,0.0,13.179,9.071,0.616,0.0,0.0,0.0,3.812,3.848,0.54,7.861,0.678,10.67,-13.659,0.0,0.0,0.0,11.822,-0.127,5.236,0.0,0.769,0.0,4.786,-8.541,-2.679,0.0,0.081,-0.173,-0.012,3.233,0.042,-0.579,10.755,0.0,0.0,0.0,-6.041,-0.124,-0.834,-3.866,-0.113,0.0,2.068,7.038,1.828 -base-hvac-ground-to-air-heat-pump-heating-only.xml,21.085,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.85,3.854,0.542,7.545,0.677,10.677,-13.459,0.0,0.0,0.0,8.209,-0.109,5.192,0.0,0.765,0.0,4.026,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-ground-to-air-heat-pump.xml,21.396,0.0,12.654,9.071,0.615,0.0,0.0,0.0,3.874,3.882,0.545,7.569,0.682,10.759,-13.574,0.0,0.0,0.0,8.361,-0.116,5.217,0.0,0.77,0.0,4.21,-8.475,-2.662,0.0,0.066,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.855,-3.881,-0.117,0.0,2.0,7.106,1.845 -base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml,24.754,0.711,13.255,9.071,0.615,0.0,0.0,0.0,3.715,3.883,0.546,7.574,0.683,10.763,-13.574,0.0,0.0,0.0,8.369,-0.116,5.523,0.0,0.77,0.0,7.395,-8.475,-2.662,0.0,0.047,-0.188,-0.014,2.827,0.035,-0.633,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.852,-3.884,-0.117,0.0,2.617,7.106,1.845 -base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml,25.727,0.638,13.573,9.071,0.615,0.0,0.0,0.0,3.671,3.884,0.546,7.575,0.683,10.764,-13.574,0.0,0.0,0.0,8.372,-0.116,5.582,0.0,0.77,0.0,8.345,-8.475,-2.662,0.0,0.037,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.849,-3.884,-0.117,0.0,2.937,7.106,1.845 -base-hvac-install-quality-air-to-air-heat-pump-var-speed-detailed-performance.xml,28.093,0.318,14.983,9.071,0.615,0.0,0.0,0.0,3.552,3.885,0.546,7.577,0.683,10.767,-13.574,0.0,0.0,0.0,8.377,-0.116,5.584,0.0,0.77,0.0,10.82,-8.475,-2.662,0.0,-0.011,-0.188,-0.014,2.828,0.035,-0.632,10.839,0.0,0.0,0.0,-6.136,-0.112,-0.851,-3.891,-0.117,0.0,4.403,7.106,1.845 -base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml,27.429,0.663,14.726,9.071,0.615,0.0,0.0,0.0,3.585,3.884,0.546,7.576,0.683,10.766,-13.574,0.0,0.0,0.0,8.376,-0.116,5.502,0.0,0.77,0.0,10.207,-8.475,-2.662,0.0,-0.002,-0.188,-0.014,2.828,0.035,-0.632,10.839,0.0,0.0,0.0,-6.136,-0.112,-0.851,-3.888,-0.117,0.0,4.134,7.106,1.845 -base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml,23.775,0.0,14.745,9.071,0.615,0.0,0.0,0.0,3.758,3.883,0.545,7.572,0.683,10.762,-13.574,0.0,0.0,0.0,8.367,-0.116,5.285,0.0,0.77,0.0,6.624,-8.475,-2.662,0.0,-0.011,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.841,-3.888,-0.117,0.0,4.142,7.106,1.845 -base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml,23.775,0.0,15.197,9.071,0.615,0.0,0.0,0.0,3.758,3.883,0.545,7.572,0.683,10.762,-13.574,0.0,0.0,0.0,8.367,-0.116,5.285,0.0,0.77,0.0,6.624,-8.475,-2.662,0.0,-0.029,-0.188,-0.014,2.828,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.838,-3.888,-0.117,0.0,4.604,7.106,1.845 -base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml,23.775,0.0,15.983,9.071,0.615,0.0,0.0,0.0,3.758,3.883,0.545,7.572,0.683,10.762,-13.574,0.0,0.0,0.0,8.367,-0.116,5.285,0.0,0.77,0.0,6.624,-8.475,-2.662,0.0,-0.059,-0.187,-0.014,2.828,0.035,-0.631,10.839,0.0,0.0,0.0,-6.136,-0.112,-0.841,-3.897,-0.117,0.0,5.432,7.106,1.845 -base-hvac-install-quality-furnace-gas-only.xml,23.612,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.726,3.855,0.542,7.548,0.677,10.679,-13.459,0.0,0.0,0.0,8.215,-0.109,5.253,0.0,0.765,0.0,6.602,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-install-quality-ground-to-air-heat-pump.xml,22.685,0.0,13.253,9.071,0.615,0.0,0.0,0.0,3.809,3.883,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.271,0.0,0.77,0.0,5.5,-8.475,-2.662,0.0,0.047,-0.188,-0.014,2.827,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.852,-3.883,-0.117,0.0,2.613,7.106,1.845 +base-hvac-ground-to-air-heat-pump-cooling-only.xml,0.0,0.0,12.458,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.102,-0.151,-0.009,2.77,0.045,-0.539,10.592,0.0,0.0,0.0,-6.351,-0.119,-0.818,-3.756,-0.11,0.0,2.151,6.958,1.811 +base-hvac-ground-to-air-heat-pump-detailed-geothermal-loop.xml,25.082,0.0,13.183,9.071,0.616,0.0,0.0,0.0,3.827,3.847,0.54,7.86,0.678,10.67,-13.659,0.0,0.0,0.0,11.821,-0.127,5.233,0.0,0.769,0.0,4.485,-8.541,-2.679,0.0,0.081,-0.173,-0.012,3.233,0.042,-0.579,10.755,0.0,0.0,0.0,-6.041,-0.124,-0.834,-3.866,-0.113,0.0,2.073,7.038,1.828 +base-hvac-ground-to-air-heat-pump-heating-only.xml,21.114,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.848,3.854,0.542,7.545,0.677,10.677,-13.459,0.0,0.0,0.0,8.209,-0.109,5.193,0.0,0.765,0.0,4.056,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-ground-to-air-heat-pump.xml,21.371,0.0,12.654,9.071,0.615,0.0,0.0,0.0,3.876,3.882,0.545,7.569,0.682,10.759,-13.574,0.0,0.0,0.0,8.361,-0.116,5.215,0.0,0.77,0.0,4.186,-8.475,-2.662,0.0,0.066,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.855,-3.881,-0.117,0.0,2.0,7.106,1.845 +base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml,24.751,0.717,13.255,9.071,0.615,0.0,0.0,0.0,3.716,3.883,0.546,7.574,0.683,10.763,-13.574,0.0,0.0,0.0,8.369,-0.116,5.518,0.0,0.77,0.0,7.398,-8.475,-2.662,0.0,0.047,-0.188,-0.014,2.827,0.035,-0.633,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.852,-3.884,-0.117,0.0,2.617,7.106,1.845 +base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml,25.721,0.642,13.573,9.071,0.615,0.0,0.0,0.0,3.671,3.884,0.546,7.575,0.683,10.764,-13.574,0.0,0.0,0.0,8.372,-0.116,5.575,0.0,0.77,0.0,8.346,-8.475,-2.662,0.0,0.037,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.849,-3.884,-0.117,0.0,2.937,7.106,1.845 +base-hvac-install-quality-air-to-air-heat-pump-var-speed-detailed-performance.xml,28.206,0.318,14.983,9.071,0.615,0.0,0.0,0.0,3.545,3.885,0.546,7.577,0.683,10.766,-13.574,0.0,0.0,0.0,8.377,-0.116,5.577,0.0,0.769,0.0,10.948,-8.475,-2.662,0.0,-0.011,-0.188,-0.014,2.828,0.035,-0.632,10.839,0.0,0.0,0.0,-6.136,-0.112,-0.851,-3.891,-0.117,0.0,4.403,7.106,1.845 +base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml,27.431,0.664,14.726,9.071,0.615,0.0,0.0,0.0,3.585,3.884,0.546,7.576,0.683,10.766,-13.574,0.0,0.0,0.0,8.376,-0.116,5.496,0.0,0.77,0.0,10.215,-8.475,-2.662,0.0,-0.002,-0.188,-0.014,2.828,0.035,-0.632,10.839,0.0,0.0,0.0,-6.136,-0.112,-0.851,-3.888,-0.117,0.0,4.134,7.106,1.845 +base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml,23.78,0.0,14.745,9.071,0.615,0.0,0.0,0.0,3.757,3.883,0.545,7.572,0.683,10.762,-13.574,0.0,0.0,0.0,8.367,-0.116,5.282,0.0,0.77,0.0,6.632,-8.475,-2.662,0.0,-0.011,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.841,-3.888,-0.117,0.0,4.142,7.106,1.845 +base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml,23.78,0.0,15.197,9.071,0.615,0.0,0.0,0.0,3.757,3.883,0.545,7.572,0.683,10.762,-13.574,0.0,0.0,0.0,8.367,-0.116,5.282,0.0,0.77,0.0,6.632,-8.475,-2.662,0.0,-0.029,-0.188,-0.014,2.828,0.035,-0.632,10.839,0.0,0.0,0.0,-6.137,-0.112,-0.838,-3.888,-0.117,0.0,4.604,7.106,1.845 +base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml,23.78,0.0,15.981,9.071,0.615,0.0,0.0,0.0,3.757,3.883,0.545,7.572,0.683,10.762,-13.574,0.0,0.0,0.0,8.367,-0.116,5.282,0.0,0.77,0.0,6.632,-8.475,-2.662,0.0,-0.059,-0.187,-0.014,2.828,0.035,-0.631,10.839,0.0,0.0,0.0,-6.136,-0.112,-0.841,-3.897,-0.117,0.0,5.431,7.106,1.845 +base-hvac-install-quality-furnace-gas-only.xml,23.675,0.0,0.0,9.071,0.592,0.0,0.0,0.0,3.723,3.855,0.542,7.548,0.677,10.679,-13.459,0.0,0.0,0.0,8.215,-0.109,5.254,0.0,0.765,0.0,6.667,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-install-quality-ground-to-air-heat-pump.xml,22.686,0.0,13.253,9.071,0.615,0.0,0.0,0.0,3.809,3.883,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.269,0.0,0.77,0.0,5.504,-8.475,-2.662,0.0,0.047,-0.188,-0.014,2.827,0.035,-0.633,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.852,-3.883,-0.117,0.0,2.613,7.106,1.845 base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml,0.0,0.0,12.16,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.111,-0.151,-0.009,2.77,0.045,-0.54,10.592,0.0,0.0,0.0,-6.351,-0.119,-0.825,-3.757,-0.11,0.0,1.86,6.958,1.811 -base-hvac-install-quality-mini-split-heat-pump-ducted.xml,20.642,0.126,12.079,9.071,0.615,0.0,0.0,0.0,3.916,3.882,0.545,7.568,0.682,10.758,-13.574,0.0,0.0,0.0,8.359,-0.116,5.115,0.0,0.77,0.0,3.523,-8.475,-2.662,0.0,0.096,-0.188,-0.014,2.825,0.035,-0.634,10.839,0.0,0.0,0.0,-6.141,-0.112,-0.863,-3.881,-0.116,0.0,1.416,7.106,1.845 +base-hvac-install-quality-mini-split-heat-pump-ducted.xml,20.652,0.128,12.079,9.071,0.615,0.0,0.0,0.0,3.915,3.882,0.545,7.568,0.682,10.758,-13.574,0.0,0.0,0.0,8.359,-0.116,5.115,0.0,0.77,0.0,3.534,-8.475,-2.662,0.0,0.096,-0.188,-0.014,2.825,0.035,-0.634,10.839,0.0,0.0,0.0,-6.141,-0.112,-0.863,-3.881,-0.116,0.0,1.416,7.106,1.845 base-hvac-mini-split-air-conditioner-only-ducted.xml,0.0,0.0,11.907,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.125,-0.151,-0.009,2.77,0.045,-0.54,10.592,0.0,0.0,0.0,-6.352,-0.119,-0.825,-3.756,-0.11,0.0,1.594,6.958,1.811 base-hvac-mini-split-air-conditioner-only-ductless-detailed-performance-autosize.xml,0.0,0.0,10.397,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.219,-0.152,-0.009,2.767,0.045,-0.542,10.592,0.0,0.0,0.0,-6.355,-0.119,-0.828,-3.753,-0.11,0.0,0.0,6.958,1.811 base-hvac-mini-split-air-conditioner-only-ductless-detailed-performance.xml,0.0,0.0,10.397,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.219,-0.152,-0.009,2.767,0.045,-0.542,10.592,0.0,0.0,0.0,-6.355,-0.119,-0.828,-3.753,-0.11,0.0,0.0,6.958,1.811 base-hvac-mini-split-air-conditioner-only-ductless.xml,0.0,0.0,10.397,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.219,-0.152,-0.009,2.767,0.045,-0.542,10.592,0.0,0.0,0.0,-6.355,-0.119,-0.828,-3.753,-0.11,0.0,0.0,6.958,1.811 base-hvac-mini-split-heat-pump-ducted-cooling-only.xml,0.0,0.0,11.407,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.155,-0.151,-0.009,2.769,0.045,-0.541,10.592,0.0,0.0,0.0,-6.353,-0.119,-0.826,-3.754,-0.11,0.0,1.067,6.958,1.811 -base-hvac-mini-split-heat-pump-ducted-detailed-performance-autosize.xml,20.898,0.0,12.314,9.071,0.615,0.0,0.0,0.0,3.9,3.882,0.545,7.568,0.682,10.758,-13.574,0.0,0.0,0.0,8.359,-0.116,5.115,0.0,0.77,0.0,3.794,-8.475,-2.662,0.0,0.083,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.14,-0.112,-0.863,-3.883,-0.117,0.0,1.665,7.106,1.845 -base-hvac-mini-split-heat-pump-ducted-detailed-performance.xml,20.48,0.0,12.079,9.071,0.615,0.0,0.0,0.0,3.925,3.882,0.545,7.568,0.682,10.758,-13.574,0.0,0.0,0.0,8.358,-0.116,5.103,0.0,0.77,0.0,3.365,-8.475,-2.662,0.0,0.098,-0.188,-0.014,2.825,0.035,-0.634,10.839,0.0,0.0,0.0,-6.141,-0.112,-0.864,-3.881,-0.117,0.0,1.415,7.106,1.845 -base-hvac-mini-split-heat-pump-ducted-heating-only-max-power-ratio-schedule.xml,19.911,0.057,0.0,9.071,0.593,0.0,0.0,0.0,3.91,3.85,0.541,7.533,0.676,10.665,-13.459,0.0,0.0,0.0,8.191,-0.109,5.07,0.0,0.765,0.0,2.973,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-mini-split-heat-pump-ducted-heating-only.xml,19.957,0.059,0.0,9.071,0.592,0.0,0.0,0.0,3.914,3.853,0.541,7.543,0.677,10.675,-13.459,0.0,0.0,0.0,8.206,-0.109,5.074,0.0,0.765,0.0,2.963,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-hvac-mini-split-heat-pump-ducted-max-power-ratio-schedule.xml,20.065,0.058,11.774,9.071,0.615,0.0,0.0,0.0,3.942,3.878,0.545,7.557,0.681,10.747,-13.574,0.0,0.0,0.0,8.343,-0.116,5.102,0.0,0.769,0.0,2.984,-8.475,-2.662,0.0,0.114,-0.188,-0.014,2.825,0.035,-0.634,10.839,0.0,0.0,0.0,-6.142,-0.112,-0.864,-3.88,-0.116,0.0,1.096,7.106,1.845 -base-hvac-mini-split-heat-pump-ducted.xml,20.112,0.06,11.775,9.071,0.615,0.0,0.0,0.0,3.947,3.881,0.545,7.567,0.682,10.758,-13.574,0.0,0.0,0.0,8.357,-0.116,5.106,0.0,0.77,0.0,2.975,-8.475,-2.662,0.0,0.114,-0.188,-0.014,2.825,0.035,-0.634,10.839,0.0,0.0,0.0,-6.142,-0.112,-0.864,-3.881,-0.117,0.0,1.096,7.106,1.845 +base-hvac-mini-split-heat-pump-ducted-detailed-performance-autosize.xml,20.894,0.0,12.308,9.071,0.615,0.0,0.0,0.0,3.9,3.882,0.545,7.568,0.682,10.758,-13.574,0.0,0.0,0.0,8.359,-0.116,5.114,0.0,0.77,0.0,3.792,-8.475,-2.662,0.0,0.084,-0.188,-0.014,2.826,0.035,-0.633,10.839,0.0,0.0,0.0,-6.14,-0.112,-0.863,-3.883,-0.117,0.0,1.658,7.106,1.845 +base-hvac-mini-split-heat-pump-ducted-detailed-performance.xml,20.494,0.0,12.081,9.071,0.615,0.0,0.0,0.0,3.924,3.882,0.545,7.568,0.682,10.758,-13.574,0.0,0.0,0.0,8.358,-0.116,5.103,0.0,0.77,0.0,3.38,-8.475,-2.662,0.0,0.098,-0.188,-0.014,2.825,0.035,-0.634,10.839,0.0,0.0,0.0,-6.141,-0.112,-0.864,-3.881,-0.117,0.0,1.418,7.106,1.845 +base-hvac-mini-split-heat-pump-ducted-heating-only-max-power-ratio-schedule.xml,19.925,0.058,0.0,9.071,0.593,0.0,0.0,0.0,3.909,3.85,0.541,7.533,0.676,10.665,-13.459,0.0,0.0,0.0,8.191,-0.109,5.07,0.0,0.765,0.0,2.988,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-mini-split-heat-pump-ducted-heating-only.xml,19.972,0.06,0.0,9.071,0.592,0.0,0.0,0.0,3.913,3.853,0.541,7.543,0.677,10.675,-13.459,0.0,0.0,0.0,8.206,-0.109,5.074,0.0,0.765,0.0,2.978,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-hvac-mini-split-heat-pump-ducted-max-power-ratio-schedule.xml,20.234,0.058,11.774,9.071,0.615,0.0,0.0,0.0,3.932,3.878,0.545,7.558,0.681,10.747,-13.574,0.0,0.0,0.0,8.343,-0.116,5.101,0.0,0.769,0.0,3.163,-8.475,-2.662,0.0,0.114,-0.188,-0.014,2.825,0.035,-0.634,10.839,0.0,0.0,0.0,-6.142,-0.112,-0.864,-3.88,-0.116,0.0,1.096,7.106,1.845 +base-hvac-mini-split-heat-pump-ducted.xml,20.284,0.06,11.775,9.071,0.615,0.0,0.0,0.0,3.937,3.882,0.545,7.567,0.682,10.758,-13.574,0.0,0.0,0.0,8.358,-0.116,5.106,0.0,0.77,0.0,3.156,-8.475,-2.662,0.0,0.114,-0.188,-0.014,2.825,0.035,-0.634,10.839,0.0,0.0,0.0,-6.141,-0.112,-0.864,-3.881,-0.117,0.0,1.096,7.106,1.845 base-hvac-mini-split-heat-pump-ductless-advanced-defrost.xml,17.557,0.0,10.74,9.071,0.615,0.0,0.0,0.0,4.108,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.176,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.144,-0.112,-0.865,-3.88,-0.117,0.0,0.0,7.106,1.845 base-hvac-mini-split-heat-pump-ductless-autosize-factor.xml,17.257,0.0,10.74,9.071,0.615,0.0,0.0,0.0,4.107,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.348,-0.116,5.08,0.0,0.77,0.0,0.0,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.144,-0.112,-0.865,-3.88,-0.117,0.0,0.0,7.106,1.845 base-hvac-mini-split-heat-pump-ductless-backup-advanced-defrost.xml,17.557,0.0,10.74,9.071,0.615,0.0,0.0,0.0,4.108,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.176,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.144,-0.112,-0.865,-3.88,-0.117,0.0,0.0,7.106,1.845 base-hvac-mini-split-heat-pump-ductless-backup-baseboard.xml,17.258,0.394,10.74,9.071,0.615,0.0,0.0,0.0,4.108,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.144,-0.112,-0.865,-3.88,-0.117,0.0,0.0,7.106,1.845 -base-hvac-mini-split-heat-pump-ductless-backup-furnace-ducts-defaults.xml,18.434,7.77,10.654,9.071,0.616,0.0,0.0,0.0,4.123,3.895,0.547,7.546,0.685,10.814,-13.636,0.0,0.0,0.0,8.316,-0.13,6.253,0.0,0.773,0.0,0.115,-8.536,-2.682,0.0,0.205,-0.164,-0.011,2.839,0.041,-0.545,10.777,0.0,0.0,0.0,-6.138,-0.126,-1.035,-3.812,-0.111,0.0,0.0,7.044,1.825 -base-hvac-mini-split-heat-pump-ductless-backup-furnace.xml,17.637,7.669,10.74,9.071,0.615,0.0,0.0,0.0,4.089,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.35,-0.116,5.085,0.0,0.77,0.0,0.393,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.144,-0.112,-0.865,-3.88,-0.117,0.0,0.0,7.106,1.845 +base-hvac-mini-split-heat-pump-ductless-backup-furnace-ducts-defaults.xml,18.435,7.771,10.654,9.071,0.616,0.0,0.0,0.0,4.123,3.895,0.547,7.546,0.685,10.814,-13.636,0.0,0.0,0.0,8.316,-0.13,6.253,0.0,0.773,0.0,0.116,-8.536,-2.682,0.0,0.205,-0.164,-0.011,2.839,0.041,-0.545,10.777,0.0,0.0,0.0,-6.138,-0.126,-1.035,-3.812,-0.111,0.0,0.0,7.044,1.825 +base-hvac-mini-split-heat-pump-ductless-backup-furnace.xml,17.64,7.671,10.74,9.071,0.615,0.0,0.0,0.0,4.089,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.35,-0.116,5.085,0.0,0.77,0.0,0.395,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.144,-0.112,-0.865,-3.88,-0.117,0.0,0.0,7.106,1.845 base-hvac-mini-split-heat-pump-ductless-backup-stove.xml,18.315,7.642,10.654,9.071,0.616,0.0,0.0,0.0,4.123,3.895,0.547,7.546,0.685,10.814,-13.636,0.0,0.0,0.0,8.316,-0.13,6.248,0.0,0.773,0.0,0.0,-8.536,-2.682,0.0,0.205,-0.164,-0.011,2.839,0.041,-0.545,10.777,0.0,0.0,0.0,-6.138,-0.126,-1.035,-3.812,-0.111,0.0,0.0,7.044,1.825 base-hvac-mini-split-heat-pump-ductless-detailed-performance-autosize.xml,17.258,0.0,10.739,9.071,0.615,0.0,0.0,0.0,4.108,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.823,0.035,-0.635,10.839,0.0,0.0,0.0,-6.145,-0.112,-0.865,-3.88,-0.116,0.0,0.0,7.106,1.845 base-hvac-mini-split-heat-pump-ductless-detailed-performance.xml,17.258,0.0,10.739,9.071,0.615,0.0,0.0,0.0,4.108,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.823,0.035,-0.635,10.839,0.0,0.0,0.0,-6.145,-0.112,-0.865,-3.88,-0.116,0.0,0.0,7.106,1.845 base-hvac-mini-split-heat-pump-ductless-heating-capacity-17f.xml,17.258,0.0,10.74,9.071,0.615,0.0,0.0,0.0,4.108,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.144,-0.112,-0.865,-3.88,-0.117,0.0,0.0,7.106,1.845 base-hvac-mini-split-heat-pump-ductless.xml,17.258,0.0,10.74,9.071,0.615,0.0,0.0,0.0,4.108,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.144,-0.112,-0.865,-3.88,-0.117,0.0,0.0,7.106,1.845 -base-hvac-multiple.xml,35.72,0.338,18.508,9.071,0.616,0.0,0.0,0.0,3.683,3.898,0.548,7.556,0.686,10.823,-13.636,0.0,0.0,0.0,8.336,-0.13,7.933,0.0,0.772,0.0,16.117,-8.536,-2.682,0.0,-0.012,-0.164,-0.011,2.841,0.041,-0.543,10.776,0.0,0.0,0.0,-6.133,-0.126,-0.968,-3.845,-0.111,0.0,8.003,7.043,1.825 +base-hvac-multiple.xml,35.861,0.341,18.591,9.071,0.616,0.0,0.0,0.0,3.68,3.898,0.548,7.556,0.686,10.823,-13.636,0.0,0.0,0.0,8.336,-0.13,7.937,0.0,0.772,0.0,16.258,-8.536,-2.682,0.0,-0.014,-0.164,-0.011,2.84,0.041,-0.543,10.776,0.0,0.0,0.0,-6.133,-0.126,-0.967,-3.846,-0.111,0.0,8.088,7.043,1.825 base-hvac-none.xml,0.0,0.0,0.0,4.496,0.336,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-hvac-ptac-with-heating-electricity.xml,17.257,0.0,10.74,9.071,0.615,0.0,0.0,0.0,4.108,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.144,-0.112,-0.865,-3.879,-0.116,0.0,0.0,7.106,1.845 base-hvac-ptac-with-heating-natural-gas.xml,17.257,0.0,10.74,9.071,0.615,0.0,0.0,0.0,4.108,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.144,-0.112,-0.865,-3.879,-0.116,0.0,0.0,7.106,1.845 @@ -318,124 +319,124 @@ base-hvac-room-ac-only-research-features.xml,0.0,0.0,10.314,9.071,0.667,0.0,0.0, base-hvac-room-ac-only.xml,0.0,0.0,10.398,9.071,0.666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.219,-0.152,-0.009,2.767,0.045,-0.542,10.592,0.0,0.0,0.0,-6.355,-0.119,-0.828,-3.753,-0.11,0.0,0.0,6.958,1.811 base-hvac-room-ac-with-heating.xml,17.257,0.0,10.74,9.071,0.615,0.0,0.0,0.0,4.108,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.144,-0.112,-0.865,-3.879,-0.116,0.0,0.0,7.106,1.845 base-hvac-room-ac-with-reverse-cycle.xml,17.258,0.053,10.74,9.071,0.615,0.0,0.0,0.0,4.108,3.88,0.545,7.563,0.682,10.754,-13.574,0.0,0.0,0.0,8.349,-0.116,5.08,0.0,0.77,0.0,0.0,-8.475,-2.662,0.0,0.18,-0.189,-0.014,2.824,0.035,-0.635,10.839,0.0,0.0,0.0,-6.144,-0.112,-0.865,-3.879,-0.116,0.0,0.0,7.106,1.845 -base-hvac-seasons.xml,22.326,0.0,13.628,9.071,0.615,0.0,0.0,0.0,3.529,3.596,0.507,7.525,0.612,9.907,-12.635,0.0,0.0,0.0,8.245,-0.023,4.93,0.0,0.72,0.0,5.282,-7.715,-2.475,0.0,0.236,0.081,0.022,3.099,0.054,0.187,8.047,0.0,0.0,0.0,-4.058,-0.008,-0.44,-3.188,-0.036,0.0,3.089,5.299,1.324 -base-hvac-setpoints-daily-schedules.xml,22.594,0.0,12.158,9.071,0.616,0.0,0.0,0.0,3.805,3.861,0.541,7.602,0.672,10.639,-13.646,0.0,0.0,0.0,8.854,-0.073,5.227,0.0,0.777,0.0,5.318,-8.488,-2.678,0.0,0.073,-0.182,-0.014,2.779,0.032,-0.667,10.768,0.0,0.0,0.0,-6.363,-0.083,-0.868,-4.381,-0.115,0.0,2.518,7.09,1.829 -base-hvac-setpoints-daily-setbacks.xml,21.436,0.0,12.678,9.071,0.617,0.0,0.0,0.0,3.783,3.823,0.535,7.475,0.645,10.34,-13.901,0.0,0.0,0.0,8.476,0.033,5.101,0.0,0.77,0.0,4.986,-8.491,-2.682,0.0,0.058,-0.193,-0.017,2.8,0.011,-0.889,10.512,0.0,0.0,0.0,-6.2,0.032,-0.902,-4.233,-0.121,0.0,2.817,7.085,1.825 -base-hvac-setpoints.xml,7.871,0.0,8.299,9.071,0.65,0.0,0.0,0.0,2.98,2.838,0.396,5.3,0.423,7.588,-13.122,0.0,0.0,0.0,5.694,-0.037,3.612,0.0,0.579,0.0,1.837,-7.994,-2.559,0.0,-0.169,-0.421,-0.046,2.579,-0.022,-1.33,11.291,0.0,0.0,0.0,-6.966,-0.037,-1.074,-6.646,-0.16,0.0,1.964,7.508,1.948 +base-hvac-seasons.xml,22.326,0.0,13.628,9.071,0.615,0.0,0.0,0.0,3.529,3.596,0.507,7.525,0.612,9.907,-12.635,0.0,0.0,0.0,8.245,-0.023,4.928,0.0,0.72,0.0,5.285,-7.715,-2.475,0.0,0.236,0.081,0.022,3.099,0.054,0.187,8.047,0.0,0.0,0.0,-4.058,-0.008,-0.44,-3.188,-0.036,0.0,3.089,5.299,1.324 +base-hvac-setpoints-daily-schedules.xml,22.592,0.0,12.158,9.071,0.616,0.0,0.0,0.0,3.805,3.861,0.541,7.602,0.672,10.639,-13.646,0.0,0.0,0.0,8.854,-0.073,5.224,0.0,0.777,0.0,5.32,-8.488,-2.678,0.0,0.073,-0.182,-0.014,2.779,0.032,-0.667,10.768,0.0,0.0,0.0,-6.363,-0.083,-0.868,-4.381,-0.115,0.0,2.518,7.09,1.829 +base-hvac-setpoints-daily-setbacks.xml,21.436,0.0,12.678,9.071,0.617,0.0,0.0,0.0,3.783,3.823,0.535,7.475,0.645,10.34,-13.901,0.0,0.0,0.0,8.476,0.033,5.099,0.0,0.77,0.0,4.989,-8.491,-2.682,0.0,0.058,-0.193,-0.017,2.8,0.011,-0.889,10.512,0.0,0.0,0.0,-6.2,0.032,-0.902,-4.233,-0.121,0.0,2.817,7.085,1.825 +base-hvac-setpoints.xml,7.871,0.0,8.299,9.071,0.65,0.0,0.0,0.0,2.98,2.838,0.396,5.3,0.423,7.588,-13.122,0.0,0.0,0.0,5.694,-0.037,3.611,0.0,0.579,0.0,1.838,-7.994,-2.559,0.0,-0.169,-0.421,-0.046,2.579,-0.022,-1.33,11.291,0.0,0.0,0.0,-6.966,-0.037,-1.074,-6.646,-0.16,0.0,1.964,7.508,1.948 base-hvac-space-heater-gas-only.xml,17.11,0.0,0.0,9.071,0.592,0.0,0.0,0.0,4.074,3.852,0.541,7.539,0.676,10.671,-13.459,0.0,0.0,0.0,8.197,-0.109,5.047,0.0,0.765,0.0,0.0,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-hvac-stove-oil-only.xml,18.168,0.0,0.0,9.071,0.593,0.0,0.0,0.0,4.088,3.863,0.543,7.518,0.679,10.707,-13.505,0.0,0.0,0.0,8.165,-0.121,6.197,0.0,0.766,0.0,0.0,-8.436,-2.651,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-hvac-stove-wood-pellets-only.xml,18.168,0.0,0.0,9.071,0.593,0.0,0.0,0.0,4.088,3.863,0.543,7.518,0.679,10.707,-13.505,0.0,0.0,0.0,8.165,-0.121,6.197,0.0,0.766,0.0,0.0,-8.436,-2.651,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-hvac-undersized.xml,14.79,0.0,5.952,9.071,0.634,0.0,0.0,0.0,2.796,3.068,0.428,5.212,0.481,8.297,-13.595,0.0,0.0,0.0,4.562,-0.173,3.857,0.0,0.619,0.0,9.959,-8.4,-2.66,0.0,-0.316,-0.551,-0.066,1.745,-0.055,-1.744,10.818,0.0,0.0,0.0,-7.81,-0.113,-1.157,-6.413,-0.188,0.0,2.934,7.137,1.847 base-hvac-wall-furnace-elec-only.xml,17.11,0.0,0.0,9.071,0.592,0.0,0.0,0.0,4.074,3.852,0.541,7.539,0.676,10.671,-13.459,0.0,0.0,0.0,8.197,-0.109,5.047,0.0,0.765,0.0,0.0,-8.398,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-lighting-ceiling-fans-label-energy-use.xml,22.482,0.0,13.495,9.071,0.613,0.0,0.0,0.0,3.818,3.881,0.545,7.566,0.682,10.751,-13.565,0.0,0.0,0.0,8.346,-0.113,5.258,0.0,0.769,0.0,5.315,-8.468,-2.661,0.0,-0.015,-0.237,-0.021,2.693,0.023,-0.788,10.848,0.0,0.0,0.0,-6.342,-0.109,-0.889,-4.098,-0.125,0.0,3.024,7.799,1.846 -base-lighting-ceiling-fans.xml,22.483,0.0,13.35,9.071,0.613,0.0,0.0,0.0,3.818,3.881,0.545,7.566,0.682,10.751,-13.565,0.0,0.0,0.0,8.347,-0.113,5.258,0.0,0.769,0.0,5.315,-8.468,-2.661,0.0,-0.012,-0.236,-0.021,2.698,0.023,-0.783,10.848,0.0,0.0,0.0,-6.335,-0.109,-0.888,-4.084,-0.125,0.0,3.001,7.642,1.846 -base-lighting-holiday.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-lighting-kwh-per-year.xml,20.676,0.0,14.719,9.071,0.614,0.0,0.0,0.0,3.824,3.873,0.544,7.651,0.681,10.734,-13.408,0.0,0.0,0.0,8.474,-0.109,5.222,0.0,0.767,0.0,4.926,-8.371,-4.489,0.0,-0.047,-0.251,-0.023,2.748,0.021,-0.808,10.989,0.0,0.0,0.0,-6.265,-0.106,-0.905,-4.073,-0.125,0.0,3.287,7.213,3.184 -base-lighting-mixed.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-lighting-none-ceiling-fans.xml,25.15,0.0,12.023,9.071,0.615,0.0,0.0,0.0,3.812,3.898,0.547,7.456,0.686,10.847,-13.836,0.0,0.0,0.0,8.204,-0.134,5.336,0.0,0.779,0.0,5.882,-8.673,0.0,0.0,0.096,-0.143,-0.008,2.813,0.046,-0.475,10.6,0.0,0.0,0.0,-6.138,-0.13,-0.788,-3.816,-0.108,0.0,2.759,7.433,0.0 -base-lighting-none.xml,25.17,0.0,12.407,9.071,0.617,0.0,0.0,0.0,3.815,3.901,0.547,7.455,0.687,10.857,-13.845,0.0,0.0,0.0,8.22,-0.138,5.34,0.0,0.78,0.0,5.886,-8.681,0.0,0.0,0.138,-0.094,-0.001,2.937,0.058,-0.325,10.591,0.0,0.0,0.0,-5.944,-0.133,-0.746,-3.622,-0.099,0.0,2.868,6.896,0.0 -base-location-AMY-2012.xml,31.93,0.0,8.399,9.504,0.62,0.0,0.0,0.0,4.475,4.476,0.632,9.299,0.87,12.93,-13.701,0.0,0.0,0.0,10.693,-0.324,5.591,0.0,0.769,0.0,7.667,-9.073,-2.818,0.0,-0.015,-0.215,-0.027,1.165,0.028,-1.218,10.041,0.0,0.0,0.0,-7.582,-0.315,-0.77,-2.734,-0.093,0.0,2.024,6.543,1.702 +base-lighting-ceiling-fans-label-energy-use.xml,22.483,0.0,13.495,9.071,0.613,0.0,0.0,0.0,3.818,3.881,0.545,7.566,0.682,10.751,-13.565,0.0,0.0,0.0,8.346,-0.113,5.255,0.0,0.769,0.0,5.318,-8.468,-2.661,0.0,-0.015,-0.237,-0.021,2.693,0.023,-0.788,10.848,0.0,0.0,0.0,-6.342,-0.109,-0.889,-4.098,-0.125,0.0,3.024,7.799,1.846 +base-lighting-ceiling-fans.xml,22.484,0.0,13.35,9.071,0.613,0.0,0.0,0.0,3.818,3.881,0.545,7.566,0.682,10.751,-13.565,0.0,0.0,0.0,8.347,-0.113,5.255,0.0,0.769,0.0,5.318,-8.468,-2.661,0.0,-0.012,-0.236,-0.021,2.698,0.023,-0.783,10.848,0.0,0.0,0.0,-6.335,-0.109,-0.888,-4.084,-0.125,0.0,3.001,7.642,1.846 +base-lighting-holiday.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-lighting-kwh-per-year.xml,20.677,0.0,14.719,9.071,0.614,0.0,0.0,0.0,3.824,3.873,0.544,7.651,0.681,10.734,-13.408,0.0,0.0,0.0,8.474,-0.109,5.219,0.0,0.767,0.0,4.929,-8.371,-4.489,0.0,-0.047,-0.251,-0.023,2.748,0.021,-0.808,10.989,0.0,0.0,0.0,-6.265,-0.106,-0.905,-4.073,-0.125,0.0,3.287,7.213,3.184 +base-lighting-mixed.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-lighting-none-ceiling-fans.xml,25.151,0.0,12.023,9.071,0.615,0.0,0.0,0.0,3.812,3.898,0.547,7.456,0.686,10.847,-13.836,0.0,0.0,0.0,8.204,-0.134,5.333,0.0,0.779,0.0,5.885,-8.673,0.0,0.0,0.096,-0.143,-0.008,2.813,0.046,-0.475,10.6,0.0,0.0,0.0,-6.138,-0.13,-0.788,-3.816,-0.108,0.0,2.759,7.433,0.0 +base-lighting-none.xml,25.171,0.0,12.407,9.071,0.617,0.0,0.0,0.0,3.815,3.901,0.547,7.455,0.687,10.857,-13.845,0.0,0.0,0.0,8.22,-0.138,5.337,0.0,0.78,0.0,5.89,-8.681,0.0,0.0,0.138,-0.094,-0.001,2.937,0.058,-0.325,10.591,0.0,0.0,0.0,-5.944,-0.133,-0.746,-3.622,-0.099,0.0,2.868,6.896,0.0 +base-location-AMY-2012.xml,31.929,0.0,8.399,9.504,0.62,0.0,0.0,0.0,4.476,4.476,0.632,9.299,0.87,12.93,-13.701,0.0,0.0,0.0,10.693,-0.324,5.587,0.0,0.769,0.0,7.671,-9.073,-2.818,0.0,-0.015,-0.215,-0.027,1.165,0.028,-1.218,10.041,0.0,0.0,0.0,-7.582,-0.315,-0.77,-2.734,-0.093,0.0,2.024,6.543,1.702 base-location-baltimore-md.xml,9.352,0.0,16.449,8.4,0.662,0.0,0.0,0.0,3.285,3.029,0.0,0.0,0.656,8.028,-7.17,0.0,0.0,2.509,0.0,-0.368,1.94,0.0,0.689,0.0,1.77,-4.134,-1.058,0.0,-0.459,-0.873,0.0,0.0,-0.055,-0.779,13.388,0.0,0.0,-1.663,0.0,-0.363,-0.603,-2.37,-0.304,0.0,1.889,7.307,1.588 base-location-capetown-zaf.xml,0.142,0.0,14.431,7.298,0.694,0.0,0.0,0.0,0.861,0.663,0.0,0.0,0.216,1.515,-2.477,0.0,0.0,0.95,0.0,-0.377,0.272,0.0,0.136,0.0,0.026,-1.399,-0.251,0.0,-1.803,-2.25,0.0,0.0,-0.802,-3.396,20.965,0.0,0.0,-5.766,0.0,-0.38,-1.248,-3.684,-0.575,0.0,1.241,10.118,2.395 base-location-dallas-tx.xml,1.811,0.0,30.313,6.557,0.575,0.0,0.0,0.0,1.408,1.27,0.0,0.0,0.298,3.524,-3.631,0.0,0.0,0.0,0.694,-0.305,0.792,0.0,0.29,0.0,0.055,-2.149,-0.519,0.0,0.06,-0.324,0.0,0.0,0.129,1.615,18.54,0.0,0.0,0.0,1.427,-0.3,-0.454,-2.461,-0.179,0.0,0.469,9.941,2.127 -base-location-detailed.xml,22.374,0.0,13.688,9.071,0.615,0.0,0.0,0.0,3.825,3.882,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.242,0.0,0.77,0.0,5.205,-8.475,-2.662,0.0,0.032,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.845,-3.885,-0.117,0.0,3.054,7.106,1.845 -base-location-duluth-mn.xml,39.855,0.0,5.143,11.393,0.834,0.0,0.0,0.0,6.974,6.799,0.0,0.0,1.522,18.694,-11.807,0.0,0.0,9.354,0.0,-0.334,6.46,0.0,0.0,0.0,8.261,-4.762,-1.713,0.0,-0.658,-0.994,0.0,0.0,-0.155,-1.73,9.432,0.0,0.0,-2.166,0.0,-0.334,-0.763,-1.74,0.0,0.0,0.48,3.049,0.933 -base-location-helena-mt.xml,40.908,0.0,6.105,10.294,0.626,0.0,0.0,0.0,5.118,5.169,0.733,11.426,0.968,14.461,-13.715,0.0,0.0,0.0,12.7,-0.077,7.687,0.0,1.127,0.0,7.638,-9.699,-3.024,0.0,-0.392,-0.534,-0.065,1.241,-0.067,-1.436,10.063,0.0,0.0,0.0,-7.139,-0.071,-1.091,-2.568,-0.194,0.0,1.147,5.858,1.483 +base-location-detailed.xml,22.439,0.0,13.781,9.071,0.615,0.0,0.0,0.0,3.821,3.882,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.243,0.0,0.77,0.0,5.272,-8.475,-2.662,0.0,0.028,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.139,-0.112,-0.844,-3.886,-0.117,0.0,3.149,7.106,1.845 +base-location-duluth-mn.xml,39.856,0.0,5.143,11.393,0.834,0.0,0.0,0.0,6.974,6.799,0.0,0.0,1.522,18.694,-11.807,0.0,0.0,9.353,0.0,-0.334,6.458,0.0,0.0,0.0,8.264,-4.762,-1.713,0.0,-0.658,-0.994,0.0,0.0,-0.155,-1.73,9.432,0.0,0.0,-2.166,0.0,-0.334,-0.763,-1.74,0.0,0.0,0.48,3.049,0.933 +base-location-helena-mt.xml,40.956,0.0,6.139,10.294,0.626,0.0,0.0,0.0,5.116,5.169,0.733,11.426,0.968,14.461,-13.715,0.0,0.0,0.0,12.7,-0.077,7.687,0.0,1.127,0.0,7.687,-9.699,-3.024,0.0,-0.393,-0.534,-0.065,1.241,-0.067,-1.436,10.063,0.0,0.0,0.0,-7.139,-0.071,-1.091,-2.568,-0.194,0.0,1.183,5.858,1.483 base-location-honolulu-hi.xml,0.0,0.0,47.567,4.496,0.55,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.115,0.768,0.0,0.0,0.306,5.328,20.458,0.0,0.0,0.0,6.066,-0.004,0.021,-2.143,0.063,0.0,0.916,12.146,2.646 base-location-miami-fl.xml,0.0,0.0,44.126,4.632,0.552,0.0,0.0,0.0,0.001,0.001,0.0,0.0,0.001,0.006,-0.002,0.0,0.0,0.0,-0.002,-0.002,0.001,0.0,0.0,0.0,0.0,-0.003,-0.001,0.0,0.909,0.618,0.0,0.0,0.315,4.577,19.644,0.0,0.0,0.0,5.632,-0.006,-0.104,-2.967,0.001,0.0,0.847,12.139,2.645 base-location-phoenix-az.xml,0.001,0.0,52.569,4.866,0.556,0.0,0.0,0.0,0.164,0.13,0.0,0.0,0.043,0.433,-0.38,0.0,0.0,0.0,-0.086,-0.095,0.074,0.0,0.028,0.0,0.0,-0.247,-0.053,0.0,1.06,1.033,0.0,0.0,0.644,5.109,25.686,0.0,0.0,0.0,7.057,-0.107,0.163,-3.295,0.027,0.0,1.122,11.885,2.593 base-location-portland-or.xml,9.941,0.0,8.005,8.724,0.78,0.0,0.0,0.0,3.137,2.898,0.0,0.0,0.627,7.236,-6.317,0.0,0.0,5.011,0.0,-0.259,1.389,0.0,0.674,0.0,2.023,-5.228,-1.338,0.0,-0.73,-1.092,0.0,0.0,-0.11,-2.022,12.184,0.0,0.0,-3.974,0.0,-0.257,-0.618,-2.989,-0.367,0.0,0.7,6.17,1.308 -base-mechvent-balanced.xml,40.447,0.0,12.716,9.071,0.621,0.0,0.0,0.0,3.769,3.998,0.561,7.341,0.702,11.216,-14.601,0.0,0.0,0.0,8.3,-0.244,5.605,0.0,16.41,0.0,9.12,-9.184,-2.867,0.0,0.284,0.049,0.019,2.964,0.085,0.202,9.812,0.0,0.0,0.0,-5.701,-0.241,-0.525,-3.116,-2.142,0.0,3.075,6.384,1.641 -base-mechvent-bath-kitchen-fans.xml,24.191,0.0,13.576,9.071,0.616,0.0,0.0,0.0,3.825,3.905,0.548,7.556,0.688,10.829,-13.686,0.0,0.0,0.0,8.336,-0.125,4.858,0.0,2.662,0.0,5.692,-8.56,-2.693,0.0,0.07,-0.152,-0.009,2.852,0.044,-0.522,10.727,0.0,0.0,0.0,-6.111,-0.121,-0.732,-3.793,-0.483,0.0,3.095,7.019,1.814 -base-mechvent-cfis-airflow-fraction-zero.xml,34.691,0.0,13.078,9.071,0.619,0.0,0.0,0.0,3.798,3.98,0.559,7.43,0.701,11.152,-14.238,0.0,0.0,0.0,8.232,-0.222,1.722,0.0,15.098,0.0,7.928,-8.963,-2.806,0.0,0.22,-0.013,0.011,2.929,0.074,0.004,10.175,0.0,0.0,0.0,-5.945,-0.218,-0.148,-3.365,-1.962,0.0,3.106,6.61,1.701 -base-mechvent-cfis-dse.xml,26.958,0.0,10.124,9.071,0.619,0.0,0.0,0.0,4.221,3.977,0.558,7.419,0.701,11.142,-14.238,0.0,0.0,0.0,8.209,-0.222,1.666,0.0,14.974,0.0,0.0,-8.963,-2.806,0.0,0.368,-0.014,0.01,2.926,0.074,0.001,10.175,0.0,0.0,0.0,-5.953,-0.218,-0.15,-3.362,-1.929,0.0,0.0,6.61,1.701 -base-mechvent-cfis-evap-cooler-only-ducted.xml,0.0,0.0,10.577,9.071,0.69,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.389,0.053,0.019,2.824,0.09,0.196,9.632,0.0,0.0,0.0,-6.055,-0.263,-0.14,-3.152,-1.45,0.0,0.655,6.271,1.619 -base-mechvent-cfis-no-additional-runtime.xml,29.633,0.0,13.898,9.071,0.615,0.0,0.0,0.0,3.742,3.883,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.367,-0.116,2.981,0.0,8.664,0.0,6.907,-8.475,-2.662,0.0,0.025,-0.187,-0.014,2.828,0.035,-0.631,10.839,0.0,0.0,0.0,-6.136,-0.112,-0.815,-3.874,-0.103,0.0,3.21,7.106,1.845 -base-mechvent-cfis-supplemental-fan-exhaust.xml,34.012,0.0,12.692,9.071,0.62,0.0,0.0,0.0,3.827,3.994,0.56,7.388,0.7,11.183,-14.518,0.0,0.0,0.0,8.309,-0.217,2.583,0.0,14.063,0.0,7.789,-9.123,-2.852,0.0,0.267,0.032,0.016,2.977,0.081,0.13,9.895,0.0,0.0,0.0,-5.743,-0.214,-0.17,-3.19,-2.437,0.0,3.027,6.446,1.655 -base-mechvent-cfis-supplemental-fan-supply.xml,35.357,0.0,12.728,9.071,0.62,0.0,0.0,0.0,3.805,3.988,0.56,7.403,0.702,11.181,-14.404,0.0,0.0,0.0,8.289,-0.227,1.76,0.0,15.823,0.0,8.062,-9.066,-2.834,0.0,0.248,0.014,0.014,2.956,0.079,0.091,10.009,0.0,0.0,0.0,-5.811,-0.223,-0.138,-3.248,-2.393,0.0,3.046,6.504,1.673 -base-mechvent-cfis.xml,35.67,0.0,12.838,9.071,0.619,0.0,0.0,0.0,3.77,3.998,0.561,7.37,0.704,11.207,-14.382,0.0,0.0,0.0,8.185,-0.265,1.756,0.0,15.195,0.0,9.127,-9.041,-2.826,0.0,0.296,0.02,0.015,2.911,0.08,0.105,10.031,0.0,0.0,0.0,-5.925,-0.261,-0.145,-3.258,-1.83,0.0,2.701,6.53,1.681 -base-mechvent-erv-atre-asre.xml,26.521,0.0,13.69,9.071,0.616,0.0,0.0,0.0,3.83,3.931,0.552,7.509,0.695,10.952,-13.798,0.0,0.0,0.0,8.284,-0.169,5.364,0.0,4.212,0.0,6.197,-8.667,-2.718,0.0,0.111,-0.112,-0.003,2.858,0.055,-0.353,10.615,0.0,0.0,0.0,-6.101,-0.165,-0.741,-3.687,-0.52,0.0,3.147,6.911,1.789 -base-mechvent-erv.xml,26.524,0.0,13.69,9.071,0.616,0.0,0.0,0.0,3.83,3.931,0.552,7.509,0.695,10.952,-13.798,0.0,0.0,0.0,8.284,-0.169,5.364,0.0,4.214,0.0,6.198,-8.667,-2.718,0.0,0.111,-0.112,-0.003,2.859,0.055,-0.353,10.615,0.0,0.0,0.0,-6.101,-0.165,-0.741,-3.687,-0.52,0.0,3.147,6.911,1.789 -base-mechvent-exhaust-rated-flow-rate.xml,37.452,0.0,12.64,9.071,0.62,0.0,0.0,0.0,3.792,3.994,0.56,7.388,0.7,11.183,-14.518,0.0,0.0,0.0,8.311,-0.217,2.517,0.0,16.897,0.0,8.494,-9.123,-2.852,0.0,0.267,0.032,0.017,2.978,0.081,0.131,9.895,0.0,0.0,0.0,-5.741,-0.214,-0.094,-3.181,-2.598,0.0,3.047,6.446,1.655 -base-mechvent-exhaust.xml,37.452,0.0,12.64,9.071,0.62,0.0,0.0,0.0,3.792,3.994,0.56,7.388,0.7,11.183,-14.518,0.0,0.0,0.0,8.311,-0.217,2.517,0.0,16.897,0.0,8.494,-9.123,-2.852,0.0,0.267,0.032,0.017,2.978,0.081,0.131,9.895,0.0,0.0,0.0,-5.741,-0.214,-0.094,-3.181,-2.598,0.0,3.047,6.446,1.655 -base-mechvent-hrv-asre.xml,26.519,0.0,13.691,9.071,0.616,0.0,0.0,0.0,3.831,3.931,0.552,7.509,0.695,10.952,-13.798,0.0,0.0,0.0,8.284,-0.169,5.364,0.0,4.209,0.0,6.198,-8.667,-2.718,0.0,0.11,-0.112,-0.003,2.858,0.055,-0.353,10.615,0.0,0.0,0.0,-6.101,-0.165,-0.741,-3.687,-0.52,0.0,3.147,6.911,1.789 -base-mechvent-hrv.xml,26.522,0.0,13.69,9.071,0.616,0.0,0.0,0.0,3.831,3.931,0.552,7.509,0.695,10.952,-13.798,0.0,0.0,0.0,8.284,-0.169,5.364,0.0,4.212,0.0,6.198,-8.667,-2.718,0.0,0.111,-0.112,-0.003,2.859,0.055,-0.353,10.615,0.0,0.0,0.0,-6.101,-0.165,-0.741,-3.687,-0.52,0.0,3.147,6.911,1.789 -base-mechvent-multiple.xml,44.266,0.0,10.696,9.071,0.624,0.0,0.0,0.0,3.404,4.026,0.564,7.35,0.713,11.297,-14.605,0.0,0.0,0.0,8.426,-0.249,5.769,0.0,10.491,0.0,18.773,-9.196,-2.863,0.0,0.374,0.148,0.032,3.174,0.113,0.495,9.808,0.0,0.0,0.0,-5.3,-0.244,-0.348,0.0,-1.108,-9.281,4.831,6.365,1.645 -base-mechvent-supply.xml,35.012,0.0,12.908,9.071,0.62,0.0,0.0,0.0,3.808,3.988,0.56,7.404,0.702,11.179,-14.397,0.0,0.0,0.0,8.288,-0.226,1.759,0.0,15.539,0.0,7.99,-9.063,-2.833,0.0,0.245,0.013,0.014,2.955,0.079,0.088,10.016,0.0,0.0,0.0,-5.815,-0.223,-0.139,-3.254,-2.243,0.0,3.083,6.508,1.674 -base-mechvent-whole-house-fan.xml,22.667,0.0,5.54,9.071,0.625,0.0,0.0,0.0,3.934,3.979,0.558,7.541,0.715,11.177,-13.927,0.0,0.0,0.0,8.509,-0.175,5.405,0.0,0.791,0.0,5.358,-8.818,-2.753,0.0,0.43,0.125,0.03,3.412,0.12,0.434,10.487,0.0,0.0,0.0,-5.13,-0.171,-0.507,0.0,-0.062,-13.604,1.546,6.741,1.754 -base-misc-additional-properties.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-misc-bills-battery-scheduled-detailed-only.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-misc-bills-detailed-only.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-misc-bills-pv-detailed-only.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-misc-bills-pv-mixed.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-misc-bills-pv.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-misc-bills.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-misc-defaults.xml,33.34,0.0,5.9,10.469,0.696,0.0,9.09,0.0,3.925,3.985,0.558,7.3,1.237,11.368,-14.422,0.0,0.0,0.0,8.359,-0.271,2.563,0.0,16.817,0.0,3.829,-9.391,-2.864,0.0,0.904,0.207,0.042,3.294,-0.075,1.43,11.755,0.0,0.0,0.0,-5.127,-0.267,-0.057,0.0,-1.852,-13.771,0.599,7.27,1.644 -base-misc-emissions.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-misc-generators-battery-scheduled.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-misc-generators-battery.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-misc-generators.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-misc-ground-conductivity.xml,20.363,0.0,13.578,9.071,0.615,0.0,0.0,0.0,3.861,3.902,0.548,7.358,0.686,10.82,-13.532,0.0,0.0,0.0,6.695,-0.11,5.245,0.0,0.771,0.0,4.863,-8.446,-2.657,0.0,0.019,-0.198,-0.015,2.541,0.032,-0.659,10.881,0.0,0.0,0.0,-5.994,-0.106,-0.858,-3.907,-0.118,0.0,3.089,7.137,1.851 -base-misc-loads-large-uncommon.xml,16.695,0.0,18.279,9.071,0.61,0.0,0.0,0.0,3.85,3.852,0.542,7.753,0.682,10.697,-13.0,0.0,0.0,0.0,8.56,-0.093,5.151,0.0,0.762,0.0,4.045,-13.873,-2.574,0.0,-0.213,-0.394,-0.043,2.493,-0.009,-1.219,11.413,0.0,0.0,0.0,-6.683,-0.09,-1.049,-4.648,-0.147,0.0,3.892,13.173,1.933 -base-misc-loads-large-uncommon2.xml,16.695,0.0,18.279,9.071,0.61,0.0,0.0,0.0,3.85,3.852,0.542,7.753,0.682,10.697,-13.0,0.0,0.0,0.0,8.56,-0.093,5.151,0.0,0.762,0.0,4.045,-13.873,-2.574,0.0,-0.213,-0.394,-0.043,2.493,-0.009,-1.219,11.413,0.0,0.0,0.0,-6.683,-0.09,-1.049,-4.648,-0.147,0.0,3.892,13.173,1.933 -base-misc-loads-none.xml,27.759,0.0,10.552,9.071,0.619,0.0,0.0,0.0,3.818,3.925,0.55,7.366,0.689,10.931,-14.244,0.0,0.0,0.0,8.286,-0.147,5.408,0.0,0.788,0.0,6.425,-3.591,-2.801,0.0,0.248,-0.002,0.011,3.054,0.076,-0.04,10.17,0.0,0.0,0.0,-5.602,-0.143,-0.648,-3.298,-0.081,0.0,2.515,2.698,1.707 +base-mechvent-balanced.xml,40.449,0.0,12.716,9.071,0.621,0.0,0.0,0.0,3.768,3.998,0.561,7.341,0.702,11.216,-14.601,0.0,0.0,0.0,8.3,-0.244,5.6,0.0,16.41,0.0,9.127,-9.184,-2.867,0.0,0.284,0.049,0.019,2.964,0.085,0.202,9.812,0.0,0.0,0.0,-5.701,-0.241,-0.525,-3.116,-2.142,0.0,3.075,6.384,1.641 +base-mechvent-bath-kitchen-fans.xml,24.191,0.0,13.576,9.071,0.616,0.0,0.0,0.0,3.825,3.905,0.548,7.556,0.688,10.829,-13.686,0.0,0.0,0.0,8.336,-0.125,4.855,0.0,2.662,0.0,5.695,-8.56,-2.693,0.0,0.07,-0.152,-0.009,2.852,0.044,-0.522,10.727,0.0,0.0,0.0,-6.111,-0.121,-0.732,-3.793,-0.483,0.0,3.095,7.019,1.814 +base-mechvent-cfis-airflow-fraction-zero.xml,34.698,0.0,13.078,9.071,0.619,0.0,0.0,0.0,3.798,3.98,0.559,7.43,0.701,11.152,-14.238,0.0,0.0,0.0,8.232,-0.222,1.722,0.0,15.099,0.0,7.936,-8.963,-2.806,0.0,0.22,-0.013,0.011,2.929,0.074,0.004,10.175,0.0,0.0,0.0,-5.945,-0.218,-0.148,-3.365,-1.962,0.0,3.106,6.61,1.701 +base-mechvent-cfis-dse.xml,26.959,0.0,10.124,9.071,0.619,0.0,0.0,0.0,4.221,3.977,0.558,7.419,0.701,11.142,-14.238,0.0,0.0,0.0,8.209,-0.222,1.666,0.0,14.975,0.0,0.0,-8.963,-2.806,0.0,0.368,-0.014,0.01,2.926,0.074,0.001,10.175,0.0,0.0,0.0,-5.953,-0.218,-0.15,-3.362,-1.929,0.0,0.0,6.61,1.701 +base-mechvent-cfis-evap-cooler-only-ducted.xml,0.0,0.0,10.579,9.071,0.69,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.389,0.053,0.019,2.824,0.09,0.196,9.632,0.0,0.0,0.0,-6.055,-0.263,-0.14,-3.152,-1.452,0.0,0.66,6.271,1.619 +base-mechvent-cfis-no-additional-runtime.xml,29.643,0.0,13.898,9.071,0.615,0.0,0.0,0.0,3.742,3.883,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.367,-0.116,2.979,0.0,8.67,0.0,6.913,-8.475,-2.662,0.0,0.025,-0.187,-0.014,2.828,0.035,-0.631,10.839,0.0,0.0,0.0,-6.136,-0.112,-0.815,-3.874,-0.103,0.0,3.21,7.106,1.845 +base-mechvent-cfis-supplemental-fan-exhaust.xml,34.018,0.0,12.692,9.071,0.62,0.0,0.0,0.0,3.826,3.994,0.56,7.388,0.7,11.183,-14.518,0.0,0.0,0.0,8.309,-0.217,2.58,0.0,14.066,0.0,7.796,-9.123,-2.852,0.0,0.267,0.032,0.016,2.977,0.081,0.13,9.895,0.0,0.0,0.0,-5.743,-0.214,-0.17,-3.19,-2.437,0.0,3.027,6.446,1.655 +base-mechvent-cfis-supplemental-fan-supply.xml,35.363,0.0,12.728,9.071,0.62,0.0,0.0,0.0,3.805,3.988,0.56,7.403,0.702,11.181,-14.404,0.0,0.0,0.0,8.289,-0.227,1.759,0.0,15.823,0.0,8.069,-9.066,-2.834,0.0,0.248,0.014,0.014,2.956,0.079,0.091,10.009,0.0,0.0,0.0,-5.811,-0.223,-0.138,-3.248,-2.393,0.0,3.046,6.504,1.673 +base-mechvent-cfis.xml,35.676,0.0,12.838,9.071,0.619,0.0,0.0,0.0,3.77,3.998,0.561,7.37,0.704,11.207,-14.382,0.0,0.0,0.0,8.185,-0.265,1.755,0.0,15.196,0.0,9.133,-9.041,-2.826,0.0,0.296,0.02,0.015,2.911,0.08,0.105,10.031,0.0,0.0,0.0,-5.925,-0.261,-0.145,-3.258,-1.83,0.0,2.701,6.53,1.681 +base-mechvent-erv-atre-asre.xml,26.522,0.0,13.69,9.071,0.616,0.0,0.0,0.0,3.83,3.931,0.552,7.509,0.695,10.952,-13.798,0.0,0.0,0.0,8.284,-0.169,5.362,0.0,4.212,0.0,6.202,-8.667,-2.718,0.0,0.111,-0.112,-0.003,2.858,0.055,-0.353,10.615,0.0,0.0,0.0,-6.101,-0.165,-0.741,-3.687,-0.52,0.0,3.147,6.911,1.789 +base-mechvent-erv.xml,26.525,0.0,13.69,9.071,0.616,0.0,0.0,0.0,3.83,3.931,0.552,7.509,0.695,10.952,-13.798,0.0,0.0,0.0,8.284,-0.169,5.362,0.0,4.214,0.0,6.202,-8.667,-2.718,0.0,0.111,-0.112,-0.003,2.859,0.055,-0.353,10.615,0.0,0.0,0.0,-6.101,-0.165,-0.741,-3.687,-0.52,0.0,3.147,6.911,1.789 +base-mechvent-exhaust-rated-flow-rate.xml,37.448,0.0,12.64,9.071,0.62,0.0,0.0,0.0,3.792,3.994,0.56,7.388,0.7,11.183,-14.518,0.0,0.0,0.0,8.311,-0.217,2.508,0.0,16.897,0.0,8.499,-9.123,-2.852,0.0,0.267,0.032,0.017,2.978,0.081,0.131,9.895,0.0,0.0,0.0,-5.741,-0.214,-0.094,-3.181,-2.598,0.0,3.047,6.446,1.655 +base-mechvent-exhaust.xml,37.448,0.0,12.64,9.071,0.62,0.0,0.0,0.0,3.792,3.994,0.56,7.388,0.7,11.183,-14.518,0.0,0.0,0.0,8.311,-0.217,2.508,0.0,16.897,0.0,8.499,-9.123,-2.852,0.0,0.267,0.032,0.017,2.978,0.081,0.131,9.895,0.0,0.0,0.0,-5.741,-0.214,-0.094,-3.181,-2.598,0.0,3.047,6.446,1.655 +base-mechvent-hrv-asre.xml,26.521,0.0,13.691,9.071,0.616,0.0,0.0,0.0,3.831,3.931,0.552,7.509,0.695,10.952,-13.798,0.0,0.0,0.0,8.284,-0.169,5.361,0.0,4.209,0.0,6.202,-8.667,-2.718,0.0,0.11,-0.112,-0.003,2.858,0.055,-0.353,10.615,0.0,0.0,0.0,-6.101,-0.165,-0.741,-3.687,-0.52,0.0,3.147,6.911,1.789 +base-mechvent-hrv.xml,26.524,0.0,13.69,9.071,0.616,0.0,0.0,0.0,3.831,3.931,0.552,7.509,0.695,10.952,-13.798,0.0,0.0,0.0,8.284,-0.169,5.361,0.0,4.212,0.0,6.202,-8.667,-2.718,0.0,0.111,-0.112,-0.003,2.859,0.055,-0.353,10.615,0.0,0.0,0.0,-6.101,-0.165,-0.741,-3.687,-0.52,0.0,3.147,6.911,1.789 +base-mechvent-multiple.xml,44.274,0.0,10.696,9.071,0.624,0.0,0.0,0.0,3.403,4.026,0.564,7.35,0.713,11.297,-14.605,0.0,0.0,0.0,8.426,-0.249,5.76,0.0,10.491,0.0,18.79,-9.196,-2.863,0.0,0.374,0.148,0.032,3.174,0.113,0.495,9.808,0.0,0.0,0.0,-5.3,-0.244,-0.348,0.0,-1.108,-9.281,4.831,6.365,1.645 +base-mechvent-supply.xml,35.018,0.0,12.908,9.071,0.62,0.0,0.0,0.0,3.808,3.988,0.56,7.404,0.702,11.179,-14.397,0.0,0.0,0.0,8.288,-0.226,1.758,0.0,15.539,0.0,7.997,-9.063,-2.833,0.0,0.245,0.013,0.014,2.955,0.079,0.088,10.016,0.0,0.0,0.0,-5.815,-0.223,-0.139,-3.254,-2.243,0.0,3.083,6.508,1.674 +base-mechvent-whole-house-fan.xml,22.668,0.0,5.54,9.071,0.625,0.0,0.0,0.0,3.934,3.979,0.558,7.541,0.715,11.177,-13.927,0.0,0.0,0.0,8.509,-0.175,5.403,0.0,0.791,0.0,5.361,-8.818,-2.753,0.0,0.43,0.125,0.03,3.412,0.12,0.434,10.487,0.0,0.0,0.0,-5.13,-0.171,-0.507,0.0,-0.062,-13.604,1.546,6.741,1.754 +base-misc-additional-properties.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-misc-bills-battery-scheduled-detailed-only.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-misc-bills-detailed-only.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-misc-bills-pv-detailed-only.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-misc-bills-pv-mixed.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-misc-bills-pv.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-misc-bills.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-misc-defaults.xml,33.322,0.0,5.9,10.469,0.696,0.0,9.09,0.0,3.925,3.985,0.558,7.3,1.237,11.368,-14.422,0.0,0.0,0.0,8.359,-0.271,2.555,0.0,16.817,0.0,3.82,-9.391,-2.864,0.0,0.904,0.207,0.042,3.294,-0.075,1.43,11.755,0.0,0.0,0.0,-5.127,-0.267,-0.057,0.0,-1.852,-13.771,0.599,7.27,1.644 +base-misc-emissions.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-misc-generators-battery-scheduled.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-misc-generators-battery.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-misc-generators.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-misc-ground-conductivity.xml,20.364,0.0,13.577,9.071,0.615,0.0,0.0,0.0,3.861,3.902,0.548,7.358,0.686,10.82,-13.532,0.0,0.0,0.0,6.695,-0.11,5.243,0.0,0.771,0.0,4.866,-8.446,-2.657,0.0,0.019,-0.198,-0.015,2.541,0.032,-0.659,10.881,0.0,0.0,0.0,-5.994,-0.106,-0.858,-3.907,-0.118,0.0,3.089,7.137,1.851 +base-misc-loads-large-uncommon.xml,16.695,0.0,18.279,9.071,0.61,0.0,0.0,0.0,3.85,3.852,0.542,7.753,0.682,10.697,-13.0,0.0,0.0,0.0,8.56,-0.093,5.149,0.0,0.762,0.0,4.047,-13.873,-2.574,0.0,-0.213,-0.394,-0.043,2.493,-0.009,-1.219,11.413,0.0,0.0,0.0,-6.683,-0.09,-1.049,-4.648,-0.147,0.0,3.892,13.173,1.933 +base-misc-loads-large-uncommon2.xml,16.695,0.0,18.279,9.071,0.61,0.0,0.0,0.0,3.85,3.852,0.542,7.753,0.682,10.697,-13.0,0.0,0.0,0.0,8.56,-0.093,5.149,0.0,0.762,0.0,4.047,-13.873,-2.574,0.0,-0.213,-0.394,-0.043,2.493,-0.009,-1.219,11.413,0.0,0.0,0.0,-6.683,-0.09,-1.049,-4.648,-0.147,0.0,3.892,13.173,1.933 +base-misc-loads-none.xml,27.76,0.0,10.552,9.071,0.619,0.0,0.0,0.0,3.818,3.925,0.55,7.366,0.689,10.931,-14.244,0.0,0.0,0.0,8.286,-0.147,5.405,0.0,0.788,0.0,6.43,-3.591,-2.801,0.0,0.248,-0.002,0.011,3.054,0.076,-0.04,10.17,0.0,0.0,0.0,-5.602,-0.143,-0.648,-3.298,-0.081,0.0,2.515,2.698,1.707 base-misc-neighbor-shading-bldgtype-multifamily.xml,0.96,0.0,6.58,9.37,0.588,0.0,0.0,0.0,-0.001,2.46,0.0,0.0,0.317,2.923,-2.216,0.0,0.0,0.012,0.0,-0.369,0.884,0.0,0.54,0.0,0.0,-3.1,-0.612,0.0,0.003,-3.898,0.0,0.0,-0.1,-1.734,5.987,0.0,0.0,0.016,0.0,-0.362,-0.631,-1.193,-0.469,0.0,0.0,7.763,1.413 -base-misc-neighbor-shading.xml,27.586,0.0,12.645,9.071,0.617,0.0,0.0,0.0,3.737,3.976,0.577,7.408,0.833,11.446,-9.646,0.0,0.0,0.0,7.943,-0.117,5.316,0.0,0.771,0.0,6.336,-8.596,-2.701,0.0,0.094,-0.165,-0.012,2.92,0.027,-0.494,9.417,0.0,0.0,0.0,-5.955,-0.112,-0.798,-3.73,-0.107,0.0,2.879,6.981,1.807 -base-misc-shielding-of-home.xml,22.041,0.0,14.309,9.071,0.615,0.0,0.0,0.0,3.812,3.872,0.544,7.573,0.68,10.724,-13.52,0.0,0.0,0.0,8.365,-0.112,4.849,0.0,0.768,0.0,5.222,-8.436,-2.652,0.0,-0.002,-0.213,-0.018,2.786,0.029,-0.714,10.893,0.0,0.0,0.0,-6.196,-0.108,-0.778,-3.335,-0.121,0.0,3.199,7.147,1.856 -base-misc-unit-multiplier.xml,225.022,0.0,137.456,90.712,6.152,0.0,0.0,0.0,38.191,38.824,5.454,75.704,6.824,107.605,-135.739,0.0,0.0,0.0,83.636,-1.157,52.613,0.0,7.697,0.0,53.196,-84.752,-26.624,0.0,0.292,-1.878,-0.14,28.27,0.349,-6.321,108.393,0.0,0.0,0.0,-61.382,-1.12,-8.47,-38.842,-1.165,0.0,31.132,71.059,18.448 -base-misc-usage-multiplier.xml,20.917,0.0,14.896,8.164,0.614,0.0,0.0,0.0,3.815,3.866,0.543,7.633,0.679,10.716,-13.414,0.0,0.0,0.0,8.426,-0.105,5.268,0.0,0.69,0.0,4.977,-10.154,-2.372,0.0,-0.046,-0.25,-0.022,2.756,0.021,-0.812,11.002,0.0,0.0,0.0,-6.265,-0.101,-0.916,-4.094,-0.113,0.0,3.315,8.86,1.684 -base-pv-battery-ah.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-pv-battery-garage.xml,24.785,0.0,9.069,9.071,0.724,0.0,0.0,0.0,3.923,4.134,0.549,5.912,0.671,8.971,-7.706,0.0,0.0,0.0,6.683,-0.101,5.909,0.0,0.0,0.0,5.041,-6.613,-2.816,0.0,0.362,0.076,0.014,2.547,0.063,-0.292,7.227,0.0,0.0,0.0,-5.461,-0.097,-0.74,-2.655,0.0,0.0,1.635,4.783,1.691 -base-pv-battery-round-trip-efficiency.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-pv-battery-scheduled.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-pv-battery.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-pv-generators-battery-scheduled.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-pv-generators-battery.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-pv-generators.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-pv.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-residents-0-runperiod-1-month.xml,7.9101,0.0,0.0,0.0,0.0511,0.0,0.0,0.0,0.5914,0.643,0.0909,1.746,0.1095,1.7781,-1.9884,0.0,0.0,0.0,2.2357,-0.0004,1.0469,0.0,0.0,0.0,1.8117,-0.1971,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-residents-0.xml,32.412,0.0,10.561,0.0,0.62,0.0,0.0,0.0,3.761,3.912,0.547,7.099,0.683,10.947,-14.895,0.0,0.0,0.0,8.358,-0.174,6.028,0.0,0.0,0.0,7.384,-1.573,0.0,0.0,0.311,0.056,0.019,3.03,0.087,0.17,9.541,0.0,0.0,0.0,-5.202,-0.169,-0.644,0.0,0.0,0.0,2.393,1.102,0.0 -base-residents-1-misc-loads-large-uncommon.xml,20.938,0.0,14.973,3.56,0.614,0.0,0.0,0.0,3.819,3.87,0.544,7.648,0.68,10.727,-13.413,0.0,0.0,0.0,8.455,-0.103,5.222,0.0,0.765,0.0,4.985,-9.981,-2.636,0.0,-0.052,-0.255,-0.023,2.742,0.019,-0.827,11.001,0.0,0.0,0.0,-6.283,-0.099,-0.907,-4.102,-0.125,0.0,3.326,8.81,1.871 -base-residents-1-misc-loads-large-uncommon2.xml,20.938,0.0,14.973,3.56,0.614,0.0,0.0,0.0,3.819,3.87,0.544,7.648,0.68,10.727,-13.413,0.0,0.0,0.0,8.455,-0.103,5.222,0.0,0.765,0.0,4.985,-9.981,-2.636,0.0,-0.052,-0.255,-0.023,2.742,0.019,-0.827,11.001,0.0,0.0,0.0,-6.283,-0.099,-0.907,-4.102,-0.125,0.0,3.326,8.81,1.871 -base-residents-1.xml,24.067,0.0,12.772,3.56,0.616,0.0,0.0,0.0,3.826,3.904,0.548,7.522,0.688,10.84,-13.746,0.0,0.0,0.0,8.338,-0.13,5.309,0.0,0.774,0.0,5.657,-7.12,-2.703,0.0,0.095,-0.131,-0.006,2.885,0.049,-0.447,10.668,0.0,0.0,0.0,-6.016,-0.126,-0.782,-3.698,-0.106,0.0,2.931,5.771,1.804 -base-residents-5.xml,31.491,0.0,6.29,18.155,0.645,0.0,11.919,0.0,4.276,4.01,0.562,7.348,0.723,11.353,-14.241,0.0,0.0,0.0,8.368,-0.261,2.415,0.0,16.832,0.0,3.622,-11.061,-2.828,0.0,0.52,0.165,0.035,3.262,0.131,1.329,11.936,0.0,0.0,0.0,-5.244,-0.258,-0.058,0.0,-2.008,-14.391,0.638,8.639,1.679 -base-schedules-detailed-all-10-mins.xml,22.276,0.0,14.405,9.053,0.639,0.0,0.0,0.0,3.853,3.926,0.552,7.665,0.697,10.89,-13.527,0.0,0.0,0.0,8.387,-0.096,5.74,0.0,0.813,0.0,5.313,-9.591,-2.673,0.0,0.046,-0.205,-0.017,2.835,0.029,-0.654,10.826,0.0,0.0,0.0,-6.168,-0.091,-0.911,-3.756,-0.146,0.0,3.366,7.54,1.836 -base-schedules-detailed-mixed-timesteps-power-outage.xml,4.687,0.0,8.963,7.3,0.563,0.0,0.0,0.0,2.703,2.543,0.355,4.288,0.355,6.718,-13.045,0.0,0.0,0.0,3.932,-0.083,3.532,0.0,0.427,0.0,1.073,-6.689,-1.691,0.0,-0.15,-0.439,-0.05,2.559,-0.026,-1.348,11.313,0.0,0.0,0.0,-7.072,-0.038,-1.168,-6.399,-0.172,0.0,2.194,7.967,1.928 -base-schedules-detailed-mixed-timesteps.xml,7.701,0.0,9.01,9.053,0.673,0.0,0.0,0.0,3.005,2.897,0.405,5.414,0.442,7.764,-13.035,0.0,0.0,0.0,5.769,-0.039,4.019,0.0,0.626,0.0,1.814,-9.083,-2.581,0.0,-0.153,-0.441,-0.05,2.563,-0.027,-1.356,11.319,0.0,0.0,0.0,-7.016,-0.037,-1.171,-6.417,-0.172,0.0,2.203,7.971,1.929 -base-schedules-detailed-occupancy-stochastic-10-mins.xml,21.841,0.0,14.048,8.987,0.616,0.0,0.0,0.0,3.84,3.896,0.547,7.622,0.683,10.784,-13.609,0.0,0.0,0.0,8.382,-0.103,5.73,0.0,0.8,0.0,5.174,-9.597,-2.664,0.0,0.03,-0.185,-0.013,2.843,0.032,-0.64,10.804,0.0,0.0,0.0,-6.17,-0.099,-0.938,-3.924,-0.148,0.0,3.167,7.599,1.818 -base-schedules-detailed-occupancy-stochastic-power-outage.xml,13.842,0.0,13.92,7.313,0.518,0.0,0.0,0.0,3.376,3.305,0.463,5.781,0.538,9.025,-13.59,0.0,0.0,0.0,5.228,-0.197,4.747,0.0,0.551,0.0,3.195,-7.147,-1.788,0.0,0.026,-0.188,-0.014,2.827,0.033,-0.643,10.828,0.0,0.0,0.0,-6.235,-0.099,-0.93,-3.911,-0.145,0.0,3.135,7.52,1.84 -base-schedules-detailed-occupancy-stochastic-vacancy.xml,25.55,0.0,13.997,7.303,0.615,0.0,0.0,0.0,3.768,3.865,0.543,7.541,0.678,10.715,-13.564,0.0,0.0,0.0,8.229,-0.106,5.732,0.0,0.551,0.0,5.957,-6.921,-1.781,0.0,0.019,-0.194,-0.015,2.834,0.033,-0.649,10.854,0.0,0.0,0.0,-6.169,-0.102,-0.933,-3.927,-0.145,0.0,3.15,7.529,1.841 -base-schedules-detailed-occupancy-stochastic.xml,21.836,0.0,14.0,9.071,0.615,0.0,0.0,0.0,3.829,3.888,0.546,7.616,0.683,10.776,-13.559,0.0,0.0,0.0,8.387,-0.106,5.675,0.0,0.815,0.0,5.17,-9.566,-2.669,0.0,0.019,-0.194,-0.015,2.835,0.033,-0.65,10.854,0.0,0.0,0.0,-6.166,-0.102,-0.933,-3.928,-0.145,0.0,3.15,7.529,1.841 -base-schedules-detailed-setpoints-daily-schedules.xml,22.594,0.0,12.158,9.071,0.616,0.0,0.0,0.0,3.805,3.861,0.541,7.602,0.672,10.639,-13.646,0.0,0.0,0.0,8.854,-0.073,5.227,0.0,0.777,0.0,5.318,-8.488,-2.678,0.0,0.073,-0.182,-0.014,2.779,0.032,-0.667,10.768,0.0,0.0,0.0,-6.363,-0.083,-0.868,-4.381,-0.115,0.0,2.518,7.09,1.829 -base-schedules-detailed-setpoints-daily-setbacks.xml,21.436,0.0,12.678,9.071,0.617,0.0,0.0,0.0,3.783,3.823,0.535,7.475,0.645,10.34,-13.901,0.0,0.0,0.0,8.476,0.033,5.101,0.0,0.77,0.0,4.986,-8.491,-2.682,0.0,0.058,-0.193,-0.017,2.8,0.011,-0.889,10.512,0.0,0.0,0.0,-6.2,0.032,-0.902,-4.233,-0.121,0.0,2.817,7.085,1.825 -base-schedules-detailed-setpoints.xml,7.871,0.0,8.299,9.071,0.65,0.0,0.0,0.0,2.98,2.838,0.396,5.3,0.423,7.588,-13.122,0.0,0.0,0.0,5.694,-0.037,3.612,0.0,0.579,0.0,1.837,-7.994,-2.559,0.0,-0.169,-0.421,-0.046,2.579,-0.022,-1.33,11.291,0.0,0.0,0.0,-6.966,-0.037,-1.074,-6.646,-0.16,0.0,1.964,7.508,1.948 -base-schedules-simple-power-outage.xml,21.794,0.0,10.445,8.477,0.581,0.0,0.0,0.0,3.814,3.874,0.544,7.602,0.68,10.726,-13.5,0.0,0.0,0.0,8.365,-0.097,5.2,0.0,0.84,0.0,5.162,-9.107,-2.662,0.0,-0.023,-0.279,-0.027,2.634,0.011,-0.919,10.915,0.0,0.0,0.0,-6.45,-0.094,-0.943,-4.542,-0.124,0.0,2.318,6.549,1.537 -base-schedules-simple-vacancy.xml,25.427,0.0,14.135,7.337,0.615,0.0,0.0,0.0,3.757,3.854,0.541,7.532,0.675,10.672,-13.511,0.0,0.0,0.0,8.23,-0.098,5.383,0.0,0.601,0.0,5.932,-6.74,-1.748,0.0,0.0,-0.21,-0.017,2.809,0.029,-0.708,10.907,0.0,0.0,0.0,-6.186,-0.094,-0.857,-3.974,-0.144,0.0,3.178,7.678,1.844 -base-schedules-simple.xml,21.775,0.0,14.137,9.105,0.615,0.0,0.0,0.0,3.815,3.874,0.544,7.602,0.68,10.729,-13.5,0.0,0.0,0.0,8.377,-0.099,5.241,0.0,0.77,0.0,5.158,-9.108,-2.663,0.0,-0.001,-0.212,-0.017,2.807,0.029,-0.709,10.914,0.0,0.0,0.0,-6.186,-0.095,-0.874,-3.979,-0.12,0.0,3.177,7.68,1.844 -base-simcontrol-calendar-year-custom.xml,22.504,0.0,13.579,9.071,0.615,0.0,0.0,0.0,3.823,3.886,0.546,7.565,0.683,10.765,-13.581,0.0,0.0,0.0,8.37,-0.116,5.263,0.0,0.771,0.0,5.32,-8.483,-2.667,0.0,0.037,-0.182,-0.013,2.837,0.036,-0.622,10.833,0.0,0.0,0.0,-6.126,-0.112,-0.844,-4.049,-0.115,0.0,3.076,7.098,1.84 -base-simcontrol-daylight-saving-custom.xml,22.502,0.0,13.746,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-simcontrol-daylight-saving-disabled.xml,22.49,0.0,13.692,9.071,0.615,0.0,0.0,0.0,3.817,3.882,0.545,7.575,0.682,10.756,-13.573,0.0,0.0,0.0,8.366,-0.113,5.262,0.0,0.765,0.0,5.316,-8.483,-2.666,0.0,0.028,-0.188,-0.014,2.827,0.035,-0.636,10.84,0.0,0.0,0.0,-6.135,-0.109,-0.848,-3.901,-0.116,0.0,3.088,7.098,1.841 -base-simcontrol-runperiod-1-month.xml,8.1126,0.0,0.0,0.9244,0.0547,0.0,0.0,0.0,0.5951,0.6589,0.0933,2.0506,0.1156,1.829,-2.373,0.0,0.0,0.0,3.8041,0.0129,0.9461,0.0,0.1225,0.0,1.8591,-1.2712,-0.3948,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-simcontrol-temperature-capacitance-multiplier.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-simcontrol-timestep-10-mins-occupancy-stochastic-10-mins.xml,22.291,0.0,14.398,9.074,0.617,0.0,0.0,0.0,3.854,3.927,0.552,7.664,0.697,10.892,-13.529,0.0,0.0,0.0,8.386,-0.097,5.741,0.0,0.813,0.0,5.316,-9.58,-2.674,0.0,0.047,-0.204,-0.017,2.835,0.03,-0.652,10.824,0.0,0.0,0.0,-6.168,-0.092,-0.91,-3.754,-0.146,0.0,3.365,7.529,1.836 -base-simcontrol-timestep-10-mins-occupancy-stochastic-60-mins.xml,22.234,0.0,14.392,9.071,0.615,0.0,0.0,0.0,3.852,3.925,0.552,7.662,0.697,10.891,-13.517,0.0,0.0,0.0,8.382,-0.097,5.689,0.0,0.809,0.0,5.304,-9.574,-2.668,0.0,0.045,-0.206,-0.017,2.833,0.029,-0.653,10.836,0.0,0.0,0.0,-6.172,-0.092,-0.9,-3.759,-0.148,0.0,3.361,7.52,1.842 -base-simcontrol-timestep-10-mins.xml,22.899,0.0,14.138,9.071,0.615,0.0,0.0,0.0,3.841,3.919,0.551,7.619,0.697,10.888,-13.522,0.0,0.0,0.0,8.349,-0.108,5.263,0.0,0.779,0.0,5.455,-8.493,-2.669,0.0,0.054,-0.2,-0.017,2.828,0.032,-0.621,10.832,0.0,0.0,0.0,-6.154,-0.103,-0.807,-3.714,-0.119,0.0,3.325,7.088,1.838 -base-simcontrol-timestep-30-mins.xml,22.76,0.0,13.957,9.071,0.615,0.0,0.0,0.0,3.834,3.905,0.549,7.601,0.692,10.847,-13.543,0.0,0.0,0.0,8.359,-0.108,5.257,0.0,0.775,0.0,5.402,-8.484,-2.666,0.0,0.028,-0.2,-0.016,2.836,0.032,-0.642,10.835,0.0,0.0,0.0,-6.137,-0.104,-0.821,-3.775,-0.119,0.0,3.22,7.098,1.841 -base-zones-spaces-multiple.xml,25.127,0.0,8.838,9.071,0.726,0.0,0.0,0.0,3.902,4.128,0.549,5.935,0.671,9.257,-7.731,0.0,0.0,0.0,6.723,-0.105,5.916,0.0,0.0,0.0,5.105,-6.631,-2.82,0.0,0.363,0.081,0.015,2.55,0.065,-0.48,7.196,0.0,0.0,0.0,-5.445,-0.102,-0.727,-2.622,0.0,0.0,1.585,4.764,1.687 -base-zones-spaces.xml,25.131,0.0,8.841,9.071,0.726,0.0,0.0,0.0,3.902,4.128,0.549,5.935,0.671,9.257,-7.731,0.0,0.0,0.0,6.723,-0.105,5.916,0.0,0.0,0.0,5.105,-6.631,-2.82,0.0,0.363,0.081,0.015,2.55,0.065,-0.48,7.196,0.0,0.0,0.0,-5.445,-0.102,-0.727,-2.623,0.0,0.0,1.585,4.764,1.687 -base.xml,22.502,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.261,0.0,0.77,0.0,5.32,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-misc-neighbor-shading.xml,27.587,0.0,12.645,9.071,0.617,0.0,0.0,0.0,3.737,3.976,0.577,7.408,0.833,11.446,-9.646,0.0,0.0,0.0,7.943,-0.117,5.313,0.0,0.771,0.0,6.34,-8.596,-2.701,0.0,0.094,-0.165,-0.012,2.92,0.027,-0.494,9.417,0.0,0.0,0.0,-5.955,-0.112,-0.798,-3.73,-0.107,0.0,2.879,6.981,1.807 +base-misc-shielding-of-home.xml,22.042,0.0,14.309,9.071,0.615,0.0,0.0,0.0,3.812,3.872,0.544,7.573,0.68,10.724,-13.52,0.0,0.0,0.0,8.365,-0.112,4.846,0.0,0.768,0.0,5.225,-8.436,-2.652,0.0,-0.002,-0.213,-0.018,2.786,0.029,-0.714,10.893,0.0,0.0,0.0,-6.196,-0.108,-0.778,-3.335,-0.121,0.0,3.199,7.147,1.856 +base-misc-unit-multiplier.xml,225.029,0.0,137.456,90.712,6.152,0.0,0.0,0.0,38.191,38.824,5.454,75.704,6.824,107.605,-135.739,0.0,0.0,0.0,83.636,-1.157,52.59,0.0,7.697,0.0,53.227,-84.752,-26.624,0.0,0.292,-1.878,-0.14,28.27,0.349,-6.321,108.393,0.0,0.0,0.0,-61.382,-1.12,-8.47,-38.842,-1.165,0.0,31.132,71.059,18.448 +base-misc-usage-multiplier.xml,20.917,0.0,14.896,8.164,0.614,0.0,0.0,0.0,3.815,3.866,0.543,7.633,0.679,10.716,-13.414,0.0,0.0,0.0,8.426,-0.105,5.266,0.0,0.69,0.0,4.98,-10.154,-2.372,0.0,-0.046,-0.25,-0.022,2.756,0.021,-0.812,11.002,0.0,0.0,0.0,-6.265,-0.101,-0.916,-4.094,-0.113,0.0,3.315,8.86,1.684 +base-pv-battery-ah.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-pv-battery-garage.xml,24.791,0.0,9.069,9.071,0.724,0.0,0.0,0.0,3.923,4.134,0.549,5.912,0.671,8.971,-7.706,0.0,0.0,0.0,6.683,-0.101,5.907,0.0,0.0,0.0,5.048,-6.613,-2.816,0.0,0.362,0.076,0.014,2.547,0.063,-0.292,7.227,0.0,0.0,0.0,-5.461,-0.097,-0.74,-2.655,0.0,0.0,1.635,4.783,1.691 +base-pv-battery-round-trip-efficiency.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-pv-battery-scheduled.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-pv-battery.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-pv-generators-battery-scheduled.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-pv-generators-battery.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-pv-generators.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-pv.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-residents-0-runperiod-1-month.xml,7.9107,0.0,0.0,0.0,0.0511,0.0,0.0,0.0,0.5914,0.643,0.0909,1.746,0.1095,1.7781,-1.9884,0.0,0.0,0.0,2.2357,-0.0004,1.0461,0.0,0.0,0.0,1.8131,-0.1971,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-residents-0.xml,32.415,0.0,10.561,0.0,0.62,0.0,0.0,0.0,3.761,3.912,0.547,7.099,0.683,10.947,-14.895,0.0,0.0,0.0,8.358,-0.174,6.026,0.0,0.0,0.0,7.39,-1.573,0.0,0.0,0.311,0.056,0.019,3.03,0.087,0.17,9.541,0.0,0.0,0.0,-5.202,-0.169,-0.644,0.0,0.0,0.0,2.393,1.102,0.0 +base-residents-1-misc-loads-large-uncommon.xml,20.938,0.0,14.973,3.56,0.614,0.0,0.0,0.0,3.819,3.87,0.544,7.648,0.68,10.727,-13.413,0.0,0.0,0.0,8.455,-0.103,5.22,0.0,0.765,0.0,4.988,-9.981,-2.636,0.0,-0.052,-0.255,-0.023,2.742,0.019,-0.827,11.001,0.0,0.0,0.0,-6.283,-0.099,-0.907,-4.102,-0.125,0.0,3.326,8.81,1.871 +base-residents-1-misc-loads-large-uncommon2.xml,20.938,0.0,14.973,3.56,0.614,0.0,0.0,0.0,3.819,3.87,0.544,7.648,0.68,10.727,-13.413,0.0,0.0,0.0,8.455,-0.103,5.22,0.0,0.765,0.0,4.988,-9.981,-2.636,0.0,-0.052,-0.255,-0.023,2.742,0.019,-0.827,11.001,0.0,0.0,0.0,-6.283,-0.099,-0.907,-4.102,-0.125,0.0,3.326,8.81,1.871 +base-residents-1.xml,24.068,0.0,12.772,3.56,0.616,0.0,0.0,0.0,3.826,3.904,0.548,7.522,0.688,10.84,-13.746,0.0,0.0,0.0,8.338,-0.13,5.306,0.0,0.774,0.0,5.661,-7.12,-2.703,0.0,0.095,-0.131,-0.006,2.885,0.049,-0.447,10.668,0.0,0.0,0.0,-6.016,-0.126,-0.782,-3.698,-0.106,0.0,2.931,5.771,1.804 +base-residents-5.xml,31.474,0.0,6.29,18.155,0.645,0.0,11.919,0.0,4.276,4.01,0.562,7.348,0.723,11.353,-14.241,0.0,0.0,0.0,8.368,-0.261,2.407,0.0,16.832,0.0,3.613,-11.061,-2.828,0.0,0.52,0.165,0.035,3.262,0.131,1.329,11.936,0.0,0.0,0.0,-5.244,-0.258,-0.058,0.0,-2.008,-14.391,0.638,8.639,1.679 +base-schedules-detailed-all-10-mins.xml,22.277,0.0,14.405,9.053,0.639,0.0,0.0,0.0,3.853,3.926,0.552,7.665,0.697,10.89,-13.527,0.0,0.0,0.0,8.387,-0.096,5.738,0.0,0.813,0.0,5.316,-9.591,-2.673,0.0,0.046,-0.205,-0.017,2.835,0.029,-0.654,10.826,0.0,0.0,0.0,-6.168,-0.091,-0.911,-3.756,-0.146,0.0,3.366,7.54,1.836 +base-schedules-detailed-mixed-timesteps-power-outage.xml,4.688,0.0,8.963,7.3,0.563,0.0,0.0,0.0,2.703,2.543,0.355,4.288,0.355,6.718,-13.045,0.0,0.0,0.0,3.932,-0.083,3.532,0.0,0.427,0.0,1.074,-6.689,-1.691,0.0,-0.15,-0.439,-0.05,2.559,-0.026,-1.348,11.313,0.0,0.0,0.0,-7.072,-0.038,-1.168,-6.399,-0.172,0.0,2.194,7.967,1.928 +base-schedules-detailed-mixed-timesteps.xml,7.702,0.0,9.01,9.053,0.673,0.0,0.0,0.0,3.005,2.897,0.405,5.414,0.442,7.764,-13.035,0.0,0.0,0.0,5.769,-0.039,4.019,0.0,0.626,0.0,1.815,-9.083,-2.581,0.0,-0.153,-0.441,-0.05,2.563,-0.027,-1.356,11.319,0.0,0.0,0.0,-7.016,-0.037,-1.171,-6.417,-0.172,0.0,2.203,7.971,1.929 +base-schedules-detailed-occupancy-stochastic-10-mins.xml,21.843,0.0,14.048,8.987,0.616,0.0,0.0,0.0,3.84,3.896,0.547,7.622,0.683,10.784,-13.609,0.0,0.0,0.0,8.382,-0.103,5.729,0.0,0.8,0.0,5.177,-9.597,-2.664,0.0,0.03,-0.185,-0.013,2.843,0.032,-0.64,10.804,0.0,0.0,0.0,-6.17,-0.099,-0.938,-3.924,-0.148,0.0,3.167,7.599,1.818 +base-schedules-detailed-occupancy-stochastic-power-outage.xml,13.843,0.0,13.92,7.313,0.518,0.0,0.0,0.0,3.376,3.305,0.463,5.781,0.538,9.025,-13.59,0.0,0.0,0.0,5.228,-0.197,4.745,0.0,0.551,0.0,3.197,-7.147,-1.788,0.0,0.026,-0.188,-0.014,2.827,0.033,-0.643,10.828,0.0,0.0,0.0,-6.235,-0.099,-0.93,-3.911,-0.145,0.0,3.135,7.52,1.84 +base-schedules-detailed-occupancy-stochastic-vacancy.xml,25.552,0.0,13.997,7.303,0.615,0.0,0.0,0.0,3.768,3.865,0.543,7.541,0.678,10.715,-13.564,0.0,0.0,0.0,8.229,-0.106,5.73,0.0,0.551,0.0,5.961,-6.921,-1.781,0.0,0.019,-0.194,-0.015,2.834,0.033,-0.649,10.854,0.0,0.0,0.0,-6.169,-0.102,-0.933,-3.927,-0.145,0.0,3.15,7.529,1.841 +base-schedules-detailed-occupancy-stochastic.xml,21.838,0.0,13.999,9.071,0.615,0.0,0.0,0.0,3.829,3.888,0.546,7.616,0.683,10.776,-13.559,0.0,0.0,0.0,8.387,-0.106,5.673,0.0,0.815,0.0,5.174,-9.566,-2.669,0.0,0.019,-0.194,-0.015,2.835,0.033,-0.65,10.854,0.0,0.0,0.0,-6.166,-0.102,-0.933,-3.928,-0.145,0.0,3.15,7.529,1.841 +base-schedules-detailed-setpoints-daily-schedules.xml,22.592,0.0,12.158,9.071,0.616,0.0,0.0,0.0,3.805,3.861,0.541,7.602,0.672,10.639,-13.646,0.0,0.0,0.0,8.854,-0.073,5.224,0.0,0.777,0.0,5.32,-8.488,-2.678,0.0,0.073,-0.182,-0.014,2.779,0.032,-0.667,10.768,0.0,0.0,0.0,-6.363,-0.083,-0.868,-4.381,-0.115,0.0,2.518,7.09,1.829 +base-schedules-detailed-setpoints-daily-setbacks.xml,21.436,0.0,12.678,9.071,0.617,0.0,0.0,0.0,3.783,3.823,0.535,7.475,0.645,10.34,-13.901,0.0,0.0,0.0,8.476,0.033,5.099,0.0,0.77,0.0,4.989,-8.491,-2.682,0.0,0.058,-0.193,-0.017,2.8,0.011,-0.889,10.512,0.0,0.0,0.0,-6.2,0.032,-0.902,-4.233,-0.121,0.0,2.817,7.085,1.825 +base-schedules-detailed-setpoints.xml,7.871,0.0,8.299,9.071,0.65,0.0,0.0,0.0,2.98,2.838,0.396,5.3,0.423,7.588,-13.122,0.0,0.0,0.0,5.694,-0.037,3.611,0.0,0.579,0.0,1.838,-7.994,-2.559,0.0,-0.169,-0.421,-0.046,2.579,-0.022,-1.33,11.291,0.0,0.0,0.0,-6.966,-0.037,-1.074,-6.646,-0.16,0.0,1.964,7.508,1.948 +base-schedules-simple-power-outage.xml,21.795,0.0,10.445,8.477,0.581,0.0,0.0,0.0,3.814,3.874,0.544,7.602,0.68,10.726,-13.5,0.0,0.0,0.0,8.365,-0.097,5.197,0.0,0.84,0.0,5.165,-9.107,-2.662,0.0,-0.023,-0.279,-0.027,2.634,0.011,-0.919,10.915,0.0,0.0,0.0,-6.45,-0.094,-0.943,-4.542,-0.124,0.0,2.318,6.549,1.537 +base-schedules-simple-vacancy.xml,25.429,0.0,14.135,7.337,0.615,0.0,0.0,0.0,3.757,3.854,0.541,7.532,0.675,10.672,-13.511,0.0,0.0,0.0,8.23,-0.098,5.38,0.0,0.601,0.0,5.936,-6.74,-1.748,0.0,0.0,-0.21,-0.017,2.809,0.029,-0.708,10.907,0.0,0.0,0.0,-6.186,-0.094,-0.857,-3.974,-0.144,0.0,3.178,7.678,1.844 +base-schedules-simple.xml,21.775,0.0,14.137,9.105,0.615,0.0,0.0,0.0,3.815,3.874,0.544,7.602,0.68,10.729,-13.5,0.0,0.0,0.0,8.377,-0.099,5.239,0.0,0.77,0.0,5.161,-9.108,-2.663,0.0,-0.001,-0.212,-0.017,2.807,0.029,-0.709,10.914,0.0,0.0,0.0,-6.186,-0.095,-0.874,-3.979,-0.12,0.0,3.177,7.68,1.844 +base-simcontrol-calendar-year-custom.xml,22.505,0.0,13.579,9.071,0.615,0.0,0.0,0.0,3.823,3.886,0.546,7.565,0.683,10.765,-13.581,0.0,0.0,0.0,8.37,-0.116,5.261,0.0,0.771,0.0,5.323,-8.483,-2.667,0.0,0.037,-0.182,-0.013,2.837,0.036,-0.622,10.833,0.0,0.0,0.0,-6.126,-0.112,-0.844,-4.049,-0.115,0.0,3.076,7.098,1.84 +base-simcontrol-daylight-saving-custom.xml,22.503,0.0,13.746,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.571,0.682,10.761,-13.574,0.0,0.0,0.0,8.364,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-simcontrol-daylight-saving-disabled.xml,22.49,0.0,13.692,9.071,0.615,0.0,0.0,0.0,3.817,3.882,0.545,7.575,0.682,10.756,-13.573,0.0,0.0,0.0,8.366,-0.113,5.26,0.0,0.765,0.0,5.319,-8.483,-2.666,0.0,0.028,-0.188,-0.014,2.827,0.035,-0.636,10.84,0.0,0.0,0.0,-6.135,-0.109,-0.848,-3.901,-0.116,0.0,3.088,7.098,1.841 +base-simcontrol-runperiod-1-month.xml,8.1129,0.0,0.0,0.9244,0.0547,0.0,0.0,0.0,0.5951,0.6589,0.0933,2.0506,0.1156,1.829,-2.373,0.0,0.0,0.0,3.8041,0.0129,0.945,0.0,0.1225,0.0,1.8605,-1.2712,-0.3948,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-simcontrol-temperature-capacitance-multiplier.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 +base-simcontrol-timestep-10-mins-occupancy-stochastic-10-mins.xml,22.292,0.0,14.398,9.074,0.617,0.0,0.0,0.0,3.854,3.927,0.552,7.664,0.697,10.892,-13.529,0.0,0.0,0.0,8.386,-0.097,5.739,0.0,0.813,0.0,5.319,-9.58,-2.674,0.0,0.047,-0.204,-0.017,2.835,0.03,-0.652,10.824,0.0,0.0,0.0,-6.168,-0.092,-0.91,-3.754,-0.146,0.0,3.365,7.529,1.836 +base-simcontrol-timestep-10-mins-occupancy-stochastic-60-mins.xml,22.235,0.0,14.392,9.071,0.615,0.0,0.0,0.0,3.852,3.925,0.552,7.662,0.697,10.891,-13.517,0.0,0.0,0.0,8.382,-0.097,5.687,0.0,0.809,0.0,5.307,-9.574,-2.668,0.0,0.045,-0.206,-0.017,2.833,0.029,-0.653,10.836,0.0,0.0,0.0,-6.172,-0.092,-0.9,-3.759,-0.148,0.0,3.361,7.52,1.842 +base-simcontrol-timestep-10-mins.xml,22.899,0.0,14.138,9.071,0.615,0.0,0.0,0.0,3.841,3.919,0.551,7.619,0.697,10.888,-13.522,0.0,0.0,0.0,8.349,-0.108,5.261,0.0,0.779,0.0,5.458,-8.493,-2.669,0.0,0.054,-0.2,-0.017,2.828,0.032,-0.621,10.832,0.0,0.0,0.0,-6.154,-0.103,-0.807,-3.714,-0.119,0.0,3.325,7.088,1.838 +base-simcontrol-timestep-30-mins.xml,22.761,0.0,13.957,9.071,0.615,0.0,0.0,0.0,3.834,3.905,0.549,7.601,0.692,10.847,-13.543,0.0,0.0,0.0,8.359,-0.108,5.255,0.0,0.775,0.0,5.405,-8.484,-2.666,0.0,0.028,-0.2,-0.016,2.836,0.032,-0.642,10.835,0.0,0.0,0.0,-6.137,-0.104,-0.821,-3.775,-0.119,0.0,3.22,7.098,1.841 +base-zones-spaces-multiple.xml,25.132,0.0,8.838,9.071,0.726,0.0,0.0,0.0,3.901,4.128,0.549,5.935,0.671,9.257,-7.731,0.0,0.0,0.0,6.723,-0.105,5.915,0.0,0.0,0.0,5.112,-6.631,-2.82,0.0,0.363,0.081,0.015,2.55,0.065,-0.48,7.196,0.0,0.0,0.0,-5.445,-0.102,-0.727,-2.622,0.0,0.0,1.585,4.764,1.687 +base-zones-spaces.xml,25.136,0.0,8.841,9.071,0.726,0.0,0.0,0.0,3.901,4.128,0.549,5.935,0.671,9.257,-7.731,0.0,0.0,0.0,6.723,-0.105,5.915,0.0,0.0,0.0,5.112,-6.631,-2.82,0.0,0.363,0.081,0.015,2.55,0.065,-0.48,7.196,0.0,0.0,0.0,-5.445,-0.102,-0.727,-2.623,0.0,0.0,1.585,4.764,1.687 +base.xml,22.503,0.0,13.745,9.071,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 house001.xml,19.136,0.0,53.592,10.404,2.718,0.0,0.0,0.515,2.094,7.773,0.453,0.0,1.007,7.209,-5.737,0.0,0.0,0.479,0.897,-0.554,4.463,0.0,5.355,0.0,3.721,-5.804,-2.913,0.595,1.747,4.061,0.325,0.0,0.255,2.786,13.063,0.0,0.0,0.514,6.356,-0.54,-0.263,-2.042,-0.526,0.0,12.326,10.704,4.463 house002.xml,11.756,0.0,41.956,7.517,2.933,0.0,0.0,0.0,2.717,5.297,0.0,0.0,0.846,5.655,-4.461,0.0,0.0,0.0,1.582,-0.314,1.608,0.0,3.843,0.0,1.537,-4.296,-2.401,0.0,2.777,2.994,0.0,0.0,0.411,1.123,10.014,0.0,0.0,0.0,8.095,-0.308,-0.16,-1.477,-0.583,0.0,6.71,8.58,3.977 house003.xml,12.794,0.0,44.159,7.517,2.721,0.0,0.0,0.673,3.003,4.939,0.0,0.0,0.981,6.172,-4.47,0.0,0.0,0.0,0.958,-0.33,2.043,0.0,4.013,0.0,1.784,-4.533,-2.624,0.82,2.74,2.797,0.0,0.0,0.642,1.928,11.287,0.0,0.0,0.0,6.2,-0.323,-0.184,-1.547,-0.563,0.0,7.521,8.821,4.248 -house004.xml,36.804,0.0,114.385,8.975,3.543,0.0,0.0,0.127,5.226,11.195,0.0,0.0,1.243,13.583,-5.986,0.0,0.0,0.0,3.215,-0.736,5.025,0.0,6.239,0.0,7.333,-6.142,-3.827,0.199,5.897,11.33,0.0,0.0,0.506,8.872,20.811,0.0,0.0,0.0,18.648,-0.724,1.047,0.0,1.821,0.0,23.987,14.636,7.728 -house005.xml,22.3,0.0,65.333,8.975,2.774,0.0,0.0,0.0,3.241,8.748,0.287,0.0,1.389,9.465,-7.574,0.0,0.0,0.395,0.85,-0.701,5.218,0.0,5.252,0.0,4.921,-5.9,-3.565,0.0,2.577,4.571,0.211,0.0,0.293,3.847,17.586,0.0,0.0,0.409,6.909,-0.684,-0.34,-2.616,-0.558,0.0,16.845,11.001,5.585 -house006.xml,78.737,0.0,8.255,13.079,3.279,0.0,0.0,0.0,4.309,21.945,1.971,36.932,1.824,17.241,-9.038,0.0,0.0,0.0,8.88,-0.191,8.47,0.0,4.304,0.0,0.0,-12.586,-6.093,0.0,0.075,-1.164,-0.071,2.587,-0.125,-0.54,5.472,0.0,0.0,0.0,-4.319,-0.191,-0.567,-1.687,-0.133,0.0,0.0,6.418,2.589 -house007.xml,72.297,0.0,6.256,15.626,3.27,0.0,0.0,0.0,4.78,23.381,4.387,10.091,1.471,18.455,-8.927,0.0,0.0,0.075,11.021,-0.276,6.068,0.0,20.363,0.0,2.973,-14.755,-7.321,0.0,0.118,-1.022,-0.116,0.534,-0.073,-0.265,5.858,0.0,0.0,-0.01,-4.555,-0.272,-0.251,-1.49,-2.327,0.0,0.12,7.146,2.972 -house008.xml,105.116,0.0,11.003,18.122,3.215,0.0,0.0,0.0,7.346,27.105,4.646,24.173,1.171,20.849,-7.434,0.0,0.0,1.282,17.474,-0.253,17.099,0.0,6.283,0.0,8.205,-15.892,-7.744,0.0,0.103,-1.6,-0.151,1.47,-0.119,-0.362,6.76,0.0,0.0,-0.135,-3.183,-0.254,-1.144,-1.883,-0.379,0.0,0.665,8.068,3.256 +house004.xml,36.802,0.0,114.386,8.975,3.543,0.0,0.0,0.127,5.227,11.195,0.0,0.0,1.243,13.58,-5.986,0.0,0.0,0.0,3.214,-0.735,5.025,0.0,6.238,0.0,7.33,-6.14,-3.827,0.199,5.9,11.331,0.0,0.0,0.506,8.869,20.811,0.0,0.0,0.0,18.646,-0.723,1.046,0.0,1.82,0.0,23.988,14.638,7.729 +house005.xml,22.299,0.0,65.333,8.975,2.774,0.0,0.0,0.0,3.241,8.748,0.287,0.0,1.389,9.465,-7.574,0.0,0.0,0.395,0.85,-0.701,5.218,0.0,5.252,0.0,4.921,-5.9,-3.565,0.0,2.577,4.571,0.211,0.0,0.293,3.847,17.586,0.0,0.0,0.409,6.909,-0.684,-0.34,-2.616,-0.558,0.0,16.845,11.001,5.585 +house006.xml,78.737,0.0,8.255,13.079,3.279,0.0,0.0,0.0,4.309,21.945,1.971,36.932,1.824,17.241,-9.038,0.0,0.0,0.0,8.88,-0.191,8.47,0.0,4.304,0.0,0.0,-12.586,-6.093,0.0,0.075,-1.164,-0.071,2.587,-0.125,-0.54,5.472,0.0,0.0,0.0,-4.318,-0.191,-0.567,-1.687,-0.133,0.0,0.0,6.418,2.589 +house007.xml,72.302,0.0,6.257,15.626,3.27,0.0,0.0,0.0,4.78,23.381,4.387,10.091,1.471,18.455,-8.927,0.0,0.0,0.075,11.021,-0.276,6.068,0.0,20.363,0.0,2.979,-14.755,-7.321,0.0,0.118,-1.022,-0.116,0.534,-0.073,-0.265,5.858,0.0,0.0,-0.01,-4.555,-0.272,-0.251,-1.49,-2.327,0.0,0.121,7.146,2.972 +house008.xml,105.13,0.0,11.003,18.122,3.215,0.0,0.0,0.0,7.346,27.104,4.645,24.173,1.171,20.85,-7.434,0.0,0.0,1.281,17.474,-0.253,17.099,0.0,6.283,0.0,8.222,-15.892,-7.744,0.0,0.103,-1.6,-0.151,1.47,-0.119,-0.362,6.76,0.0,0.0,-0.135,-3.183,-0.254,-1.144,-1.883,-0.379,0.0,0.665,8.068,3.256 house009.xml,86.341,0.0,5.984,15.626,3.276,0.0,0.0,0.0,5.209,28.191,4.282,13.025,2.22,18.579,-7.874,0.0,0.0,0.262,15.079,-0.315,8.643,0.0,21.068,0.0,0.0,-15.109,-7.463,0.0,0.177,-0.972,-0.072,0.689,-0.11,-0.072,5.772,0.0,0.0,-0.033,-4.706,-0.311,-0.325,-1.386,-2.158,0.0,0.0,6.768,2.803 -house010.xml,78.96,0.0,8.003,18.122,3.215,0.0,0.0,0.87,4.985,25.146,4.828,9.742,1.242,22.406,-8.723,0.0,0.0,0.926,10.854,-0.28,18.281,0.0,6.281,0.0,5.28,-15.789,-7.669,0.019,0.097,-1.243,-0.187,0.503,-0.108,-0.857,6.513,0.0,0.0,-0.068,-4.737,-0.277,-1.23,-1.822,-0.38,0.0,0.412,8.152,3.311 -house011.xml,15.819,0.147,27.042,9.316,1.124,0.0,0.0,0.0,2.803,5.635,0.0,0.0,1.587,3.368,-3.487,0.0,0.0,1.802,0.0,-0.391,1.836,0.0,5.404,0.0,4.377,-5.134,-2.007,0.0,1.46,1.412,0.0,0.0,0.102,0.493,6.164,0.0,0.0,0.664,0.0,-0.391,-0.203,-0.304,-1.008,0.0,7.67,8.241,2.895 -house012.xml,10.656,0.0,16.658,7.775,1.165,0.0,0.0,0.0,2.547,4.92,0.0,0.0,0.63,2.582,-2.11,0.0,0.0,1.954,0.0,-0.27,1.652,0.0,4.379,0.0,0.425,-4.166,-1.906,0.0,1.718,1.247,0.0,0.0,-0.034,0.69,3.937,0.0,0.0,1.473,0.0,-0.27,-0.157,-0.276,-0.707,0.0,0.343,6.301,2.47 +house010.xml,78.968,0.0,8.004,18.122,3.215,0.0,0.0,0.87,4.985,25.146,4.828,9.742,1.241,22.406,-8.723,0.0,0.0,0.925,10.854,-0.28,18.281,0.0,6.281,0.0,5.29,-15.789,-7.669,0.019,0.097,-1.243,-0.187,0.503,-0.108,-0.857,6.513,0.0,0.0,-0.068,-4.737,-0.277,-1.23,-1.822,-0.38,0.0,0.413,8.152,3.311 +house011.xml,15.815,0.146,27.04,9.316,1.124,0.0,0.0,0.0,2.804,5.635,0.0,0.0,1.587,3.368,-3.487,0.0,0.0,1.802,0.0,-0.391,1.836,0.0,5.404,0.0,4.373,-5.134,-2.007,0.0,1.46,1.412,0.0,0.0,0.102,0.493,6.164,0.0,0.0,0.664,0.0,-0.391,-0.203,-0.304,-1.008,0.0,7.667,8.241,2.895 +house012.xml,10.655,0.0,16.658,7.775,1.165,0.0,0.0,0.0,2.547,4.92,0.0,0.0,0.63,2.582,-2.11,0.0,0.0,1.954,0.0,-0.27,1.652,0.0,4.379,0.0,0.425,-4.166,-1.906,0.0,1.718,1.247,0.0,0.0,-0.034,0.69,3.937,0.0,0.0,1.473,0.0,-0.27,-0.157,-0.276,-0.707,0.0,0.343,6.301,2.47 house013.xml,6.716,0.0,15.514,6.844,0.854,0.0,0.0,0.0,1.724,2.858,0.0,0.0,0.63,2.439,-2.255,0.0,0.0,1.973,0.0,-0.242,1.663,0.0,1.022,0.0,1.327,-3.048,-1.394,0.0,1.019,0.379,0.0,0.0,-0.116,0.328,4.306,0.0,0.0,0.411,0.0,-0.242,-0.332,-0.343,-0.313,0.0,1.721,6.23,2.57 house014.xml,8.174,0.007,17.39,6.844,0.598,0.0,0.0,0.0,1.802,3.718,0.0,0.0,0.569,2.846,-2.632,0.0,0.0,2.086,0.0,-0.23,1.888,0.0,1.086,0.0,1.634,-3.124,-1.497,0.0,1.071,0.558,0.0,0.0,-0.086,0.745,5.446,0.0,0.0,0.461,0.0,-0.23,-0.316,-0.387,-0.286,0.0,1.987,5.981,2.554 house015.xml,6.716,0.0,15.514,6.844,0.854,0.0,0.0,0.0,1.724,2.858,0.0,0.0,0.63,2.439,-2.255,0.0,0.0,1.973,0.0,-0.242,1.663,0.0,1.022,0.0,1.327,-3.048,-1.394,0.0,1.019,0.379,0.0,0.0,-0.116,0.328,4.306,0.0,0.0,0.411,0.0,-0.242,-0.332,-0.343,-0.313,0.0,1.721,6.23,2.57 @@ -448,10 +449,10 @@ house021.xml,74.96,0.0,17.493,10.98,3.822,0.0,0.0,0.0,8.581,27.888,2.505,8.444,0 house022.xml,74.533,0.0,18.55,10.98,1.483,0.0,0.0,3.87,3.914,21.438,0.0,0.0,1.508,16.705,-13.879,0.0,0.0,13.747,0.0,-0.536,38.116,0.0,1.127,0.0,0.0,-8.572,-4.223,1.319,0.332,1.569,0.0,0.0,-0.091,-1.225,10.709,0.0,0.0,1.258,0.0,-0.528,-2.263,-1.187,-0.085,0.0,0.0,5.909,2.463 house023.xml,64.122,0.0,15.852,17.089,2.771,0.0,0.0,0.0,10.598,22.332,1.253,15.771,0.876,10.219,-8.345,0.0,0.0,0.0,6.228,-0.52,24.181,0.0,1.705,0.0,0.0,-14.503,-5.97,0.0,0.143,-0.073,0.045,5.423,-0.084,-0.761,8.608,0.0,0.0,0.0,-5.888,-0.498,-2.136,-1.387,-0.241,0.0,0.0,9.575,3.245 house024.xml,71.61,0.0,15.169,14.642,2.089,0.0,0.0,0.0,7.403,30.133,0.0,0.0,0.697,7.346,-8.263,0.0,0.0,4.903,0.0,-0.251,25.712,0.0,1.877,0.0,11.942,-7.622,-2.558,0.0,0.776,1.462,0.0,0.0,-0.02,-0.128,5.636,0.0,0.0,0.413,0.0,-0.244,-1.078,-0.657,-0.146,0.0,2.919,4.966,1.356 -house025.xml,37.719,0.0,47.362,8.315,3.831,0.0,0.0,0.0,3.519,17.77,0.0,0.0,2.109,7.171,-6.283,0.0,0.0,6.711,0.0,-0.932,13.654,0.0,0.41,0.0,5.308,-7.924,-3.921,0.0,1.159,5.929,0.0,0.0,0.385,1.722,11.825,0.0,0.0,5.547,0.0,-0.931,-0.809,-0.276,-0.003,0.0,6.421,11.289,5.338 +house025.xml,37.718,0.0,47.361,8.315,3.831,0.0,0.0,0.0,3.519,17.77,0.0,0.0,2.109,7.171,-6.283,0.0,0.0,6.712,0.0,-0.932,13.654,0.0,0.41,0.0,5.305,-7.924,-3.921,0.0,1.159,5.929,0.0,0.0,0.385,1.722,11.825,0.0,0.0,5.548,0.0,-0.931,-0.809,-0.276,-0.003,0.0,6.419,11.289,5.338 house026.xml,14.169,0.0,0.0,8.599,2.069,0.0,0.0,0.0,2.037,7.331,0.248,0.0,0.209,4.483,-3.355,0.0,0.0,6.824,0.0,-0.296,2.432,0.0,3.291,0.0,0.0,-6.004,-3.131,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -house027.xml,20.393,0.0,22.163,8.556,5.264,0.0,0.0,0.781,2.038,8.77,0.488,0.0,0.648,5.218,-4.722,0.0,0.0,0.314,2.58,-0.513,1.42,0.0,11.365,0.0,1.951,-6.948,-3.061,0.548,1.11,1.597,0.098,0.0,-0.051,1.228,5.888,0.0,0.0,0.149,3.181,-0.514,-0.154,-1.482,-2.364,0.0,2.029,8.004,2.883 -house028.xml,13.152,0.0,23.559,10.217,3.621,0.0,0.0,0.824,1.884,7.489,0.372,0.0,0.443,4.943,-4.085,0.0,0.0,0.235,2.015,-0.408,3.892,0.0,4.565,0.0,1.485,-7.838,-2.764,0.657,1.127,-0.241,0.102,0.0,0.065,0.98,7.37,0.0,0.0,0.054,1.345,-0.41,-0.876,-2.093,-1.531,0.0,2.391,11.285,3.37 +house027.xml,20.392,0.0,22.177,8.556,5.264,0.0,0.0,0.781,2.038,8.77,0.488,0.0,0.648,5.218,-4.722,0.0,0.0,0.314,2.58,-0.513,1.42,0.0,11.365,0.0,1.95,-6.948,-3.061,0.548,1.11,1.597,0.098,0.0,-0.051,1.228,5.888,0.0,0.0,0.149,3.181,-0.514,-0.154,-1.482,-2.364,0.0,2.045,8.004,2.883 +house028.xml,13.151,0.0,23.578,10.217,3.621,0.0,0.0,0.824,1.884,7.489,0.372,0.0,0.443,4.943,-4.085,0.0,0.0,0.235,2.015,-0.408,3.892,0.0,4.565,0.0,1.484,-7.838,-2.764,0.657,1.126,-0.242,0.102,0.0,0.065,0.98,7.37,0.0,0.0,0.054,1.345,-0.41,-0.876,-2.093,-1.531,0.0,2.412,11.285,3.37 house029.xml,31.761,0.0,14.372,9.606,0.0,0.0,0.0,0.0,3.714,15.417,0.41,0.0,0.305,6.37,-6.799,0.0,0.0,6.476,0.0,-0.246,6.814,0.0,7.671,0.0,3.212,-7.849,-3.895,0.0,1.275,0.077,0.027,0.0,0.079,1.288,5.737,0.0,0.0,-1.113,0.0,-0.243,-0.497,-1.899,-1.135,0.0,1.652,6.516,2.645 house030.xml,18.154,0.0,0.0,7.708,2.217,0.0,0.0,0.0,1.814,10.655,0.506,1.108,1.078,5.364,-3.559,0.0,0.0,0.0,2.982,-0.082,2.815,0.0,5.93,0.0,0.0,-7.503,-3.088,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 house031.xml,122.11,0.0,39.525,17.919,5.237,0.0,0.0,0.0,14.772,42.578,1.073,6.287,1.384,20.022,-18.124,0.0,0.0,1.989,6.099,-0.595,57.277,0.0,0.658,0.0,9.896,-15.572,-6.503,0.0,2.381,5.831,0.203,2.505,0.11,0.494,15.586,0.0,0.0,0.244,-3.527,-0.563,-1.565,-0.845,-0.001,0.0,3.28,10.749,3.852 @@ -464,13 +465,13 @@ house037.xml,38.497,0.0,0.0,7.424,0.0,0.0,0.0,0.0,17.061,12.175,0.0,0.0,1.596,7. house038.xml,41.434,0.0,30.692,14.704,4.606,0.0,0.0,0.0,3.702,14.946,0.654,4.343,0.807,12.326,-10.762,0.0,0.0,1.845,2.31,0.017,22.446,0.0,0.597,0.0,0.0,-8.975,-3.863,0.0,0.862,2.755,0.148,2.176,0.02,0.894,12.422,0.0,0.0,0.338,-0.587,0.028,-0.564,-0.302,0.014,0.0,0.0,8.224,3.041 house039.xml,46.872,0.0,0.0,14.26,1.143,0.0,0.0,0.0,14.718,5.393,0.0,0.0,2.467,15.854,-13.576,0.0,0.0,13.129,0.0,-0.231,13.175,0.0,0.543,0.0,0.0,-2.618,-2.69,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 house040.xml,57.876,0.0,0.0,7.996,5.532,0.0,0.0,12.009,5.845,22.96,0.0,3.232,2.084,12.818,-11.955,0.0,0.0,1.947,2.736,-1.097,19.658,0.0,0.598,0.0,0.0,-8.864,-4.423,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -house041.xml,177.528,0.0,4.602,15.626,5.047,0.0,0.0,0.0,11.679,45.43,3.544,34.614,3.115,39.014,-19.455,0.0,0.0,4.546,16.476,-0.887,63.989,0.0,2.754,0.0,0.0,-18.281,-10.649,0.0,0.206,-1.668,-0.095,1.348,-0.237,-2.56,10.839,0.0,0.0,-0.396,-6.046,-0.886,-3.471,-2.196,-0.255,0.0,0.0,6.928,3.286 +house041.xml,177.527,0.0,4.602,15.626,5.047,0.0,0.0,0.0,11.679,45.43,3.544,34.614,3.115,39.014,-19.455,0.0,0.0,4.546,16.476,-0.887,63.988,0.0,2.754,0.0,0.0,-18.281,-10.649,0.0,0.206,-1.668,-0.095,1.348,-0.237,-2.56,10.839,0.0,0.0,-0.396,-6.046,-0.886,-3.471,-2.196,-0.255,0.0,0.0,6.928,3.286 house042.xml,166.904,0.0,2.637,15.626,3.234,0.0,0.0,0.0,9.575,40.439,4.101,43.205,2.66,34.611,-18.294,0.0,0.0,2.461,13.908,-0.832,56.42,0.0,1.753,0.0,0.0,-17.522,-7.488,0.0,0.35,-0.772,0.015,2.511,-0.132,-2.601,6.329,0.0,0.0,-0.242,-5.446,-0.829,-2.577,-1.299,-0.13,0.0,0.0,5.538,2.045 house043.xml,105.455,0.0,2.682,13.079,2.212,0.0,0.0,0.0,3.284,23.417,2.307,33.525,5.539,22.952,-9.099,0.0,0.0,0.547,9.378,-0.457,28.88,0.0,1.565,0.0,0.0,-12.778,-4.985,0.0,0.044,-0.641,-0.079,1.6,-0.37,-1.975,5.354,0.0,0.0,-0.068,-4.055,-0.457,-1.623,-1.138,-0.146,0.0,0.0,4.763,1.573 house044.xml,151.29,0.0,3.518,13.079,4.458,0.0,0.0,4.447,7.144,36.954,9.251,18.792,2.758,18.161,-10.913,0.0,0.0,12.929,14.56,-0.824,62.099,0.0,1.434,0.0,0.0,-16.568,-10.062,0.326,0.528,-0.927,-0.081,0.782,-0.112,-0.544,6.242,0.0,0.0,-1.087,-5.283,-0.822,-2.569,-1.066,-0.095,0.0,0.0,5.453,2.886 house045.xml,88.921,0.0,4.033,13.079,4.37,0.0,0.0,3.468,3.117,14.854,2.257,32.384,1.108,17.445,-10.673,0.943,-0.368,0.084,11.767,-0.169,20.345,0.0,10.628,0.0,0.0,-12.474,-6.553,-0.037,-0.055,-1.311,-0.158,0.674,-0.111,-1.451,8.106,-0.086,0.446,-0.015,-4.858,-0.168,-1.466,-2.095,-1.522,0.0,0.0,5.751,2.507 house046.xml,13.653,0.308,13.406,4.303,0.617,0.0,0.0,0.0,2.558,3.98,0.0,0.0,0.321,2.09,-1.793,0.0,0.0,-0.157,0.0,-0.355,7.442,0.0,0.367,0.0,2.816,-3.146,-0.451,0.0,1.258,2.647,0.0,0.0,0.016,0.943,2.847,0.0,0.0,-0.156,0.0,-0.354,-0.533,-0.212,0.01,0.0,1.898,4.551,0.578 house047.xml,6.198,0.0,1.663,4.202,0.0,0.0,0.0,0.0,-0.001,0.813,0.132,0.0,0.0,1.833,-0.735,0.0,0.0,0.0,1.414,-0.024,1.397,0.0,5.485,0.0,0.209,-3.763,-0.585,0.0,-0.001,0.138,0.038,0.0,0.0,0.153,0.808,0.0,0.0,0.0,-1.09,-0.024,-0.107,-0.369,-0.857,0.0,0.0,2.646,0.335 -house048.xml,29.55,0.0,54.328,7.249,2.653,0.0,0.0,1.024,2.696,12.338,0.0,0.0,0.802,4.251,-2.965,0.0,0.0,0.057,1.907,-0.636,7.198,0.0,4.184,0.0,6.455,-6.406,-1.469,1.353,1.08,9.591,0.0,0.0,0.56,4.493,5.01,0.0,0.0,0.074,9.865,-0.624,0.686,-0.667,1.868,0.0,7.946,11.088,2.22 +house048.xml,29.549,0.0,54.328,7.249,2.653,0.0,0.0,1.024,2.697,12.338,0.0,0.0,0.802,4.251,-2.965,0.0,0.0,0.057,1.907,-0.636,7.198,0.0,4.184,0.0,6.454,-6.406,-1.469,1.353,1.08,9.591,0.0,0.0,0.56,4.493,5.01,0.0,0.0,0.074,9.865,-0.624,0.686,-0.667,1.868,0.0,7.946,11.088,2.22 house049.xml,6.788,0.0,32.274,4.258,1.314,0.0,0.0,0.0,1.646,4.846,0.0,0.0,0.0,5.011,-7.614,0.0,0.0,0.0,1.138,-0.164,3.015,0.0,2.21,0.0,0.0,-2.873,-0.605,0.0,1.934,7.573,0.0,0.0,0.0,4.653,10.257,0.0,0.0,0.0,3.179,-0.164,0.349,-3.502,1.019,0.0,0.0,6.295,0.868 house050.xml,16.046,0.0,6.114,8.571,0.0,0.0,0.0,0.0,3.98,6.213,0.0,0.0,1.861,4.815,-3.539,0.0,0.0,4.488,0.0,-0.133,2.123,0.0,3.371,0.0,1.974,-8.088,-1.101,0.0,-0.527,-0.602,0.0,0.0,-0.557,0.558,5.592,0.0,0.0,-1.385,0.0,-0.131,-0.641,-2.816,-1.035,0.0,0.831,6.227,0.68 From 5e91e178b35b9344fccc170bd0e8730acecf9b05 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Thu, 8 Aug 2024 10:48:24 -0700 Subject: [PATCH 16/22] Update TODOs in location resource file and other misc places. --- BuildResidentialHPXML/measure.rb | 6 ++-- BuildResidentialHPXML/measure.xml | 6 ++-- BuildResidentialScheduleFile/measure.rb | 4 +-- BuildResidentialScheduleFile/measure.xml | 6 ++-- HPXMLtoOpenStudio/measure.rb | 6 ++-- HPXMLtoOpenStudio/measure.xml | 10 +++--- HPXMLtoOpenStudio/resources/location.rb | 46 ++++++++++++------------ HPXMLtoOpenStudio/resources/xmlhelper.rb | 2 +- ReportUtilityBills/measure.rb | 2 +- ReportUtilityBills/measure.xml | 6 ++-- 10 files changed, 48 insertions(+), 46 deletions(-) diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb index 5e0a8d19e1..01cf852f06 100644 --- a/BuildResidentialHPXML/measure.rb +++ b/BuildResidentialHPXML/measure.rb @@ -3798,8 +3798,8 @@ module HPXMLFile # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param args [Hash] Map of :argument_name => value # @param epw_path [String] Path to the EPW weather file - # @param hpxml_path [TODO] TODO - # @param existing_hpxml_path [TODO] TODO + # @param hpxml_path [String] Path to the created HPXML file + # @param existing_hpxml_path [String] Path to the existing HPXML file # @return [Oga::XML::Element] Root XML element of the updated HPXML document def self.create(runner, model, args, epw_path, hpxml_path, existing_hpxml_path) if need_weather_based_on_args(args) @@ -3926,7 +3926,7 @@ def self.need_weather_based_on_args(args) # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param hpxml [HPXML] HPXML object # @param hpxml_doc [Oga::XML::Element] Root XML element of the HPXML document - # @param hpxml_path [TODO] TODO + # @param hpxml_path [String] Path to the created HPXML file # @return [Boolean] True if the HPXML is valid def self.validate_hpxml(runner, hpxml, hpxml_doc, hpxml_path) # Check for errors in the HPXML object diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index 3b50b11bf5..3e51f5b3d5 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - 8d558b94-90a7-4f68-86a0-8f80b41ddbb5 - 2024-08-06T22:34:22Z + 13d01428-0c2f-4809-883e-e751cacd354e + 2024-08-08T17:47:43Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -7406,7 +7406,7 @@ measure.rb rb script - 0472491B + E53BF8DC geometry.rb diff --git a/BuildResidentialScheduleFile/measure.rb b/BuildResidentialScheduleFile/measure.rb index da1fd23a86..b800842228 100644 --- a/BuildResidentialScheduleFile/measure.rb +++ b/BuildResidentialScheduleFile/measure.rb @@ -178,8 +178,8 @@ def run(model, runner, user_arguments) # # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param doc [Oga::XML::Document] Oga XML Document object - # @param hpxml_path [String] path of the input HPXML file - # @param hpxml_output_path [String] path of the output HPXML file + # @param hpxml_path [String] Path to the HPXML file + # @param hpxml_output_path [String] Path to the output HPXML file # @param schedules_filepaths [Array] array of SchedulesFilePath strings in the input HPXML file # @param args [Hash] Map of :argument_name => value def write_modified_hpxml(runner, doc, hpxml_path, hpxml_output_path, schedules_filepaths, args) diff --git a/BuildResidentialScheduleFile/measure.xml b/BuildResidentialScheduleFile/measure.xml index 0c2d79d198..6f2cee3f74 100644 --- a/BuildResidentialScheduleFile/measure.xml +++ b/BuildResidentialScheduleFile/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_schedule_file f770b2db-1a9f-4e99-99a7-7f3161a594b1 - 343e6003-d986-4a2e-b55c-f8f72f7bb3ac - 2024-08-06T22:53:09Z + 2d9397bb-1241-4b01-8f2c-af55c69b041c + 2024-08-08T17:47:45Z 03F02484 BuildResidentialScheduleFile Schedule File Builder @@ -133,7 +133,7 @@ measure.rb rb script - D2B0EB5F + 038D2D11 README.md diff --git a/HPXMLtoOpenStudio/measure.rb b/HPXMLtoOpenStudio/measure.rb index 355a87dd84..5815349015 100644 --- a/HPXMLtoOpenStudio/measure.rb +++ b/HPXMLtoOpenStudio/measure.rb @@ -555,7 +555,7 @@ def create_unit_model(hpxml, hpxml_bldg, runner, model, epw_path, weather, debug # TODO # # @param hpxml_header [HPXML::Header] HPXML Header object (one per HPXML file) - # @param hpxml_path [TODO] TODO + # @param hpxml_path [String] Path to the HPXML file # @return [TODO] TODO def check_emissions_references(hpxml_header, hpxml_path) # Check/update file references @@ -574,7 +574,7 @@ def check_emissions_references(hpxml_header, hpxml_path) # TODO # # @param hpxml_bldg_header [TODO] TODO - # @param hpxml_path [TODO] TODO + # @param hpxml_path [String] Path to the HPXML file # @return [TODO] TODO def check_schedule_references(hpxml_bldg_header, hpxml_path) # Check/update file references @@ -2424,7 +2424,7 @@ def add_building_unit(model, unit_num) # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param hpxml [HPXML] HPXML object # @param hpxml_osm_map [TODO] TODO - # @param hpxml_path [TODO] TODO + # @param hpxml_path [String] Path to the HPXML file # @param building_id [TODO] TODO # @param hpxml_defaults_path [TODO] TODO # @return [TODO] TODO diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index 170345e193..435c8ea77d 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 24224f3e-178f-4f64-a894-e8191700912b - 2024-08-07T14:37:27Z + dfed323f-1504-4040-b156-ef76de1bd670 + 2024-08-08T17:47:47Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -183,7 +183,7 @@ measure.rb rb script - 5738A6FC + 1C8D7817 airflow.rb @@ -405,7 +405,7 @@ location.rb rb resource - 73069528 + 2CCAB754 materials.rb @@ -627,7 +627,7 @@ xmlhelper.rb rb resource - 6E1E1307 + 7CBAECF6 xmlvalidator.rb diff --git a/HPXMLtoOpenStudio/resources/location.rb b/HPXMLtoOpenStudio/resources/location.rb index 3f31500d60..0acbd396ac 100644 --- a/HPXMLtoOpenStudio/resources/location.rb +++ b/HPXMLtoOpenStudio/resources/location.rb @@ -1,14 +1,15 @@ # frozen_string_literal: true -# TODO +# Collection of methods for applying site, year, daylight saving time, and ground temperature properties. +# Also includes some helper methods for getting IECC climate zone based on WMO, EPW file path, and simulation calendar year. module Location - # TODO + # This method calls individual methods for applying site, year, daylight saving time, and ground temperature properties on OpenStudio objects. # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param weather [WeatherFile] Weather object containing EPW information # @param hpxml_header [HPXML::Header] HPXML Header object (one per HPXML file) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [TODO] TODO + # @return [void] def self.apply(model, weather, hpxml_header, hpxml_bldg) apply_year(model, hpxml_header, weather) apply_site(model, hpxml_bldg) @@ -16,11 +17,11 @@ def self.apply(model, weather, hpxml_header, hpxml_bldg) apply_ground_temps(model, weather, hpxml_bldg) end - # TODO + # Set latitude, longitude, time zone, and elevation on the OpenStudio Site object. # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [TODO] TODO + # @return [void] def self.apply_site(model, hpxml_bldg) # Note: None of these affect the model; see https://github.com/NREL/EnergyPlus/issues/10579. site = model.getSite @@ -31,12 +32,12 @@ def self.apply_site(model, hpxml_bldg) site.setElevation(UnitConversions.convert(hpxml_bldg.elevation, 'ft', 'm').round) end - # TODO + # Set calendar year on the OpenStudio YearDescription object. # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param hpxml_header [HPXML::Header] HPXML Header object (one per HPXML file) # @param weather [WeatherFile] Weather object containing EPW information - # @return [TODO] TODO + # @return [void] def self.apply_year(model, hpxml_header, weather) if Date.leap?(hpxml_header.sim_calendar_year) n_hours = weather.header.NumRecords @@ -49,11 +50,11 @@ def self.apply_year(model, hpxml_header, weather) year_description.setCalendarYear(hpxml_header.sim_calendar_year) end - # TODO + # If enabled, set daylight saving time start and end dates on the OpenStudio RunPeriodControlDaylightSavingTime object. # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [TODO] TODO + # @return [void] def self.apply_dst(model, hpxml_bldg) return unless hpxml_bldg.dst_enabled @@ -66,12 +67,12 @@ def self.apply_dst(model, hpxml_bldg) run_period_control_daylight_saving_time.setEndDate(dst_end_date) end - # TODO + # Set monthly shallow (varies by month) and monthly deep (constant) ground temperatures on the OpenStudio SiteGroundTemperatureShallow and SiteGroundTemperatureDeep objects, respectively. # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param weather [WeatherFile] Weather object containing EPW information # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [TODO] TODO + # @return [void] def self.apply_ground_temps(model, weather, hpxml_bldg) # Shallow ground temperatures only currently used for ducts located under slab sgts = model.getSiteGroundTemperatureShallow @@ -86,9 +87,9 @@ def self.apply_ground_temps(model, weather, hpxml_bldg) end end - # TODO + # Get the absolute path to the climate zones CSV lookup file containing WMO, station, county, state, and BA/IECC zone data. # - # @return [TODO] TODO + # @return [String] Path to the climate_zones.csv lookup file def self.get_climate_zones zones_csv = File.join(File.dirname(__FILE__), 'data', 'climate_zones.csv') if not File.exist?(zones_csv) @@ -98,10 +99,10 @@ def self.get_climate_zones return zones_csv end - # TODO + # From the climate zones CSV lookup file, get the IECC zone corresponding to given WMO number. # - # @param wmo [TODO] TODO - # @return [TODO] TODO + # @param wmo [String] Weather station World Meteorological Organization (WMO) number + # @return [String or nil] IECC zone if WMO is found, otherwise nil def self.get_climate_zone_iecc(wmo) zones_csv = get_climate_zones @@ -113,11 +114,11 @@ def self.get_climate_zone_iecc(wmo) return end - # TODO + # Get (find) the absolute path to the EPW file. # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @param hpxml_path [TODO] TODO - # @return [TODO] TODO + # @param hpxml_path [String] Path to the HPXML file + # @return [String] Path to the EnergyPlus weather file (EPW) def self.get_epw_path(hpxml_bldg, hpxml_path) epw_filepath = hpxml_bldg.climate_and_risk_zones.weather_station_epw_filepath abs_epw_path = File.absolute_path(epw_filepath) @@ -149,11 +150,11 @@ def self.get_epw_path(hpxml_bldg, hpxml_path) return abs_epw_path end - # TODO + # Get the simulation calendar year. # - # @param sim_calendar_year [TODO] TODO + # @param sim_calendar_year [Integer] nil if EPW is AMY or using 2007 default # @param weather [WeatherFile] Weather object containing EPW information - # @return [TODO] TODO + # @return [Integer] the simulation calendar year def self.get_sim_calendar_year(sim_calendar_year, weather) if (not weather.nil?) && (not weather.header.ActualYear.nil?) # AMY sim_calendar_year = weather.header.ActualYear @@ -161,6 +162,7 @@ def self.get_sim_calendar_year(sim_calendar_year, weather) if sim_calendar_year.nil? sim_calendar_year = 2007 end + return sim_calendar_year end end diff --git a/HPXMLtoOpenStudio/resources/xmlhelper.rb b/HPXMLtoOpenStudio/resources/xmlhelper.rb index 1835544b45..4c0b64620e 100644 --- a/HPXMLtoOpenStudio/resources/xmlhelper.rb +++ b/HPXMLtoOpenStudio/resources/xmlhelper.rb @@ -243,7 +243,7 @@ def self.create_doc(version = nil, encoding = nil, standalone = nil) # TODO # - # @param hpxml_path [TODO] TODO + # @param hpxml_path [String] Path to the HPXML file # @return [TODO] TODO def self.parse_file(hpxml_path) file_read = File.read(hpxml_path) diff --git a/ReportUtilityBills/measure.rb b/ReportUtilityBills/measure.rb index aefdda9489..b5585b7e4c 100644 --- a/ReportUtilityBills/measure.rb +++ b/ReportUtilityBills/measure.rb @@ -530,7 +530,7 @@ def report_monthly_output_results(runner, args, timestamps, monthly_data, monthl # Fill each UtilityRate object based on simple or detailed utility rate information. # - # @param hpxml_path [String] path of the input HPXML file + # @param hpxml_path [String] Path to the HPXML file # @param fuels [Hash] Fuel type, is_production => Fuel object # @param utility_rates [Hash] Fuel Type => UtilityRate object # @param bill_scenario [HPXML::UtilityBillScenario] HPXML Utility Bill Scenario object diff --git a/ReportUtilityBills/measure.xml b/ReportUtilityBills/measure.xml index a067601655..a46373c882 100644 --- a/ReportUtilityBills/measure.xml +++ b/ReportUtilityBills/measure.xml @@ -3,8 +3,8 @@ 3.1 report_utility_bills ca88a425-e59a-4bc4-af51-c7e7d1e960fe - e7a1eb0f-f485-45ad-9448-2e5f6c145c5f - 2024-07-17T17:05:04Z + f5c93a11-f4b5-4e09-8174-eb9cbc1f0831 + 2024-08-08T17:47:50Z 15BF4E57 ReportUtilityBills Utility Bills Report @@ -180,7 +180,7 @@ measure.rb rb script - DE8B3221 + 8CDD4264 detailed_rates/Sample Flat Rate Min Annual Charge.json From 7c3114b8568ae71d4a8b860d3a9cb412cef9a771 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Thu, 8 Aug 2024 11:16:59 -0700 Subject: [PATCH 17/22] Sneak in more argument description for heating_system_2_type. --- BuildResidentialHPXML/README.md | 2 +- BuildResidentialHPXML/measure.rb | 2 +- BuildResidentialHPXML/measure.xml | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/BuildResidentialHPXML/README.md b/BuildResidentialHPXML/README.md index 75ac79c0cb..a0cfee6678 100644 --- a/BuildResidentialHPXML/README.md +++ b/BuildResidentialHPXML/README.md @@ -2777,7 +2777,7 @@ Pipe diameter of the geothermal loop. Only applies to ground-to-air heat pump ty **Heating System 2: Type** -The type of the second heating system. +The type of the second heating system. If a heat pump is specified and the backup type is 'separate', this heating system represents 'separate' backup heating. A 'Furnace' as 'separate' backup to a ducted heat pump is not supported. - **Name:** ``heating_system_2_type`` - **Type:** ``Choice`` diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb index 01cf852f06..58873b972b 100644 --- a/BuildResidentialHPXML/measure.rb +++ b/BuildResidentialHPXML/measure.rb @@ -1674,7 +1674,7 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heating_system_2_type', heating_system_2_type_choices, true) arg.setDisplayName('Heating System 2: Type') - arg.setDescription('The type of the second heating system.') + arg.setDescription("The type of the second heating system. If a heat pump is specified and the backup type is '#{HPXML::HeatPumpBackupTypeSeparate}', this heating system represents '#{HPXML::HeatPumpBackupTypeSeparate}' backup heating. A '#{HPXML::HVACTypeFurnace}' as '#{HPXML::HeatPumpBackupTypeSeparate}' backup to a ducted heat pump is not supported.") arg.setDefaultValue('none') args << arg diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index 3e51f5b3d5..0a6044d8ec 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - 13d01428-0c2f-4809-883e-e751cacd354e - 2024-08-08T17:47:43Z + 4df2c890-62c5-441d-bb0e-f4d7e48317d2 + 2024-08-08T18:16:04Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -3359,7 +3359,7 @@ heating_system_2_type Heating System 2: Type - The type of the second heating system. + The type of the second heating system. If a heat pump is specified and the backup type is 'separate', this heating system represents 'separate' backup heating. A 'Furnace' as 'separate' backup to a ducted heat pump is not supported. Choice true false @@ -7389,7 +7389,7 @@ README.md md readme - B702F428 + AB6941B1 README.md.erb @@ -7406,7 +7406,7 @@ measure.rb rb script - E53BF8DC + B7F49CEF geometry.rb From 9e3078d4bb8a37f58e5880221fe004f2cab7c3e7 Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Fri, 16 Aug 2024 10:55:31 -0600 Subject: [PATCH 18/22] A couple unrelated docs updates. [ci skip] --- docs/source/workflow_inputs.rst | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index 0057701867..9dada00c41 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -599,7 +599,7 @@ Building occupancy is entered in ``/HPXML/Building/BuildingDetails/BuildingSumma .. csv-table:: :file: data/building_occupancy.csv - :header-rows: 1 + :header-rows: 1 .. _building_construction: @@ -2869,6 +2869,7 @@ If a backup type ("integrated" or "separate") is provided, additional informatio .. note:: Provide ``BackupHeatingSwitchoverTemperature`` for a situation where there is a discrete outdoor temperature below which the heat pump stops operating and above which the backup heating system stops operating. + Note that this control strategy has risk of the heating setpoint not being maintained (i.e., unmet hours) when the outdoor temperature is just above the switchover temperature, as the heat pump may not have sufficient capacity to meet the heating load and the backup is disabled. Alternatively, provide A) ``CompressorLockoutTemperature`` to specify the outdoor temperature below which the heat pump stops operating and/or B) ``BackupHeatingLockoutTemperature`` to specify the outdoor temperature above which the heat pump backup system stops operating. If both are provided, the compressor and backup system can both operate between the two temperatures (e.g., simultaneous operation or cycling). @@ -3455,7 +3456,8 @@ Each heat recovery ventilator (HRV) is entered as a ``/HPXML/Building/BuildingDe OpenStudio-HPXML does not currently support defaulting flow rates for multiple mechanical ventilation fans. - .. [#] Providing AdjustedSensibleRecoveryEfficiency (ASRE) is preferable to SensibleRecoveryEfficiency (SRE). + .. [#] AdjustedSensibleRecoveryEfficiency (ASRE) is similar to SensibleRecoveryEfficiency (SRE), in that it reflects heating season performance, but excludes fan electric consumption. + Since OpenStudio-HPXML separately models fan electric consumption, ASRE is a preferable input to SRE because it can be directly used in the energy model. .. [#] If FanPower not provided, defaults to 1.0 W/cfm based on `ANSI/RESNET/ICC 301-2019 `_. .. _vent_fan_erv: @@ -3497,8 +3499,10 @@ Each energy recovery ventilator (ERV) is entered as a ``/HPXML/Building/Building OpenStudio-HPXML does not currently support defaulting flow rates for multiple mechanical ventilation fans. - .. [#] Providing AdjustedTotalRecoveryEfficiency (ATRE) is preferable to TotalRecoveryEfficiency (TRE). - .. [#] Providing AdjustedSensibleRecoveryEfficiency (ASRE) is preferable to SensibleRecoveryEfficiency (SRE). + .. [#] AdjustedTotalRecoveryEfficiency (ATRE) is similar to TotalRecoveryEfficiency (TRE), in that it reflects cooling season performance, but excludes fan electric consumption. + Since OpenStudio-HPXML separately models fan electric consumption, ATRE is a preferable input to TRE because it can be directly used in the energy model. + .. [#] AdjustedSensibleRecoveryEfficiency (ASRE) is similar to SensibleRecoveryEfficiency (SRE), in that it reflects heating season performance, but excludes fan electric consumption. + Since OpenStudio-HPXML separately models fan electric consumption, ASRE is a preferable input to SRE because it can be directly used in the energy model. .. [#] If FanPower not provided, defaults to 1.0 W/cfm based on `ANSI/RESNET/ICC 301-2019 `_. .. _vent_fan_cfis: @@ -4719,7 +4723,7 @@ With either lighting specification, additional information can be entered in ``/ .. csv-table:: :file: data/lighting.csv - :header-rows: 1 + :header-rows: 1 .. _lighting_fractions: From 3932abf5285a8bc93a0c7cac2049c1390ff7cc55 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Fri, 16 Aug 2024 12:25:01 -0700 Subject: [PATCH 19/22] Reference a single default schedules location in the docs. --- .github/workflows/config.yml | 1 - BuildResidentialScheduleFile/measure.xml | 6 +- .../resources/schedules.rb | 2 +- HPXMLtoOpenStudio/measure.xml | 12 +- HPXMLtoOpenStudio/resources/hpxml_defaults.rb | 9 +- HPXMLtoOpenStudio/tests/test_defaults.rb | 2 +- HPXMLtoOpenStudio/tests/test_schedules.rb | 2 +- HPXMLtoOpenStudio/tests/test_validation.rb | 2 +- .../create_default_schedules_csv_tables.rb | 36 ---- docs/source/workflow_inputs.rst | 170 +++++------------- tasks.rb | 2 +- 11 files changed, 65 insertions(+), 179 deletions(-) delete mode 100644 docs/source/data/create_default_schedules_csv_tables.rb diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index 0344f8f24c..7bf69a797e 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -61,7 +61,6 @@ jobs: - name: Build documentation run: | cd docs - ruby source/data/create_default_schedules_csv_tables.rb make html SPHINXOPTS="-W --keep-going -n" - name: Check documentation diff --git a/BuildResidentialScheduleFile/measure.xml b/BuildResidentialScheduleFile/measure.xml index 6f2cee3f74..23e77c34e2 100644 --- a/BuildResidentialScheduleFile/measure.xml +++ b/BuildResidentialScheduleFile/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_schedule_file f770b2db-1a9f-4e99-99a7-7f3161a594b1 - 2d9397bb-1241-4b01-8f2c-af55c69b041c - 2024-08-08T17:47:45Z + c82306e3-de8f-4659-b356-4e9cd05205e1 + 2024-08-16T19:20:19Z 03F02484 BuildResidentialScheduleFile Schedule File Builder @@ -229,7 +229,7 @@ schedules.rb rb resource - F48302F1 + 25A966F4 shower_cluster_size_probability.csv diff --git a/BuildResidentialScheduleFile/resources/schedules.rb b/BuildResidentialScheduleFile/resources/schedules.rb index 731ef60e68..6f937d8648 100644 --- a/BuildResidentialScheduleFile/resources/schedules.rb +++ b/BuildResidentialScheduleFile/resources/schedules.rb @@ -92,7 +92,7 @@ def create(args:, # @return [Boolean] true if successful def create_stochastic_schedules(args:, weather:) - default_schedules_csv_data, _ = HPXMLDefaults.get_default_schedules_csv_data() + default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() schedules_csv_data = get_schedules_csv_data() # initialize a random number generator diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index 4c1008473c..2e3bd31b38 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - b55e3982-324b-4db4-b1fa-bfb28277493e - 2024-08-13T18:00:21Z + bee776f7-bbff-4bd5-bc86-0000eec811b0 + 2024-08-16T19:24:19Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -357,7 +357,7 @@ hpxml_defaults.rb rb resource - A667F3E1 + 66732099 hpxml_schema/HPXML.xsd @@ -651,7 +651,7 @@ test_defaults.rb rb test - 1A0AA426 + 621257C3 test_enclosure.rb @@ -711,7 +711,7 @@ test_schedules.rb rb test - C058372B + 08E3AAFF test_simcontrols.rb @@ -723,7 +723,7 @@ test_validation.rb rb test - 60426CC8 + 51E564BC test_water_heater.rb diff --git a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb index 23fb1084d0..b82f256b18 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +++ b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb @@ -39,7 +39,7 @@ def self.apply(runner, hpxml, hpxml_bldg, eri_version, weather, schedules_file: add_zones_spaces_if_needed(hpxml, hpxml_bldg, cfa) - @default_schedules_csv_data, _ = get_default_schedules_csv_data() + @default_schedules_csv_data = get_default_schedules_csv_data() apply_header(hpxml.header, hpxml_bldg, weather) apply_building(hpxml_bldg, weather) @@ -3963,20 +3963,15 @@ def self.get_default_schedules_csv_data() require 'csv' default_schedules_csv_data = {} - default_schedules_data_sources = {} CSV.foreach(default_schedules_csv, headers: true) do |row| schedule_name = row['Schedule Name'] element = row['Element'] values = row['Values'] - data_source = row['Data Source'] default_schedules_csv_data[schedule_name] = {} if !default_schedules_csv_data.keys.include?(schedule_name) default_schedules_csv_data[schedule_name][element] = values - - default_schedules_data_sources[schedule_name] = {} if !default_schedules_data_sources.keys.include?(schedule_name) - default_schedules_data_sources[schedule_name][element] = data_source end - return default_schedules_csv_data, default_schedules_data_sources + return default_schedules_csv_data end end diff --git a/HPXMLtoOpenStudio/tests/test_defaults.rb b/HPXMLtoOpenStudio/tests/test_defaults.rb index ad757c71b3..6ea7e7f576 100644 --- a/HPXMLtoOpenStudio/tests/test_defaults.rb +++ b/HPXMLtoOpenStudio/tests/test_defaults.rb @@ -23,7 +23,7 @@ def setup @args_hash['debug'] = true @args_hash['output_dir'] = File.absolute_path(@tmp_output_path) - @default_schedules_csv_data, _ = HPXMLDefaults.get_default_schedules_csv_data() + @default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() end def teardown diff --git a/HPXMLtoOpenStudio/tests/test_schedules.rb b/HPXMLtoOpenStudio/tests/test_schedules.rb index 884a236474..534c9aad69 100644 --- a/HPXMLtoOpenStudio/tests/test_schedules.rb +++ b/HPXMLtoOpenStudio/tests/test_schedules.rb @@ -17,7 +17,7 @@ def setup @year = 2007 @tol = 0.005 - @default_schedules_csv_data, _ = HPXMLDefaults.get_default_schedules_csv_data() + @default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() end def teardown diff --git a/HPXMLtoOpenStudio/tests/test_validation.rb b/HPXMLtoOpenStudio/tests/test_validation.rb index c371c5ac4b..c76d9ef15a 100644 --- a/HPXMLtoOpenStudio/tests/test_validation.rb +++ b/HPXMLtoOpenStudio/tests/test_validation.rb @@ -23,7 +23,7 @@ def setup @tmp_output_path = File.join(@sample_files_path, 'tmp_output') FileUtils.mkdir_p(@tmp_output_path) - @default_schedules_csv_data, _ = HPXMLDefaults.get_default_schedules_csv_data() + @default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() end def teardown diff --git a/docs/source/data/create_default_schedules_csv_tables.rb b/docs/source/data/create_default_schedules_csv_tables.rb deleted file mode 100644 index 9db3618942..0000000000 --- a/docs/source/data/create_default_schedules_csv_tables.rb +++ /dev/null @@ -1,36 +0,0 @@ -# frozen_string_literal: true - -require_relative '../../../HPXMLtoOpenStudio/resources/hpxml_defaults.rb' - -filename_to_schedule_names = { 'building_occupancy' => ['occupants', 'general_water_use'], - 'lighting' => ['lighting_interior', 'lighting_exterior', 'lighting_garage'], - 'holiday_lighting' => ['lighting_exterior_holiday'], - 'cooking_range' => ['cooking_range'], - 'refrigerators' => ['refrigerator', 'extra_refrigerator'], - 'freezers' => ['freezer'], - 'dishwasher' => ['dishwasher'], - 'clothes_washer' => ['clothes_washer'], - 'clothes_dryer' => ['clothes_dryer'], - 'ceiling_fans' => ['ceiling_fan'], - 'plug_loads' => ['plug_loads_other', 'plug_loads_tv', 'plug_loads_well_pump', 'plug_loads_vehicle'], - 'fuel_loads' => ['fuel_loads_grill', 'fuel_loads_fireplace', 'fuel_loads_lighting'], - 'pool_pump' => ['pool_pump'], - 'pool_heater' => ['pool_heater'], - 'permanent_spa_pump' => ['permanent_spa_pump'], - 'permanent_spa_heater' => ['permanent_spa_heater'], - 'water_fixtures' => ['hot_water_fixtures'], - 'recirculation' => ['hot_water_recirculation_pump_no_control', 'hot_water_recirculation_pump_demand_control', 'hot_water_recirculation_pump_temperature_control', 'hot_water_recirculation_pump'] } - -default_schedules_csv_data, default_schedules_data_sources = HPXMLDefaults.get_default_schedules_csv_data() - -filename_to_schedule_names.each do |filename, schedule_names| - CSV.open(File.join(File.dirname(__FILE__), "#{filename}.csv"), 'w') do |csv| - csv << ['Schedule Name', 'Element', 'Values', 'Data Source'] - schedule_names.each do |schedule_name| - elements_values = default_schedules_csv_data[schedule_name] - elements_values.each do |element, values| - csv << [schedule_name, element, values, default_schedules_data_sources[schedule_name][element]] - end - end - end -end diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index 9dada00c41..908d9cca80 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -591,15 +591,11 @@ Building occupancy is entered in ``/HPXML/Building/BuildingDetails/BuildingSumma \- **single-family attached or apartment unit**: NumberofBedrooms = -0.68 + 1.09 * NumberofResidents - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. .. [#] Sensible and latent internal gains from general water use (floor mopping, shower evaporation, water films on showers, tubs & sinks surfaces, plant watering, etc.), as defined by `ANSI/RESNET/ICC 301-2019 `_. - .. [#] If GeneralWaterUseWeekdayScheduleFractions or GeneralWaterUseWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If GeneralWaterUseMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/building_occupancy.csv - :header-rows: 1 + .. [#] If GeneralWaterUseWeekdayScheduleFractions or GeneralWaterUseWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If GeneralWaterUseMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. .. _building_construction: @@ -748,7 +744,11 @@ Default Schedules If neither simple nor detailed inputs are provided, then schedules are defaulted. Default schedules are typically smooth, averaged schedules. -These default schedules are described elsewhere in the documentation (e.g., see :ref:`building_occupancy` for the default occupant heat gain schedule). +These default schedules (and data sources) are described in the table below (e.g., see "occupants" rows for the default occupant heat gain schedule). + +.. csv-table:: + :file: ../../HPXMLtoOpenStudio/resources/data/default_schedules.csv + :header-rows: 1 .. _hvac_sizing_control: @@ -4018,12 +4018,8 @@ An in-unit recirculation hot water distribution system is entered as a ``/HPXML/ .. [#] BranchPipingLength is the length of the branch hot water piping from the recirculation loop to the farthest hot water fixture from the recirculation loop, measured longitudinally from plans, assuming the branch hot water piping does not run diagonally. .. [#] PumpPower default based on `ANSI/RESNET/ICC 301-2019 `_. .. [#] Additional drain water heat recovery inputs are described in :ref:`water_heater_dwhr`. - .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/recirculation.csv - :header-rows: 1 + .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. .. _hot_water_dist_recirc_shared: @@ -4077,12 +4073,8 @@ A shared recirculation hot water distribution system (serving multiple dwelling \- **no control**: The pump runs continuously. - .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/recirculation.csv - :header-rows: 1 + .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. .. note:: @@ -4142,12 +4134,8 @@ Additional information can be entered in ``/HPXML/Building/BuildingDetails/Syste ``extension/WaterFixturesMonthlyScheduleMultipliers`` array No See [#]_ 12 comma-separated monthly multipliers ===================================================== ======= ===== =========== ======== ======== =============================================== - .. [#] If WaterFixturesWeekdayScheduleFractions or WaterFixturesWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If WaterFixturesMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/water_fixtures.csv - :header-rows: 1 + .. [#] If WaterFixturesWeekdayScheduleFractions or WaterFixturesWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WaterFixturesMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. Water fixture hot water use is calculated per the Energy Rating Rated Home in `ANSI/RESNET/ICC 301-2019 `_. @@ -4405,12 +4393,8 @@ If not entered, the simulation will not include a clothes washer. IMEF may be found using the manufacturer’s data sheet, the `California Energy Commission Appliance Database `_, the `EPA ENERGY STAR website `_, or another reputable source. .. [#] AttachedToWaterHeatingSystem must reference a ``WaterHeatingSystem``; AttachedToHotWaterDistribution must reference a ``HotWaterDistribution``. .. [#] AttachedToWaterHeatingSystem (or AttachedToHotWaterDistribution) only required if IsSharedAppliance is true. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/clothes_washer.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. If IntegratedModifiedEnergyFactor or ModifiedEnergyFactor is provided, a complete set of EnergyGuide label information is entered in ``ClothesWasher``. @@ -4459,12 +4443,8 @@ If not entered, the simulation will not include a clothes dryer. CEF = EF / 1.15. CEF may be found using the manufacturer’s data sheet, the `California Energy Commission Appliance Database `_, the `EPA ENERGY STAR website `_, or another reputable source. .. [#] VentedFlowRate default based on the `2010 BAHSP `_. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/clothes_dryer.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. Clothes dryer energy use is calculated per the Energy Rating Rated Home in `ANSI/RESNET/ICC 301-2019 Addendum A `_. @@ -4502,12 +4482,8 @@ If not entered, the simulation will not include a dishwasher. RatedAnnualkWh = 215.0 / EF. .. [#] AttachedToWaterHeatingSystem must reference a ``WaterHeatingSystem``; AttachedToHotWaterDistribution must reference a ``HotWaterDistribution``. .. [#] AttachedToWaterHeatingSystem (or AttachedToHotWaterDistribution) only required if IsSharedAppliance is true. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/dishwasher.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. If the RatedAnnualkWh or EnergyFactor is provided, a complete set of EnergyGuide label information is entered in ``Dishwasher``. @@ -4552,14 +4528,10 @@ If not entered, the simulation will not include a refrigerator. RatedAnnualkWh = 637.0 + 18.0 * NumberofBedrooms. .. [#] If multiple refrigerators are specified, there must be exactly one refrigerator described with PrimaryIndicator=true. .. [#] Either schedule fraction inputs (WeekdayScheduleFractions/WeekendScheduleFractions/MonthlyScheduleMultipliers) or schedule coefficient inputs (ConstantScheduleCoefficients/TemperatureScheduleCoefficients) may be used, but not both. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) are used. - .. [#] If ConstantScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values (see table below) are used. - .. [#] If TemperatureScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values (see table below) are used. - -.. csv-table:: - :file: data/refrigerators.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see :ref:`schedules_default`) are used. + .. [#] If ConstantScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values (see :ref:`schedules_default`) are used. + .. [#] If TemperatureScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values (see :ref:`schedules_default`) are used. .. note:: @@ -4594,12 +4566,8 @@ If not entered, the simulation will not include a standalone freezer. .. [#] If Location not provided, defaults to "garage" if present, otherwise "basement - unconditioned" if present, otherwise "basement - conditioned" if present, otherwise "conditioned space". .. [#] RatedAnnualkWh default based on the `2010 BAHSP `_. .. [#] Either schedule fraction inputs (WeekdayScheduleFractions/WeekendScheduleFractions/MonthlyScheduleMultipliers) or schedule coefficient inputs (ConstantScheduleCoefficients/TemperatureScheduleCoefficients) may be used, but not both. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see table below) are used. - -.. csv-table:: - :file: data/freezers.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see :ref:`schedules_default`) are used. .. note:: @@ -4661,12 +4629,8 @@ If not entered, the simulation will not include a cooking range/oven. .. [#] Location choices are "conditioned space", "basement - conditioned", "basement - unconditioned", "garage", "other housing unit", "other heated space", "other multifamily buffer space", or "other non-freezing space". See :ref:`hpxml_locations` for descriptions. .. [#] FuelType choices are "natural gas", "fuel oil", "fuel oil 1", "fuel oil 2", "fuel oil 4", "fuel oil 5/6", "diesel", "propane", "kerosene", "coal", "coke", "bituminous coal", "anthracite coal", "electricity", "wood", or "wood pellets". - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/cooking_range.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. If a cooking range is specified, a single oven is also entered as a ``/HPXML/Building/BuildingDetails/Appliances/Oven``. @@ -4714,16 +4678,12 @@ With either lighting specification, additional information can be entered in ``/ ``extension/ExteriorMonthlyScheduleMultipliers`` array No See [#]_ 12 comma-separated exterior monthly multipliers ================================================ ======= ====== =========== ======== ======== =============================================== - .. [#] If InteriorWeekdayScheduleFractions or InteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If InteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If GarageWeekdayScheduleFractions or GarageWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If GarageMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If ExteriorWeekdayScheduleFractions or ExteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If ExteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/lighting.csv - :header-rows: 1 + .. [#] If InteriorWeekdayScheduleFractions or InteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If InteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If GarageWeekdayScheduleFractions or GarageWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If GarageMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If ExteriorWeekdayScheduleFractions or ExteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If ExteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. .. _lighting_fractions: @@ -4785,11 +4745,7 @@ If exterior holiday lighting is specified, additional information is entered in =============================== ======= ======= =========== ======== ============= ============================================ .. [#] If Value not provided, defaults to 1.1 for single-family detached and 0.55 for others. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/holiday_lighting.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. HPXML Ceiling Fans ****************** @@ -4811,13 +4767,9 @@ If not entered, the simulation will not include a ceiling fan. .. [#] If Efficiency and LabelEnergyUse not provided, LabelEnergyUse defaults to 42.6 W based on ANSI/RESNET/ICC 301-2022 Addendum C. If both are provided, LabelEnergyUse will be used in the model. .. [#] If Count not provided, defaults to NumberofBedrooms + 1 based on `ANSI/RESNET/ICC 301-2019 `_. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), defaults based on monthly average outdoor temperatures per `ANSI/RESNET/ICC 301-2019 `_ -.. csv-table:: - :file: data/ceiling_fans.csv - :header-rows: 1 - Ceiling fan energy use is calculated per the Energy Rating Rated Home in `ANSI/RESNET/ICC 301-2019 `_. .. note:: @@ -4866,12 +4818,8 @@ If not entered, the simulation will not include a pool pump. If "none" is entered, the simulation will not include a pool pump. .. [#] If Value not provided, defaults based on the `2010 BAHSP `_: 158.5 / 0.070 * (0.5 + 0.25 * NumberofBedrooms / 3 + 0.25 * ConditionedFloorArea / 1920). If NumberofResidents provided, this value will be adjusted using the :ref:`building_occupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/pool_pump.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. Pool Heater ~~~~~~~~~~~ @@ -4903,12 +4851,8 @@ If not entered, the simulation will not include a pool heater. If NumberofResidents provided, this value will be adjusted using the :ref:`building_occupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/pool_heater.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. HPXML Permanent Spas ******************** @@ -4948,12 +4892,8 @@ If not entered, the simulation will not include a permanent spa pump. If "none" is entered, the simulation will not include a permanent spa pump. .. [#] If Value not provided, defaults based on the `2010 BAHSP `_: 59.5 / 0.059 * (0.5 + 0.25 * NumberofBedrooms / 3 + 0.25 * ConditionedFloorArea / 1920). If NumberofResidents provided, this value will be adjusted using the :ref:`building_occupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/permanent_spa_pump.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. Permanent Spa Heater ~~~~~~~~~~~~~~~~~~~~ @@ -4985,12 +4925,8 @@ If not entered, the simulation will not include a permanent spa heater. If NumberofResidents provided, this value will be adjusted using the :ref:`building_occupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/permanent_spa_heater.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. HPXML Misc Loads ---------------- @@ -5057,12 +4993,8 @@ If not entered, the simulation will not include that type of plug load. \- **electric vehicle charging**: 0.0 - .. [#] If WeekdayScheduleFractions or WeekdendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/plug_loads.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekdendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. .. _fuel_loads: @@ -5104,12 +5036,8 @@ If not entered, the simulation will not include that type of fuel load. .. [#] If FracSensible not provided, defaults to 0.5 for fireplace and 0.0 for all other types. .. [#] The remaining fraction (i.e., 1.0 - FracSensible - FracLatent) must be > 0 and is assumed to be heat gain outside conditioned space and thus lost. .. [#] If FracLatent not provided, defaults to 0.1 for fireplace and 0.0 for all other types. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see table below) are used. - -.. csv-table:: - :file: data/fuel_loads.csv - :header-rows: 1 + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. .. _hpxml_locations: diff --git a/tasks.rb b/tasks.rb index 48f993ef9d..2ab5edb35c 100644 --- a/tasks.rb +++ b/tasks.rb @@ -284,7 +284,7 @@ def apply_hpxml_modification_hers_hot_water(hpxml) end def apply_hpxml_modification_sample_files(hpxml_path, hpxml) - default_schedules_csv_data, _ = HPXMLDefaults.get_default_schedules_csv_data() + default_schedules_csv_data = HPXMLDefaults.get_default_schedules_csv_data() # Set detailed HPXML values for sample files hpxml_file = File.basename(hpxml_path) From b6d57d2e4330c17822af4aba24d35f1b49747c31 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Fri, 16 Aug 2024 12:28:20 -0700 Subject: [PATCH 20/22] Revise heating_system_2_type argument description. --- BuildResidentialHPXML/README.md | 2 +- BuildResidentialHPXML/measure.rb | 2 +- BuildResidentialHPXML/measure.xml | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/BuildResidentialHPXML/README.md b/BuildResidentialHPXML/README.md index a0cfee6678..c6934a484c 100644 --- a/BuildResidentialHPXML/README.md +++ b/BuildResidentialHPXML/README.md @@ -2777,7 +2777,7 @@ Pipe diameter of the geothermal loop. Only applies to ground-to-air heat pump ty **Heating System 2: Type** -The type of the second heating system. If a heat pump is specified and the backup type is 'separate', this heating system represents 'separate' backup heating. A 'Furnace' as 'separate' backup to a ducted heat pump is not supported. +The type of the second heating system. If a heat pump is specified and the backup type is 'separate', this heating system represents 'separate' backup heating. For ducted heat pumps where the backup heating system is a 'Furnace', the backup would typically be characterized as 'integrated' in that the furnace and heat pump share the same distribution system and blower fan; a 'Furnace' as 'separate' backup to a ducted heat pump is not supported. - **Name:** ``heating_system_2_type`` - **Type:** ``Choice`` diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb index 58873b972b..daf8955b52 100644 --- a/BuildResidentialHPXML/measure.rb +++ b/BuildResidentialHPXML/measure.rb @@ -1674,7 +1674,7 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('heating_system_2_type', heating_system_2_type_choices, true) arg.setDisplayName('Heating System 2: Type') - arg.setDescription("The type of the second heating system. If a heat pump is specified and the backup type is '#{HPXML::HeatPumpBackupTypeSeparate}', this heating system represents '#{HPXML::HeatPumpBackupTypeSeparate}' backup heating. A '#{HPXML::HVACTypeFurnace}' as '#{HPXML::HeatPumpBackupTypeSeparate}' backup to a ducted heat pump is not supported.") + arg.setDescription("The type of the second heating system. If a heat pump is specified and the backup type is '#{HPXML::HeatPumpBackupTypeSeparate}', this heating system represents '#{HPXML::HeatPumpBackupTypeSeparate}' backup heating. For ducted heat pumps where the backup heating system is a '#{HPXML::HVACTypeFurnace}', the backup would typically be characterized as '#{HPXML::HeatPumpBackupTypeIntegrated}' in that the furnace and heat pump share the same distribution system and blower fan; a '#{HPXML::HVACTypeFurnace}' as '#{HPXML::HeatPumpBackupTypeSeparate}' backup to a ducted heat pump is not supported.") arg.setDefaultValue('none') args << arg diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index 0a6044d8ec..c9605ce586 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - 4df2c890-62c5-441d-bb0e-f4d7e48317d2 - 2024-08-08T18:16:04Z + 1441d6ac-3c28-4364-a640-189e3544ff00 + 2024-08-16T19:27:52Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -3359,7 +3359,7 @@ heating_system_2_type Heating System 2: Type - The type of the second heating system. If a heat pump is specified and the backup type is 'separate', this heating system represents 'separate' backup heating. A 'Furnace' as 'separate' backup to a ducted heat pump is not supported. + The type of the second heating system. If a heat pump is specified and the backup type is 'separate', this heating system represents 'separate' backup heating. For ducted heat pumps where the backup heating system is a 'Furnace', the backup would typically be characterized as 'integrated' in that the furnace and heat pump share the same distribution system and blower fan; a 'Furnace' as 'separate' backup to a ducted heat pump is not supported. Choice true false @@ -7389,7 +7389,7 @@ README.md md readme - AB6941B1 + FCAE28E2 README.md.erb @@ -7406,7 +7406,7 @@ measure.rb rb script - B7F49CEF + 5C957913 geometry.rb From 1819a259cdbc36cb390d301a7a91a4aab635f037 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Fri, 16 Aug 2024 12:32:06 -0700 Subject: [PATCH 21/22] Replace all @return [void] with @return [nil]. --- BuildResidentialHPXML/measure.rb | 114 ++-- BuildResidentialHPXML/measure.xml | 8 +- BuildResidentialHPXML/resources/geometry.rb | 10 +- HPXMLtoOpenStudio/measure.rb | 32 +- HPXMLtoOpenStudio/measure.xml | 36 +- HPXMLtoOpenStudio/resources/battery.rb | 2 +- .../resources/data/g_functions/util.rb | 2 +- HPXMLtoOpenStudio/resources/generator.rb | 2 +- HPXMLtoOpenStudio/resources/geometry.rb | 6 +- HPXMLtoOpenStudio/resources/hpxml.rb | 596 +++++++++--------- HPXMLtoOpenStudio/resources/hpxml_defaults.rb | 100 +-- HPXMLtoOpenStudio/resources/hvac.rb | 10 +- HPXMLtoOpenStudio/resources/hvac_sizing.rb | 60 +- HPXMLtoOpenStudio/resources/location.rb | 10 +- HPXMLtoOpenStudio/resources/pv.rb | 2 +- HPXMLtoOpenStudio/resources/schedules.rb | 22 +- HPXMLtoOpenStudio/resources/simcontrols.rb | 2 +- HPXMLtoOpenStudio/resources/util.rb | 2 +- HPXMLtoOpenStudio/resources/version.rb | 4 +- HPXMLtoOpenStudio/resources/weather.rb | 16 +- ReportUtilityBills/measure.xml | 6 +- ReportUtilityBills/resources/util.rb | 2 +- 22 files changed, 522 insertions(+), 522 deletions(-) diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb index daf8955b52..782fbaad2f 100644 --- a/BuildResidentialHPXML/measure.rb +++ b/BuildResidentialHPXML/measure.rb @@ -4517,7 +4517,7 @@ def self.add_building(hpxml, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_site(hpxml_bldg, args) hpxml_bldg.site.shielding_of_home = args[:site_shielding_of_home] hpxml_bldg.site.ground_conductivity = args[:site_ground_conductivity] @@ -4572,7 +4572,7 @@ def self.set_site(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_neighbor_buildings(hpxml_bldg, args) nbr_map = { Constants.FacadeFront => [args[:neighbor_front_distance], args[:neighbor_front_height]], Constants.FacadeBack => [args[:neighbor_back_distance], args[:neighbor_back_height]], @@ -4601,7 +4601,7 @@ def self.set_neighbor_buildings(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_building_occupancy(hpxml_bldg, args) hpxml_bldg.building_occupancy.number_of_residents = args[:geometry_unit_num_occupants] hpxml_bldg.building_occupancy.general_water_use_usage_multiplier = args[:general_water_use_usage_multiplier] @@ -4619,7 +4619,7 @@ def self.set_building_occupancy(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_building_construction(hpxml_bldg, args) if args[:geometry_unit_type] == HPXML::ResidentialTypeApartment args[:geometry_unit_num_floors_above_grade] = 1 @@ -4652,7 +4652,7 @@ def self.set_building_construction(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_building_header(hpxml_bldg, args) if not args[:schedules_filepaths].nil? hpxml_bldg.header.schedules_filepaths = args[:schedules_filepaths].split(',').map(&:strip) @@ -4685,7 +4685,7 @@ def self.set_building_header(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_climate_and_risk_zones(hpxml_bldg, args) hpxml_bldg.climate_and_risk_zones.weather_station_id = 'WeatherStation' @@ -4707,7 +4707,7 @@ def self.set_climate_and_risk_zones(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_air_infiltration_measurements(hpxml_bldg, args) if args[:air_leakage_value] if args[:air_leakage_units] == HPXML::UnitsELA @@ -4753,7 +4753,7 @@ def self.set_air_infiltration_measurements(hpxml_bldg, args) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value # @param sorted_surfaces [Array] surfaces sorted by deterministically assigned Index - # @return [void] + # @return [nil] def self.set_roofs(hpxml_bldg, args, sorted_surfaces) args[:geometry_roof_pitch] *= 12.0 if (args[:geometry_attic_type] == HPXML::AtticTypeFlatRoof) || (args[:geometry_attic_type] == HPXML::AtticTypeBelowApartment) @@ -4802,7 +4802,7 @@ def self.set_roofs(hpxml_bldg, args, sorted_surfaces) # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param args [Hash] Map of :argument_name => value # @param sorted_surfaces [Array] surfaces sorted by deterministically assigned Index - # @return [void] + # @return [nil] def self.set_rim_joists(hpxml_bldg, model, args, sorted_surfaces) sorted_surfaces.each do |surface| next if surface.surfaceType != 'Wall' @@ -4865,7 +4865,7 @@ def self.set_rim_joists(hpxml_bldg, model, args, sorted_surfaces) # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param args [Hash] Map of :argument_name => value # @param sorted_surfaces [Array] surfaces sorted by deterministically assigned Index - # @return [void] + # @return [nil] def self.set_walls(hpxml_bldg, model, args, sorted_surfaces) sorted_surfaces.each do |surface| next if surface.surfaceType != 'Wall' @@ -4959,7 +4959,7 @@ def self.set_walls(hpxml_bldg, model, args, sorted_surfaces) # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param args [Hash] Map of :argument_name => value # @param sorted_surfaces [Array] surfaces sorted by deterministically assigned Index - # @return [void] + # @return [nil] def self.set_foundation_walls(hpxml_bldg, model, args, sorted_surfaces) sorted_surfaces.each do |surface| next if surface.surfaceType != 'Wall' @@ -5046,7 +5046,7 @@ def self.set_foundation_walls(hpxml_bldg, model, args, sorted_surfaces) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value # @param sorted_surfaces [Array] surfaces sorted by deterministically assigned Index - # @return [void] + # @return [nil] def self.set_floors(hpxml_bldg, args, sorted_surfaces) if [HPXML::FoundationTypeBasementConditioned, HPXML::FoundationTypeCrawlspaceConditioned].include?(args[:geometry_foundation_type]) && (args[:floor_over_foundation_assembly_r] > 2.1) @@ -5129,7 +5129,7 @@ def self.set_floors(hpxml_bldg, args, sorted_surfaces) # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param args [Hash] Map of :argument_name => value # @param sorted_surfaces [Array] surfaces sorted by deterministically assigned Index - # @return [void] + # @return [nil] def self.set_slabs(hpxml_bldg, model, args, sorted_surfaces) sorted_surfaces.each do |surface| next unless ['Foundation'].include? surface.outsideBoundaryCondition @@ -5200,7 +5200,7 @@ def self.set_slabs(hpxml_bldg, model, args, sorted_surfaces) # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param args [Hash] Map of :argument_name => value # @param sorted_subsurfaces [Array] subsurfaces sorted by deterministically assigned Index - # @return [void] + # @return [nil] def self.set_windows(hpxml_bldg, model, args, sorted_subsurfaces) sorted_subsurfaces.each do |sub_surface| next if sub_surface.subSurfaceType != 'FixedWindow' @@ -5277,7 +5277,7 @@ def self.set_windows(hpxml_bldg, model, args, sorted_subsurfaces) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value # @param sorted_subsurfaces [Array] subsurfaces sorted by deterministically assigned Index - # @return [void] + # @return [nil] def self.set_skylights(hpxml_bldg, args, sorted_subsurfaces) sorted_subsurfaces.each do |sub_surface| next if sub_surface.subSurfaceType != 'Skylight' @@ -5318,7 +5318,7 @@ def self.set_skylights(hpxml_bldg, args, sorted_subsurfaces) # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param args [Hash] Map of :argument_name => value # @param sorted_subsurfaces [Array] subsurfaces sorted by deterministically assigned Index - # @return [void] + # @return [nil] def self.set_doors(hpxml_bldg, model, args, sorted_subsurfaces) sorted_subsurfaces.each do |sub_surface| next if sub_surface.subSurfaceType != 'Door' @@ -5349,7 +5349,7 @@ def self.set_doors(hpxml_bldg, model, args, sorted_subsurfaces) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_attics(hpxml_bldg, args) surf_ids = { 'roofs' => { 'surfaces' => hpxml_bldg.roofs, 'ids' => [] }, 'walls' => { 'surfaces' => hpxml_bldg.walls, 'ids' => [] }, @@ -5387,7 +5387,7 @@ def self.set_attics(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_foundations(hpxml_bldg, args) surf_ids = { 'slabs' => { 'surfaces' => hpxml_bldg.slabs, 'ids' => [] }, 'floors' => { 'surfaces' => hpxml_bldg.floors, 'ids' => [] }, @@ -5446,7 +5446,7 @@ def self.set_foundations(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_heating_systems(hpxml_bldg, args) heating_system_type = args[:heating_system_type] @@ -5520,7 +5520,7 @@ def self.set_heating_systems(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_cooling_systems(hpxml_bldg, args) cooling_system_type = args[:cooling_system_type] @@ -5639,7 +5639,7 @@ def self.set_cooling_systems(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_heat_pumps(hpxml_bldg, args) heat_pump_type = args[:heat_pump_type] @@ -5828,7 +5828,7 @@ def self.set_heat_pumps(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_geothermal_loop(hpxml_bldg, args) return if hpxml_bldg.heat_pumps.select { |hp| hp.heat_pump_type == HPXML::HVACTypeHeatPumpGroundToAir }.size == 0 return if args[:geothermal_loop_configuration].nil? || args[:geothermal_loop_configuration] == 'none' @@ -5867,7 +5867,7 @@ def self.set_geothermal_loop(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_secondary_heating_systems(hpxml_bldg, args) heating_system_type = args[:heating_system_2_type] heating_system_is_heatpump_backup = (args[:heat_pump_type] != 'none' && args[:heat_pump_backup_type] == HPXML::HeatPumpBackupTypeSeparate) @@ -5910,7 +5910,7 @@ def self.set_secondary_heating_systems(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_hvac_distribution(hpxml_bldg, args) # HydronicDistribution? hpxml_bldg.heating_systems.each do |heating_system| @@ -5993,7 +5993,7 @@ def self.set_hvac_distribution(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_hvac_blower(hpxml_bldg, args) # Blower fan W/cfm hpxml_bldg.hvac_systems.each do |hvac_system| @@ -6023,7 +6023,7 @@ def self.set_hvac_blower(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_duct_leakages(args, hvac_distribution) hvac_distribution.duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply, duct_leakage_units: args[:ducts_leakage_units], @@ -6041,7 +6041,7 @@ def self.set_duct_leakages(args, hvac_distribution) # @param location [String] the general HPXML location (crawlspace or attic) # @param foundation_type [String] the specific HPXML foundation type (unvented crawlspace, vented crawlspace, conditioned crawlspace) # @param attic_type [String] the specific HPXML attic type (unvented attic, vented attic, conditioned attic) - # @return [void] + # @return [nil] def self.get_location(location, foundation_type, attic_type) return if location.nil? @@ -6078,7 +6078,7 @@ def self.get_location(location, foundation_type, attic_type) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value # @param hvac_distribution [HPXML::HVACDistribution] HPXML HVAC Distribution object - # @return [void] + # @return [nil] def self.set_ducts(hpxml_bldg, args, hvac_distribution) ducts_supply_location = get_location(args[:ducts_supply_location], hpxml_bldg.foundations[-1].foundation_type, hpxml_bldg.attics[-1].attic_type) ducts_return_location = get_location(args[:ducts_return_location], hpxml_bldg.foundations[-1].foundation_type, hpxml_bldg.attics[-1].attic_type) @@ -6196,7 +6196,7 @@ def self.set_ducts(hpxml_bldg, args, hvac_distribution) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value # @param weather [WeatherFile] Weather object containing EPW information - # @return [void] + # @return [nil] def self.set_hvac_control(hpxml, hpxml_bldg, args, weather) return if (args[:heating_system_type] == 'none') && (args[:cooling_system_type] == 'none') && (args[:heat_pump_type] == 'none') @@ -6297,7 +6297,7 @@ def self.set_hvac_control(hpxml, hpxml_bldg, args, weather) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_ventilation_fans(hpxml_bldg, args) if args[:mech_vent_fan_type] != 'none' @@ -6439,7 +6439,7 @@ def self.set_ventilation_fans(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_water_heating_systems(hpxml_bldg, args) water_heater_type = args[:water_heater_type] return if water_heater_type == 'none' @@ -6557,7 +6557,7 @@ def self.set_water_heating_systems(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_hot_water_distribution(hpxml_bldg, args) return if args[:water_heater_type] == 'none' @@ -6595,7 +6595,7 @@ def self.set_hot_water_distribution(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_water_fixtures(hpxml_bldg, args) return if args[:water_heater_type] == 'none' @@ -6619,7 +6619,7 @@ def self.set_water_fixtures(hpxml_bldg, args) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value # @param weather [WeatherFile] Weather object containing EPW information - # @return [void] + # @return [nil] def self.set_solar_thermal(hpxml_bldg, args, weather) return if args[:solar_thermal_system_type] == 'none' @@ -6669,7 +6669,7 @@ def self.set_solar_thermal(hpxml_bldg, args, weather) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value # @param weather [WeatherFile] Weather object containing EPW information - # @return [void] + # @return [nil] def self.set_pv_systems(hpxml_bldg, args, weather) return unless args[:pv_system_present] @@ -6723,7 +6723,7 @@ def self.set_pv_systems(hpxml_bldg, args, weather) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_battery(hpxml_bldg, args) return unless args[:battery_present] @@ -6754,7 +6754,7 @@ def self.set_battery(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_lighting(hpxml_bldg, args) if args[:lighting_present] has_garage = (args[:geometry_garage_width] * args[:geometry_garage_depth] > 0) @@ -6839,7 +6839,7 @@ def self.set_lighting(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_dehumidifier(hpxml_bldg, args) return if args[:dehumidifier_type] == 'none' @@ -6870,7 +6870,7 @@ def self.set_dehumidifier(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_clothes_washer(hpxml_bldg, args) return if args[:water_heater_type] == 'none' return unless args[:clothes_washer_present] @@ -6903,7 +6903,7 @@ def self.set_clothes_washer(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_clothes_dryer(hpxml_bldg, args) return if args[:water_heater_type] == 'none' return unless args[:clothes_washer_present] @@ -6944,7 +6944,7 @@ def self.set_clothes_dryer(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_dishwasher(hpxml_bldg, args) return if args[:water_heater_type] == 'none' return unless args[:dishwasher_present] @@ -6974,7 +6974,7 @@ def self.set_dishwasher(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_refrigerator(hpxml_bldg, args) return unless args[:refrigerator_present] @@ -6991,7 +6991,7 @@ def self.set_refrigerator(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_extra_refrigerator(hpxml_bldg, args) return unless args[:extra_refrigerator_present] @@ -7010,7 +7010,7 @@ def self.set_extra_refrigerator(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_freezer(hpxml_bldg, args) return unless args[:freezer_present] @@ -7027,7 +7027,7 @@ def self.set_freezer(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_cooking_range_oven(hpxml_bldg, args) return unless args[:cooking_range_oven_present] @@ -7048,7 +7048,7 @@ def self.set_cooking_range_oven(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_ceiling_fans(hpxml_bldg, args) return unless args[:ceiling_fan_present] @@ -7064,7 +7064,7 @@ def self.set_ceiling_fans(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_misc_plug_loads_television(hpxml_bldg, args) return unless args[:misc_plug_loads_television_present] @@ -7081,7 +7081,7 @@ def self.set_misc_plug_loads_television(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_misc_plug_loads_other(hpxml_bldg, args) hpxml_bldg.plug_loads.add(id: "PlugLoad#{hpxml_bldg.plug_loads.size + 1}", plug_load_type: HPXML::PlugLoadTypeOther, @@ -7097,7 +7097,7 @@ def self.set_misc_plug_loads_other(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_misc_plug_loads_well_pump(hpxml_bldg, args) return unless args[:misc_plug_loads_well_pump_present] @@ -7113,7 +7113,7 @@ def self.set_misc_plug_loads_well_pump(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_misc_plug_loads_vehicle(hpxml_bldg, args) return unless args[:misc_plug_loads_vehicle_present] @@ -7130,7 +7130,7 @@ def self.set_misc_plug_loads_vehicle(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_misc_fuel_loads_grill(hpxml_bldg, args) return unless args[:misc_fuel_loads_grill_present] @@ -7148,7 +7148,7 @@ def self.set_misc_fuel_loads_grill(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_misc_fuel_loads_lighting(hpxml_bldg, args) return unless args[:misc_fuel_loads_lighting_present] @@ -7167,7 +7167,7 @@ def self.set_misc_fuel_loads_lighting(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_misc_fuel_loads_fireplace(hpxml_bldg, args) return unless args[:misc_fuel_loads_fireplace_present] @@ -7189,7 +7189,7 @@ def self.set_misc_fuel_loads_fireplace(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_pool(hpxml_bldg, args) return unless args[:pool_present] @@ -7227,7 +7227,7 @@ def self.set_pool(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.set_permanent_spa(hpxml_bldg, args) return unless args[:permanent_spa_present] @@ -7260,7 +7260,7 @@ def self.set_permanent_spa(hpxml_bldg, args) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param args [Hash] Map of :argument_name => value - # @return [void] + # @return [nil] def self.collapse_surfaces(hpxml_bldg, args) if args[:combine_like_surfaces] # Collapse some surfaces whose azimuth is a minor effect to simplify HPXMLs. @@ -7285,7 +7285,7 @@ def self.collapse_surfaces(hpxml_bldg, args) # After having collapsed some surfaces, renumber SystemIdentifier ids and AttachedToXXX idrefs. # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.renumber_hpxml_ids(hpxml_bldg) # Renumber surfaces indexes = {} diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index c9605ce586..595f7f30f0 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - 1441d6ac-3c28-4364-a640-189e3544ff00 - 2024-08-16T19:27:52Z + ffacf8b9-4562-4319-ab8a-f4a63fc0126f + 2024-08-16T19:31:29Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -7406,13 +7406,13 @@ measure.rb rb script - 5C957913 + 3E87E8F5 geometry.rb rb resource - 2764D675 + 523DF705 test_build_residential_hpxml.rb diff --git a/BuildResidentialHPXML/resources/geometry.rb b/BuildResidentialHPXML/resources/geometry.rb index b095a2e627..313889fb05 100644 --- a/BuildResidentialHPXML/resources/geometry.rb +++ b/BuildResidentialHPXML/resources/geometry.rb @@ -1919,7 +1919,7 @@ def self.get_abs_azimuth(relative_azimuth:, # @param space [OpenStudio::Model::Space] the foundation space adjacent to the rim joist # @param rim_joist_height [Double] height of the rim joists (ft) # @param z [Double] z coordinate of the bottom of the rim joists - # @return [void] + # @return [nil] def self.add_rim_joist(model:, polygon:, space:, @@ -1963,7 +1963,7 @@ def self.add_rim_joist(model:, # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param footprint_polygon [OpenStudio::Point3dVector] an OpenStudio::Point3dVector object # @param space [OpenStudio::Model::Space] an OpenStudio::Model::Space object - # @return [void] + # @return [nil] def self.assign_indexes(model:, footprint_polygon:, space:) @@ -2010,7 +2010,7 @@ def self.assign_indexes(model:, # We can't deterministically assign indexes to these surfaces. # # @param model [OpenStudio::Model::Model] OpenStudio Model object - # @return [void] + # @return [nil] def self.assign_remaining_surface_indexes(model:) model.getSurfaces.each do |surface| next if surface.additionalProperties.getFeatureAsInteger('Index').is_initialized @@ -2273,7 +2273,7 @@ def self.add_windows_to_wall(surface:, # @param win_num [Integer] The window number for the current surface # @param facade [String] front, back, left, or right # @param model [OpenStudio::Model::Model] OpenStudio Model object - # @return [void] + # @return [nil] def self.add_window_to_wall(surface:, win_width:, win_height:, @@ -2535,7 +2535,7 @@ def self.get_attic_space(model:, # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param foundation_type [String] HPXML location for foundation type # @param foundation_height [Double] height of the foundation (m) - # @return [void] + # @return [nil] def self.apply_ambient_foundation_shift(model:, foundation_type:, foundation_height:) diff --git a/HPXMLtoOpenStudio/measure.rb b/HPXMLtoOpenStudio/measure.rb index 088e697757..01b41b4d3a 100644 --- a/HPXMLtoOpenStudio/measure.rb +++ b/HPXMLtoOpenStudio/measure.rb @@ -477,7 +477,7 @@ def make_variable_name(obj_name, unit_number) # @param schedules_file [TODO] TODO # @param eri_version [TODO] TODO # @param unit_num [TODO] TODO - # @return [void] + # @return [nil] def create_unit_model(hpxml, hpxml_bldg, runner, model, epw_path, weather, debug, schedules_file, eri_version, unit_num) @hpxml_header = hpxml.header @hpxml_bldg = hpxml_bldg @@ -690,7 +690,7 @@ def create_or_get_space(model, spaces, location) # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param spaces [Hash] Map of HPXML locations => OpenStudio Space objects - # @return [void] + # @return [nil] def add_roofs(runner, model, spaces) @hpxml_bldg.roofs.each do |roof| next if roof.net_area < 1.0 # skip modeling net surface area for surfaces comprised entirely of subsurface area @@ -808,7 +808,7 @@ def add_roofs(runner, model, spaces) # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param spaces [Hash] Map of HPXML locations => OpenStudio Space objects - # @return [void] + # @return [nil] def add_walls(runner, model, spaces) @hpxml_bldg.walls.each do |wall| next if wall.net_area < 1.0 # skip modeling net surface area for surfaces comprised entirely of subsurface area @@ -886,7 +886,7 @@ def add_walls(runner, model, spaces) # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param spaces [Hash] Map of HPXML locations => OpenStudio Space objects - # @return [void] + # @return [nil] def add_rim_joists(runner, model, spaces) @hpxml_bldg.rim_joists.each do |rim_joist| if rim_joist.azimuth.nil? @@ -964,7 +964,7 @@ def add_rim_joists(runner, model, spaces) # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param spaces [Hash] Map of HPXML locations => OpenStudio Space objects - # @return [void] + # @return [nil] def add_floors(runner, model, spaces) @hpxml_bldg.floors.each do |floor| next if floor.net_area < 1.0 # skip modeling net surface area for surfaces comprised entirely of subsurface area @@ -1446,7 +1446,7 @@ def add_thermal_mass(model, spaces) # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param spaces [Hash] Map of HPXML locations => OpenStudio Space objects - # @return [void] + # @return [nil] def add_windows(model, spaces) # We already stored @fraction_of_windows_operable, so lets remove the # fraction_operable properties from windows and re-collapse the enclosure @@ -1549,7 +1549,7 @@ def add_windows(model, spaces) # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param spaces [Hash] Map of HPXML locations => OpenStudio Space objects - # @return [void] + # @return [nil] def add_skylights(model, spaces) surfaces = [] shading_schedules = {} @@ -1652,7 +1652,7 @@ def add_skylights(model, spaces) # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param spaces [Hash] Map of HPXML locations => OpenStudio Space objects - # @return [void] + # @return [nil] def add_doors(model, spaces) surfaces = [] @hpxml_bldg.doors.each do |door| @@ -2006,7 +2006,7 @@ def add_heat_pump(runner, model, weather, spaces, airloop_map) # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param spaces [Hash] Map of HPXML locations => OpenStudio Space objects # @param weather [WeatherFile] Weather object containing EPW information - # @return [void] + # @return [nil] def add_ideal_system(model, spaces, weather) conditioned_zone = spaces[HPXML::LocationConditionedSpace].thermalZone.get @@ -2382,7 +2382,7 @@ def create_ducts(model, hvac_distribution, spaces) # TODO # # @param model [OpenStudio::Model::Model] OpenStudio Model object - # @return [void] + # @return [nil] def add_photovoltaics(model) @hpxml_bldg.pv_systems.each do |pv_system| next if pv_system.inverter.inverter_efficiency == @hpxml_bldg.pv_systems[0].inverter.inverter_efficiency @@ -2397,7 +2397,7 @@ def add_photovoltaics(model) # TODO # # @param model [OpenStudio::Model::Model] OpenStudio Model object - # @return [void] + # @return [nil] def add_generators(model) @hpxml_bldg.generators.each do |generator| Generator.apply(model, @nbeds, generator, @hpxml_bldg.building_construction.number_of_units) @@ -2409,7 +2409,7 @@ def add_generators(model) # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param spaces [Hash] Map of HPXML locations => OpenStudio Space objects - # @return [void] + # @return [nil] def add_batteries(runner, model, spaces) @hpxml_bldg.batteries.each do |battery| # Assign space @@ -3156,7 +3156,7 @@ def add_component_loads_output(model, hpxml_osm_map, loads_data, season_day_nums # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param hpxml_osm_map [Hash] Map of HPXML::Building objects => OpenStudio Model objects for each dwelling unit - # @return [void] + # @return [nil] def add_total_airflows_output(model, hpxml_osm_map) # Retrieve objects infil_vars = [] @@ -3480,7 +3480,7 @@ def get_space_from_location(location, spaces) # @param spaces [Hash] Map of HPXML locations => OpenStudio Space objects # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param hpxml_surface [TODO] TODO - # @return [void] + # @return [nil] def set_subsurface_exterior(surface, spaces, model, hpxml_surface) # Set its parent surface outside boundary condition, which will be also applied to subsurfaces through OS # The parent surface is entirely comprised of the subsurface. @@ -3495,7 +3495,7 @@ def set_subsurface_exterior(surface, spaces, model, hpxml_surface) # TODO # - # @return [void] + # @return [nil] def set_foundation_and_walls_top() @foundation_top = 0 @hpxml_bldg.floors.each do |floor| @@ -3514,7 +3514,7 @@ def set_foundation_and_walls_top() # Set 365 (or 366 for a leap year) heating/cooling day arrays based on heating/cooling season begin/end month/day, respectively. # # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings - # @return [void] + # @return [nil] def set_heating_and_cooling_seasons(runner) return if @hpxml_bldg.hvac_controls.size == 0 diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index 2e3bd31b38..d2a5525b7f 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - bee776f7-bbff-4bd5-bc86-0000eec811b0 - 2024-08-16T19:24:19Z + d3fcd8e8-e4a0-439d-8580-b5230955565b + 2024-08-16T19:31:32Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -183,7 +183,7 @@ measure.rb rb script - 89F162C1 + E4088E63 airflow.rb @@ -195,7 +195,7 @@ battery.rb rb resource - C4D2705E + 6434EF2B constants.rb @@ -315,7 +315,7 @@ data/g_functions/util.rb rb resource - 189A11B8 + D00579DD data/unavailable_periods.csv @@ -333,13 +333,13 @@ generator.rb rb resource - 4D05482A + A4B07257 geometry.rb rb resource - C039095C + BCD7DC91 hotwater_appliances.rb @@ -351,13 +351,13 @@ hpxml.rb rb resource - 9CBC641F + ACE854BB hpxml_defaults.rb rb resource - 66732099 + 76B79520 hpxml_schema/HPXML.xsd @@ -387,13 +387,13 @@ hvac.rb rb resource - 106D27FE + 2B371672 hvac_sizing.rb rb resource - 99F4DE93 + FFC7B0E0 lighting.rb @@ -405,7 +405,7 @@ location.rb rb resource - 2CCAB754 + 6D2C21EE materials.rb @@ -453,7 +453,7 @@ pv.rb rb resource - C664DCB6 + 6ACFD5FF schedule_files/battery.csv @@ -579,13 +579,13 @@ schedules.rb rb resource - 6EF387CC + 6CAB9329 simcontrols.rb rb resource - 24E3F0EE + 25DD5859 unit_conversions.rb @@ -597,7 +597,7 @@ util.rb rb resource - 1F7CD2A3 + D9F271FC utility_bills.rb @@ -609,7 +609,7 @@ version.rb rb resource - B3ECF69F + C8C5DD23 waterheater.rb @@ -621,7 +621,7 @@ weather.rb rb resource - 8A390166 + D15242A9 xmlhelper.rb diff --git a/HPXMLtoOpenStudio/resources/battery.rb b/HPXMLtoOpenStudio/resources/battery.rb index 9a0deb7bb9..625073beee 100644 --- a/HPXMLtoOpenStudio/resources/battery.rb +++ b/HPXMLtoOpenStudio/resources/battery.rb @@ -15,7 +15,7 @@ module Battery # @param battery [HPXML::Battery] Object that defines a single home battery # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files # @param unit_multiplier [Integer] Number of similar dwelling units - # @return [nil or void] nil if unscheduled battery w/out PV; battery is not modeled + # @return [nil] for unscheduled battery w/out PV; in this case battery is not modeled def self.apply(runner, model, nbeds, pv_systems, battery, schedules_file, unit_multiplier) charging_schedule = nil discharging_schedule = nil diff --git a/HPXMLtoOpenStudio/resources/data/g_functions/util.rb b/HPXMLtoOpenStudio/resources/data/g_functions/util.rb index c70492091a..6d8c362a2e 100644 --- a/HPXMLtoOpenStudio/resources/data/g_functions/util.rb +++ b/HPXMLtoOpenStudio/resources/data/g_functions/util.rb @@ -83,7 +83,7 @@ def process_g_functions(filepath) # @param expected_num_boreholes [Integer] expected number of boreholes for a config/boreholes combo # @param m_n [String] keys from the config files where m is borehole "columns" and n is borehole "rows" # @param key2 [String] additional key some configs use to access specific configurations -# @return [void] +# @return [nil] def add_m_n(json, json2, expected_num_boreholes, m_n, key2 = nil) if key2.nil? actual_num_boreholes = json[m_n]['bore_locations'].size diff --git a/HPXMLtoOpenStudio/resources/generator.rb b/HPXMLtoOpenStudio/resources/generator.rb index 655a796315..b5be879640 100644 --- a/HPXMLtoOpenStudio/resources/generator.rb +++ b/HPXMLtoOpenStudio/resources/generator.rb @@ -10,7 +10,7 @@ module Generator # @param nbeds [Integer] Number of bedrooms in the dwelling unit # @param generator [HPXML::Generator] Object that defines a single generator that provides on-site power # @param unit_multiplier [Integer] Number of similar dwelling units - # @return [void] + # @return [nil] def self.apply(model, nbeds, generator, unit_multiplier) obj_name = generator.id diff --git a/HPXMLtoOpenStudio/resources/geometry.rb b/HPXMLtoOpenStudio/resources/geometry.rb index 2c15231a23..867322cdbf 100644 --- a/HPXMLtoOpenStudio/resources/geometry.rb +++ b/HPXMLtoOpenStudio/resources/geometry.rb @@ -6,7 +6,7 @@ module Geometry # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings - # @return [void] + # @return [nil] def self.tear_down_model(model:, runner:) handles = OpenStudio::UUIDVector.new @@ -346,7 +346,7 @@ def self.set_zone_volumes(spaces:, # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param walls_top [Double] the total height of the dwelling unit - # @return [void] + # @return [nil] def self.explode_surfaces(model:, hpxml_bldg:, walls_top:) @@ -495,7 +495,7 @@ def self.explode_surfaces(model:, # @param space [OpenStudio::Model::Space] an OpenStudio::Model::Space object # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files # @param unavailable_periods [HPXML::UnavailablePeriods] Object that defines periods for, e.g., power outages or vacancies - # @return [void] + # @return [nil] def self.apply_occupants(model, runner, hpxml_bldg, num_occ, space, schedules_file, unavailable_periods) occ_gain, _hrs_per_day, sens_frac, _lat_frac = get_occupancy_default_values() activity_per_person = UnitConversions.convert(occ_gain, 'Btu/hr', 'W') diff --git a/HPXMLtoOpenStudio/resources/hpxml.rb b/HPXMLtoOpenStudio/resources/hpxml.rb index 2f617bb9ff..8d9ac8f5a0 100644 --- a/HPXMLtoOpenStudio/resources/hpxml.rb +++ b/HPXMLtoOpenStudio/resources/hpxml.rb @@ -615,7 +615,7 @@ def to_doc # Populates the HPXML object(s) from the XML document. # # @param hpxml_element [Oga::XML::Element] Root XML element of the HPXML document - # @return [void] + # @return [nil] def from_doc(hpxml_element) @header = Header.new(self, hpxml_element) @buildings = Buildings.new(self, hpxml_element) @@ -625,7 +625,7 @@ def from_doc(hpxml_element) # # @param hpxml_doc [Oga::XML::Document] HPXML object as an XML document # @param last_building_only [Boolean] Whether to update IDs for all Building elements or only the last Building element - # @return [void] + # @return [nil] def set_unique_hpxml_ids(hpxml_doc, last_building_only = false) buildings = XMLHelper.get_elements(hpxml_doc, '/HPXML/Building') @@ -798,7 +798,7 @@ def check_for_errors # Adds each object in the array to the provided Oga XML element. # # @param xml_element [Oga::XML::Element] XML element - # @return [void] + # @return [nil] def to_doc(xml_element) each do |child| child.to_doc(xml_element) @@ -874,7 +874,7 @@ def check_for_errors # Adds this object to the Oga XML document. # # @param hpxml_doc [Oga::XML::Document] HPXML object as an XML document - # @return [void] + # @return [nil] def to_doc(hpxml_doc) return if nil? @@ -930,7 +930,7 @@ def to_doc(hpxml_doc) # Populates the HPXML object(s) from the XML document. # # @param hpxml [Oga::XML::Element] Root XML element of the HPXML document - # @return [void] + # @return [nil] def from_doc(hpxml) return if hpxml.nil? @@ -967,7 +967,7 @@ def from_doc(hpxml) class EmissionsScenarios < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << EmissionsScenario.new(@parent_object, **kwargs) end @@ -975,7 +975,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param hpxml [Oga::XML::Element] Root XML element of the HPXML document - # @return [void] + # @return [nil] def from_doc(hpxml) return if hpxml.nil? @@ -1015,7 +1015,7 @@ class EmissionsScenario < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.header.emissions_scenarios.delete(self) end @@ -1031,7 +1031,7 @@ def check_for_errors # Adds this object to the Oga XML document. # # @param hpxml [Oga::XML::Element] Root XML element of the HPXML document - # @return [void] + # @return [nil] def to_doc(hpxml) emissions_scenarios = XMLHelper.create_elements_as_needed(hpxml, ['SoftwareInfo', 'extension', 'EmissionsScenarios']) emissions_scenario = XMLHelper.add_element(emissions_scenarios, 'EmissionsScenario') @@ -1072,7 +1072,7 @@ def to_doc(hpxml) # Populates the HPXML object(s) from the XML document. # # @param emissions_scenario [Oga::XML::Element] The current EmissionsScenario XML element - # @return [void] + # @return [nil] def from_doc(emissions_scenario) return if emissions_scenario.nil? @@ -1102,7 +1102,7 @@ def from_doc(emissions_scenario) class UtilityBillScenarios < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << UtilityBillScenario.new(@parent_object, **kwargs) end @@ -1110,7 +1110,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param hpxml [Oga::XML::Element] Root XML element of the HPXML document - # @return [void] + # @return [nil] def from_doc(hpxml) return if hpxml.nil? @@ -1162,7 +1162,7 @@ class UtilityBillScenario < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.header.utility_bill_scenarios.delete(self) end @@ -1178,7 +1178,7 @@ def check_for_errors # Adds this object to the Oga XML document. # # @param hpxml [Oga::XML::Element] Root XML element of the HPXML document - # @return [void] + # @return [nil] def to_doc(hpxml) utility_bill_scenarios = XMLHelper.create_elements_as_needed(hpxml, ['SoftwareInfo', 'extension', 'UtilityBillScenarios']) utility_bill_scenario = XMLHelper.add_element(utility_bill_scenarios, 'UtilityBillScenario') @@ -1227,7 +1227,7 @@ def to_doc(hpxml) # Populates the HPXML object(s) from the XML document. # # @param utility_bill_scenario [Oga::XML::Element] The current UtilityBillScenario XML element - # @return [void] + # @return [nil] def from_doc(utility_bill_scenario) return if utility_bill_scenario.nil? @@ -1265,7 +1265,7 @@ def from_doc(utility_bill_scenario) class UnavailablePeriods < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << UnavailablePeriod.new(@parent_object, **kwargs) end @@ -1273,7 +1273,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param hpxml [Oga::XML::Element] Root XML element of the HPXML document - # @return [void] + # @return [nil] def from_doc(hpxml) return if hpxml.nil? @@ -1297,7 +1297,7 @@ class UnavailablePeriod < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.header.unavailable_periods.delete(self) end @@ -1314,7 +1314,7 @@ def check_for_errors # Adds this object to the Oga XML document. # # @param hpxml [Oga::XML::Element] Root XML element of the HPXML document - # @return [void] + # @return [nil] def to_doc(hpxml) unavailable_periods = XMLHelper.create_elements_as_needed(hpxml, ['SoftwareInfo', 'extension', 'UnavailablePeriods']) unavailable_period = XMLHelper.add_element(unavailable_periods, 'UnavailablePeriod') @@ -1331,7 +1331,7 @@ def to_doc(hpxml) # Populates the HPXML object(s) from the XML document. # # @param unavailable_period [Oga::XML::Element] The current UnavailablePeriod XML element - # @return [void] + # @return [nil] def from_doc(unavailable_period) return if unavailable_period.nil? @@ -1350,7 +1350,7 @@ def from_doc(unavailable_period) class Buildings < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Building.new(@parent_object, **kwargs) end @@ -1358,7 +1358,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param hpxml [Oga::XML::Element] Root XML element of the HPXML document - # @return [void] + # @return [nil] def from_doc(hpxml) return if hpxml.nil? @@ -1457,7 +1457,7 @@ def initialize(*args, **kwargs) # Adds this object to the Oga XML document. # # @param hpxml_doc [Oga::XML::Document] HPXML object as an XML document - # @return [void] + # @return [nil] def to_doc(hpxml_doc) return if nil? @@ -1569,7 +1569,7 @@ def to_doc(hpxml_doc) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) if not building.nil? @building_id = HPXML::get_id(building, 'BuildingID') @@ -1997,7 +1997,7 @@ def inferred_conditioned_crawlspace_volume # Deletes any adiabatic sub-surfaces since EnergyPlus does not allow it. # - # @return [void] + # @return [nil] def delete_adiabatic_subsurfaces @doors.reverse_each do |door| next if door.wall.nil? @@ -2145,7 +2145,7 @@ def check_for_errors # surfaces (e.g., windows). # # @param surf_types_of_interest [Array] Subset of surface types (e.g., :roofs, :walls, etc.) to collapse - # @return [void] + # @return [nil] def collapse_enclosure_surfaces(surf_types_of_interest = nil) surf_types = { roofs: @roofs, walls: @walls, @@ -2267,7 +2267,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -2304,7 +2304,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -2329,7 +2329,7 @@ def from_doc(building) class NeighborBuildings < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << NeighborBuilding.new(@parent_object, **kwargs) end @@ -2337,7 +2337,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -2366,7 +2366,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -2381,7 +2381,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param neighbor_building [Oga::XML::Element] The current NeighborBuilding XML element - # @return [void] + # @return [nil] def from_doc(neighbor_building) return if neighbor_building.nil? @@ -2415,7 +2415,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -2433,7 +2433,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -2479,7 +2479,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -2502,7 +2502,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -2562,7 +2562,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -2611,7 +2611,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -2676,7 +2676,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -2697,7 +2697,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -2720,7 +2720,7 @@ def from_doc(building) class ClimateZoneIECCs < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << ClimateZoneIECC.new(@parent_object, **kwargs) end @@ -2728,7 +2728,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -2746,7 +2746,7 @@ class ClimateZoneIECC < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.climate_and_risk_zones.climate_zone_ieccs.delete(self) end @@ -2762,7 +2762,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param climate_and_risk_zones [Oga::XML::Element] Parent XML element - # @return [void] + # @return [nil] def to_doc(climate_and_risk_zones) climate_zone_iecc = XMLHelper.add_element(climate_and_risk_zones, 'ClimateZoneIECC') XMLHelper.add_element(climate_zone_iecc, 'Year', @year, :integer, @year_isdefaulted) unless @year.nil? @@ -2772,7 +2772,7 @@ def to_doc(climate_and_risk_zones) # Populates the HPXML object(s) from the XML document. # # @param climate_and_risk_zones [Oga::XML::Element] The current ClimateZoneIECC XML element - # @return [void] + # @return [nil] def from_doc(climate_zone_iecc) return if climate_zone_iecc.nil? @@ -2785,7 +2785,7 @@ def from_doc(climate_zone_iecc) class Zones < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Zone.new(@parent_object, **kwargs) end @@ -2793,7 +2793,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -2837,7 +2837,7 @@ def check_for_errors # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete hvac_systems.reverse_each do |hvac_system| hvac_system.attached_to_zone_idref = nil @@ -2967,7 +2967,7 @@ def subsurfaces # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -2985,7 +2985,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param zone [Oga::XML::Element] The current Zone XML element - # @return [void] + # @return [nil] def from_doc(zone) return if zone.nil? @@ -3000,7 +3000,7 @@ def from_doc(zone) class Spaces < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Space.new(@parent_object, **kwargs) end @@ -3008,7 +3008,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param zone [Oga::XML::Element] The current Zone XML element - # @return [void] + # @return [nil] def from_doc(zone) return if zone.nil? @@ -3041,7 +3041,7 @@ def check_for_errors # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete surfaces.reverse_each do |surface| surface.attached_to_space_idref = nil @@ -3136,7 +3136,7 @@ def subsurfaces # Adds this object to the provided Oga XML element. # # @param zone [Oga::XML::Element] Parent XML element - # @return [void] + # @return [nil] def to_doc(zone) return if nil? @@ -3160,7 +3160,7 @@ def to_doc(zone) # Populates the HPXML object(s) from the XML document. # # @param space [Oga::XML::Element] The current Space XML element - # @return [void] + # @return [nil] def from_doc(space) return if space.nil? @@ -3190,7 +3190,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -3201,7 +3201,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -3216,7 +3216,7 @@ def from_doc(building) class AirInfiltrationMeasurements < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << AirInfiltrationMeasurement.new(@parent_object, **kwargs) end @@ -3224,7 +3224,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -3260,7 +3260,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -3286,7 +3286,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param air_infiltration_measurement [Oga::XML::Element] The current AirInfiltrationMeasurement XML element - # @return [void] + # @return [nil] def from_doc(air_infiltration_measurement) return if air_infiltration_measurement.nil? @@ -3308,7 +3308,7 @@ def from_doc(air_infiltration_measurement) class Attics < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Attic.new(@parent_object, **kwargs) end @@ -3316,7 +3316,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -3399,7 +3399,7 @@ def to_location # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.attics.delete(self) end @@ -3419,7 +3419,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -3477,7 +3477,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param attic [Oga::XML::Element] The current Attic XML element - # @return [void] + # @return [nil] def from_doc(attic) return if attic.nil? @@ -3519,7 +3519,7 @@ def from_doc(attic) class Foundations < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Foundation.new(@parent_object, **kwargs) end @@ -3527,7 +3527,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -3668,7 +3668,7 @@ def area # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.foundations.delete(self) end @@ -3690,7 +3690,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -3765,7 +3765,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param foundation [Oga::XML::Element] The current Foundation XML element - # @return [void] + # @return [nil] def from_doc(foundation) return if foundation.nil? @@ -3821,7 +3821,7 @@ def from_doc(foundation) class Roofs < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Roof.new(@parent_object, **kwargs) end @@ -3829,7 +3829,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -3949,7 +3949,7 @@ def is_conditioned # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.roofs.delete(self) skylights.reverse_each do |skylight| @@ -3973,7 +3973,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -4041,7 +4041,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param roof [Oga::XML::Element] The current Roof XML element - # @return [void] + # @return [nil] def from_doc(roof) return if roof.nil? @@ -4091,7 +4091,7 @@ def from_doc(roof) class RimJoists < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << RimJoist.new(@parent_object, **kwargs) end @@ -4099,7 +4099,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -4201,7 +4201,7 @@ def net_area # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.rim_joists.delete(self) @parent_object.foundations.each do |foundation| @@ -4221,7 +4221,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -4279,7 +4279,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param rim_joist [Oga::XML::Element] The current RimJoist XML element - # @return [void] + # @return [nil] def from_doc(rim_joist) return if rim_joist.nil? @@ -4319,7 +4319,7 @@ def from_doc(rim_joist) class Walls < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Wall.new(@parent_object, **kwargs) end @@ -4327,7 +4327,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -4459,7 +4459,7 @@ def is_conditioned # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.walls.delete(self) windows.reverse_each do |window| @@ -4489,7 +4489,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -4565,7 +4565,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param wall [Oga::XML::Element] The current Wall XML element - # @return [void] + # @return [nil] def from_doc(wall) return if wall.nil? @@ -4620,7 +4620,7 @@ def from_doc(wall) class FoundationWalls < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << FoundationWall.new(@parent_object, **kwargs) end @@ -4628,7 +4628,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -4810,7 +4810,7 @@ def is_conditioned # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.foundation_walls.delete(self) windows.reverse_each do |window| @@ -4837,7 +4837,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -4901,7 +4901,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param foundation_wall [Oga::XML::Element] The current FoundationWall XML element - # @return [void] + # @return [nil] def from_doc(foundation_wall) return if foundation_wall.nil? @@ -4950,7 +4950,7 @@ def from_doc(foundation_wall) class Floors < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Floor.new(@parent_object, **kwargs) end @@ -4958,7 +4958,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -5102,7 +5102,7 @@ def is_conditioned # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.floors.delete(self) skylights.reverse_each do |skylight| @@ -5132,7 +5132,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -5199,7 +5199,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param floor [Oga::XML::Element] The current Floor XML element - # @return [void] + # @return [nil] def from_doc(floor) return if floor.nil? @@ -5245,7 +5245,7 @@ def from_doc(floor) class Slabs < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Slab.new(@parent_object, **kwargs) end @@ -5253,7 +5253,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -5356,7 +5356,7 @@ def connected_foundation_walls # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.slabs.delete(self) @parent_object.foundations.each do |foundation| @@ -5376,7 +5376,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -5432,7 +5432,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param slab [Oga::XML::Element] The current Slab XML element - # @return [void] + # @return [nil] def from_doc(slab) return if slab.nil? @@ -5476,7 +5476,7 @@ def from_doc(slab) class Windows < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Window.new(@parent_object, **kwargs) end @@ -5484,7 +5484,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -5577,7 +5577,7 @@ def is_conditioned # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.windows.delete(self) end @@ -5594,7 +5594,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -5664,7 +5664,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param window [Oga::XML::Element] The current Window XML element - # @return [void] + # @return [nil] def from_doc(window) return if window.nil? @@ -5705,7 +5705,7 @@ def from_doc(window) class Skylights < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Skylight.new(@parent_object, **kwargs) end @@ -5713,7 +5713,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -5822,7 +5822,7 @@ def is_conditioned # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.skylights.delete(self) end @@ -5840,7 +5840,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -5908,7 +5908,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param skylight [Oga::XML::Element] The current Skylight XML element - # @return [void] + # @return [nil] def from_doc(skylight) return if skylight.nil? @@ -5947,7 +5947,7 @@ def from_doc(skylight) class Doors < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Door.new(@parent_object, **kwargs) end @@ -5955,7 +5955,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -6028,7 +6028,7 @@ def is_conditioned # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.doors.delete(self) end @@ -6045,7 +6045,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -6066,7 +6066,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param door [Oga::XML::Element] The current Door XML element - # @return [void] + # @return [nil] def from_doc(door) return if door.nil? @@ -6097,7 +6097,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -6113,7 +6113,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -6146,7 +6146,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -6158,7 +6158,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -6174,7 +6174,7 @@ def from_doc(building) class HeatingSystems < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << HeatingSystem.new(@parent_object, **kwargs) end @@ -6182,7 +6182,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -6317,7 +6317,7 @@ def is_heat_pump_backup_system # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.heating_systems.delete(self) @parent_object.water_heating_systems.each do |water_heating_system| @@ -6341,7 +6341,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -6415,7 +6415,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param heating_system [Oga::XML::Element] The current HeatingSystem XML element - # @return [void] + # @return [nil] def from_doc(heating_system) return if heating_system.nil? @@ -6465,7 +6465,7 @@ def from_doc(heating_system) class CoolingSystems < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << CoolingSystem.new(@parent_object, **kwargs) end @@ -6473,7 +6473,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -6598,7 +6598,7 @@ def has_integrated_heating # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.cooling_systems.delete(self) @parent_object.water_heating_systems.each do |water_heating_system| @@ -6622,7 +6622,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -6706,7 +6706,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param cooling_system [Oga::XML::Element] The current CoolingSystem XML element - # @return [void] + # @return [nil] def from_doc(cooling_system) return if cooling_system.nil? @@ -6760,7 +6760,7 @@ def from_doc(cooling_system) class HeatPumps < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << HeatPump.new(@parent_object, **kwargs) end @@ -6768,7 +6768,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -6944,7 +6944,7 @@ def backup_system # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.heat_pumps.delete(self) @parent_object.water_heating_systems.each do |water_heating_system| @@ -6970,7 +6970,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -7097,7 +7097,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param heat_pump [Oga::XML::Element] The current HeatPump XML element - # @return [void] + # @return [nil] def from_doc(heat_pump) return if heat_pump.nil? @@ -7175,7 +7175,7 @@ def from_doc(heat_pump) class GeothermalLoops < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << GeothermalLoop.new(@parent_object, **kwargs) end @@ -7183,7 +7183,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -7232,7 +7232,7 @@ def heat_pump # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.geothermal_loops.delete(self) @parent_object.heat_pumps.each do |heat_pump| @@ -7254,7 +7254,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -7292,7 +7292,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param geothermal_loop [Oga::XML::Element] The current GeothermalLoop XML element - # @return [void] + # @return [nil] def from_doc(geothermal_loop) return if geothermal_loop.nil? @@ -7329,7 +7329,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -7340,7 +7340,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -7355,7 +7355,7 @@ def from_doc(building) class HVACControls < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << HVACControl.new(@parent_object, **kwargs) end @@ -7363,7 +7363,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -7402,7 +7402,7 @@ class HVACControl < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.hvac_controls.delete(self) end @@ -7420,7 +7420,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -7461,7 +7461,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param hvac_control [Oga::XML::Element] The current HVACControl XML element - # @return [void] + # @return [nil] def from_doc(hvac_control) return if hvac_control.nil? @@ -7495,7 +7495,7 @@ def from_doc(hvac_control) class HVACDistributions < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << HVACDistribution.new(@parent_object, **kwargs) end @@ -7503,7 +7503,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -7575,7 +7575,7 @@ def hvac_systems # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.hvac_distributions.delete(self) @parent_object.hvac_systems.each do |hvac_system| @@ -7605,7 +7605,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -7654,7 +7654,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param hvac_distribution [Oga::XML::Element] The current HVACDistribution XML element - # @return [void] + # @return [nil] def from_doc(hvac_distribution) return if hvac_distribution.nil? @@ -7689,7 +7689,7 @@ def from_doc(hvac_distribution) class DuctLeakageMeasurements < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << DuctLeakageMeasurement.new(@parent_object, **kwargs) end @@ -7697,7 +7697,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param hvac_distribution [Oga::XML::Element] The current HVACDistribution XML element - # @return [void] + # @return [nil] def from_doc(hvac_distribution) return if hvac_distribution.nil? @@ -7718,7 +7718,7 @@ class DuctLeakageMeasurement < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.hvac_distributions.each do |hvac_distribution| next unless hvac_distribution.duct_leakage_measurements.include? self @@ -7738,7 +7738,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param air_distribution [Oga::XML::Element] Parent XML element - # @return [void] + # @return [nil] def to_doc(air_distribution) duct_leakage_measurement_el = XMLHelper.add_element(air_distribution, 'DuctLeakageMeasurement') XMLHelper.add_element(duct_leakage_measurement_el, 'DuctType', @duct_type, :string) unless @duct_type.nil? @@ -7754,7 +7754,7 @@ def to_doc(air_distribution) # Populates the HPXML object(s) from the XML document. # # @param duct_leakage_measurement [Oga::XML::Element] The current DuctLeakageMeasurement XML element - # @return [void] + # @return [nil] def from_doc(duct_leakage_measurement) return if duct_leakage_measurement.nil? @@ -7770,7 +7770,7 @@ def from_doc(duct_leakage_measurement) class Ducts < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Duct.new(@parent_object, **kwargs) end @@ -7778,7 +7778,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param hvac_distribution [Oga::XML::Element] The current HVACDistribution XML element - # @return [void] + # @return [nil] def from_doc(hvac_distribution) return if hvac_distribution.nil? @@ -7806,7 +7806,7 @@ class Duct < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.hvac_distributions.each do |hvac_distribution| next unless hvac_distribution.ducts.include? self @@ -7826,7 +7826,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param air_distribution [Oga::XML::Element] Parent XML element - # @return [void] + # @return [nil] def to_doc(air_distribution) ducts_el = XMLHelper.add_element(air_distribution, 'Ducts') sys_id = XMLHelper.add_element(ducts_el, 'SystemIdentifier') @@ -7850,7 +7850,7 @@ def to_doc(air_distribution) # Populates the HPXML object(s) from the XML document. # # @param duct [Oga::XML::Element] The current Duct XML element - # @return [void] + # @return [nil] def from_doc(duct) return if duct.nil? @@ -7873,7 +7873,7 @@ def from_doc(duct) class VentilationFans < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << VentilationFan.new(@parent_object, **kwargs) end @@ -7881,7 +7881,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -8109,7 +8109,7 @@ def is_cfis_supplemental_fan # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.ventilation_fans.delete(self) end @@ -8128,7 +8128,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -8193,7 +8193,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param ventilation_fan [Oga::XML::Element] The current VentilationFan XML element - # @return [void] + # @return [nil] def from_doc(ventilation_fan) return if ventilation_fan.nil? @@ -8238,7 +8238,7 @@ def from_doc(ventilation_fan) class WaterHeatingSystems < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << WaterHeatingSystem.new(@parent_object, **kwargs) end @@ -8246,7 +8246,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -8302,7 +8302,7 @@ def related_hvac_system # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.water_heating_systems.delete(self) @parent_object.solar_thermal_systems.each do |solar_thermal_system| @@ -8334,7 +8334,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -8384,7 +8384,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param water_heating_system [Oga::XML::Element] The current WaterHeatingSystem XML element - # @return [void] + # @return [nil] def from_doc(water_heating_system) return if water_heating_system.nil? @@ -8420,7 +8420,7 @@ def from_doc(water_heating_system) class HotWaterDistributions < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << HotWaterDistribution.new(@parent_object, **kwargs) end @@ -8428,7 +8428,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -8463,7 +8463,7 @@ class HotWaterDistribution < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.hot_water_distributions.delete(self) end @@ -8479,7 +8479,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -8528,7 +8528,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param hot_water_distribution [Oga::XML::Element] The current HotWaterDistribution XML element - # @return [void] + # @return [nil] def from_doc(hot_water_distribution) return if hot_water_distribution.nil? @@ -8563,7 +8563,7 @@ def from_doc(hot_water_distribution) class WaterFixtures < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << WaterFixture.new(@parent_object, **kwargs) end @@ -8571,7 +8571,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -8592,7 +8592,7 @@ class WaterFixture < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.water_fixtures.delete(self) end @@ -8608,7 +8608,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -8625,7 +8625,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param water_fixture [Oga::XML::Element] The current WaterFixture XML element - # @return [void] + # @return [nil] def from_doc(water_fixture) return if water_fixture.nil? @@ -8656,7 +8656,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -8670,7 +8670,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -8688,7 +8688,7 @@ def from_doc(building) class SolarThermalSystems < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << SolarThermalSystem.new(@parent_object, **kwargs) end @@ -8696,7 +8696,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -8739,7 +8739,7 @@ def water_heating_system # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.solar_thermal_systems.delete(self) end @@ -8756,7 +8756,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -8784,7 +8784,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param solar_thermal_system [Oga::XML::Element] The current SolarThermalSystem XML element - # @return [void] + # @return [nil] def from_doc(solar_thermal_system) return if solar_thermal_system.nil? @@ -8808,7 +8808,7 @@ def from_doc(solar_thermal_system) class PVSystems < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << PVSystem.new(@parent_object, **kwargs) end @@ -8816,7 +8816,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -8860,7 +8860,7 @@ def inverter # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.pv_systems.delete(self) end @@ -8877,7 +8877,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -8906,7 +8906,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param pv_system [Oga::XML::Element] The current PVSystem XML element - # @return [void] + # @return [nil] def from_doc(pv_system) return if pv_system.nil? @@ -8931,7 +8931,7 @@ def from_doc(pv_system) class Inverters < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Inverter.new(@parent_object, **kwargs) end @@ -8939,7 +8939,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -8977,7 +8977,7 @@ def pv_systems # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.inverters.delete(self) end @@ -8994,7 +8994,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -9008,7 +9008,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param inverter [Oga::XML::Element] The current Inverter XML element - # @return [void] + # @return [nil] def from_doc(inverter) return if inverter.nil? @@ -9021,7 +9021,7 @@ def from_doc(inverter) class Batteries < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Battery.new(@parent_object, **kwargs) end @@ -9029,7 +9029,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -9058,7 +9058,7 @@ class Battery < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.batteries.delete(self) end @@ -9074,7 +9074,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -9115,7 +9115,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param battery [Oga::XML::Element] The current Battery XML element - # @return [void] + # @return [nil] def from_doc(battery) return if battery.nil? @@ -9139,7 +9139,7 @@ def from_doc(battery) class Generators < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Generator.new(@parent_object, **kwargs) end @@ -9147,7 +9147,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -9169,7 +9169,7 @@ class Generator < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.generators.delete(self) end @@ -9185,7 +9185,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -9203,7 +9203,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param generator [Oga::XML::Element] The current Generator XML element - # @return [void] + # @return [nil] def from_doc(generator) return if generator.nil? @@ -9220,7 +9220,7 @@ def from_doc(generator) class ClothesWashers < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << ClothesWasher.new(@parent_object, **kwargs) end @@ -9228,7 +9228,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -9291,7 +9291,7 @@ def hot_water_distribution # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.clothes_washers.delete(self) end @@ -9309,7 +9309,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -9345,7 +9345,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param clothes_washer [Oga::XML::Element] The current ClothesWasher XML element - # @return [void] + # @return [nil] def from_doc(clothes_washer) return if clothes_washer.nil? @@ -9375,7 +9375,7 @@ def from_doc(clothes_washer) class ClothesDryers < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << ClothesDryer.new(@parent_object, **kwargs) end @@ -9383,7 +9383,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -9414,7 +9414,7 @@ class ClothesDryer < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.clothes_dryers.delete(self) end @@ -9430,7 +9430,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -9457,7 +9457,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param clothes_dryer [Oga::XML::Element] The current ClothesDryer XML element - # @return [void] + # @return [nil] def from_doc(clothes_dryer) return if clothes_dryer.nil? @@ -9483,7 +9483,7 @@ def from_doc(clothes_dryer) class Dishwashers < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Dishwasher.new(@parent_object, **kwargs) end @@ -9491,7 +9491,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -9551,7 +9551,7 @@ def hot_water_distribution # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.dishwashers.delete(self) end @@ -9569,7 +9569,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -9602,7 +9602,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param dishwasher [Oga::XML::Element] The current Dishwasher XML element - # @return [void] + # @return [nil] def from_doc(dishwasher) return if dishwasher.nil? @@ -9629,7 +9629,7 @@ def from_doc(dishwasher) class Refrigerators < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Refrigerator.new(@parent_object, **kwargs) end @@ -9637,7 +9637,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -9663,7 +9663,7 @@ class Refrigerator < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.refrigerators.delete(self) end @@ -9679,7 +9679,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -9701,7 +9701,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param refrigerator [Oga::XML::Element] The current Refrigerator XML element - # @return [void] + # @return [nil] def from_doc(refrigerator) return if refrigerator.nil? @@ -9722,7 +9722,7 @@ def from_doc(refrigerator) class Freezers < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Freezer.new(@parent_object, **kwargs) end @@ -9730,7 +9730,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -9755,7 +9755,7 @@ class Freezer < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.freezers.delete(self) end @@ -9771,7 +9771,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -9792,7 +9792,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param freezer [Oga::XML::Element] The current Freezer XML element - # @return [void] + # @return [nil] def from_doc(freezer) return if freezer.nil? @@ -9812,7 +9812,7 @@ def from_doc(freezer) class Dehumidifiers < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Dehumidifier.new(@parent_object, **kwargs) end @@ -9820,7 +9820,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -9844,7 +9844,7 @@ class Dehumidifier < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.dehumidifiers.delete(self) end @@ -9860,7 +9860,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -9880,7 +9880,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param dehumidifier [Oga::XML::Element] The current Dehumidifier XML element - # @return [void] + # @return [nil] def from_doc(dehumidifier) return if dehumidifier.nil? @@ -9899,7 +9899,7 @@ def from_doc(dehumidifier) class CookingRanges < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << CookingRange.new(@parent_object, **kwargs) end @@ -9907,7 +9907,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -9931,7 +9931,7 @@ class CookingRange < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.cooking_ranges.delete(self) end @@ -9947,7 +9947,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -9967,7 +9967,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param cooking_range [Oga::XML::Element] The current CookingRange XML element - # @return [void] + # @return [nil] def from_doc(cooking_range) return if cooking_range.nil? @@ -9986,7 +9986,7 @@ def from_doc(cooking_range) class Ovens < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Oven.new(@parent_object, **kwargs) end @@ -9994,7 +9994,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -10012,7 +10012,7 @@ class Oven < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.ovens.delete(self) end @@ -10028,7 +10028,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -10042,7 +10042,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param oven [Oga::XML::Element] The current Oven XML element - # @return [void] + # @return [nil] def from_doc(oven) return if oven.nil? @@ -10055,7 +10055,7 @@ def from_doc(oven) class LightingGroups < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << LightingGroup.new(@parent_object, **kwargs) end @@ -10063,7 +10063,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -10084,7 +10084,7 @@ class LightingGroup < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.lighting_groups.delete(self) end @@ -10100,7 +10100,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -10124,7 +10124,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param lighting_group [Oga::XML::Element] The current LightingGroup XML element - # @return [void] + # @return [nil] def from_doc(lighting_group) return if lighting_group.nil? @@ -10140,7 +10140,7 @@ def from_doc(lighting_group) class CeilingFans < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << CeilingFan.new(@parent_object, **kwargs) end @@ -10148,7 +10148,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -10171,7 +10171,7 @@ class CeilingFan < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.ceiling_fans.delete(self) end @@ -10187,7 +10187,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -10210,7 +10210,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param ceiling_fan [Oga::XML::Element] The current CeilingFan XML element - # @return [void] + # @return [nil] def from_doc(ceiling_fan) @id = HPXML::get_id(ceiling_fan) @efficiency = XMLHelper.get_value(ceiling_fan, "Airflow[FanSpeed='medium']/Efficiency", :float) @@ -10258,7 +10258,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -10294,7 +10294,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -10332,7 +10332,7 @@ def from_doc(building) class Pools < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << Pool.new(@parent_object, **kwargs) end @@ -10340,7 +10340,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -10373,7 +10373,7 @@ class Pool < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.pools.delete(self) end @@ -10389,7 +10389,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -10444,7 +10444,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param pool [Oga::XML::Element] The current Pool XML element - # @return [void] + # @return [nil] def from_doc(pool) @id = HPXML::get_id(pool) @type = XMLHelper.get_value(pool, 'Type', :string) @@ -10476,7 +10476,7 @@ def from_doc(pool) class PermanentSpas < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << PermanentSpa.new(@parent_object, **kwargs) end @@ -10484,7 +10484,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -10517,7 +10517,7 @@ class PermanentSpa < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.permanent_spas.delete(self) end @@ -10533,7 +10533,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -10588,7 +10588,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param spa [Oga::XML::Element] The current Spa XML element - # @return [void] + # @return [nil] def from_doc(spa) @id = HPXML::get_id(spa) @type = XMLHelper.get_value(spa, 'Type', :string) @@ -10620,7 +10620,7 @@ def from_doc(spa) class PortableSpas < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << PortableSpa.new(@parent_object, **kwargs) end @@ -10628,7 +10628,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -10645,7 +10645,7 @@ class PortableSpa < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.portable_spas.delete(self) end @@ -10661,7 +10661,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -10674,7 +10674,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param spa [Oga::XML::Element] The current Spa XML element - # @return [void] + # @return [nil] def from_doc(spa) @id = HPXML::get_id(spa) end @@ -10684,7 +10684,7 @@ def from_doc(spa) class PlugLoads < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << PlugLoad.new(@parent_object, **kwargs) end @@ -10692,7 +10692,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -10717,7 +10717,7 @@ class PlugLoad < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.plug_loads.delete(self) end @@ -10733,7 +10733,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -10758,7 +10758,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param plug_load [Oga::XML::Element] The current PlugLoad XML element - # @return [void] + # @return [nil] def from_doc(plug_load) @id = HPXML::get_id(plug_load) @plug_load_type = XMLHelper.get_value(plug_load, 'PlugLoadType', :string) @@ -10776,7 +10776,7 @@ def from_doc(plug_load) class FuelLoads < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << FuelLoad.new(@parent_object, **kwargs) end @@ -10784,7 +10784,7 @@ def add(**kwargs) # Populates the HPXML object(s) from the XML document. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def from_doc(building) return if building.nil? @@ -10810,7 +10810,7 @@ class FuelLoad < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete @parent_object.fuel_loads.delete(self) end @@ -10826,7 +10826,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param building [Oga::XML::Element] The current Building XML element - # @return [void] + # @return [nil] def to_doc(building) return if nil? @@ -10852,7 +10852,7 @@ def to_doc(building) # Populates the HPXML object(s) from the XML document. # # @param fuel_load [Oga::XML::Element] The current FuelLoad XML element - # @return [void] + # @return [nil] def from_doc(fuel_load) @id = HPXML::get_id(fuel_load) @fuel_load_type = XMLHelper.get_value(fuel_load, 'FuelLoadType', :string) @@ -10871,7 +10871,7 @@ def from_doc(fuel_load) class CoolingDetailedPerformanceData < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << CoolingPerformanceDataPoint.new(@parent_object, **kwargs) end @@ -10896,7 +10896,7 @@ def check_for_errors # Populates the HPXML object(s) from the XML document. # # @param hvac_system [Oga::XML::Element] The current HVAC system XML element - # @return [void] + # @return [nil] def from_doc(hvac_system) return if hvac_system.nil? @@ -10922,7 +10922,7 @@ class CoolingPerformanceDataPoint < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete (@parent_object.cooling_systems + @parent_object.heat_pumps).each do |cooling_system| cooling_system.cooling_detailed_performance_data.delete(self) @@ -10940,7 +10940,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param hvac_system [Oga::XML::Element] Parent XML element - # @return [void] + # @return [nil] def to_doc(hvac_system) detailed_performance_data = XMLHelper.create_elements_as_needed(hvac_system, ['CoolingDetailedPerformanceData']) performance_data_point = XMLHelper.add_element(detailed_performance_data, 'PerformanceDataPoint') @@ -10961,7 +10961,7 @@ def to_doc(hvac_system) # Populates the HPXML object(s) from the XML document. # # @param performance_data_point [Oga::XML::Element] The current CoolingPerformanceDataPoint XML element - # @return [void] + # @return [nil] def from_doc(performance_data_point) return if performance_data_point.nil? @@ -10979,7 +10979,7 @@ def from_doc(performance_data_point) class HeatingDetailedPerformanceData < BaseArrayElement # Adds a new object, with the specified keyword arguments, to the array. # - # @return [void] + # @return [nil] def add(**kwargs) self << HeatingPerformanceDataPoint.new(@parent_object, **kwargs) end @@ -11004,7 +11004,7 @@ def check_for_errors # Populates the HPXML object(s) from the XML document. # # @param hvac_system [Oga::XML::Element] The current HVAC system XML element - # @return [void] + # @return [nil] def from_doc(hvac_system) return if hvac_system.nil? @@ -11029,7 +11029,7 @@ class HeatingPerformanceDataPoint < BaseElement # Deletes the current object from the array. # - # @return [void] + # @return [nil] def delete (@parent_object.heating_systems + @parent_object.heat_pumps).each do |heating_system| heating_system.cooling_detailed_performance_data.delete(self) @@ -11047,7 +11047,7 @@ def check_for_errors # Adds this object to the provided Oga XML element. # # @param hvac_system [Oga::XML::Element] Parent XML element - # @return [void] + # @return [nil] def to_doc(hvac_system) detailed_performance_data = XMLHelper.create_elements_as_needed(hvac_system, ['HeatingDetailedPerformanceData']) performance_data_point = XMLHelper.add_element(detailed_performance_data, 'PerformanceDataPoint') @@ -11067,7 +11067,7 @@ def to_doc(hvac_system) # Populates the HPXML object(s) from the XML document. # # @param performance_data_point [Oga::XML::Element] The current HeatingPerformanceDataPoint XML element - # @return [void] + # @return [nil] def from_doc(performance_data_point) return if performance_data_point.nil? @@ -11297,7 +11297,7 @@ def self.check_dates(use_case, begin_month, begin_day, end_month, end_day) # # @param hpxml_object [HPXML::XXX] The Zone/Space/HVACPlant object # @param hpxml_element [Oga::XML::Element] The Zone/Space/HVACPlant XML element - # @return [void] + # @return [nil] def self.design_loads_to_doc(hpxml_object, hpxml_element) { HDL_ATTRS => 'Heating', CDL_SENS_ATTRS => 'CoolingSensible', @@ -11321,7 +11321,7 @@ def self.design_loads_to_doc(hpxml_object, hpxml_element) # # @param hpxml_object [HPXML::XXX] The Zone/Space/HVACPlant object # @param hpxml_element [Oga::XML::Element] The Zone/Space/HVACPlant XML element - # @return [void] + # @return [nil] def self.design_loads_from_doc(hpxml_object, hpxml_element) { HDL_ATTRS => 'Heating', CDL_SENS_ATTRS => 'CoolingSensible', diff --git a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb index b82f256b18..1a0044e0ed 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +++ b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb @@ -26,7 +26,7 @@ module HPXMLDefaults # @param convert_shared_systems [Boolean] Whether to convert shared systems to equivalent in-unit systems per ANSI 301 # @param design_load_details_output_file_path [String] Detailed HVAC sizing output file path # @param output_format [String] Detailed HVAC sizing output file format ('csv', 'json', or 'msgpack') - # @return [void] + # @return [nil] def self.apply(runner, hpxml, hpxml_bldg, eri_version, weather, schedules_file: nil, convert_shared_systems: true, design_load_details_output_file_path: nil, output_format: 'csv') cfa = hpxml_bldg.building_construction.conditioned_floor_area @@ -146,7 +146,7 @@ def self.unspin_azimuth(azimuth) # @param hpxml [HPXML] HPXML object # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param cfa [Double] Conditioned floor area in the dwelling unit (ft2) - # @return [void] + # @return [nil] def self.add_zones_spaces_if_needed(hpxml, hpxml_bldg, cfa) bldg_idx = hpxml.buildings.index(hpxml_bldg) if hpxml_bldg.conditioned_zones.empty? @@ -171,7 +171,7 @@ def self.add_zones_spaces_if_needed(hpxml, hpxml_bldg, cfa) # @param hpxml_header [HPXML::Header] HPXML Header object (one per HPXML file) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param weather [WeatherFile] Weather object containing EPW information - # @return [void] + # @return [nil] def self.apply_header(hpxml_header, hpxml_bldg, weather) if hpxml_header.timestep.nil? hpxml_header.timestep = 60 @@ -239,7 +239,7 @@ def self.apply_header(hpxml_header, hpxml_bldg, weather) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param weather [WeatherFile] Weather object containing EPW information # @param nbeds [Integer] Number of bedrooms in the dwelling unit - # @return [void] + # @return [nil] def self.apply_building_header_sizing(runner, hpxml_bldg, weather, nbeds) if hpxml_bldg.header.manualj_heating_design_temp.nil? hpxml_bldg.header.manualj_heating_design_temp = weather.design.HeatingDrybulb.round(2) @@ -358,7 +358,7 @@ def self.apply_building_header_sizing(runner, hpxml_bldg, weather, nbeds) # @param hpxml_header [HPXML::Header] HPXML Header object (one per HPXML file) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param weather [WeatherFile] Weather object containing EPW information - # @return [void] + # @return [nil] def self.apply_building_header(hpxml_header, hpxml_bldg, weather) if hpxml_bldg.header.natvent_days_per_week.nil? hpxml_bldg.header.natvent_days_per_week = 3 @@ -403,7 +403,7 @@ def self.apply_building_header(hpxml_header, hpxml_bldg, weather) # # @param hpxml_header [HPXML::Header] HPXML Header object (one per HPXML file) # @param has_fuel [Hash] Map of HPXML fuel type => boolean of whether fuel type is used - # @return [void] + # @return [nil] def self.apply_emissions_scenarios(hpxml_header, has_fuel) hpxml_header.emissions_scenarios.each do |scenario| # Electricity @@ -486,7 +486,7 @@ def self.apply_emissions_scenarios(hpxml_header, has_fuel) # @param hpxml_header [HPXML::Header] HPXML Header object (one per HPXML file) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param has_fuel [Hash] Map of HPXML fuel type => boolean of whether fuel type is used - # @return [void] + # @return [nil] def self.apply_utility_bill_scenarios(runner, hpxml_header, hpxml_bldg, has_fuel) hpxml_header.utility_bill_scenarios.each do |scenario| if scenario.elec_tariff_filepath.nil? @@ -602,7 +602,7 @@ def self.apply_utility_bill_scenarios(runner, hpxml_header, hpxml_bldg, has_fuel # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param weather [WeatherFile] Weather object containing EPW information - # @return [void] + # @return [nil] def self.apply_building(hpxml_bldg, weather) if hpxml_bldg.site.soil_type.nil? && hpxml_bldg.site.ground_conductivity.nil? && hpxml_bldg.site.ground_diffusivity.nil? hpxml_bldg.site.soil_type = HPXML::SiteSoilTypeUnknown @@ -744,7 +744,7 @@ def self.apply_building(hpxml_bldg, weather) # Assigns default values for omitted optional inputs in the HPXML::Site object # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_site(hpxml_bldg) if hpxml_bldg.site.site_type.nil? hpxml_bldg.site.site_type = HPXML::SiteTypeSuburban @@ -771,7 +771,7 @@ def self.apply_site(hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::NeighborBuildings objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_neighbor_buildings(hpxml_bldg) hpxml_bldg.neighbor_buildings.each do |neighbor_building| if neighbor_building.azimuth.nil? @@ -789,7 +789,7 @@ def self.apply_neighbor_buildings(hpxml_bldg) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files - # @return [void] + # @return [nil] def self.apply_building_occupancy(hpxml_bldg, schedules_file) if hpxml_bldg.building_occupancy.number_of_residents.nil? hpxml_bldg.building_construction.additional_properties.adjusted_number_of_bedrooms = hpxml_bldg.building_construction.number_of_bedrooms @@ -835,7 +835,7 @@ def self.apply_building_occupancy(hpxml_bldg, schedules_file) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param cfa [Double] Conditioned floor area in the dwelling unit (ft2) # @param nbeds [Integer] Number of bedrooms in the dwelling unit - # @return [void] + # @return [nil] def self.apply_building_construction(hpxml_bldg, cfa, nbeds) cond_crawl_volume = hpxml_bldg.inferred_conditioned_crawlspace_volume() if hpxml_bldg.building_construction.average_ceiling_height.nil? @@ -860,7 +860,7 @@ def self.apply_building_construction(hpxml_bldg, cfa, nbeds) # Assigns default values for omitted optional inputs in the HPXML::Zones and HPXML::Spaces objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_zone_spaces(hpxml_bldg) hpxml_bldg.conditioned_spaces.each do |space| if space.fenestration_load_procedure.nil? @@ -874,7 +874,7 @@ def self.apply_zone_spaces(hpxml_bldg) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param weather [WeatherFile] Weather object containing EPW information - # @return [void] + # @return [nil] def self.apply_climate_and_risk_zones(hpxml_bldg, weather) if (not weather.nil?) && hpxml_bldg.climate_and_risk_zones.climate_zone_ieccs.empty? zone = Location.get_climate_zone_iecc(weather.header.WMONumber) @@ -890,7 +890,7 @@ def self.apply_climate_and_risk_zones(hpxml_bldg, weather) # Assigns default values for omitted optional inputs in the HPXML::Attic objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_attics(hpxml_bldg) if hpxml_bldg.has_location(HPXML::LocationAtticUnvented) unvented_attics = hpxml_bldg.attics.select { |a| a.attic_type == HPXML::AtticTypeUnvented } @@ -935,7 +935,7 @@ def self.apply_attics(hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::Foundation objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_foundations(hpxml_bldg) if hpxml_bldg.has_location(HPXML::LocationCrawlspaceUnvented) unvented_crawls = hpxml_bldg.foundations.select { |f| f.foundation_type == HPXML::FoundationTypeCrawlspaceUnvented } @@ -1015,7 +1015,7 @@ def self.apply_foundations(hpxml_bldg) # Note: This needs to be called after we have applied defaults for ducts. # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_infiltration(hpxml_bldg) infil_measurement = Airflow.get_infiltration_measurement_of_interest(hpxml_bldg) if infil_measurement.infiltration_volume.nil? @@ -1108,7 +1108,7 @@ def self.apply_infiltration(hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::Roof objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_roofs(hpxml_bldg) hpxml_bldg.roofs.each do |roof| if roof.azimuth.nil? @@ -1168,7 +1168,7 @@ def self.apply_roofs(hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::RimJoist objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_rim_joists(hpxml_bldg) hpxml_bldg.rim_joists.each do |rim_joist| if rim_joist.azimuth.nil? @@ -1207,7 +1207,7 @@ def self.apply_rim_joists(hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::Wall objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_walls(hpxml_bldg) hpxml_bldg.walls.each do |wall| if wall.azimuth.nil? @@ -1270,7 +1270,7 @@ def self.apply_walls(hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::FoundationWall objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_foundation_walls(hpxml_bldg) hpxml_bldg.foundation_walls.each do |foundation_wall| if foundation_wall.type.nil? @@ -1330,7 +1330,7 @@ def self.apply_foundation_walls(hpxml_bldg) # # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_floors(runner, hpxml_bldg) hpxml_bldg.floors.each do |floor| if floor.floor_or_ceiling.nil? @@ -1388,7 +1388,7 @@ def self.apply_floors(runner, hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::Slab objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_slabs(hpxml_bldg) hpxml_bldg.slabs.each do |slab| if slab.thickness.nil? @@ -1426,7 +1426,7 @@ def self.apply_slabs(hpxml_bldg) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param eri_version [String] Version of the ANSI/RESNET/ICC 301 Standard to use for equations/assumptions - # @return [void] + # @return [nil] def self.apply_windows(hpxml_bldg, eri_version) hpxml_bldg.windows.each do |window| if window.ufactor.nil? || window.shgc.nil? @@ -1506,7 +1506,7 @@ def self.apply_windows(hpxml_bldg, eri_version) # Assigns default values for omitted optional inputs in the HPXML::Skylight objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_skylights(hpxml_bldg) hpxml_bldg.skylights.each do |skylight| if skylight.azimuth.nil? @@ -1581,7 +1581,7 @@ def self.apply_skylights(hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::Door objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_doors(hpxml_bldg) hpxml_bldg.doors.each do |door| if door.azimuth.nil? @@ -1608,7 +1608,7 @@ def self.apply_doors(hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::PartitionWallMass object # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_partition_wall_mass(hpxml_bldg) if hpxml_bldg.partition_wall_mass.area_fraction.nil? hpxml_bldg.partition_wall_mass.area_fraction = 1.0 @@ -1627,7 +1627,7 @@ def self.apply_partition_wall_mass(hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::FurnitureMass object # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_furniture_mass(hpxml_bldg) if hpxml_bldg.furniture_mass.area_fraction.nil? hpxml_bldg.furniture_mass.area_fraction = 0.4 @@ -1647,7 +1647,7 @@ def self.apply_furniture_mass(hpxml_bldg) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param weather [WeatherFile] Weather object containing EPW information # @param convert_shared_systems [Boolean] Whether to convert shared systems to equivalent in-unit systems per ANSI 301 - # @return [void] + # @return [nil] def self.apply_hvac(runner, hpxml, hpxml_bldg, weather, convert_shared_systems) if convert_shared_systems HVAC.apply_shared_systems(hpxml_bldg) @@ -2171,7 +2171,7 @@ def self.apply_hvac(runner, hpxml, hpxml_bldg, weather, convert_shared_systems) # Currently these objects are only used for variable-speed air source systems. # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_detailed_performance_data_for_var_speed_systems(hpxml_bldg) (hpxml_bldg.cooling_systems + hpxml_bldg.heat_pumps).each do |hvac_system| is_hp = hvac_system.is_a? HPXML::HeatPump @@ -2242,7 +2242,7 @@ def self.apply_detailed_performance_data_for_var_speed_systems(hpxml_bldg) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files # @param eri_version [String] Version of the ANSI/RESNET/ICC 301 Standard to use for equations/assumptions - # @return [void] + # @return [nil] def self.apply_hvac_control(hpxml_bldg, schedules_file, eri_version) hpxml_bldg.hvac_controls.each do |hvac_control| schedules_file_includes_heating_setpoint_temp = (schedules_file.nil? ? false : schedules_file.includes_col_name(SchedulesFile::Columns[:HeatingSetpoint].name)) @@ -2310,7 +2310,7 @@ def self.apply_hvac_control(hpxml_bldg, schedules_file, eri_version) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param ncfl [Double] Total number of conditioned floors in the dwelling unit # @param ncfl_ag [Double] Number of conditioned floors above grade in the dwelling unit - # @return [void] + # @return [nil] def self.apply_hvac_distribution(hpxml_bldg, ncfl, ncfl_ag) hpxml_bldg.hvac_distributions.each do |hvac_distribution| next unless hvac_distribution.distribution_system_type == HPXML::HVACDistributionTypeAir @@ -2461,7 +2461,7 @@ def self.apply_hvac_distribution(hpxml_bldg, ncfl, ncfl_ag) # Note: This needs to be called after we have applied defaults for ducts. # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_hvac_location(hpxml_bldg) hpxml_bldg.hvac_systems.each do |hvac_system| next unless hvac_system.location.nil? @@ -2527,7 +2527,7 @@ def self.apply_hvac_location(hpxml_bldg) # @param cfa [Double] Conditioned floor area in the dwelling unit (ft2) # @param nbeds [Integer] Number of bedrooms in the dwelling unit # @param eri_version [String] Version of the ANSI/RESNET/ICC 301 Standard to use for equations/assumptions - # @return [void] + # @return [nil] def self.apply_ventilation_fans(hpxml_bldg, weather, cfa, nbeds, eri_version) # Default mech vent systems hpxml_bldg.ventilation_fans.each do |vent_fan| @@ -2641,7 +2641,7 @@ def self.apply_ventilation_fans(hpxml_bldg, weather, cfa, nbeds, eri_version) # @param nbeds [Integer] Number of bedrooms in the dwelling unit # @param eri_version [String] Version of the ANSI/RESNET/ICC 301 Standard to use for equations/assumptions # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files - # @return [void] + # @return [nil] def self.apply_water_heaters(hpxml_bldg, nbeds, eri_version, schedules_file) hpxml_bldg.water_heating_systems.each do |water_heating_system| if water_heating_system.is_shared_system.nil? @@ -2714,7 +2714,7 @@ def self.apply_water_heaters(hpxml_bldg, nbeds, eri_version, schedules_file) # Note: This needs to be called after we have applied defaults for HVAC/DHW systems. # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_flue_or_chimney(hpxml_bldg) if hpxml_bldg.air_infiltration.has_flue_or_chimney_in_conditioned_space.nil? hpxml_bldg.air_infiltration.has_flue_or_chimney_in_conditioned_space = get_default_flue_or_chimney_in_conditioned_space(hpxml_bldg) @@ -2728,7 +2728,7 @@ def self.apply_flue_or_chimney(hpxml_bldg) # @param cfa [Double] Conditioned floor area in the dwelling unit (ft2) # @param ncfl [Double] Total number of conditioned floors in the dwelling unit # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files - # @return [void] + # @return [nil] def self.apply_hot_water_distribution(hpxml_bldg, cfa, ncfl, schedules_file) return if hpxml_bldg.hot_water_distributions.size == 0 @@ -2810,7 +2810,7 @@ def self.apply_hot_water_distribution(hpxml_bldg, cfa, ncfl, schedules_file) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files - # @return [void] + # @return [nil] def self.apply_water_fixtures(hpxml_bldg, schedules_file) return if hpxml_bldg.hot_water_distributions.size == 0 @@ -2845,7 +2845,7 @@ def self.apply_water_fixtures(hpxml_bldg, schedules_file) # Assigns default values for omitted optional inputs in the HPXML::SolarThermalSystem objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_solar_thermal_systems(hpxml_bldg) hpxml_bldg.solar_thermal_systems.each do |solar_thermal_system| if solar_thermal_system.collector_azimuth.nil? @@ -2866,7 +2866,7 @@ def self.apply_solar_thermal_systems(hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::PVSystem objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_pv_systems(hpxml_bldg) hpxml_bldg.pv_systems.each do |pv_system| if pv_system.array_azimuth.nil? @@ -2909,7 +2909,7 @@ def self.apply_pv_systems(hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::Generator objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_generators(hpxml_bldg) hpxml_bldg.generators.each do |generator| if generator.is_shared_system.nil? @@ -2922,7 +2922,7 @@ def self.apply_generators(hpxml_bldg) # Assigns default values for omitted optional inputs in the HPXML::Battery objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_batteries(hpxml_bldg) default_values = Battery.get_battery_default_values(hpxml_bldg.has_location(HPXML::LocationGarage)) hpxml_bldg.batteries.each do |battery| @@ -2991,7 +2991,7 @@ def self.apply_batteries(hpxml_bldg) # @param nbeds [Integer] Number of bedrooms in the dwelling unit # @param eri_version [String] Version of the ANSI/RESNET/ICC 301 Standard to use for equations/assumptions # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files - # @return [void] + # @return [nil] def self.apply_appliances(hpxml_bldg, nbeds, eri_version, schedules_file) # Default clothes washer if hpxml_bldg.clothes_washers.size > 0 @@ -3298,7 +3298,7 @@ def self.apply_appliances(hpxml_bldg, nbeds, eri_version, schedules_file) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files - # @return [void] + # @return [nil] def self.apply_lighting(hpxml_bldg, schedules_file) return if hpxml_bldg.lighting_groups.empty? @@ -3395,7 +3395,7 @@ def self.apply_lighting(hpxml_bldg, schedules_file) # @param nbeds [Integer] Number of bedrooms in the dwelling unit # @param weather [WeatherFile] Weather object containing EPW information # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files - # @return [void] + # @return [nil] def self.apply_ceiling_fans(hpxml_bldg, nbeds, weather, schedules_file) return if hpxml_bldg.ceiling_fans.size == 0 @@ -3428,7 +3428,7 @@ def self.apply_ceiling_fans(hpxml_bldg, nbeds, weather, schedules_file) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param cfa [Double] Conditioned floor area in the dwelling unit (ft2) # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files - # @return [void] + # @return [nil] def self.apply_pools_and_permanent_spas(hpxml_bldg, cfa, schedules_file) nbeds = hpxml_bldg.building_construction.additional_properties.adjusted_number_of_bedrooms hpxml_bldg.pools.each do |pool| @@ -3549,7 +3549,7 @@ def self.apply_pools_and_permanent_spas(hpxml_bldg, cfa, schedules_file) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param cfa [Double] Conditioned floor area in the dwelling unit (ft2) # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files - # @return [void] + # @return [nil] def self.apply_plug_loads(hpxml_bldg, cfa, schedules_file) nbeds = hpxml_bldg.building_construction.additional_properties.adjusted_number_of_bedrooms hpxml_bldg.plug_loads.each do |plug_load| @@ -3674,7 +3674,7 @@ def self.apply_plug_loads(hpxml_bldg, cfa, schedules_file) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param cfa [Double] Conditioned floor area in the dwelling unit (ft2) # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files - # @return [void] + # @return [nil] def self.apply_fuel_loads(hpxml_bldg, cfa, schedules_file) nbeds = hpxml_bldg.building_construction.additional_properties.adjusted_number_of_bedrooms hpxml_bldg.fuel_loads.each do |fuel_load| @@ -3771,7 +3771,7 @@ def self.apply_fuel_loads(hpxml_bldg, cfa, schedules_file) # @param weather [WeatherFile] Weather object containing EPW information # @param output_format [String] Detailed output file format ('csv', 'json', or 'msgpack') # @param design_load_details_output_file_path [String] Detailed HVAC sizing output file path - # @return [void] + # @return [nil] def self.apply_hvac_sizing(runner, hpxml_bldg, weather, output_format, design_load_details_output_file_path) hvac_systems = HVAC.get_hpxml_hvac_systems(hpxml_bldg) HVACSizing.calculate(runner, weather, hpxml_bldg, hvac_systems, output_format: output_format, output_file_path: design_load_details_output_file_path) @@ -3944,7 +3944,7 @@ def self.get_default_state_code(state_code, weather) # Removes any zones/spaces that were automatically created in the add_zones_spaces_if_needed method. # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.cleanup_zones_spaces(hpxml_bldg) auto_space = hpxml_bldg.conditioned_spaces.find { |space| space.id.start_with? Constants.AutomaticallyAdded } auto_space.delete if not auto_space.nil? diff --git a/HPXMLtoOpenStudio/resources/hvac.rb b/HPXMLtoOpenStudio/resources/hvac.rb index f0e0d2c769..7adf1bd5df 100644 --- a/HPXMLtoOpenStudio/resources/hvac.rb +++ b/HPXMLtoOpenStudio/resources/hvac.rb @@ -3416,7 +3416,7 @@ def self.get_supp_coil_avail_sch_actuator(model, htg_supp_coil) # @param htg_coil [OpenStudio::Model::CoilHeatingDXSingleSpeed or OpenStudio::Model::CoilHeatingDXMultiSpeed] OpenStudio Heating Coil object # @param is_onoff_thermostat_ddb [Boolean] Whether to apply on off thermostat deadband # @param cooling_system [HPXML::CoolingSystem or HPXML::HeatPump] HPXML Cooling System or HPXML Heat Pump object - # @return [void] + # @return [nil] def self.apply_supp_coil_EMS_for_ddb_thermostat(model, htg_supp_coil, control_zone, htg_coil, is_onoff_thermostat_ddb, cooling_system) return if htg_supp_coil.nil? return unless cooling_system.compressor_type == HPXML::HVACCompressorTypeSingleStage @@ -3509,7 +3509,7 @@ def self.apply_supp_coil_EMS_for_ddb_thermostat(model, htg_supp_coil, control_zo # @param is_cooling [Boolean] True if apply to cooling system # @param cap_fff_curve [OpenStudio::Model::CurveQuadratic] OpenStudio CurveQuadratic object for heat pump capacity function of air flow rates # @param eir_fff_curve [OpenStudio::Model::CurveQuadratic] OpenStudio CurveQuadratic object for heat pump eir function of air flow rates - # @return [void] + # @return [nil] def self.apply_capacity_degradation_EMS(model, system_ap, coil_name, is_cooling, cap_fff_curve, eir_fff_curve) # Note: Currently only available in 1 min time step if is_cooling @@ -3624,7 +3624,7 @@ def self.apply_capacity_degradation_EMS(model, system_ap, coil_name, is_cooling, # @param control_zone [OpenStudio::Model::ThermalZone] Conditioned space thermal zone # @param is_onoff_thermostat_ddb [Boolean] Whether to apply on off thermostat deadband # @param cooling_system [HPXML::CoolingSystem or HPXML::HeatPump] HPXML Cooling System or HPXML Heat Pump object - # @return [void] + # @return [nil] def self.apply_two_speed_realistic_staging_EMS(model, unitary_system, htg_supp_coil, control_zone, is_onoff_thermostat_ddb, cooling_system) # Note: Currently only available in 1 min time step return unless is_onoff_thermostat_ddb @@ -3754,7 +3754,7 @@ def self.apply_two_speed_realistic_staging_EMS(model, unitary_system, htg_supp_c # @param clg_coil [OpenStudio::Model::CoilCoolingDXMultiSpeed] OpenStudio MultiStage Cooling Coil object # @param htg_coil [OpenStudio::Model::CoilHeatingDXMultiSpeed] OpenStudio MultiStage Heating Coil object # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files - # @return [void] + # @return [nil] def self.apply_max_power_EMS(model, runner, air_loop_unitary, control_zone, heating_system, cooling_system, htg_supp_coil, clg_coil, htg_coil, schedules_file) return if schedules_file.nil? return if clg_coil.nil? && htg_coil.nil? @@ -4010,7 +4010,7 @@ def self.apply_max_power_EMS(model, runner, air_loop_unitary, control_zone, heat # @param htg_supp_coil [OpenStudio::Model::CoilHeatingElectric or CoilHeatingElectricMultiStage] OpenStudio Supplemental Heating Coil object # @param control_zone [OpenStudio::Model::ThermalZone] Conditioned space thermal zone # @param htg_coil [OpenStudio::Model::CoilHeatingDXSingleSpeed or OpenStudio::Model::CoilHeatingDXMultiSpeed] OpenStudio Heating Coil object - # @return [void] + # @return [nil] def self.add_backup_staging_EMS(model, unitary_system, htg_supp_coil, control_zone, htg_coil) return unless htg_supp_coil.is_a? OpenStudio::Model::CoilHeatingElectricMultiStage diff --git a/HPXMLtoOpenStudio/resources/hvac_sizing.rb b/HPXMLtoOpenStudio/resources/hvac_sizing.rb index 7d293fc78a..047b669f5e 100644 --- a/HPXMLtoOpenStudio/resources/hvac_sizing.rb +++ b/HPXMLtoOpenStudio/resources/hvac_sizing.rb @@ -156,7 +156,7 @@ def self.is_system_to_skip(hvac_heating, hvac_cooling, zone) # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param hvac_systems [Array] List of HPXML HVAC (heating and/or cooling) systems - # @return [void] + # @return [nil] def self.check_for_errors(hpxml_bldg, hvac_systems) # Check all surfaces adjacent to conditioned space (and not adiabatic) are # not attached to spaces of unconditioned zones. @@ -189,7 +189,7 @@ def self.check_for_errors(hpxml_bldg, hvac_systems) # @param mj [MJValues] Object with a collection of misc Manual J values # @param weather [WeatherFile] Weather object containing EPW information # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.process_site_calcs_and_design_temps(mj, weather, hpxml_bldg) # CLTD adjustments based on daily temperature range mj.daily_range_temp_adjust = [4, 0, -5] @@ -588,7 +588,7 @@ def self.init_loads(hpxml_bldg) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param all_zone_loads [Hash] Map of HPXML::Zones => DesignLoadValues object # @param all_space_loads [Hash] Map of HPXML::Spaces => DesignLoadValues object - # @return [void] + # @return [nil] def self.process_load_windows_skylights(mj, hpxml_bldg, all_zone_loads, all_space_loads) # Average cooling load factors (CLF) for windows/skylights WITHOUT internal shading (MJ8 Table 3D-3) clf_avg_nois = [0.24, 0.35, 0.38, 0.4, 0.48, 0.4, 0.38, 0.35, 0.24] @@ -959,7 +959,7 @@ def self.calculate_aed_excursion(afl_hr) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param all_zone_loads [Hash] Map of HPXML::Zones => DesignLoadValues object # @param all_space_loads [Hash] Map of HPXML::Spaces => DesignLoadValues object - # @return [void] + # @return [nil] def self.process_load_doors(mj, hpxml_bldg, all_zone_loads, all_space_loads) # CLTD values derived from Table 4A Construction 11 table. if mj.daily_range_num == 0 @@ -1007,7 +1007,7 @@ def self.process_load_doors(mj, hpxml_bldg, all_zone_loads, all_space_loads) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param all_zone_loads [Hash] Map of HPXML::Zones => DesignLoadValues object # @param all_space_loads [Hash] Map of HPXML::Spaces => DesignLoadValues object - # @return [void] + # @return [nil] def self.process_load_walls(mj, hpxml_bldg, all_zone_loads, all_space_loads) # Above-Grade Wall Area (hpxml_bldg.walls + hpxml_bldg.rim_joists + hpxml_bldg.foundation_walls).each do |wall| @@ -1132,7 +1132,7 @@ def self.process_load_walls(mj, hpxml_bldg, all_zone_loads, all_space_loads) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param all_zone_loads [Hash] Map of HPXML::Zones => DesignLoadValues object # @param all_space_loads [Hash] Map of HPXML::Spaces => DesignLoadValues object - # @return [void] + # @return [nil] def self.process_load_roofs(mj, hpxml_bldg, all_zone_loads, all_space_loads) hpxml_bldg.roofs.each do |roof| next unless roof.is_thermal_boundary @@ -1201,7 +1201,7 @@ def self.process_load_roofs(mj, hpxml_bldg, all_zone_loads, all_space_loads) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param all_zone_loads [Hash] Map of HPXML::Zones => DesignLoadValues object # @param all_space_loads [Hash] Map of HPXML::Spaces => DesignLoadValues object - # @return [void] + # @return [nil] def self.process_load_ceilings(mj, hpxml_bldg, all_zone_loads, all_space_loads) hpxml_bldg.floors.each do |floor| next unless floor.is_ceiling @@ -1240,7 +1240,7 @@ def self.process_load_ceilings(mj, hpxml_bldg, all_zone_loads, all_space_loads) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param all_zone_loads [Hash] Map of HPXML::Zones => DesignLoadValues object # @param all_space_loads [Hash] Map of HPXML::Spaces => DesignLoadValues object - # @return [void] + # @return [nil] def self.process_load_floors(mj, hpxml_bldg, all_zone_loads, all_space_loads) hpxml_bldg.floors.each do |floor| next unless floor.is_floor @@ -1335,7 +1335,7 @@ def self.process_load_floors(mj, hpxml_bldg, all_zone_loads, all_space_loads) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param all_zone_loads [Hash] Map of HPXML::Zones => DesignLoadValues object # @param all_space_loads [Hash] Map of HPXML::Spaces => DesignLoadValues object - # @return [void] + # @return [nil] def self.process_load_slabs(mj, hpxml_bldg, all_zone_loads, all_space_loads) hpxml_bldg.slabs.each do |slab| next unless slab.is_thermal_boundary @@ -1421,7 +1421,7 @@ def self.process_load_slabs(mj, hpxml_bldg, all_zone_loads, all_space_loads) # @param all_zone_loads [Hash] Map of HPXML::Zones => DesignLoadValues object # @param all_space_loads [Hash] Map of HPXML::Spaces => DesignLoadValues object # @param weather [WeatherFile] Weather object containing EPW information - # @return [void] + # @return [nil] def self.process_load_infiltration_ventilation(mj, hpxml_bldg, all_zone_loads, all_space_loads, weather) cfa = hpxml_bldg.building_construction.conditioned_floor_area measurement = Airflow.get_infiltration_measurement_of_interest(hpxml_bldg, manualj_infiltration_method: hpxml_bldg.header.manualj_infiltration_method) @@ -1565,7 +1565,7 @@ def self.process_load_infiltration_ventilation(mj, hpxml_bldg, all_zone_loads, a # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param all_zone_loads [Hash] Map of HPXML::Zones => DesignLoadValues object # @param all_space_loads [Hash] Map of HPXML::Spaces => DesignLoadValues object - # @return [void] + # @return [nil] def self.process_load_internal_gains(hpxml_bldg, all_zone_loads, all_space_loads) hpxml_bldg.conditioned_zones.each do |zone| zone_manualj_num_occupants = zone.spaces.map { |space| space.manualj_num_occupants }.sum @@ -1584,7 +1584,7 @@ def self.process_load_internal_gains(hpxml_bldg, all_zone_loads, all_space_loads # Aggregates component design loads to totals; updates the object that is passed in. # # @param loads [DesignLoadValues] Object with component design loads - # @return [void] + # @return [nil] def self.aggregate_loads_to_totals(loads) # Heating loads.Heat_Tot = loads.Heat_Windows + loads.Heat_Skylights + @@ -1614,7 +1614,7 @@ def self.aggregate_loads_to_totals(loads) # @param zone_loads [DesignLoadValues] Object with design loads for the current HPXML::Zone # @param hvac_heating [HPXML::HeatingSystem or HPXML::HeatPump] The heating portion of the current HPXML HVAC system # @param hvac_cooling [HPXML::CoolingSystem or HPXML::HeatPump] The cooling portion of the current HPXML HVAC system - # @return [void] + # @return [nil] def self.apply_hvac_air_temperatures(mj, zone_loads, hvac_heating, hvac_cooling) if not hvac_cooling.nil? cooling_type = get_hvac_cooling_type(hvac_cooling) @@ -1661,7 +1661,7 @@ def self.apply_hvac_air_temperatures(mj, zone_loads, hvac_heating, hvac_cooling) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param hvac_systems [Array] List of HPXML HVAC (heating and/or cooling) systems # @param zone [HPXML::Zone] The current zone of interest - # @return [void] + # @return [nil] def self.apply_hvac_fractions_load_served(hvac_loads, hvac_heating, hvac_cooling, hpxml_bldg, hvac_systems, zone) frac_zone_heat_load_served, frac_zone_cool_load_served = get_fractions_load_served(hvac_heating, hvac_cooling, hpxml_bldg, hvac_systems, zone) @@ -1707,7 +1707,7 @@ def self.get_hvac_size_limits(hvac_cooling) # # @param hvac_sizings [HVACSizingValues] Object with sizing values for a given HVAC system # @param zone_loads [DesignLoadValues] Object with design loads for the current HPXML::Zone - # @return [void] + # @return [nil] def self.apply_hvac_loads_to_hvac_sizings(hvac_sizings, hvac_loads) # Note: We subtract the blower heat below because we want to calculate a net capacity, # not a gross capacity. @@ -1804,7 +1804,7 @@ def self.get_duct_regain_factor(duct, hpxml_bldg) # @param all_space_loads [Hash] Map of HPXML::Spaces => DesignLoadValues object # @param hvac_heating [HPXML::HeatingSystem or HPXML::HeatPump] The heating portion of the current HPXML HVAC system # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_hvac_duct_loads_heating(mj, zone, hvac_loads, zone_loads, all_space_loads, hvac_heating, hpxml_bldg) return if hvac_heating.nil? || (hvac_loads.Heat_Tot <= 0) || hvac_heating.distribution_system.nil? || hvac_heating.distribution_system.ducts.empty? @@ -1872,7 +1872,7 @@ def self.apply_hvac_duct_loads_heating(mj, zone, hvac_loads, zone_loads, all_spa # @param hvac_cooling [HPXML::CoolingSystem or HPXML::HeatPump] The cooling portion of the current HPXML HVAC system # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param weather [WeatherFile] Weather object containing EPW information - # @return [void] + # @return [nil] def self.apply_hvac_duct_loads_cooling(mj, zone, hvac_loads, zone_loads, all_space_loads, hvac_cooling, hpxml_bldg, weather) return if hvac_cooling.nil? || (hvac_loads.Cool_Sens <= 0) || hvac_cooling.distribution_system.nil? || hvac_cooling.distribution_system.ducts.empty? @@ -1951,7 +1951,7 @@ def self.apply_hvac_duct_loads_cooling(mj, zone, hvac_loads, zone_loads, all_spa # @param hvac_heating [HPXML::HeatingSystem or HPXML::HeatPump] The heating portion of the current HPXML HVAC system # @param hvac_cooling [HPXML::CoolingSystem or HPXML::HeatPump] The cooling portion of the current HPXML HVAC system # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_hvac_cfis_loads(mj, hvac_loads, zone_loads, hvac_heating, hvac_cooling, hpxml_bldg) if (not hvac_heating.nil?) && (not hvac_heating.distribution_system.nil?) hvac_distribution = hvac_heating.distribution_system @@ -1992,7 +1992,7 @@ def self.apply_hvac_cfis_loads(mj, hvac_loads, zone_loads, hvac_heating, hvac_co # @param zone_loads [DesignLoadValues] Object with design loads for the current HPXML::Zone # @param hvac_heating [HPXML::HeatingSystem or HPXML::HeatPump] The heating portion of the current HPXML HVAC system # @param hvac_cooling [HPXML::CoolingSystem or HPXML::HeatPump] The cooling portion of the current HPXML HVAC system - # @return [void] + # @return [nil] def self.apply_hvac_blower_heat_load(hvac_loads, zone_loads, hvac_heating, hvac_cooling) if not hvac_heating.nil? hvac_distribution = hvac_heating.distribution_system @@ -2018,7 +2018,7 @@ def self.apply_hvac_blower_heat_load(hvac_loads, zone_loads, hvac_heating, hvac_ # @param hvac_loads [DesignLoadValues] Object with design loads for the current HPXML HVAC system # @param zone_loads [DesignLoadValues] Object with design loads for the current HPXML::Zone # @param hvac_heating [HPXML::HeatingSystem or HPXML::HeatPump] The heating portion of the current HPXML HVAC system - # @return [void] + # @return [nil] def self.apply_hvac_piping_load(hvac_loads, zone_loads, hvac_heating) if not hvac_heating.nil? hvac_distribution = hvac_heating.distribution_system @@ -2045,7 +2045,7 @@ def self.apply_hvac_piping_load(hvac_loads, zone_loads, hvac_heating) # @param hvac_cooling [HPXML::CoolingSystem or HPXML::HeatPump] The cooling portion of the current HPXML HVAC system # @param hvac_system [Hash] HPXML HVAC (heating and/or cooling) system # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_hvac_equipment_adjustments(mj, runner, hvac_sizings, weather, hvac_heating, hvac_cooling, hvac_system, hpxml_bldg) is_heatpump_with_both_htg_and_clg = false if (not hvac_cooling.nil?) && hvac_cooling.is_a?(HPXML::HeatPump) && (hvac_cooling.fraction_heat_load_served > 0) && (hvac_cooling.fraction_cool_load_served > 0) @@ -2492,7 +2492,7 @@ def self.adjust_outdoor_condition_var_speed(outdoor_temp, hvac_sys, mode) # @param hvac_heating [HPXML::HeatingSystem or HPXML::HeatPump] The heating portion of the current HPXML HVAC system # @param hvac_cooling [HPXML::CoolingSystem or HPXML::HeatPump] The cooling portion of the current HPXML HVAC system # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_hvac_installation_quality(mj, hvac_sizings, hvac_heating, hvac_cooling, hpxml_bldg) cool_charge_defect_ratio = 0.0 cool_airflow_defect_ratio = 0.0 @@ -2650,7 +2650,7 @@ def self.apply_hvac_installation_quality(mj, hvac_sizings, hvac_heating, hvac_co # @param hvac_sizings [HVACSizingValues] Object with sizing values for a given HVAC system # @param hvac_heating [HPXML::HeatingSystem or HPXML::HeatPump] The heating portion of the current HPXML HVAC system # @param hvac_cooling [HPXML::CoolingSystem or HPXML::HeatPump] The cooling portion of the current HPXML HVAC system - # @return [void] + # @return [nil] def self.apply_hvac_autosizing_factors_and_limits(hvac_sizings, hvac_heating, hvac_cooling) if not hvac_cooling.nil? cooling_autosizing_limit = hvac_cooling.cooling_autosizing_limit @@ -2693,7 +2693,7 @@ def self.apply_hvac_autosizing_factors_and_limits(hvac_sizings, hvac_heating, hv # @param hvac_heating [HPXML::HeatingSystem or HPXML::HeatPump] The heating portion of the current HPXML HVAC system # @param hvac_cooling [HPXML::CoolingSystem or HPXML::HeatPump] The cooling portion of the current HPXML HVAC system # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_hvac_final_capacities(hvac_sizings, hvac_heating, hvac_cooling, hpxml_bldg) # Cooling if not hvac_cooling.nil? @@ -2749,7 +2749,7 @@ def self.apply_hvac_final_capacities(hvac_sizings, hvac_heating, hvac_cooling, h # @param weather [WeatherFile] Weather object containing EPW information # @param hvac_cooling [HPXML::CoolingSystem or HPXML::HeatPump] The cooling portion of the current HPXML HVAC system # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_hvac_ground_loop(mj, runner, hvac_sizings, weather, hvac_cooling, hpxml_bldg) cooling_type = get_hvac_cooling_type(hvac_cooling) @@ -3037,7 +3037,7 @@ def self.get_geothermal_loop_valid_num_bores(g_functions_json) # @param hvac_sizings [HVACSizingValues] Object with sizing values for a given HVAC system # @param hvac_heating [HPXML::HeatingSystem or HPXML::HeatPump] The heating portion of the current HPXML HVAC system # @param hvac_cooling [HPXML::CoolingSystem or HPXML::HeatPump] The cooling portion of the current HPXML HVAC system - # @return [void] + # @return [nil] def self.apply_hvac_final_airflows(hvac_sizings, hvac_heating, hvac_cooling) if (not hvac_heating.nil?) && hvac_heating.respond_to?(:airflow_defect_ratio) if hvac_sizings.Heat_Airflow > 0 @@ -3121,7 +3121,7 @@ def self.calculate_heat_pump_backup_load(mj, hvac_heating, heating_load, hp_nomi # @param oversize_limit [Double] Oversize fraction (frac) # @param oversize_delta [Double] Oversize delta (Btu/hr) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.process_heat_pump_adjustment(mj, runner, hvac_sizings, weather, hvac_heating, cool_cap_adj_factor, hvac_system, hvac_heating_speed, oversize_limit, oversize_delta, hpxml_bldg) @@ -4489,7 +4489,7 @@ def self.get_has_radiant_floor(zone) # @param hvac_heating [HPXML::HeatingSystem or HPXML::HeatPump] The heating portion of the current HPXML HVAC system # @param hvac_cooling [HPXML::CoolingSystem or HPXML::HeatPump] The cooling portion of the current HPXML HVAC system # @param hvac_sizings [HVACSizingValues] Object with sizing values for a given HVAC system - # @return [void] + # @return [nil] def self.assign_to_hpxml_system(hvac_heating, hvac_cooling, hvac_sizings) if not hvac_heating.nil? @@ -4637,7 +4637,7 @@ def self.aggregate_zone_loads_to_bldg(all_zone_loads) # # @param hpxml_object [HPXML::HVACPlant or HPXML::Zone or HPXML::Space] HPXML object to assign the loads to # @param loads [DesignLoadValues] Design loads for the building, zone, or space - # @return [void] + # @return [nil] def self.assign_to_hpxml_obj(hpxml_object, loads) tol = 10 # Btu/hr @@ -4720,7 +4720,7 @@ def self.assign_to_hpxml_obj(hpxml_object, loads) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit # @param all_zone_loads [Hash] Map of HPXML::Zones => DesignLoadValues object # @param all_space_loads [Hash] Map of HPXML::Spaces => DesignLoadValues object - # @return [void] + # @return [nil] def self.write_detailed_output(output_format, output_file_path, hpxml_bldg, all_zone_loads, all_space_loads) line_break = nil results_out = [] diff --git a/HPXMLtoOpenStudio/resources/location.rb b/HPXMLtoOpenStudio/resources/location.rb index 0acbd396ac..94770b6de1 100644 --- a/HPXMLtoOpenStudio/resources/location.rb +++ b/HPXMLtoOpenStudio/resources/location.rb @@ -9,7 +9,7 @@ module Location # @param weather [WeatherFile] Weather object containing EPW information # @param hpxml_header [HPXML::Header] HPXML Header object (one per HPXML file) # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply(model, weather, hpxml_header, hpxml_bldg) apply_year(model, hpxml_header, weather) apply_site(model, hpxml_bldg) @@ -21,7 +21,7 @@ def self.apply(model, weather, hpxml_header, hpxml_bldg) # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_site(model, hpxml_bldg) # Note: None of these affect the model; see https://github.com/NREL/EnergyPlus/issues/10579. site = model.getSite @@ -37,7 +37,7 @@ def self.apply_site(model, hpxml_bldg) # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param hpxml_header [HPXML::Header] HPXML Header object (one per HPXML file) # @param weather [WeatherFile] Weather object containing EPW information - # @return [void] + # @return [nil] def self.apply_year(model, hpxml_header, weather) if Date.leap?(hpxml_header.sim_calendar_year) n_hours = weather.header.NumRecords @@ -54,7 +54,7 @@ def self.apply_year(model, hpxml_header, weather) # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_dst(model, hpxml_bldg) return unless hpxml_bldg.dst_enabled @@ -72,7 +72,7 @@ def self.apply_dst(model, hpxml_bldg) # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param weather [WeatherFile] Weather object containing EPW information # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit - # @return [void] + # @return [nil] def self.apply_ground_temps(model, weather, hpxml_bldg) # Shallow ground temperatures only currently used for ducts located under slab sgts = model.getSiteGroundTemperatureShallow diff --git a/HPXMLtoOpenStudio/resources/pv.rb b/HPXMLtoOpenStudio/resources/pv.rb index 3ed6afef13..0fbf1942af 100644 --- a/HPXMLtoOpenStudio/resources/pv.rb +++ b/HPXMLtoOpenStudio/resources/pv.rb @@ -10,7 +10,7 @@ module PV # @param nbeds [Integer] Number of bedrooms in the dwelling unit # @param pv_system [HPXML::PVSystem] Object that defines a single solar electric photovoltaic (PV) system # @param unit_multiplier [Integer] Number of similar dwelling units - # @return [void] + # @return [nil] def self.apply(model, nbeds, pv_system, unit_multiplier) obj_name = pv_system.id diff --git a/HPXMLtoOpenStudio/resources/schedules.rb b/HPXMLtoOpenStudio/resources/schedules.rb index 9fd57ca66c..60678c1c1b 100644 --- a/HPXMLtoOpenStudio/resources/schedules.rb +++ b/HPXMLtoOpenStudio/resources/schedules.rb @@ -780,7 +780,7 @@ def self.annual_equivalent_full_load_hrs(modelYear, schedule) # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param schedule [OpenStudio::Model::ScheduleInterval or OpenStudio::Model::ScheduleConstant or OpenStudio::Model::ScheduleRuleset] the OpenStudio Schedule object # @param schedule_type_limits_name [String] data type for the values contained in the schedule - # @return [void] + # @return [nil] def self.set_schedule_type_limits(model, schedule, schedule_type_limits_name) return if schedule_type_limits_name.nil? @@ -807,7 +807,7 @@ def self.set_schedule_type_limits(model, schedule, schedule_type_limits_name) # Apply true for all weekday days of an OpenStudio ScheduleRule object. # # @param rule [OpenStudio::Model::ScheduleRule] an OpenStudio ScheduleRule object - # @return [void] + # @return [nil] def self.set_weekday_rule(rule) rule.setApplyMonday(true) rule.setApplyTuesday(true) @@ -819,7 +819,7 @@ def self.set_weekday_rule(rule) # Apply true for all weekend days of an OpenStudio ScheduleRule object. # # @param rule [OpenStudio::Model::ScheduleRule] an OpenStudio ScheduleRule object - # @return [void] + # @return [nil] def self.set_weekend_rule(rule) rule.setApplySaturday(true) rule.setApplySunday(true) @@ -841,7 +841,7 @@ def self.get_unavailable_periods(runner, schedule_name, unavailable_periods) # @param sch_name [String] name that is assigned to the OpenStudio Schedule object # @param unavailable_periods [HPXML::UnavailablePeriods] Object that defines periods for, e.g., power outages or vacancies # @param year [Integer] the calendar year - # @return [void] + # @return [nil] def self.set_unavailable_periods(schedule, sch_name, unavailable_periods, year) return if unavailable_periods.nil? @@ -950,7 +950,7 @@ def self.create_unavailable_period_rule(schedule, sch_name, i, date_s, date_e) # @param begin_hour [Integer] hour of the day that the unavailable period begins # @param end_hour [Integer] hour of the day that the unavailable period ends # @param value [Double] the value to set on the day schedule that means unavailable - # @return [void] + # @return [nil] def self.set_unavailable_period_values(out, day_schedule, begin_hour, end_hour, value) for h in 0..23 time = OpenStudio::Time.new(0, h + 1, 0, 0) @@ -1357,7 +1357,7 @@ def includes_col_name(col_name) # Assemble schedules from all detailed schedule CSVs into a hash. # # @param schedules_paths [Array] array of file paths pointing to detailed schedule CSVs - # @return [void] + # @return [nil] def import(schedules_paths) num_hrs_in_year = Constants.NumHoursInYear(@year) @schedules = {} @@ -1642,7 +1642,7 @@ def calc_peak_flow_from_daily_gpm(col_name:, # # @param col_name [String] the column header of the detailed schedule # @param periods [HPXML::UnavailablePeriods] Object that defines periods for, e.g., power outages or vacancies - # @return [void] + # @return [nil] def create_column_values_from_periods(col_name, periods) n_steps = @tmp_schedules[@tmp_schedules.keys[0]].length num_days_in_year = Constants.NumDaysInYear(@year) @@ -1674,7 +1674,7 @@ def create_column_values_from_periods(col_name, periods) # Expand schedules with fewer elements such that all the schedules have the same number of elements. # - # @return [void] + # @return [nil] def expand_schedules max_size = @schedules.map { |_k, v| v.size }.uniq.max @schedules.each do |col, values| @@ -1688,7 +1688,7 @@ def expand_schedules # # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param unavailable_periods [HPXML::UnavailablePeriods] Object that defines periods for, e.g., power outages or vacancies - # @return [void] + # @return [nil] def set_unavailable_periods(runner, unavailable_periods) if @unavailable_periods_csv_data.nil? @unavailable_periods_csv_data = Schedule.get_unavailable_periods_csv_data @@ -1730,7 +1730,7 @@ def set_unavailable_periods(runner, unavailable_periods) # Convert detailed setpoint schedule values from F to C. # # @param offset_db [Float] On-off thermostat deadband - # @return [void] + # @return [nil] def convert_setpoints(offset_db) setpoint_col_names = Columns.values.select { |c| c.type == :setpoint }.map { |c| c.name } return if @tmp_schedules.keys.none? { |k| setpoint_col_names.include?(k) } @@ -1753,7 +1753,7 @@ def convert_setpoints(offset_db) # Create separate charging (positive) and discharging (negative) detailed schedules from the battery schedule. # - # @return [void] + # @return [nil] def create_battery_charging_discharging_schedules battery_col_name = Columns[:Battery].name return if !@schedules.keys.include?(battery_col_name) diff --git a/HPXMLtoOpenStudio/resources/simcontrols.rb b/HPXMLtoOpenStudio/resources/simcontrols.rb index 24253b594a..63ba569103 100644 --- a/HPXMLtoOpenStudio/resources/simcontrols.rb +++ b/HPXMLtoOpenStudio/resources/simcontrols.rb @@ -6,7 +6,7 @@ module SimControls # # @param model [OpenStudio::Model::Model] OpenStudio Model object # @param hpxml_header [HPXML::Header] HPXML Header object (one per HPXML file) - # @return [void] + # @return [nil] def self.apply(model, hpxml_header) sim = model.getSimulationControl sim.setRunSimulationforSizingPeriods(false) diff --git a/HPXMLtoOpenStudio/resources/util.rb b/HPXMLtoOpenStudio/resources/util.rb index 78583a83e7..d80edce489 100644 --- a/HPXMLtoOpenStudio/resources/util.rb +++ b/HPXMLtoOpenStudio/resources/util.rb @@ -9,7 +9,7 @@ module UrlResolver # @param agent [String] a string of text that a web browser sends to a web server to identify itself and provide information about the browser's capabilities # @param max_attempts [Integer] the maximum number of attempts # @param timeout [Integer] both the number of seconds to (1) wait for the connection to open and (2) wait for one block to be read (via one read(2) call) - # @return [void] + # @return [nil] def self.fetch(uri_str, outfile, agent = 'curl/7.43.0', max_attempts = 10, timeout = 10) attempts = 0 cookie = nil diff --git a/HPXMLtoOpenStudio/resources/version.rb b/HPXMLtoOpenStudio/resources/version.rb index 3c03803962..d08173f7e5 100644 --- a/HPXMLtoOpenStudio/resources/version.rb +++ b/HPXMLtoOpenStudio/resources/version.rb @@ -9,7 +9,7 @@ module Version # Checks whether the version of OpenStudio that is running OpenStudio-HPXML # meets the version requirements; throws an error if not. # - # @return [void] + # @return [nil] def self.check_openstudio_version if not OpenStudio.openStudioVersion.start_with? OS_Version if OS_Version.count('.') == 2 @@ -24,7 +24,7 @@ def self.check_openstudio_version # meets the version requirements; throws an error if not. # # @param hpxml_version [String] Version of HPXML input file - # @return [void] + # @return [nil] def self.check_hpxml_version(hpxml_version) if hpxml_version != HPXML_Version fail "HPXML version #{HPXML_Version} is required." diff --git a/HPXMLtoOpenStudio/resources/weather.rb b/HPXMLtoOpenStudio/resources/weather.rb index f8e90481c6..35b71fe73f 100644 --- a/HPXMLtoOpenStudio/resources/weather.rb +++ b/HPXMLtoOpenStudio/resources/weather.rb @@ -27,7 +27,7 @@ def initialize(epw_path:, runner:, hpxml: nil) # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param epw_path [String] Path to the EPW weather file # @param hpxml [HPXML] HPXML object - # @return [void] + # @return [nil] def process_epw(runner, epw_path, hpxml) epw_file = OpenStudio::EpwFile.new(epw_path, true) @@ -108,7 +108,7 @@ def process_epw(runner, epw_path, hpxml) # Calculates and stores heating/cooling degree days for different base temperatures. # # @param dailydbs [Array] Daily average drybulb temperatures (C) - # @return [void] + # @return [nil] def calc_heat_cool_degree_days(dailydbs) data.HDD65F = calc_degree_days(dailydbs, 65, true) data.HDD50F = calc_degree_days(dailydbs, 50, true) @@ -151,7 +151,7 @@ def calc_degree_days(daily_dbs, base_temp_f, is_heating) # # @param daily_high_dbs [Array] Daily maximum drybulb temperatures (C) # @param daily_low_dbs [Array] Daily minimum drybulb temperatures (C) - # @return [void] + # @return [nil] def calc_avg_monthly_highs_lows(daily_high_dbs, daily_low_dbs) data.MonthlyAvgDailyHighDrybulbs = [] data.MonthlyAvgDailyLowDrybulbs = [] @@ -232,7 +232,7 @@ def calc_ashrae_622_wsf(rowdata) # Gets and stores various EPW header data. # # @param epw_file [OpenStudio::EpwFile] OpenStudio EpwFile object - # @return [void] + # @return [nil] def get_header_info_from_epw(epw_file) header.City = epw_file.city header.StateProvinceRegion = epw_file.stateProvinceRegion @@ -286,7 +286,7 @@ def get_design_info_from_epw(runner, epw_file) # # @param runner [OpenStudio::Measure::OSRunner] Object typically used to display warnings # @param rowdata [Array] Weather data for each EPW record - # @return [void] + # @return [nil] def calc_design_info(runner, rowdata) if not runner.nil? runner.registerWarning('No design condition info found; calculating design conditions from EPW weather data.') @@ -321,7 +321,7 @@ def calc_design_info(runner, rowdata) # Calculates and stores shallow monthly/annual ground temperatures. # This correlation is the same that is used in DOE-2's src\WTH.f file, subroutine GTEMP. # - # @return [void] + # @return [nil] def calc_shallow_ground_temperatures() amon = [15.0, 46.0, 74.0, 95.0, 135.0, 166.0, 196.0, 227.0, 258.0, 288.0, 319.0, 349.0] po = 0.6 @@ -355,7 +355,7 @@ def calc_shallow_ground_temperatures() # source heat pump in the building. # # @param hpxml [HPXML] HPXML object - # @return [void] + # @return [nil] def calc_deep_ground_temperatures(hpxml) # Avoid this lookup/calculation if there's no GSHP since there is a (small) runtime penalty. if !hpxml.nil? @@ -398,7 +398,7 @@ def calc_deep_ground_temperatures(hpxml) # "Towards Development of an Algorithm for Mains Water Temperature". # # @param n_days [Integer] Number of days (typically 365 or 366 if a leap year) in the EPW file - # @return [void] + # @return [nil] def calc_mains_temperatures(n_days) deg_rad = Math::PI / 180 diff --git a/ReportUtilityBills/measure.xml b/ReportUtilityBills/measure.xml index a46373c882..1d012784cd 100644 --- a/ReportUtilityBills/measure.xml +++ b/ReportUtilityBills/measure.xml @@ -3,8 +3,8 @@ 3.1 report_utility_bills ca88a425-e59a-4bc4-af51-c7e7d1e960fe - f5c93a11-f4b5-4e09-8174-eb9cbc1f0831 - 2024-08-08T17:47:50Z + 0c47ee05-9a2a-427e-8b71-bcef50fcd28c + 2024-08-16T19:31:35Z 15BF4E57 ReportUtilityBills Utility Bills Report @@ -306,7 +306,7 @@ util.rb rb resource - 0B994914 + A6C75E8E Contains Demand Charges.json diff --git a/ReportUtilityBills/resources/util.rb b/ReportUtilityBills/resources/util.rb index 5323295194..3c0ced113f 100644 --- a/ReportUtilityBills/resources/util.rb +++ b/ReportUtilityBills/resources/util.rb @@ -127,7 +127,7 @@ def self.simple(fuel_type, header, fuel_time_series, is_production, rate, bill, # @param fuels [Hash] Fuel type, is_production => Fuel object # @param rate [UtilityRate] UtilityRate object # @param bill [UtilityBill] UtilityBill object - # @return [void] + # @return [nil] def self.detailed_electric(header, fuels, rate, bill) fuel_time_series = fuels[[FT::Elec, false]].timeseries production_fuel_time_series = fuels[[FT::Elec, true]].timeseries From 9252cf14a4dd4bdac9bec82c382ce17d9ea03554 Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Fri, 16 Aug 2024 15:03:50 -0600 Subject: [PATCH 22/22] Minor cleanup. --- HPXMLtoOpenStudio/measure.xml | 6 +- .../resources/data/default_schedules.csv | 4 +- docs/source/workflow_inputs.rst | 119 +++++++++--------- 3 files changed, 67 insertions(+), 62 deletions(-) diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index d2a5525b7f..b3c7b4fc65 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - d3fcd8e8-e4a0-439d-8580-b5230955565b - 2024-08-16T19:31:32Z + 9745a9eb-eb1d-46d0-9fa6-ae1e0539dc5b + 2024-08-16T21:02:18Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -267,7 +267,7 @@ data/default_schedules.csv csv resource - 143F5A55 + BF708670 data/g_functions/C_configurations_5m_v1.0.json diff --git a/HPXMLtoOpenStudio/resources/data/default_schedules.csv b/HPXMLtoOpenStudio/resources/data/default_schedules.csv index cd4bd68abe..e08c04f96b 100644 --- a/HPXMLtoOpenStudio/resources/data/default_schedules.csv +++ b/HPXMLtoOpenStudio/resources/data/default_schedules.csv @@ -49,8 +49,8 @@ plug_loads_other,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, plug_loads_tv,WeekdayScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C plug_loads_tv,WeekendScheduleFractions,"0.014, 0.007, 0.004, 0.003, 0.004, 0.006, 0.010, 0.015, 0.020, 0.025, 0.028, 0.031, 0.033, 0.038, 0.042, 0.046, 0.054, 0.062, 0.080, 0.110, 0.132, 0.125, 0.077, 0.034",Table C.3(1) of ANSI/RESNET/ICC 301-2022 Addendum C plug_loads_tv,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", -plug_loads_vehicle,WeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",based on engineering judgment -plug_loads_vehicle,WeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042",based on engineering judgment +plug_loads_vehicle,WeekdayScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042", +plug_loads_vehicle,WeekendScheduleFractions,"0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042", plug_loads_vehicle,MonthlyScheduleMultipliers,"1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0", plug_loads_well_pump,WeekdayScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ plug_loads_well_pump,WeekendScheduleFractions,"0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065",Figure 23 of the `2010 BAHSP `_ diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index 908d9cca80..957792ea5d 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -591,11 +591,11 @@ Building occupancy is entered in ``/HPXML/Building/BuildingDetails/BuildingSumma \- **single-family attached or apartment unit**: NumberofBedrooms = -0.68 + 1.09 * NumberofResidents - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. .. [#] Sensible and latent internal gains from general water use (floor mopping, shower evaporation, water films on showers, tubs & sinks surfaces, plant watering, etc.), as defined by `ANSI/RESNET/ICC 301-2019 `_. - .. [#] If GeneralWaterUseWeekdayScheduleFractions or GeneralWaterUseWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If GeneralWaterUseMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If GeneralWaterUseWeekdayScheduleFractions or GeneralWaterUseWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If GeneralWaterUseMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. .. _building_construction: @@ -668,7 +668,7 @@ Detailed schedule inputs are provided via one or more CSV file that should be re The column names available in the schedule CSV files are: ================================ ======= ================================================================================= =============================== - Column Name Units Description Can Be Stochastically Generated + Column Name Units Description Can Be Stochastically Generated [#]_ ================================ ======= ================================================================================= =============================== ``occupants`` frac Occupant heat gain schedule. Yes ``lighting_interior`` frac Interior lighting energy use schedule. Yes @@ -707,6 +707,22 @@ The column names available in the schedule CSV files are: ``battery`` -1 to 1 Battery schedule. Positive for charging, negative for discharging. No ================================ ======= ================================================================================= =============================== + .. [#] A detailed stochastic occupancy schedule CSV file can also be automatically generated for these columns; see the :ref:`usage_instructions` for the commands. + The stochastic occupancy schedules are generated using the methodology described in `Stochastic simulation of occupant-driven energy use in a bottom-up residential building stock model `_. + Inputs for the stochastic schedule generator are entered in: + + \- ``/HPXML/Building/BuildingDetails/BuildingSummary/BuildingOccupancy/NumberofResidents`` + + \- ``/HPXML/Building/Site/Address/StateCode`` (optional) + + \- ``/HPXML/Building/Site/GeoLocation/Latitude`` (optional) + + \- ``/HPXML/Building/Site/GeoLocation/Longitude`` (optional) + + \- ``/HPXML/Building/Site/TimeZone/UTCOffset`` (optional) + + See :ref:`building_occupancy` and :ref:`building_site` for more information. + .. [#] This feature is an advanced research capability. This schedule allows modeling shedding controls for variable speed HVAC systems (instead of setpoint changes) to limit the power of HVAC per `AHRI 1380 `_. While any fraction value can be entered, this is primarily intended to reflect the AHRI capabilities, which has two levels of load shed: "General Curtailment" and "Critical Curtailment". A "General Curtailment" signal prevents the equipment from running at more than 70% of max power and "Critical Curtailment" limits it to 40% of max power until comfort constraints are violated (4F off the setpoint). @@ -721,18 +737,6 @@ The schedule file must have a full year of data even if the simulation is not an Frequency of schedule values do not need to match the simulation timestep. For example, hourly schedules can be used with a 10-minute simulation timestep, or 10-minute schedules can be used with an hourly simulation timestep. -A detailed stochastic occupancy schedule CSV file can also be automatically generated for you (see "Can Be Stochastically Generated" above for applicable columns); see the :ref:`usage_instructions` for the commands. -The stochastic occupancy schedules are generated using the methodology described in `Stochastic simulation of occupant-driven energy use in a bottom-up residential building stock model `_. -Inputs for the stochastic schedule generator are entered in: - -- ``/HPXML/Building/BuildingDetails/BuildingSummary/BuildingOccupancy/NumberofResidents`` -- ``/HPXML/Building/Site/Address/StateCode`` (optional) -- ``/HPXML/Building/Site/GeoLocation/Latitude`` (optional) -- ``/HPXML/Building/Site/GeoLocation/Longitude`` (optional) -- ``/HPXML/Building/Site/TimeZone/UTCOffset`` (optional) - -See :ref:`building_occupancy` and :ref:`building_site` for more information. - .. warning:: For simulations with daylight saving enabled (which is the default), EnergyPlus will skip forward an hour in the CSV on the "spring forward" day and repeat an hour on the "fall back" day. @@ -745,6 +749,7 @@ Default Schedules If neither simple nor detailed inputs are provided, then schedules are defaulted. Default schedules are typically smooth, averaged schedules. These default schedules (and data sources) are described in the table below (e.g., see "occupants" rows for the default occupant heat gain schedule). +They can also be found at ``HPXMLtoOpenStudio/resources/data/default_schedules.csv``. .. csv-table:: :file: ../../HPXMLtoOpenStudio/resources/data/default_schedules.csv @@ -4018,8 +4023,8 @@ An in-unit recirculation hot water distribution system is entered as a ``/HPXML/ .. [#] BranchPipingLength is the length of the branch hot water piping from the recirculation loop to the farthest hot water fixture from the recirculation loop, measured longitudinally from plans, assuming the branch hot water piping does not run diagonally. .. [#] PumpPower default based on `ANSI/RESNET/ICC 301-2019 `_. .. [#] Additional drain water heat recovery inputs are described in :ref:`water_heater_dwhr`. - .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. .. _hot_water_dist_recirc_shared: @@ -4073,8 +4078,8 @@ A shared recirculation hot water distribution system (serving multiple dwelling \- **no control**: The pump runs continuously. - .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If RecirculationPumpWeekdayScheduleFractions or RecirculationPumpWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If RecirculationPumpMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. .. note:: @@ -4134,8 +4139,8 @@ Additional information can be entered in ``/HPXML/Building/BuildingDetails/Syste ``extension/WaterFixturesMonthlyScheduleMultipliers`` array No See [#]_ 12 comma-separated monthly multipliers ===================================================== ======= ===== =========== ======== ======== =============================================== - .. [#] If WaterFixturesWeekdayScheduleFractions or WaterFixturesWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If WaterFixturesMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WaterFixturesWeekdayScheduleFractions or WaterFixturesWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If WaterFixturesMonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. Water fixture hot water use is calculated per the Energy Rating Rated Home in `ANSI/RESNET/ICC 301-2019 `_. @@ -4393,8 +4398,8 @@ If not entered, the simulation will not include a clothes washer. IMEF may be found using the manufacturer’s data sheet, the `California Energy Commission Appliance Database `_, the `EPA ENERGY STAR website `_, or another reputable source. .. [#] AttachedToWaterHeatingSystem must reference a ``WaterHeatingSystem``; AttachedToHotWaterDistribution must reference a ``HotWaterDistribution``. .. [#] AttachedToWaterHeatingSystem (or AttachedToHotWaterDistribution) only required if IsSharedAppliance is true. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. If IntegratedModifiedEnergyFactor or ModifiedEnergyFactor is provided, a complete set of EnergyGuide label information is entered in ``ClothesWasher``. @@ -4443,8 +4448,8 @@ If not entered, the simulation will not include a clothes dryer. CEF = EF / 1.15. CEF may be found using the manufacturer’s data sheet, the `California Energy Commission Appliance Database `_, the `EPA ENERGY STAR website `_, or another reputable source. .. [#] VentedFlowRate default based on the `2010 BAHSP `_. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. Clothes dryer energy use is calculated per the Energy Rating Rated Home in `ANSI/RESNET/ICC 301-2019 Addendum A `_. @@ -4482,8 +4487,8 @@ If not entered, the simulation will not include a dishwasher. RatedAnnualkWh = 215.0 / EF. .. [#] AttachedToWaterHeatingSystem must reference a ``WaterHeatingSystem``; AttachedToHotWaterDistribution must reference a ``HotWaterDistribution``. .. [#] AttachedToWaterHeatingSystem (or AttachedToHotWaterDistribution) only required if IsSharedAppliance is true. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. If the RatedAnnualkWh or EnergyFactor is provided, a complete set of EnergyGuide label information is entered in ``Dishwasher``. @@ -4528,10 +4533,10 @@ If not entered, the simulation will not include a refrigerator. RatedAnnualkWh = 637.0 + 18.0 * NumberofBedrooms. .. [#] If multiple refrigerators are specified, there must be exactly one refrigerator described with PrimaryIndicator=true. .. [#] Either schedule fraction inputs (WeekdayScheduleFractions/WeekendScheduleFractions/MonthlyScheduleMultipliers) or schedule coefficient inputs (ConstantScheduleCoefficients/TemperatureScheduleCoefficients) may be used, but not both. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see :ref:`schedules_default`) are used. - .. [#] If ConstantScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values (see :ref:`schedules_default`) are used. - .. [#] If TemperatureScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), then :ref:`schedules_default` are used. + .. [#] If ConstantScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), then :ref:`schedules_default` are used. + .. [#] If TemperatureScheduleCoefficients not provided (and :ref:`schedules_detailed` or schedule fractions not used), then :ref:`schedules_default` are used. .. note:: @@ -4566,8 +4571,8 @@ If not entered, the simulation will not include a standalone freezer. .. [#] If Location not provided, defaults to "garage" if present, otherwise "basement - unconditioned" if present, otherwise "basement - conditioned" if present, otherwise "conditioned space". .. [#] RatedAnnualkWh default based on the `2010 BAHSP `_. .. [#] Either schedule fraction inputs (WeekdayScheduleFractions/WeekendScheduleFractions/MonthlyScheduleMultipliers) or schedule coefficient inputs (ConstantScheduleCoefficients/TemperatureScheduleCoefficients) may be used, but not both. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` or schedule coefficients not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` or schedule coefficients not used), then :ref:`schedules_default` are used. .. note:: @@ -4629,8 +4634,8 @@ If not entered, the simulation will not include a cooking range/oven. .. [#] Location choices are "conditioned space", "basement - conditioned", "basement - unconditioned", "garage", "other housing unit", "other heated space", "other multifamily buffer space", or "other non-freezing space". See :ref:`hpxml_locations` for descriptions. .. [#] FuelType choices are "natural gas", "fuel oil", "fuel oil 1", "fuel oil 2", "fuel oil 4", "fuel oil 5/6", "diesel", "propane", "kerosene", "coal", "coke", "bituminous coal", "anthracite coal", "electricity", "wood", or "wood pellets". - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. If a cooking range is specified, a single oven is also entered as a ``/HPXML/Building/BuildingDetails/Appliances/Oven``. @@ -4678,12 +4683,12 @@ With either lighting specification, additional information can be entered in ``/ ``extension/ExteriorMonthlyScheduleMultipliers`` array No See [#]_ 12 comma-separated exterior monthly multipliers ================================================ ======= ====== =========== ======== ======== =============================================== - .. [#] If InteriorWeekdayScheduleFractions or InteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If InteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If GarageWeekdayScheduleFractions or GarageWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If GarageMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If ExteriorWeekdayScheduleFractions or ExteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If ExteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If InteriorWeekdayScheduleFractions or InteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If InteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If GarageWeekdayScheduleFractions or GarageWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If GarageMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If ExteriorWeekdayScheduleFractions or ExteriorWeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If ExteriorMonthlyScheduleMultipliers not provided (or :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. .. _lighting_fractions: @@ -4745,7 +4750,7 @@ If exterior holiday lighting is specified, additional information is entered in =============================== ======= ======= =========== ======== ============= ============================================ .. [#] If Value not provided, defaults to 1.1 for single-family detached and 0.55 for others. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. HPXML Ceiling Fans ****************** @@ -4767,7 +4772,7 @@ If not entered, the simulation will not include a ceiling fan. .. [#] If Efficiency and LabelEnergyUse not provided, LabelEnergyUse defaults to 42.6 W based on ANSI/RESNET/ICC 301-2022 Addendum C. If both are provided, LabelEnergyUse will be used in the model. .. [#] If Count not provided, defaults to NumberofBedrooms + 1 based on `ANSI/RESNET/ICC 301-2019 `_. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), defaults based on monthly average outdoor temperatures per `ANSI/RESNET/ICC 301-2019 `_ Ceiling fan energy use is calculated per the Energy Rating Rated Home in `ANSI/RESNET/ICC 301-2019 `_. @@ -4818,8 +4823,8 @@ If not entered, the simulation will not include a pool pump. If "none" is entered, the simulation will not include a pool pump. .. [#] If Value not provided, defaults based on the `2010 BAHSP `_: 158.5 / 0.070 * (0.5 + 0.25 * NumberofBedrooms / 3 + 0.25 * ConditionedFloorArea / 1920). If NumberofResidents provided, this value will be adjusted using the :ref:`building_occupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. Pool Heater ~~~~~~~~~~~ @@ -4851,8 +4856,8 @@ If not entered, the simulation will not include a pool heater. If NumberofResidents provided, this value will be adjusted using the :ref:`building_occupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. HPXML Permanent Spas ******************** @@ -4892,8 +4897,8 @@ If not entered, the simulation will not include a permanent spa pump. If "none" is entered, the simulation will not include a permanent spa pump. .. [#] If Value not provided, defaults based on the `2010 BAHSP `_: 59.5 / 0.059 * (0.5 + 0.25 * NumberofBedrooms / 3 + 0.25 * ConditionedFloorArea / 1920). If NumberofResidents provided, this value will be adjusted using the :ref:`building_occupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. Permanent Spa Heater ~~~~~~~~~~~~~~~~~~~~ @@ -4925,8 +4930,8 @@ If not entered, the simulation will not include a permanent spa heater. If NumberofResidents provided, this value will be adjusted using the :ref:`building_occupancy`. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. HPXML Misc Loads ---------------- @@ -4993,8 +4998,8 @@ If not entered, the simulation will not include that type of plug load. \- **electric vehicle charging**: 0.0 - .. [#] If WeekdayScheduleFractions or WeekdendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekdendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. .. _fuel_loads: @@ -5036,8 +5041,8 @@ If not entered, the simulation will not include that type of fuel load. .. [#] If FracSensible not provided, defaults to 0.5 for fireplace and 0.0 for all other types. .. [#] The remaining fraction (i.e., 1.0 - FracSensible - FracLatent) must be > 0 and is assumed to be heat gain outside conditioned space and thus lost. .. [#] If FracLatent not provided, defaults to 0.1 for fireplace and 0.0 for all other types. - .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. - .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), default values (see :ref:`schedules_default`) are used. + .. [#] If WeekdayScheduleFractions or WeekendScheduleFractions not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. + .. [#] If MonthlyScheduleMultipliers not provided (and :ref:`schedules_detailed` not used), then :ref:`schedules_default` are used. .. _hpxml_locations: