Class: ASHRAE901PRM2019
- Inherits:
-
ASHRAE901PRM
- Object
- Standard
- ASHRAE901PRM
- ASHRAE901PRM2019
- Defined in:
- lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb,
lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.DesignSpecificationOutdoorAir.rb,
lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb
Overview
This class holds methods that apply ASHRAE 90.1-2013 to a given model.
Direct Known Subclasses
ASHRAE901PRM2019College, ASHRAE901PRM2019Courthouse, ASHRAE901PRM2019FullServiceRestaurant, ASHRAE901PRM2019HighriseApartment, ASHRAE901PRM2019Hospital, ASHRAE901PRM2019Laboratory, ASHRAE901PRM2019LargeDataCenterHighITE, ASHRAE901PRM2019LargeDataCenterLowITE, ASHRAE901PRM2019LargeHotel, ASHRAE901PRM2019LargeOffice, ASHRAE901PRM2019LargeOfficeDetailed, ASHRAE901PRM2019MediumOffice, ASHRAE901PRM2019MediumOfficeDetailed, ASHRAE901PRM2019MidriseApartment, ASHRAE901PRM2019Outpatient, ASHRAE901PRM2019PrimarySchool, ASHRAE901PRM2019QuickServiceRestaurant, ASHRAE901PRM2019RetailStandalone, ASHRAE901PRM2019RetailStripmall, ASHRAE901PRM2019SecondarySchool, ASHRAE901PRM2019SmallDataCenterHighITE, ASHRAE901PRM2019SmallDataCenterLowITE, ASHRAE901PRM2019SmallHotel, ASHRAE901PRM2019SmallOffice, ASHRAE901PRM2019SmallOfficeDetailed, ASHRAE901PRM2019SuperMarket, ASHRAE901PRM2019SuperTallBuilding, ASHRAE901PRM2019TallBuilding, ASHRAE901PRM2019Warehouse, ASHRAE901PRM2019_Prototype
Constant Summary
Constants inherited from Standard
Instance Attribute Summary collapse
-
#template ⇒ Object
readonly
Returns the value of attribute template.
Attributes inherited from Standard
#space_multiplier_map, #standards_data
DesignSpecification:OutdoorAir collapse
-
#model_apply_userdata_outdoor_air(model) ⇒ Boolean
Function applies user specified OA to the model.
Model collapse
-
#model_create_prm_baseline_building_requires_proposed_model_sizing_run(model) ⇒ Boolean
Determine if there is a need for a proposed model sizing run.
-
#model_get_percent_of_surface_range(model, wwr_parameter) ⇒ Object
Determine the surface range of a baseline model.
-
#model_prm_skylight_to_roof_ratio_limit(model) ⇒ Double
Determines the skylight to roof ratio limit for a given standard 3% for 90.1-PRM-2019.
Instance Method Summary collapse
-
#initialize ⇒ ASHRAE901PRM2019
constructor
A new instance of ASHRAE901PRM2019.
- #load_standards_database(data_directories = []) ⇒ Object
-
#space_infiltration_rate_75_pa(space = nil) ⇒ Double
Determine the base infiltration rate at 75 PA.
Methods inherited from ASHRAE901PRM
#add_ems_for_multiple_chiller_pumps_w_secondary_plant, #add_ems_program_for_2_pump_chiller_plant, #add_ems_program_for_3_pump_chiller_plant, #air_loop_hvac_allowable_system_brake_horsepower, #air_loop_hvac_apply_energy_recovery_ventilator_efficiency, #air_loop_hvac_apply_minimum_vav_damper_positions, #air_loop_hvac_apply_prm_baseline_fan_power, #air_loop_hvac_economizer_limits, #air_loop_hvac_enable_unoccupied_fan_shutoff, #air_loop_hvac_energy_recovery_ventilator_flow_limit, #air_loop_hvac_fan_power_limitation_pressure_drop_adjustment_brake_horsepower, #air_loop_hvac_integrated_economizer_required?, #air_loop_hvac_multizone_vav_system?, #air_loop_hvac_optimum_start_required?, #air_loop_hvac_prm_baseline_economizer_required?, #air_loop_hvac_prm_economizer_type_and_limits, #air_loop_hvac_set_vsd_curve_type, #air_loop_hvac_unoccupied_threshold, #air_loop_hvac_vav_damper_action, #air_terminal_single_duct_parallel_piu_reheat_fan_on_flow_fraction, #air_terminal_single_duct_vav_reheat_apply_minimum_damper_position, #baseline_air_loop_hvac_demand_control_ventilation_required?, #baseline_thermal_zone_demand_control_ventilation_required?, #boiler_get_eff_fplr, #boiler_hot_water_apply_efficiency_and_curves, #calculate_electric_value_by_userdata, #calculate_lpd_by_space, #calculate_lpd_from_userdata, #check_userdata_airloop_hvac, #check_userdata_airloop_hvac_doas, #check_userdata_building, #check_userdata_electric_equipment, #check_userdata_exterior_lighting, #check_userdata_gas_equipment, #check_userdata_lights, #check_userdata_outdoor_air, #check_userdata_space_and_spacetype, #check_userdata_thermal_zone, #check_userdata_wateruse_connections, #check_userdata_wateruse_equipment, #check_userdata_wateruse_equipment_definition, #check_userdata_zone_hvac, #chiller_electric_eir_apply_efficiency_and_curves, #chw_sizing_control, #coil_cooling_dx_single_speed_apply_efficiency_and_curves, #coil_cooling_dx_single_speed_find_capacity, #coil_cooling_dx_single_speed_standard_minimum_cop, #coil_cooling_dx_two_speed_apply_efficiency_and_curves, #coil_cooling_dx_two_speed_find_capacity, #coil_cooling_dx_two_speed_standard_minimum_cop, #coil_heating_dx_single_speed_apply_efficiency_and_curves, #coil_heating_dx_single_speed_find_capacity, #coil_heating_dx_single_speed_standard_minimum_cop, #coil_heating_gas_apply_efficiency_and_curves, #coil_heating_gas_find_search_criteria, #coil_heating_gas_standard_minimum_thermal_efficiency, #convert_userdata_csv_to_json, #deep_copy_schedule, #fan_variable_volume_part_load_fan_power_limitation?, #fan_variable_volume_part_load_fan_power_limitation_hp_limit, #find_prm_heat_type, #generate_baseline_log, #generate_userdata_to_csv, #get_airloop_hvac_design_oa_from_sql, #get_baseline_system_groups_for_one_building_type, #get_model_fenestration_area_by_orientation, #handle_airloop_doas_user_input_data, #handle_airloop_user_input_data, #handle_electric_equipment_user_input_data, #handle_exterior_lighting_user_input_data, #handle_gas_equipment_user_input_data, #handle_lights_user_input_data, #handle_multi_building_area_types, #handle_outdoor_air_user_input_data, #handle_thermal_zone_user_input_data, #handle_user_input_data, #handle_wateruse_connections_user_input_data, #handle_wateruse_equipment_definition_user_input_data, #handle_wateruse_equipment_user_input_data, #handle_zone_hvac_user_input_data, #has_multi_lpd_values_space_type, #has_multi_lpd_values_user_data, #has_user_lpd_values, #heat_exchanger_air_to_air_sensible_and_latent_design_conditions, #heat_exchanger_air_to_air_sensible_and_latent_enthalpy_recovery_ratio, #heat_exchanger_air_to_air_sensible_and_latent_minimum_effectiveness, #load_userdata_to_standards_database, #model_add_apxg_dcv_properties, #model_add_dcv_requirement_properties, #model_add_dcv_user_exception_properties, #model_add_prm_elevators, #model_adjusted_building_envelope_infiltration, #model_apply_baseline_exterior_lighting, #model_apply_baseline_swh_loops, #model_apply_constructions, #model_apply_hvac_efficiency_standard, #model_apply_multizone_vav_outdoor_air_sizing, #model_apply_prm_baseline_sizing_schedule, #model_apply_prm_baseline_skylight_to_roof_ratio, #model_apply_prm_construction_types, #model_apply_standard_constructions, #model_apply_standard_infiltration, #model_baseline_system_vav_fan_type, #model_building_envelope_area, #model_create_multizone_fan_schedule, #model_current_building_envelope_infiltration_at_75pa, #model_differentiate_primary_secondary_thermal_zones, #model_does_require_wwr_adjustment?, #model_evaluate_dcv_requirements, #model_get_bat_wwr_target, #model_get_fan_power_breakdown, #model_get_infiltration_coefficients, #model_get_infiltration_method, #model_get_space_air_leakage, #model_identify_non_mechanically_cooled_systems, #model_mark_zone_dcv_existence, #model_prm_baseline_system_change_fuel_type, #model_prm_baseline_system_groups, #model_prm_baseline_system_number, #model_prm_baseline_system_type, #model_raise_user_model_dcv_errors, #model_readjust_surface_wwr, #model_refine_size_dependent_values, #model_set_baseline_demand_control_ventilation, #model_set_central_preheat_coil_spm, #model_update_ground_temperature_profile, #planar_surface_apply_standard_construction, #plant_loop_apply_prm_baseline_pump_power, #plant_loop_apply_prm_number_of_chillers, #plant_loop_apply_prm_number_of_cooling_towers, #plant_loop_set_chw_pri_sec_configuration, #run_all_orientations, #set_coil_cooling_efficiency_and_curves, #set_coil_heating_efficiency_and_curves, #set_lpd_on_space_type, #space_add_prm_computer_room_equipment_schedule, #space_apply_infiltration_rate, #space_set_baseline_daylighting_controls, #space_to_space_type_apply_lighting, #space_to_space_type_apply_power_equipment, #space_type_apply_internal_loads, #space_type_apply_power_equipment, #space_type_light_sch_change, #stage_chilled_water_loop_operation_schemes, #surface_adjust_fenestration_in_a_surface, #surface_get_wwr_reduction_ratio, #thermal_zone_get_fan_power_limitations, #thermal_zone_get_zone_fuels_for_occ_and_fuel_type, #thermal_zone_prm_lab_delta_t, #thermal_zone_prm_unitheater_design_supply_temperature, #update_power_equipment_credits, #user_data_preprocessor, #user_data_validation, #user_model_air_loop_hvac_demand_control_ventilation_required?, #user_model_zone_demand_control_ventilation_required?, #zone_hvac_component_apply_prm_baseline_fan_power, #zone_hvac_unoccupied_threshold
Methods included from ASHRAEPRMCoilDX
#coil_dx_find_search_criteria, #coil_dx_subcategory
Methods included from ASHRAE901PRMFan
#fan_standard_minimum_motor_efficiency_and_size
Methods inherited from Standard
#adjust_sizing_system, #afue_to_thermal_eff, #air_loop_hvac_add_motorized_oa_damper, #air_loop_hvac_adjust_minimum_vav_damper_positions, #air_loop_hvac_adjust_minimum_vav_damper_positions_outpatient, #air_loop_hvac_allowable_system_brake_horsepower, #air_loop_hvac_apply_baseline_fan_pressure_rise, #air_loop_hvac_apply_economizer_integration, #air_loop_hvac_apply_economizer_limits, #air_loop_hvac_apply_energy_recovery_ventilator, #air_loop_hvac_apply_energy_recovery_ventilator_efficiency, #air_loop_hvac_apply_maximum_reheat_temperature, #air_loop_hvac_apply_minimum_vav_damper_positions, #air_loop_hvac_apply_multizone_vav_outdoor_air_sizing, #air_loop_hvac_apply_prm_baseline_controls, #air_loop_hvac_apply_prm_baseline_economizer, #air_loop_hvac_apply_prm_baseline_fan_power, #air_loop_hvac_apply_prm_sizing_temperatures, #air_loop_hvac_apply_single_zone_controls, #air_loop_hvac_apply_standard_controls, #air_loop_hvac_apply_vav_damper_action, #air_loop_hvac_data_center_area_served, #air_loop_hvac_dcv_required_when_erv, #air_loop_hvac_demand_control_ventilation_limits, #air_loop_hvac_demand_control_ventilation_required?, #air_loop_hvac_disable_multizone_vav_optimization, #air_loop_hvac_dx_cooling?, #air_loop_hvac_economizer?, #air_loop_hvac_economizer_limits, #air_loop_hvac_economizer_required?, #air_loop_hvac_economizer_type_allowable?, #air_loop_hvac_enable_demand_control_ventilation, #air_loop_hvac_enable_multizone_vav_optimization, #air_loop_hvac_enable_optimum_start, #air_loop_hvac_enable_supply_air_temperature_reset_delta, #air_loop_hvac_enable_supply_air_temperature_reset_outdoor_temperature, #air_loop_hvac_enable_supply_air_temperature_reset_warmest_zone, #air_loop_hvac_enable_unoccupied_fan_shutoff, #air_loop_hvac_energy_recovery?, #air_loop_hvac_energy_recovery_ventilator_flow_limit, #air_loop_hvac_energy_recovery_ventilator_heat_exchanger_type, #air_loop_hvac_energy_recovery_ventilator_required?, #air_loop_hvac_energy_recovery_ventilator_type, #air_loop_hvac_fan_power_limitation_pressure_drop_adjustment_brake_horsepower, #air_loop_hvac_find_design_supply_air_flow_rate, #air_loop_hvac_floor_area_served, #air_loop_hvac_floor_area_served_exterior_zones, #air_loop_hvac_floor_area_served_interior_zones, #air_loop_hvac_get_occupancy_schedule, #air_loop_hvac_get_relief_fan_power, #air_loop_hvac_get_return_fan_power, #air_loop_hvac_get_supply_fan, #air_loop_hvac_get_supply_fan_power, #air_loop_hvac_has_parallel_piu_air_terminals?, #air_loop_hvac_has_simple_transfer_air?, #air_loop_hvac_humidifier_count, #air_loop_hvac_include_cooling_coil?, #air_loop_hvac_include_economizer?, #air_loop_hvac_include_evaporative_cooler?, #air_loop_hvac_include_hydronic_cooling_coil?, #air_loop_hvac_include_unitary_system?, #air_loop_hvac_include_wshp?, #air_loop_hvac_integrated_economizer_required?, #air_loop_hvac_minimum_zone_ventilation_efficiency, #air_loop_hvac_motorized_oa_damper_limits, #air_loop_hvac_motorized_oa_damper_required?, #air_loop_hvac_multi_stage_dx_cooling?, #air_loop_hvac_multizone_vav_optimization_required?, #air_loop_hvac_multizone_vav_system?, #air_loop_hvac_optimum_start_required?, #air_loop_hvac_prm_baseline_economizer_required?, #air_loop_hvac_prm_economizer_type_and_limits, #air_loop_hvac_remove_erv, #air_loop_hvac_remove_motorized_oa_damper, #air_loop_hvac_residential_area_served, #air_loop_hvac_return_air_plenum, #air_loop_hvac_set_minimum_damper_position, #air_loop_hvac_set_vsd_curve_type, #air_loop_hvac_single_zone_controls_num_stages, #air_loop_hvac_standby_mode_occupancy_control, #air_loop_hvac_static_pressure_reset_required?, #air_loop_hvac_supply_air_temperature_reset_required?, #air_loop_hvac_supply_return_exhaust_relief_fans, #air_loop_hvac_system_fan_brake_horsepower, #air_loop_hvac_system_multiplier, #air_loop_hvac_terminal_reheat?, #air_loop_hvac_total_cooling_capacity, #air_loop_hvac_unitary_system?, #air_loop_hvac_unoccupied_fan_shutoff_required?, #air_loop_hvac_unoccupied_threshold, #air_loop_hvac_vav_damper_action, #air_loop_hvac_vav_system?, #air_terminal_single_duct_parallel_piu_reheat_apply_minimum_primary_airflow_fraction, #air_terminal_single_duct_parallel_piu_reheat_apply_prm_baseline_fan_power, #air_terminal_single_duct_parallel_piu_reheat_fan_on_flow_fraction, #air_terminal_single_duct_parallel_reheat_piu_minimum_primary_airflow_fraction, #air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position, #air_terminal_single_duct_vav_reheat_apply_minimum_damper_position, #air_terminal_single_duct_vav_reheat_minimum_damper_position, #air_terminal_single_duct_vav_reheat_reheat_type, #air_terminal_single_duct_vav_reheat_set_heating_cap, #apply_lighting_schedule, #apply_limit_to_subsurface_ratio, #boiler_get_eff_fplr, #boiler_hot_water_apply_efficiency_and_curves, #boiler_hot_water_find_capacity, #boiler_hot_water_find_design_water_flow_rate, #boiler_hot_water_find_search_criteria, #boiler_hot_water_standard_minimum_thermal_efficiency, build, #chiller_electric_eir_apply_efficiency_and_curves, #chiller_electric_eir_find_capacity, #chiller_electric_eir_find_search_criteria, #chiller_electric_eir_get_cap_f_t_curve_name, #chiller_electric_eir_get_eir_f_plr_curve_name, #chiller_electric_eir_get_eir_f_t_curve_name, #chiller_electric_eir_standard_minimum_full_load_efficiency, #chw_sizing_control, #coil_cooling_dx_multi_speed_apply_efficiency_and_curves, #coil_cooling_dx_multi_speed_find_capacity, #coil_cooling_dx_multi_speed_standard_minimum_cop, #coil_cooling_dx_single_speed_apply_efficiency_and_curves, #coil_cooling_dx_single_speed_find_capacity, #coil_cooling_dx_single_speed_standard_minimum_cop, #coil_cooling_dx_two_speed_apply_efficiency_and_curves, #coil_cooling_dx_two_speed_find_capacity, #coil_cooling_dx_two_speed_standard_minimum_cop, #coil_cooling_water_to_air_heat_pump_apply_efficiency_and_curves, #coil_cooling_water_to_air_heat_pump_find_capacity, #coil_cooling_water_to_air_heat_pump_standard_minimum_cop, #coil_heating_dx_multi_speed_apply_efficiency_and_curves, #coil_heating_dx_single_speed_apply_defrost_eir_curve_limits, #coil_heating_dx_single_speed_apply_efficiency_and_curves, #coil_heating_dx_single_speed_find_capacity, #coil_heating_dx_single_speed_standard_minimum_cop, #coil_heating_gas_additional_search_criteria, #coil_heating_gas_apply_efficiency_and_curves, #coil_heating_gas_apply_prototype_efficiency, #coil_heating_gas_find_capacity, #coil_heating_gas_multi_stage_apply_efficiency_and_curves, #coil_heating_gas_multi_stage_find_capacity, #coil_heating_gas_multi_stage_find_search_criteria, #coil_heating_water_to_air_heat_pump_apply_efficiency_and_curves, #coil_heating_water_to_air_heat_pump_find_capacity, #coil_heating_water_to_air_heat_pump_standard_minimum_cop, #combustion_eff_to_thermal_eff, #controller_water_coil_set_convergence_limits, #convert_curve_biquadratic, #cooling_tower_single_speed_apply_efficiency_and_curves, #cooling_tower_two_speed_apply_efficiency_and_curves, #cooling_tower_variable_speed_apply_efficiency_and_curves, #cop_heating_to_cop_heating_no_fan, #cop_no_fan_to_eer, #cop_no_fan_to_seer, #cop_to_eer, #cop_to_kw_per_ton, #cop_to_seer, #create_air_conditioner_variable_refrigerant_flow, #create_boiler_hot_water, #create_central_air_source_heat_pump, #create_coil_cooling_dx_single_speed, #create_coil_cooling_dx_two_speed, #create_coil_cooling_water, #create_coil_cooling_water_to_air_heat_pump_equation_fit, #create_coil_heating_dx_single_speed, #create_coil_heating_electric, #create_coil_heating_gas, #create_coil_heating_water, #create_coil_heating_water_to_air_heat_pump_equation_fit, #create_curve_bicubic, #create_curve_biquadratic, #create_curve_cubic, #create_curve_exponent, #create_curve_quadratic, #create_fan_constant_volume, #create_fan_constant_volume_from_json, #create_fan_on_off, #create_fan_on_off_from_json, #create_fan_variable_volume, #create_fan_variable_volume_from_json, #create_fan_zone_exhaust, #create_fan_zone_exhaust_from_json, #define_space_multiplier, #eer_to_cop, #eer_to_cop_no_fan, #ems_friendly_name, #enthalpy_recovery_ratio_design_to_typical_adjustment, #fan_constant_volume_airloop_fan_pressure_rise, #fan_constant_volume_apply_prototype_fan_pressure_rise, #fan_on_off_airloop_or_unitary_fan_pressure_rise, #fan_on_off_apply_prototype_fan_pressure_rise, #fan_variable_volume_airloop_fan_pressure_rise, #fan_variable_volume_apply_prototype_fan_pressure_rise, #fan_variable_volume_cooling_system_type, #fan_variable_volume_part_load_fan_power_limitation?, #fan_variable_volume_part_load_fan_power_limitation_capacity_limit, #fan_variable_volume_part_load_fan_power_limitation_hp_limit, #fan_variable_volume_set_control_type, #fan_zone_exhaust_apply_prototype_fan_pressure_rise, #find_exposed_conditioned_roof_surfaces, #find_exposed_conditioned_vertical_surfaces, #find_highest_roof_centre, #fluid_cooler_apply_minimum_power_per_flow, #get_avg_of_other_zones, #get_default_surface_cons_from_surface_type, #get_fan_object_for_airloop, #get_fan_schedule_for_each_zone, #get_group_heat_types, #get_outdoor_subsurface_ratio, #get_weekday_values_from_8760, #get_wtd_avg_of_other_zones, #headered_pumps_variable_speed_set_control_type, #heat_exchanger_air_to_air_sensible_and_latent_apply_effectiveness, #heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_efficiency, #heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_efficiency_enthalpy_recovery_ratio, #heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_nominal_electric_power, #heat_exchanger_air_to_air_sensible_and_latent_enthalpy_recovery_ratio_to_effectiveness, #heat_exchanger_air_to_air_sensible_and_latent_minimum_effectiveness, #heat_exchanger_air_to_air_sensible_and_latent_prototype_default_fan_efficiency, #hspf_to_cop, #hspf_to_cop_no_fan, #interior_lighting_get_prm_data, #kw_per_ton_to_cop, #load_hvac_map, #load_initial_osm, #make_ruleset_sched_from_8760, #make_week_ruleset_sched_from_168, #model_add_baseboard, #model_add_cav, #model_add_central_air_source_heat_pump, #model_add_chw_loop, #model_add_construction, #model_add_construction_set, #model_add_crac, #model_add_crah, #model_add_curve, #model_add_cw_loop, #model_add_data_center_hvac, #model_add_data_center_load, #model_add_daylighting_controls, #model_add_district_ambient_loop, #model_add_doas, #model_add_doas_cold_supply, #model_add_elevator, #model_add_elevators, #model_add_evap_cooler, #model_add_exhaust_fan, #model_add_four_pipe_fan_coil, #model_add_furnace_central_ac, #model_add_ground_hx_loop, #model_add_high_temp_radiant, #model_add_hp_loop, #model_add_hvac, #model_add_hvac_system, #model_add_hw_loop, #model_add_ideal_air_loads, #model_add_low_temp_radiant, #model_add_material, #model_add_minisplit_hp, #model_add_plant_supply_water_temperature_control, #model_add_prm_baseline_system, #model_add_prm_elevators, #model_add_psz_ac, #model_add_psz_vav, #model_add_ptac, #model_add_pthp, #model_add_pvav, #model_add_pvav_pfp_boxes, #model_add_radiant_basic_controls, #model_add_radiant_proportional_controls, #model_add_refrigeration_case, #model_add_refrigeration_compressor, #model_add_refrigeration_system, #model_add_refrigeration_walkin, #model_add_residential_erv, #model_add_residential_ventilator, #model_add_schedule, #model_add_split_ac, #model_add_swh, #model_add_swh_end_uses_by_space, #model_add_transformer, #model_add_typical_exterior_lights, #model_add_typical_refrigeration, #model_add_typical_swh, #model_add_unitheater, #model_add_vav_pfp_boxes, #model_add_vav_reheat, #model_add_vrf, #model_add_water_source_hp, #model_add_waterside_economizer, #model_add_window_ac, #model_add_zone_erv, #model_add_zone_heat_cool_request_count_program, #model_add_zone_ventilation, #model_apply_baseline_exterior_lighting, #model_apply_hvac_efficiency_standard, #model_apply_infiltration_standard, #model_apply_multizone_vav_outdoor_air_sizing, #model_apply_prm_baseline_sizing_schedule, #model_apply_prm_baseline_skylight_to_roof_ratio, #model_apply_prm_baseline_window_to_wall_ratio, #model_apply_prm_construction_types, #model_apply_prm_sizing_parameters, #model_apply_standard_constructions, #model_apply_standard_infiltration, #model_baseline_system_vav_fan_type, #model_create_exterior_lighting_area_length_count_hash, #model_create_multizone_fan_schedule, #model_create_prm_any_baseline_building, #model_create_prm_baseline_building, #model_create_prm_baseline_building_requires_vlt_sizing_run, #model_create_prm_proposed_building, #model_create_prm_stable_baseline_building, #model_create_space_type_hash, #model_create_story_hash, #model_cw_loop_cooling_tower_fan_type, #model_differentiate_primary_secondary_thermal_zones, #model_effective_num_stories, #model_elevator_fan_pwr, #model_elevator_lift_power, #model_elevator_lighting_pct_incandescent, #model_eliminate_outlier_zones, #model_find_and_add_construction, #model_find_ashrae_hot_water_demand, #model_find_climate_zone_set, #model_find_icc_iecc_2015_hot_water_demand, #model_find_icc_iecc_2015_internal_loads, #model_find_object, #model_find_objects, #model_find_prototype_floor_area, #model_find_target_eui, #model_find_target_eui_by_end_use, #model_find_water_heater_capacity_volume_and_parasitic, #model_get_baseline_system_type_by_zone, #model_get_building_properties, #model_get_climate_zone_set_from_list, #model_get_construction_properties, #model_get_construction_set, #model_get_district_heating_zones, #model_get_lookup_name, #model_get_or_add_ambient_water_loop, #model_get_or_add_chilled_water_loop, #model_get_or_add_ground_hx_loop, #model_get_or_add_heat_pump_loop, #model_get_or_add_hot_water_loop, #model_is_hvac_autosized, #model_legacy_results_by_end_use_and_fuel_type, #model_make_name, #model_prm_baseline_system_change_fuel_type, #model_prm_baseline_system_groups, #model_prm_baseline_system_number, #model_prm_baseline_system_type, #model_process_results_for_datapoint, #model_remap_office, #model_remove_external_shading_devices, #model_remove_prm_ems_objects, #model_remove_prm_hvac, #model_remove_unused_resource_objects, #model_set_vav_terminals_to_control_for_outdoor_air, #model_system_outdoor_air_sizing_vrp_method, #model_two_pipe_loop, #model_typical_display_case_zone, #model_typical_hvac_system_type, #model_typical_walkin_zone, #model_validate_standards_spacetypes_in_model, #model_ventilation_method, #model_walkin_freezer_latent_case_credit_curve, #model_zones_with_occ_and_fuel_type, #planar_surface_apply_standard_construction, #plant_loop_adiabatic_pipes_only, #plant_loop_apply_prm_baseline_chilled_water_pumping_type, #plant_loop_apply_prm_baseline_chilled_water_temperatures, #plant_loop_apply_prm_baseline_condenser_water_pumping_type, #plant_loop_apply_prm_baseline_condenser_water_temperatures, #plant_loop_apply_prm_baseline_hot_water_pumping_type, #plant_loop_apply_prm_baseline_hot_water_temperatures, #plant_loop_apply_prm_baseline_pump_power, #plant_loop_apply_prm_baseline_pumping_type, #plant_loop_apply_prm_baseline_temperatures, #plant_loop_apply_prm_number_of_boilers, #plant_loop_apply_prm_number_of_chillers, #plant_loop_apply_prm_number_of_cooling_towers, #plant_loop_apply_standard_controls, #plant_loop_capacity_w_by_maxflow_and_delta_t_forwater, #plant_loop_enable_supply_water_temperature_reset, #plant_loop_find_maximum_loop_flow_rate, #plant_loop_prm_baseline_condenser_water_temperatures, #plant_loop_set_chw_pri_sec_configuration, #plant_loop_supply_water_temperature_reset_required?, #plant_loop_swh_loop?, #plant_loop_swh_system_type, #plant_loop_total_cooling_capacity, #plant_loop_total_floor_area_served, #plant_loop_total_heating_capacity, #plant_loop_total_rated_w_per_gpm, #plant_loop_variable_flow_system?, #prototype_apply_condenser_water_temperatures, #prototype_condenser_water_temperatures, #pump_variable_speed_control_type, #pump_variable_speed_get_control_type, #pump_variable_speed_set_control_type, register_standard, #remove_air_loops, #remove_all_hvac, #remove_all_plant_loops, #remove_all_zone_equipment, #remove_hvac, #remove_plant_loops, #remove_unused_curves, #remove_vrf, #remove_zone_equipment, #rename_air_loop_nodes, #rename_plant_loop_nodes, #safe_load_model, #seer_to_cop, #seer_to_cop_no_fan, #set_maximum_fraction_outdoor_air_schedule, #space_add_daylighting_controls, #space_apply_infiltration_rate, #space_conditioning_category, #space_daylighted_area_window_width, #space_daylighted_areas, #space_daylighting_control_required?, #space_daylighting_fractions_and_windows, #space_get_equip_annual_array, #space_get_loads_for_all_equips, #space_internal_load_annual_array, #space_occupancy_annual_array, #space_remove_daylighting_controls, #space_set_baseline_daylighting_controls, #space_sidelighting_effective_aperture, #space_skylight_effective_aperture, #space_type_apply_int_loads_prm, #space_type_apply_internal_load_schedules, #space_type_apply_internal_loads, #space_type_apply_rendering_color, #space_type_get_construction_properties, #space_type_get_standards_data, #space_type_light_sch_change, #standard_design_sizing_temperatures, #standards_lookup_table_first, #standards_lookup_table_many, #strip_model, #sub_surface_create_centered_subsurface_from_scaled_surface, #sub_surface_create_scaled_subsurfaces_from_surface, #surface_adjust_fenestration_in_a_surface, #surface_subsurface_ua, #thermal_eff_to_afue, #thermal_eff_to_comb_eff, #thermal_zone_add_exhaust, #thermal_zone_add_exhaust_fan_dcv, #thermal_zone_apply_prm_baseline_supply_temperatures, #thermal_zone_conditioning_category, #thermal_zone_demand_control_ventilation_limits, #thermal_zone_demand_control_ventilation_required?, #thermal_zone_exhaust_fan_dcv_required?, #thermal_zone_fossil_or_electric_type, #thermal_zone_get_annual_operating_hours, #thermal_zone_get_zone_fuels_for_occ_and_fuel_type, #thermal_zone_infer_system_type, #thermal_zone_occupancy_eflh, #thermal_zone_occupancy_type, #thermal_zone_peak_internal_load, #thermal_zone_prm_baseline_cooling_design_supply_temperature, #thermal_zone_prm_baseline_heating_design_supply_temperature, #thermal_zone_prm_lab_delta_t, #thermal_zone_prm_unitheater_design_supply_temperature, #true?, #validate_initial_model, #water_heater_convert_energy_factor_to_thermal_efficiency_and_ua, #water_heater_convert_uniform_energy_factor_to_energy_factor, #water_heater_determine_sub_type, #water_heater_mixed_additional_search_criteria, #water_heater_mixed_apply_efficiency, #water_heater_mixed_apply_prm_baseline_fuel_type, #water_heater_mixed_find_capacity, #water_heater_mixed_get_efficiency_requirement, #zone_hvac_component_apply_prm_baseline_fan_power, #zone_hvac_component_apply_standard_controls, #zone_hvac_component_apply_vestibule_heating_control, #zone_hvac_component_occupancy_ventilation_control, #zone_hvac_component_prm_baseline_fan_efficacy, #zone_hvac_component_vestibule_heating_control_required?, #zone_hvac_get_fan_object, #zone_hvac_model_standby_mode_occupancy_control, #zone_hvac_unoccupied_threshold
Methods included from PrototypeFan
apply_base_fan_variables, #create_fan_by_name, #get_fan_from_standards, #lookup_fan_curve_coefficients_from_json, #prototype_fan_apply_prototype_fan_efficiency
Methods included from CoilDX
#coil_dx_find_search_criteria, #coil_dx_heat_pump?, #coil_dx_heating_type, #coil_dx_subcategory
Methods included from CoolingTower
#cooling_tower_apply_minimum_power_per_flow, #cooling_tower_apply_minimum_power_per_flow_gpm_limit
Methods included from Pump
#pump_apply_prm_pressure_rise_and_motor_efficiency, #pump_apply_standard_minimum_motor_efficiency, #pump_brake_horsepower, #pump_motor_horsepower, #pump_pumppower, #pump_rated_w_per_gpm, #pump_standard_minimum_motor_efficiency_and_size
Methods included from Fan
#fan_adjust_pressure_rise_to_meet_fan_power, #fan_apply_standard_minimum_motor_efficiency, #fan_baseline_impeller_efficiency, #fan_brake_horsepower, #fan_change_impeller_efficiency, #fan_change_motor_efficiency, #fan_design_air_flow, #fan_fanpower, #fan_motor_horsepower, #fan_rated_w_per_cfm, #fan_small_fan?, #fan_standard_minimum_motor_efficiency_and_size
Constructor Details
#initialize ⇒ ASHRAE901PRM2019
Returns a new instance of ASHRAE901PRM2019.
8 9 10 11 12 |
# File 'lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb', line 8 def initialize super() @template = '90.1-PRM-2019' load_standards_database end |
Instance Attribute Details
#template ⇒ Object (readonly)
Returns the value of attribute template.
6 7 8 |
# File 'lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb', line 6 def template @template end |
Instance Method Details
#load_standards_database(data_directories = []) ⇒ Object
14 15 16 |
# File 'lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb', line 14 def load_standards_database(data_directories = []) super([__dir__] + data_directories) end |
#model_apply_userdata_outdoor_air(model) ⇒ Boolean
Function applies user specified OA to the model
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.DesignSpecificationOutdoorAir.rb', line 8 def model_apply_userdata_outdoor_air(model) # Step 1: Create a hash that maps design_spec_oa to a list of spaces # Also create a map that maps each design_spec_oa name to design_spec_oa. oa_spec_to_spaces = {} oa_spec_hash = {} model.getSpaces.each do |space| oa_spec = space.designSpecificationOutdoorAir if oa_spec.is_initialized oa_spec = oa_spec.get oa_spec_name = oa_spec.name.get unless oa_spec_to_spaces.key?(oa_spec_name) # init oa_spec_name associate zone name list. oa_spec_to_spaces[oa_spec_name] = [] end unless oa_spec_hash.key?(oa_spec_name) # init the map of oa_spec_name to oa_spec object oa_spec_hash[oa_spec_name] = oa_spec end oa_spec_to_spaces[oa_spec_name].push(space) end end # Step 2: Loop the hash (oa_spec_name -> space_lists) oa_spec_to_spaces.each do |oa_spec_name, space_list| design_spec_oa = oa_spec_hash[oa_spec_name] if design_spec_oa.additionalProperties.hasFeature('has_user_data') outdoor_air_method = design_spec_oa.outdoorAirMethod outdoor_airflow_per_person = get_additional_property_as_double(design_spec_oa, 'outdoor_airflow_per_person') outdoor_airflow_per_floor_area = get_additional_property_as_double(design_spec_oa, 'outdoor_airflow_per_floor_area') outdoor_air_flowrate = get_additional_property_as_double(design_spec_oa, 'outdoor_air_flowrate') outdoor_air_flow_air_changes_per_hour = get_additional_property_as_double(design_spec_oa, 'outdoor_air_flow_air_changes_per_hour') # Area SQL - TabularDataWithStrings -> InputVerificationResultsSummary -> Entire Facility -> Zone Summary -> Zone Name -> Area total_modeled_area_oa = 0.0 # m2 total_user_area_oa = 0.0 # m2 total_modeled_people_oa = 0.0 # m3/s-person total_user_people_oa = 0.0 # m3/s-person total_modeled_airflow_oa = 0.0 # m3/s total_user_airflow_oa = 0.0 # m3/s total_modeled_ach_oa = 0.0 # ach total_user_ach_oa = 0.0 # ach space_list.each do |space| floor_area = space.floorArea volume = space.volume number_people = space.numberOfPeople total_modeled_area_oa += floor_area * design_spec_oa.outdoorAirFlowperFloorArea total_user_area_oa += floor_area * outdoor_airflow_per_floor_area total_modeled_people_oa += number_people * design_spec_oa.outdoorAirFlowperPerson total_user_people_oa += number_people * outdoor_airflow_per_person total_modeled_airflow_oa += design_spec_oa.outdoorAirFlowRate total_user_airflow_oa += outdoor_air_flowrate # convert to m3/s -> ach * volume / 3600 total_modeled_ach_oa += design_spec_oa.outdoorAirFlowAirChangesperHour * volume / 3600 total_user_ach_oa += outdoor_air_flow_air_changes_per_hour * volume / 3600 end # calculate the amount of total outdoor air if outdoor_air_method.casecmp('sum') == 0 total_modeled_airflow = total_modeled_area_oa + total_modeled_people_oa + total_modeled_airflow_oa + total_modeled_ach_oa total_user_airflow = total_user_area_oa + total_user_people_oa + total_user_airflow_oa + total_user_ach_oa elsif outdoor_air_method.casecmp('maximum') == 0 total_modeled_airflow = [total_modeled_area_oa, total_modeled_people_oa, total_modeled_airflow_oa, total_modeled_ach_oa].max total_user_airflow = [total_user_area_oa, total_user_people_oa, total_user_airflow_oa, total_user_ach_oa].max else # No outdoor air method specified or match to the options available in OpenStudio # Raise exception to flag the modeling error error_msg = "DesignSpecification:OutdoorAir: #{design_spec_oa.name.get} is missing a method or the method is not one of the options {'Maximum', 'Sum'}." OpenStudio.logFree(OpenStudio::Warn, 'prm.log', error_msg) prm_raise(false, @sizing_run_dir, error_msg) end if total_modeled_airflow < total_user_airflow # Do not modify the model outdoor air if the total user airflow is lower than total modeled airflow OpenStudio.logFree(OpenStudio::Warn, 'prm.log', "The calculated total airflow for DesignSpecification:OutdoorAir is #{total_modeled_airflow} m3/s, which is smaller than the calculated user total airflow #{total_user_airflow} m3/s. Skip modifying the Outdoor Air.") else # set values. design_spec_oa.setOutdoorAirFlowperFloorArea(outdoor_airflow_per_floor_area) OpenStudio.logFree(OpenStudio::Info, 'prm.log', "Update DesignSpecification:OutdoorAir #{oa_spec_name} Outdoor Air Flow Per Floor Area to #{outdoor_airflow_per_floor_area} m3/s-m2.") design_spec_oa.setOutdoorAirFlowperPerson(outdoor_airflow_per_person) OpenStudio.logFree(OpenStudio::Info, 'prm.log', "Update DesignSpecification:OutdoorAir #{oa_spec_name} Outdoor Air Flow Per Person to #{outdoor_airflow_per_person} m3/s-person.") design_spec_oa.setOutdoorAirFlowRate(outdoor_air_flowrate) OpenStudio.logFree(OpenStudio::Info, 'prm.log', "Update DesignSpecification:OutdoorAir #{oa_spec_name} Outdoor Air Flow Rate to #{outdoor_air_flowrate} m3/s.") design_spec_oa.setOutdoorAirFlowAirChangesperHour(outdoor_air_flow_air_changes_per_hour) OpenStudio.logFree(OpenStudio::Info, 'prm.log', "Update DesignSpecification:OutdoorAir #{oa_spec_name} Outdoor Air ACH to #{outdoor_air_flow_air_changes_per_hour}.") end end end end |
#model_create_prm_baseline_building_requires_proposed_model_sizing_run(model) ⇒ Boolean
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.
11 12 13 |
# File 'lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb', line 11 def model_create_prm_baseline_building_requires_proposed_model_sizing_run(model) return true end |
#model_get_percent_of_surface_range(model, wwr_parameter) ⇒ Object
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
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb', line 29 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 |
#model_prm_skylight_to_roof_ratio_limit(model) ⇒ Double
Determines the skylight to roof ratio limit for a given standard 3% for 90.1-PRM-2019
18 19 20 21 |
# File 'lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb', line 18 def model_prm_skylight_to_roof_ratio_limit(model) srr_lim = 3.0 return srr_lim end |
#space_infiltration_rate_75_pa(space = nil) ⇒ Double
Determine the base infiltration rate at 75 PA.
defaults to no infiltration.
23 24 25 26 |
# File 'lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb', line 23 def space_infiltration_rate_75_pa(space = nil) basic_infil_rate_cfm_per_ft2 = 1.0 return basic_infil_rate_cfm_per_ft2 end |