|
| 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