Schema Version: 0.0.34
Mandatory Rule: FALSE
Rule ID: 23-15
Rule Description: Dehumidification reheat shall be the same as the system heating type.
Rule Assertion: B-RMR = expected value
Appendix G Section: Section 23 Air-side
90.1 Section Reference: G3.1.3.18 Dehumidification (Systems 3 through 8 and 11, 12, and 13)
Data Lookup: None
Evaluation Context: HVAC System
Applicability Checks:
- P-RMR is modeled with at least one air-side system that includes humidistatic controls.
Function Calls:
- get_dict_of_zones_and_terminal_units_served_by_hvac_sys
- baseline_system_type_compare
Applicability Checks:
-
create a list of the target system types:
APPLICABLE_SYS_TYPES = [HVAC_SYS.SYS_3, HVAC_SYS.SYS_4, HVAC_SYS.SYS_5, HVAC_SYS.SYS_6, HVAC_SYS.SYS_7, HVAC_SYS.SYS_8, HVAC_SYS.SYS_11, HVAC_SYS.SYS_12, HVAC_SYS.SYS_13]
-
Get B-RMR system types:
baseline_hvac_system_dict = get_baseline_system_types(B-RMR)
-
make a list of HVAC systems that are one of the applicable system types:
applicable_hvac_systems = []
-
loop through the baseline_hvac_system_dict:
for system_type in baseline_system_type_dict:
- if the system type is one of the target system types, append the hvac_ids to applicable_hvac_systems:
if any(baseline_system_type_compare(system_type,target-system_type, false) for target_system_type in APPLICABLE_SYS_TYPES:
- append all hvac_ids of the system type to the applicable_hvac_systems list:
applicable_hvac_systems = applicable_hvac_systems + baseline_hvac_system_dict[system_type]
- append all hvac_ids of the system type to the applicable_hvac_systems list:
- if the system type is one of the target system types, append the hvac_ids to applicable_hvac_systems:
-
get a list of the hvac systems and the zones they served in the P_RMR:
hvac_systems_and_zones_p = get_dict_of_zones_and_terminal_units_served_by_hvac_sys(P_RMR)
-
look through each hvac system in the proposed:
for hvac_p_id in hvac_systems_and_zones_p:
- get the proposed hvac sytem:
hvac_p = get_object_by_id(hvac_p_id)
- set a boolean has_humidifcation_controls equal to false:
has_humidifcation_controls = FALSE
- get the cooling system:
cooling_system_p = hvac_p.cooling_system
- check to see if the cooling system has a humidification type other than NONE, if so, there are humidification controls set has_humidifcation_controls = TRUE:
if cooling_system_p.dehumidification_type != NULL && cooling_system_p.dehumidification_type != NONE: has_humidifcation_controls = TRUE
- if there are humidity controls, we will now check for zone humidity setpoint schedules:
if has_humidifcation_controls:
- create a list zones_with_humidity_schedules_list:
zones_with_humidity_schedules_list = []
- look through each zone served by the system:
for zone_id in hvac_systems_and_zones_p[hvac_p_id]["ZONE_LIST"]:
- get the zone:
zone_p = get_object_by_id(zone_id, P_RMR)
- also get the baseline zone:
zone_b = get_object_by_id(zone_id, B_RMR)
- check if the zone_b is served by one of the applicable system types:
if zone_served_by_heating_ventilating_air_conditioning_system.in? applicable_hvac_systems.include?:
- if the zone_p.maximum_humidity_setpoint_schedule exists, add the zone_id to the zones_with_humidity_schedules_list:
if zone_p.maximum_humidity_setpoint_schedule: zones_with_humidity_schedules_list << zone_id
- if the zone_p.maximum_humidity_setpoint_schedule exists, add the zone_id to the zones_with_humidity_schedules_list:
- get the zone:
- create a list zones_with_humidity_schedules_list:
- erase any duplicates on zones_with_humidity_schedules_list by calling uniq!:
zones_with_humidity_schedules_list.uniq!
- if zones_with_humidity_schedules_list has any zones on the list, the rule is applicable, return APPLICABLE and a not letting the user know which zones have humidity schedules:
if len(zones_with_humidity_schedules_list)> 0: UNDETERMINED; note = "The following zones have humidity schedules: " + zones_with_humidity_schedules_list
- if we make it down here without triggering an applicable result, the rule is not applicable:
NOT_APPLICABLE
- get the proposed hvac sytem: