@@ -128,15 +128,15 @@ def run(model, runner, user_arguments)
128128
129129 # Create OpenStudio unit model(s)
130130 hpxml_osm_map = { }
131- hpxml . buildings . each_with_index do |hpxml_bldg , i |
131+ hpxml . buildings . each do |hpxml_bldg |
132132 # Create the model for this single unit
133133 # If we're running a whole SFA/MF building, all the unit models will be merged later
134134 if hpxml . buildings . size > 1
135135 unit_model = OpenStudio ::Model ::Model . new
136- create_unit_model ( hpxml , hpxml_bldg , runner , unit_model , epw_path , weather , hpxml_sch_map [ hpxml_bldg ] , i + 1 )
136+ create_unit_model ( hpxml , hpxml_bldg , runner , unit_model , epw_path , weather , hpxml_sch_map [ hpxml_bldg ] )
137137 hpxml_osm_map [ hpxml_bldg ] = unit_model
138138 else
139- create_unit_model ( hpxml , hpxml_bldg , runner , model , epw_path , weather , hpxml_sch_map [ hpxml_bldg ] , i + 1 )
139+ create_unit_model ( hpxml , hpxml_bldg , runner , model , epw_path , weather , hpxml_sch_map [ hpxml_bldg ] )
140140 hpxml_osm_map [ hpxml_bldg ] = model
141141 end
142142 end
@@ -313,19 +313,9 @@ def process_defaults_schedules_emissions_files(runner, weather, hpxml, args)
313313 # @param epw_path [String] Path to the EPW weather file
314314 # @param weather [WeatherFile] Weather object containing EPW information
315315 # @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files
316- # @param unit_num [Integer] index number corresponding to an HPXML Building object
317316 # @return [nil]
318- def create_unit_model ( hpxml , hpxml_bldg , runner , model , epw_path , weather , schedules_file , unit_num )
319- # Here we turn off OS error-checking so that any invalid values provided
320- # to OS SDK methods are passed along to EnergyPlus and produce errors. If
321- # we didn't go this, we'd end up with successful EnergyPlus simulations that
322- # use the wrong (default) value unless we check the return value of *every*
323- # OS SDK setter method to notice there was an invalid value provided.
324- # See https://github.com/NREL/OpenStudio/pull/4505 for more background.
325- model . setStrictnessLevel ( 'None' . to_StrictnessLevel )
326-
327- # Init
328- init ( hpxml_bldg , hpxml . header )
317+ def create_unit_model ( hpxml , hpxml_bldg , runner , model , epw_path , weather , schedules_file )
318+ init ( model , hpxml_bldg , hpxml . header )
329319 SimControls . apply ( model , hpxml . header )
330320 Location . apply ( model , weather , hpxml_bldg , hpxml . header , epw_path )
331321
@@ -347,7 +337,7 @@ def create_unit_model(hpxml, hpxml_bldg, runner, model, epw_path, weather, sched
347337 Geometry . apply_thermal_mass ( model , spaces , hpxml_bldg , hpxml . header )
348338 Geometry . set_zone_volumes ( spaces , hpxml_bldg , hpxml . header )
349339 Geometry . explode_surfaces ( model , hpxml_bldg )
350- Geometry . apply_building_unit ( model , unit_num )
340+ Geometry . apply_building_unit ( model , hpxml , hpxml_bldg )
351341
352342 # HVAC
353343 airloop_map = HVAC . apply_hvac_systems ( runner , model , weather , spaces , hpxml_bldg , hpxml . header , schedules_file , hvac_days )
@@ -380,10 +370,19 @@ def create_unit_model(hpxml, hpxml_bldg, runner, model, epw_path, weather, sched
380370
381371 # Miscellaneous logic that needs to occur upfront.
382372 #
373+ # @param model [OpenStudio::Model::Model] OpenStudio Model object
383374 # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit
384375 # @param hpxml_header [HPXML::Header] HPXML Header object (one per HPXML file)
385376 # @return [nil]
386- def init ( hpxml_bldg , hpxml_header )
377+ def init ( model , hpxml_bldg , hpxml_header )
378+ # Here we turn off OS error-checking so that any invalid values provided
379+ # to OS SDK methods are passed along to EnergyPlus and produce errors. If
380+ # we didn't go this, we'd end up with successful EnergyPlus simulations that
381+ # use the wrong (default) value unless we check the return value of *every*
382+ # OS SDK setter method to notice there was an invalid value provided.
383+ # See https://github.com/NREL/OpenStudio/pull/4505 for more background.
384+ model . setStrictnessLevel ( 'None' . to_StrictnessLevel )
385+
387386 # Store the fraction of windows operable before we collapse surfaces
388387 hpxml_bldg . additional_properties . initial_frac_windows_operable = hpxml_bldg . fraction_of_windows_operable ( )
389388
0 commit comments