-
Notifications
You must be signed in to change notification settings - Fork 6
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
Create Rule5-44.md #1600
Closed
+50
−0
Closed
Create Rule5-44.md #1600
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
|
||
# Envelope - Rule 5-44 | ||
|
||
**Rule ID:** 5-44 | ||
**Rule Description:** Space Conditioning Categories. Space conditioning categories used to determine applicability of the envelope requirements in Tables G3.4-1 through G3.4-8 shall be the same as in the proposed design. | ||
|
||
Exception: Envelope components of the HVAC zones that are semiheated in the proposed design must meet conditioned envelope requirements in Tables G3.4-1 through G3.4-8 if, based on the sizing runs, these zones are served by a baseline system with sensible cooling output capacity >= 5 Btu/h·ft2 of floor area, or with heating output capacity greater than or equal to the criteria in Table G3.4-9, or that are indirectly conditioned spaces. | ||
|
||
**Rule Assertion:** Baseline equals proposed, except defined exceptions | ||
**Appendix G Section:** Table G3.1 Section 5(b) Baseline | ||
**Schema Version:** 0.0.39 | ||
|
||
**Applicability:** All required data elements exist for B_RMD | ||
**Applicability Checks:** Buiding has spaces | ||
|
||
**Evaluation Context:** Each Data Element | ||
**Data Lookup:** None | ||
**Function Call:** | ||
|
||
1. get_surface_conditioning_category() | ||
|
||
## Applicability: | ||
- this rule applies to buildings with exterior or underground surfaces. | ||
- Get surface conditioning category dictionary for B_RMD: ```scc_dictionary_b = get_surface_conditioning_category(B_RMD)``` | ||
- possible surface conditioning types are "UNREGULATED", "SEMI-EXTERIOR", "EXTERIOR MIXED", "EXTERIOR RESIDENTIAL", "EXTERIOR NON-RESIDENTIAL". This rule applies if there is at least one surface that is one of: "SEMI-EXTERIOR", "EXTERIOR MIXED", "EXTERIOR RESIDENTIAL", "EXTERIOR NON-RESIDENTIAL" | ||
- Look at each surface id: ```for surface_id in scc_dictionary_b:``` | ||
- if the value is one of "SEMI-EXTERIOR", "EXTERIOR MIXED", "EXTERIOR RESIDENTIAL", "EXTERIOR NON-RESIDENTIAL", CONTINUE TO RULE LOGIC: ```if scc_dictionary_b[surface_id] in ["SEMI-EXTERIOR", "EXTERIOR MIXED", "EXTERIOR RESIDENTIAL", "EXTERIOR NON-RESIDENTIAL"]:``` | ||
- CONTINUE TO RULE LOGIC | ||
- if the applicability logic arrives here without going to rule logic, the rule is not applicable: RULE NOT APPLICABLE | ||
|
||
## Rule Logic: | ||
|
||
- create a list of surfaces that do not comply with this rule: ```non_compliant_surface_ids = []``` | ||
|
||
- Get surface conditioning category dictionary for P_RMD: ```scc_dictionary_p = get_surface_conditioning_category(P_RMD)``` | ||
|
||
- For each building surface in the Baseline model: ```for building_surface_b in B_RMD...surfaces:``` | ||
- if the surface does not have the same surface conditioning category in the proposed and baseline, need to check if the exception applies: ```if scc_dictionary_b[building_surface_b.id] != scc_dictionary_p[building_surface_b.id]:``` | ||
- according to the exception, if the surface is semi-heated ("SEMI-EXTERIOR") in the proposed design, it might be classified as fully-conditioned in the baseline, if, according to sizing runs, the zone is served by HVAC equipment that meets the requirements of a fully-conditioned space. The function get_surface_conditioning_category runs these checks, so we just need to check the conditioning types. First, check whether the proposed conditioning type is SEMI-EXTERIOR: ```if scc_dictionary_p[building_surface_b.id] == "SEMI-EXTERIOR":``` | ||
- if the baseline is NOT one of the fully-conditioned surface types ("EXTERIOR MIXED", "EXTERIOR RESIDENTIAL", "EXTERIOR NON-RESIDENTIAL"), add this surface ID to the list of non compliant surface ids: ```if !(scc_dictionary_b[building_surface_b.id] in ["EXTERIOR MIXED", "EXTERIOR RESIDENTIAL", "EXTERIOR NON-RESIDENTIAL"]: non_compliant_surface_ids.append(building_surface_b.id)``` | ||
- Otherwise, the exception is not met, add the id of this surface to the list of non compliant surface ids: ```else: non_compliant_surface_ids.append(building_surface_b.id)``` | ||
|
||
**Rule Assertion:** | ||
Case 1: If the non_compliant_surface_ids list has a length of 0, then PASS: ```if len(non_compliant_surface_ids) == 0: PASS``` | ||
Case 2: All other cases, FAIL: ```else: FAIL``` | ||
|
||
**Notes:** | ||
|
||
|
||
**[Back](../_toc.md)** |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recommend that we discuss this on the RDS call.
I think the logic should be that we cycle through all of the SEMI-EXTERIOR surfaces in the proposed design. Check to see if they are classed as CONDITIONED/INDIRECTLY conditioned in the baseline. If they are classed as CONDITIONED/INDIRECTLY in the baseline then we need to check that the baseline thermal properties meet the conditioned envelope requirements in Tables G3.4-1 through G3.4-8. Perhaps this RDS should really just be an update to the RDS that checks that the building meets baseline building envelope requirements in Tables G3.4-1 through G3.4-8 as opposed to being a separate RDS.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Discussion on 2/5/2025 - Christina has a valid point.
Other section 5 rules related to the baseline envelope rely on the
get_surface_conditioning_category(B_RMD)
function based to categorize surfaces, so this RMD, as written will not raise any applicable spaces.As written, the baseline envelope maximum U-values should be based on the more stringent conditioning category between the baseline and proposed. Most of the time the baseline would be conditioned and the proposed would be semi-conditioned, but there is an edge case where the proposed could be fully conditioned and the baseline is semi-heated.
This rule gives us the guidance that the space conditioning categories should match, except where the proposed is semi-conditioned and the baseline is fully conditioned.
Approach - for 2022 only
*create a new function that returns the same dictionary as
get_surface_conditioning_category
, but accepts both the B_RMD and and P_RMD and provides the dictionary based on the more stringent category between the two.*All Section 5 baseline rules in 2022 will need to reference the new function and pass in the B_RMD and P_RMD.
This RMD will no longer be needed