Skip to content

Commit 13045ea

Browse files
committed
write rule 6-12 RDS
1 parent be32257 commit 13045ea

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
2+
# Lighting - Rule 6-12
3+
4+
**Rule ID:** 6-12
5+
**Rule Description:** In buildings >5000 ft2 lighting shall be modeled having occupancy sensors in employee lunch and break rooms, conference/meeting rooms, and classrooms (not including shop classrooms, laboratory classrooms, and preschool through 12th grade classrooms). These controls shall be reflected in the baseline building design lighting schedules.
6+
**Rule Assertion:** Baseline RMD = expected value
7+
**Appendix G Section:** G3.1 6 Baseline
8+
9+
**Mandatory Rule:** True
10+
**Evaluation Context:** Each Space
11+
**Function Call:**
12+
13+
- get_component_by_id()
14+
15+
## Applicability Check:
16+
1. Building area is greater than 5000 ft2
17+
2. Space type is one of the following: employee lunch and break rooms, conference/meeting rooms, and classrooms (not including shop classrooms, laboratory classrooms, and preschool through 12th grade classrooms)
18+
19+
## Rule Logic:
20+
- For each building in the baseline model: `for building_b in B_RMD...buildings:`
21+
22+
**Applicability Check 1:**
23+
- Declare a variable for the building area: `building_area_b = 0`
24+
- Iterate the spaces in the building: `for space_b in building_b...spaces:`
25+
- Add the area of each space to the building area sum: `building_area_b += space_b...floor_area`
26+
- Check if the building area is greater than 5000 ft2: `if building_area_b > 5000: IS_APPLICABLE`
27+
28+
- For each space in the building: `for space_b in building_b...spaces:`
29+
30+
- **Applicability Check 2:**
31+
- Check if the space type is one of the specified types: `if space_b["lighting_space_type"] in [LOUNGE_BREAKROOM_ALL_OTHERS, CONFERENCE_MEETING_MULTIPURPOSE_ROOM, CLASSROOM_LECTURE_HALL_TRAINING_ROOM_PENITENTIARY, CLASSROOM_LECTURE_HALL_TRAINING_ROOM_ALL_OTHER] or (space_b["function"] == LABORATORY and space_b["lighting_space_type"] == CLASSROOM_LECTURE_HALL_TRAINING_ROOM_SCHOOL): IS_APPLICABLE`
32+
- Create a list of the occupancy sensor controls in the space: `occupancy_sensor_controls_b = [interior_lighting_b.get("occupancy_control_type") for interior_lighting_b in space_b["interior_lighting"]`
33+
- Create a list of boolean values indicating if occupancy sensors were modeled via schedule adjustments: `occupancy_sensor_schedules_b = [interior_lighting_b.get("are_schedules_used_for_modeling_occupancy_control") for interior_lighting_b in space_b["interior_lighting"]`
34+
35+
- **Rule Assertion:**
36+
- Case 1: All interior lighting in the space is controlled by occupancy sensors and modeled via adjustments to the schedules: PASS `if not any(val in ["NONE", "MANUAL_ON", None] for val in occupancy_controls_b): PASS`
37+
- Case 2: Any interior lighting in the space is missing definitions for occupancy sensor type and schedule adjustments: UNDETERMINED `elif any(val is None for val in occupancy_controls_b) or any(val is None for val in occupancy_sensor_schedules_b): UNDETERMINED`
38+
- Case 3: Else, at least one interior lighting data group in the space is not controlled by occupancy sensors or modeled via adjustments to the schedules: FAIL `else: FAIL`
39+
40+
**Notes:**
41+
None
42+
43+
**[Back](../_toc.md)**

0 commit comments

Comments
 (0)