Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RDS/JDJ/update undetermined cases #1503

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/section19/Rule19-10.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@

- **Rule Assertion:**
- Case 1: The system primarily serves computer rooms and the baseline system type is 3 or 4 and no economizer is modeled then pass (this is exception #3): `if (hvac.fan_system.AirEconomizer == Null OR hvac.fan_system.AirEconomizer.type == "FIXED_FRACTION") AND hvac_sys_type_b in ["SYS-3", "SYS-3a", "SYS-3b", "SYS-3c", "SYS-4"] AND hvac.id in HVAC_systems_primarily_serving_comp_rooms_list: outcome = "PASS"`
- Case 2: Elif the building has refrigerated cases, the building segment building area type is retail and no economizer is modeled in the baseline or proposed and so the system may meet exception #2 outcome is UNDETERMINED (this is exception #2): `elif (hvac.fan_system.AirEconomizer == Null OR hvac.fan_system.AirEconomizer.type == "FIXED_FRACTION") AND hvac in hvac_system_exception_2_list: outcome = "UNDETERMINED" and raise_message "Undetermined unless any of the zones served by the baseline system <insert hvac.id> in the proposed design include supermarket open refrigerated case-work systems that will be affected by using outdoor air for cooling (G3.1.2.6 exception #2).:"`
- Case 2: Elif the building has refrigerated cases, the building segment building area type is retail and no economizer is modeled in the baseline or proposed and so the system may meet exception #2 outcome is UNDETERMINED (this is exception #2): `elif (hvac.fan_system.AirEconomizer == Null OR hvac.fan_system.AirEconomizer.type == "FIXED_FRACTION") AND hvac in hvac_system_exception_2_list: outcome = "UNDETERMINED" and raise_message "Fail unless any of the zones served by the baseline system <insert hvac.id> in the proposed design include supermarket open refrigerated case-work systems that will be affected by using outdoor air for cooling (G3.1.2.6 exception #2).:"`
- Case 3: Elif the system primarily serves computer rooms and the baseline system type is 3 or 4 and an economizer is modeled then fail (this is exception #3): `elif (hvac.fan_system.AirEconomizer != Null AND hvac.fan_system.AirEconomizer.type != "FIXED_FRACTION") AND hvac_sys_type_b in ["SYS-3", "SYS-3a", "SYS-3b", "SYS-3c", "SYS-4"] AND hvac.id in HVAC_systems_primarily_serving_comp_rooms_list: outcome = "FAIL" and raise_message "This system [hvac.id] appears to meet the criteria associated with Section G3.1.2.6 exception #3 which is that an economizer shall not be modeled in the baseline for systems that serve computer rooms complying with Section G3.1.2.6.1. "`
- Case 4: Elif the building has refrigerated cases, the building segment building area type is retail and an economizer is modeled in the baseline but not the proposed and so the system likely meets exception #2 so outcome is UNDETERMINED (this is exception #2): `elif (hvac.fan_system.AirEconomizer != Null AND hvac.fan_system.AirEconomizer.type != "FIXED_FRACTION") AND hvac in hvac_system_exception_2_list: outcome = "UNDETERMINED" and raise_message "This system [hvac.id] appears to meet the criteria associated with Section G3.1.2.6 exception #2 which is that an economizer shall not be modeled in the baseline for systems where the use of outdoor air for cooling will affect supermarket open refrigerated case-work systems and the proposed system does not include an economizer. An economizer has been modeled in the baseline when it appears this exception may apply. Manual check recommended."`
- Case 5: Elif there is an AirEconomizer object associated with the fan and the AirEconomizer type is not fixed fraction (which indicates there is an economizer) then pass: `elif hvac.fan_system.AirEconomizer != Null AND hvac.fan_system.AirEconomizer.type != "FIXED_FRACTION" AND hvac_sys_type_b not in ["SYS-3", "SYS-3a", "SYS-3b", "SYS-3c", "SYS-4"] AND hvac.id not in HVAC_systems_primarily_serving_comp_rooms_list: outcome = "PASS"`
- Case 6: Elif, no economizer is modeled in the baseline or proposed then fail: `Elif (hvac.fan_system.AirEconomizer == Null OR hvac.fan_system.AirEconomizer.type == "FIXED_FRACTION") and proposed_has_economizer == false : outcome = "Fail" and raise_message "Fail unless any of the zones served by the baseline system [include hvac.id] are served in the proposed design by systems with a gas-phase air cleaning where such air cleaning is requirements of Standard 62.1, Section 6.1.2 (G3.1.2.6 exception #1) or where the use of outdoor air for cooling will affect supermarket open refrigerated case-work systems (G3.1.2.6 exception #2)."`
- Case 6: Elif, no economizer is modeled in the baseline or proposed then UNDETERMINED: `Elif (hvac.fan_system.AirEconomizer == Null OR hvac.fan_system.AirEconomizer.type == "FIXED_FRACTION") and proposed_has_economizer == false : outcome = "UNDETERMINED" and raise_message "Fail unless any of the zones served by the baseline system [include hvac.id] are served in the proposed design by systems with a gas-phase air cleaning where such air cleaning is requirements of Standard 62.1, Section 6.1.2 (G3.1.2.6 exception #1) or where the use of outdoor air for cooling will affect supermarket open refrigerated case-work systems (G3.1.2.6 exception #2)."`
- Case 7: Else, then fail (no economizer is modeled in the baseline when expected and an economizer is modeled in the proposed so Exceptions 1 and 2 cannot apply): `Else: outcome = "Fail"`

**Notes/Questions:**
Expand Down
2 changes: 1 addition & 1 deletion docs/section19/Rule19-21.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ This section checks whether energy recovery was modeled at all (not Null or None
- Case 8: Elif no energy recovery is modeled in the baseline and where the largest exhaust source could be less than 75% of the design outdoor airflow and there is more than one exhaust fan associated with the hvac system and it appears that exception 6 could possibly apply then: UNDETERMINED, note that the third element [2] of the list if the quantity exhaust fans across the hvac system and fourth [3] is the maximum hvac exhaust fan cfm across the multiple hvac system exhaust fans:`elif OA_fraction >= 70% and supply_cfm_b >= 5000 and ER_modeled == False and hvac_sys_and_assoc_zones_largest_exhaust_source[2] > 1 and (max(hvac_sys_and_assoc_zones_largest_exhaust_source[3],hvac_sys_and_assoc_zones_largest_exhaust_source[1]) < 75% * hvac.fan_system.maximum_outdoor_airflow): UNDETERMINED and raise_message "Exhaust air energy recovery was not modeled in the baseline when the OA fraction is greater or equal to 70% and the supply cfm is greater or equal to 5,000 cfm. However, it appears that Section 90.1 G3.1.2.10 Exception 6 may be applicable which states, "Where the largest exhaust source is less than 75% of the design outdoor airflow. This exception shall only be used if exhaust air energy recovery is not used in the proposed design.". There are multilple exhaust fans associated with the hvac system and therefore this could not be assessed as the configuration is unknown. Conduct manual check to determine if this exception applies. If not, then fail. `
- Case 9: Elif OA_fraction and/or supply_cfm_b is less than 70% and/or 5,000 and energy recovery was not modeled then Pass: `elif ER_modeled == false and (OA_fraction < 70% or supply_cfm_b < 5000): PASS`
- Case 10: Elif AHJ_RA_compare == True and OA_fraction and/or supply_cfm_b is less than 70% and/or 5,000 and energy recovery was modeled with a 50% ethalpy recovery ratio then Pass: `elif AHJ_RA_compare == True and ER_modeled == True and (OA_fraction < 70% or supply_cfm_b < 5000): PASS`
- Case 11: Elif not all space types were defined and energy recovery is not modeled in the proposed so exceptions 2 and 3 could be applicable, fail: `Elif (all_lighting_space_types_defined = false or all_ventilation_space_types_defined = false) and ER_modeled_in_proposed == False: outcome = "Fail" and raise_message "Not all lighting or ventilation space types were defined in the RMD and therefore the potential applicability of exceptions 2 and 3 could not be fully assessed. Fail unless exceptions 2 and 3 are applicable. Exception 2 is that systems exhausting toxic, flammable, or corrosive fumes or paint or dust shall not require exhaust air energy recovery to be modeled in the baseline if it is not included in the proposed design. Exception 3 is that commercial kitchen hoods (grease) classified as Type 1 by NFPA 96 shall not require exhaust air energy recovery to be modeled in the baseline if it is not included in the proposed design." `
- Case 11: Elif not all space types were defined and energy recovery is not modeled in the proposed so exceptions 2 and 3 could be applicable, UNDETERMINED: `Elif (all_lighting_space_types_defined = false or all_ventilation_space_types_defined = false) and ER_modeled_in_proposed == False: outcome = "UNDETERMINED" and raise_message "Not all lighting or ventilation space types were defined in the RMD and therefore the potential applicability of exceptions 2 and 3 could not be fully assessed. Fail unless exceptions 2 and 3 are applicable. Exception 2 is that systems exhausting toxic, flammable, or corrosive fumes or paint or dust shall not require exhaust air energy recovery to be modeled in the baseline if it is not included in the proposed design. Exception 3 is that commercial kitchen hoods (grease) classified as Type 1 by NFPA 96 shall not require exhaust air energy recovery to be modeled in the baseline if it is not included in the proposed design." `
- Case 12: Else, fail: `Else: outcome = Fail`

**Notes/Questions:**
Expand Down
7 changes: 3 additions & 4 deletions docs/section19/Rule19-23.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@
- Check if each value in the design_cooling_multiplier_schedule aligns with the occ_max_value: `for x in list(occ_design_cooling_multiplier_sch):`
- Check if the hourly value does not equal the highest hourly value used in the multiplier schedule: `if x != occ_max_value: occ_pass_cooling = false`


Conduct checks for the interior lighting objects:
- Get list of interior lighting objects: `lgting_obj_list = list(space.interior_lighting)`
- Reset int_lgt_pass_heating boolean variable: `int_lgt_pass_heating = true`
Expand Down Expand Up @@ -100,9 +99,9 @@
- Case 3: Else if the space type is not defined and the building type is multifamily and all heating schedules pass and all cooling schedules equal true then UNDETERMINED: `elif is_dwelling_unit == false and is_space_type_defined == false and building_area_is_MF == true and all(inf_pass_heating, occ_pass_heating, int_lgt_pass_heating, misc_pass_heating) == true and all(inf_pass_cooling, occ_pass_cooling, int_lgt_pass_cooling, misc_pass_cooling) == true: outcome = UNDETERMINED and raise_message "The space type was not defined in the RMD and the building area type is multifamily. Heating design schedules were modeled per the rules of G3.1.2.2.1 and PASS; however, cooling design schedules may fall under the exception to Section G3.1.2.2.1 for dwelling units and could not be fully assessed for this check. Conduct manual check to determine if the space is a dwelling unit. If the space is not a dwelling unit then the cooling design schedules pass. If it is a dwelling unit then the cooling design schedules fail this check.`
- Case 4: Else if the space type is not defined and the building type is multifamily and all heating schedules pass and all cooling schedules do not equal true then UNDETERMINED: `elif is_dwelling_unit == false and is_space_type_defined == false and building_area_is_MF == true and all(inf_pass_heating, occ_pass_heating, int_lgt_pass_heating, misc_pass_heating) == true and all(inf_pass_cooling, occ_pass_cooling, int_lgt_pass_cooling, misc_pass_cooling) == false: outcome = UNDETERMINED and raise_message "The space type was not defined in the RMD and the building area type is multifamily. Heating design schedules were modeled per the rules of G3.1.2.2.1 and PASS; however, cooling design schedules may fall under the exception to Section G3.1.2.2.1 for dwelling units and could not be fully assessed for this check. Conduct manual check to determine if the space is a dwelling unit. If the space is not a dwelling unit then the cooling design schedules fail. If it is a dwelling unit then conduct a manual check that the schedules meet the requirements under the exception to Section G3.1.2.2.1.`
- Case 5: Else if space type is dwelling unit and one or more of the design heating schedules fail per above then fail : `elif is_dwelling_unit == true and all(inf_pass_heating, occ_pass_heating, int_lgt_pass_heating, misc_pass_heating) == false: outcome = "FAIL" and raise_message "<Insert space.id> appears to be a dwelling unit and does not appear to have followed this rule per Section G3.1.2.2.1 for one more more of the following heating design schedules (cooling design schedules fall under the exception to Section G3.1.2.2.1 and were not assessed for dwelling units in this check): infiltration, occupants, lighting, gas and electricity using equipment."`
- Case 6: Else if the space type is dwelling unit and all design heating schedules pass then the outcome is Pass: `elif is_dwelling_unit == true and all(inf_pass_heating, occ_pass_heating, int_lgt_pass_heating, misc_pass_heating) == true: outcome = "PASS"`
- Case 7: Else if the space type is not defined and the building type is not multifamily and all schedules pass per above then pass: `elif is_dwelling_unit == false and is_space_type_defined == false and building_area_is_MF == false and all(inf_pass_heating, inf_pass_cooling,occ_pass_heating, occ_pass_cooling,int_lgt_pass_heating, int_lgt_pass_cooling,misc_pass_heating, misc_pass_cooling) == true: outcome = "PASS" and raise_message "Pass unless the space type is dwelling unit (the space type was not defined in the RMD schema and was assumed not to be a dwelling unit). Dwelling units fall under the exception to Section G3.1.2.2.1.`
- Case 8: Else if the space type is not defined and the building type is not multifamily and all heating schedules pass and all cooling schedules do not equal true then Fail: `elif is_dwelling_unit == false and is_space_type_defined == false and building_area_is_MF == false and all(inf_pass_heating, occ_pass_heating, int_lgt_pass_heating, misc_pass_heating) == true and all(inf_pass_cooling, occ_pass_cooling, int_lgt_pass_cooling, misc_pass_cooling) == false: outcome = FAIL and raise_message "The space type nor the building area type were defined in the RMD. The space type was assumed not to be a dwelling unit. Heating design schedules were modeled per the rules of G3.1.2.2.1 and PASS; however, cooling design schedules appear not to meet the requirements of Section G3.1.2.2.1. Fail for the cooling design schedules unless the space type is a dwelling unit. If the space type is a dwelling unit conduct a manual check for the cooling design schedules for compliance with the exception to Section G3.1.2.2.1. `
- Case 6: Else if the space type is dwelling unit and all design heating schedules pass then the outcome is pass: `elif is_dwelling_unit == true and all(inf_pass_heating, occ_pass_heating, int_lgt_pass_heating, misc_pass_heating) == true: outcome = "PASS"`
- Case 7: Else if the space type is not defined and the building type is not multifamily and all schedules pass per above then UNDETERMINED: `elif is_dwelling_unit == false and is_space_type_defined == false and building_area_is_MF == false and all(inf_pass_heating, inf_pass_cooling,occ_pass_heating, occ_pass_cooling,int_lgt_pass_heating, int_lgt_pass_cooling,misc_pass_heating, misc_pass_cooling) == true: outcome = "UNDETERMINED" and raise_message "Pass unless the space type is dwelling unit (the space type was not defined in the RMD schema and was assumed not to be a dwelling unit). Dwelling units fall under the exception to Section G3.1.2.2.1.`
- Case 8: Else if the space type is not defined and the building type is not multifamily and all heating schedules pass and all cooling schedules do not equal true then UNDETERMINED: `elif is_dwelling_unit == false and is_space_type_defined == false and building_area_is_MF == false and all(inf_pass_heating, occ_pass_heating, int_lgt_pass_heating, misc_pass_heating) == true and all(inf_pass_cooling, occ_pass_cooling, int_lgt_pass_cooling, misc_pass_cooling) == false: outcome = UNDETERMINED and raise_message "The space type nor the building area type were defined in the RMD. The space type was assumed not to be a dwelling unit. Heating design schedules were modeled per the rules of G3.1.2.2.1 and PASS; however, cooling design schedules appear not to meet the requirements of Section G3.1.2.2.1. Fail for the cooling design schedules unless the space type is a dwelling unit. If the space type is a dwelling unit conduct a manual check for the cooling design schedules for compliance with the exception to Section G3.1.2.2.1. `
- Case 9: Else Fail: `Else: outcome = "FAIL"`


Expand Down
Loading
Loading