class ASHRAE901PRM2019 < ASHRAE901PRM # @!group Model # Determine if there is a need for a proposed model sizing run. # A typical application of such sizing run is to determine space # conditioning type. # # @param model [OpenStudio::Model::Model] OpenStudio model object # # @return [Boolean] Returns true if a sizing run is required def model_create_prm_baseline_building_requires_proposed_model_sizing_run(model) return true end # Determines the skylight to roof ratio limit for a given standard # 3% for 90.1-PRM-2019 # @return [Double] the skylight to roof ratio, as a percent: 5.0 = 5% def model_prm_skylight_to_roof_ratio_limit(model) srr_lim = 3.0 return srr_lim end # Determine the surface range of a baseline model. # The method calculates the window to wall ratio (assuming all spaces are conditioned) # and select the range based on the calculated window to wall ratio # @param model [OpenStudio::Model::Model] OpenStudio model object # @param wwr_parameter [Hash] parameters to choose min and max percent of surfaces, # could be different set in different standard def model_get_percent_of_surface_range(model, wwr_parameter) wwr_range = { 'minimum_percent_of_surface' => nil, 'maximum_percent_of_surface' => nil } intended_surface_type = wwr_parameter['intended_surface_type'] if intended_surface_type == 'ExteriorWindow' || intended_surface_type == 'GlassDoor' if wwr_parameter.key?('wwr_building_type') wwr_building_type = wwr_parameter['wwr_building_type'] wwr_info = wwr_parameter['wwr_info'] if wwr_info[wwr_building_type] <= 10 wwr_range['minimum_percent_of_surface'] = 0 wwr_range['maximum_percent_of_surface'] = 10 elsif wwr_info[wwr_building_type] <= 20 wwr_range['minimum_percent_of_surface'] = 10.001 wwr_range['maximum_percent_of_surface'] = 20 elsif wwr_info[wwr_building_type] <= 30 wwr_range['minimum_percent_of_surface'] = 20.001 wwr_range['maximum_percent_of_surface'] = 30 elsif wwr_info[wwr_building_type] <= 40 wwr_range['minimum_percent_of_surface'] = 30.001 wwr_range['maximum_percent_of_surface'] = 40 else wwr_range['minimum_percent_of_surface'] = nil wwr_range['maximum_percent_of_surface'] = nil end else OpenStudio.logFree(OpenStudio::Error, 'openstudio.model.Model', 'No wwr_building_type found for ExteriorWindow or GlassDoor') end end return wwr_range end end