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,
lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.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_apply_baseline_swh_loops(model, building_type, swh_building_type = 'All others') ⇒ Boolean
Modify the existing service water heating loops to match the baseline required heating type.
-
#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
-
#model_apply_water_heater_prm_parameter(water_heater_mixed, building_type_swh) ⇒ Boolean
Apply the prm parameter to a water heater based on the building area type.
-
#water_heater_mixed_apply_prm_baseline_fuel_type(building_type) ⇒ String
Apply the prm fuel type to a water heater based on the building area type.
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, #convert_value, #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_space_conditioning_category, #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_schemas, #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_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_standard_infiltration, #model_baseline_system_vav_fan_type, #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, #prm_building_envelope_infiltration_rate, #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_conditioner_variable_refrigerant_flow_apply_efficiency_and_curves, #air_conditioner_variable_refrigerant_flow_find_capacity, #air_conditioner_variable_refrigerant_flow_find_search_criteria, #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, #default_air_barrier, #default_airtightness, #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, #ieer_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_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_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_baseline_system_vav_fan_type, #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_maximum_value, #model_find_object, #model_find_objects, #model_find_prototype_floor_area, #model_find_target_eui, #model_find_target_eui_by_end_use, #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_hvac_system_type, #model_validate_standards_spacetypes_in_model, #model_ventilation_method, #model_zones_with_occ_and_fuel_type, #motor_fractional_hp_efficiencies, #motor_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?, #prm_building_envelope_infiltration_rate, #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_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_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_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_cap_fflow, #coil_dx_cap_ft, #coil_dx_eir_fflow, #coil_dx_eir_ft, #coil_dx_electric_power_phase, #coil_dx_find_search_criteria, #coil_dx_heat_pump?, #coil_dx_heating_type, #coil_dx_packaged_terminal_application, #coil_dx_plf_fplr, #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_baseline_swh_loops(model, building_type, swh_building_type = 'All others') ⇒ Boolean
Modify the existing service water heating loops to match the baseline required heating type.
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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb', line 65 def model_apply_baseline_swh_loops(model, building_type, swh_building_type = 'All others') building_type_list = [] # Get the uniq building area type numbers. model.getWaterUseEquipments.each do |wateruse_equipment| additional_property = get_additional_property_as_string(wateruse_equipment, 'building_type_swh', default = nil) unless additional_property.nil? building_type_list << additional_property end end # Apply baseline swh loops # Single building area type if building_type_list.uniq.size <= 1 if building_type_list.uniq.size == 1 swh_building_type_new = building_type_list.uniq[0] else swh_building_type_new = swh_building_type end model.getPlantLoops.each do |plant_loop| # Skip non service water heating loops next unless plant_loop_swh_loop?(plant_loop) # Rename the loop to avoid accidentally hooking up the HVAC systems to this loop later. plant_loop.setName('Service Water Heating Loop') htg_fuels, combination_system, storage_capacity, total_heating_capacity = plant_loop_swh_system_type(plant_loop) # Per Table G3.1 11.e, if the baseline system was a combination of heating and service water heating, # delete all heating equipment and recreate a WaterHeater:Mixed. if combination_system a = plant_loop.supplyComponents b = plant_loop.demandComponents plantloop_components = a += b plantloop_components.each do |component| # Get the object type obj_type = component.iddObjectType.valueName.to_s next if ['OS_Node', 'OS_Pump_ConstantSpeed', 'OS_Pump_VariableSpeed', 'OS_Connector_Splitter', 'OS_Connector_Mixer', 'OS_Pipe_Adiabatic'].include?(obj_type) component.remove end water_heater = OpenStudio::Model::WaterHeaterMixed.new(model) water_heater.setName('Baseline Water Heater') water_heater.setHeaterMaximumCapacity(total_heating_capacity) water_heater.setTankVolume(storage_capacity) # Apply prm parameters model_apply_water_heater_prm_parameter(water_heater, swh_building_type_new) plant_loop.addSupplyBranchForComponent(water_heater) # If it's not a combination heating and service water heating system # just apply prm parameters for all water heaters on the system else # Per Table G3.1 11.i, piping losses was deleted plant_loop_adiabatic_pipes_only(plant_loop) plant_loop.supplyComponents.each do |component| next unless component.to_WaterHeaterMixed.is_initialized water_heater = component.to_WaterHeaterMixed.get model_apply_water_heater_prm_parameter(water_heater, swh_building_type_new) end end end # else # Todo: Multiple building type end return true 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_apply_water_heater_prm_parameter(water_heater_mixed, building_type_swh) ⇒ Boolean
Apply the prm parameter to a water heater based on the building area type.
8 9 10 11 12 13 14 15 |
# File 'lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb', line 8 def model_apply_water_heater_prm_parameter(water_heater_mixed, building_type_swh) new_fuel = water_heater_mixed_apply_prm_baseline_fuel_type(building_type_swh) water_heater_mixed_apply_efficiency(water_heater_mixed) # Change the fuel type water_heater_mixed.setHeaterFuelType(new_fuel) OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.WaterHeaterMixed', "For #{water_heater_mixed.name}, changed baseline water heater fuel to #{new_fuel}.") true 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 |
#water_heater_mixed_apply_prm_baseline_fuel_type(building_type) ⇒ String
Apply the prm fuel type to a water heater based on the building area type.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb', line 20 def water_heater_mixed_apply_prm_baseline_fuel_type(building_type) # Get the fuel type data heater_prop = model_find_object(standards_data['prm_swh_bldg_type'], {'swh_building_type' => building_type}) new_fuel_data = heater_prop['baseline_heating_method'] # There are only two water heater fuel type in the prm database: # ("Gas Storage" and "Electric Resistance Storage") # Change the prm fuel type to openstudio fuel type if new_fuel_data == "Gas Storage" new_fuel = 'NaturalGas' else new_fuel = 'Electricity' end return new_fuel end |