1
25220
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 11조 3 항
③영 제39조제1항의 규정에 의하여 건축물의 바깥쪽으로 나가는 출구를 설치하는 경우 관람석의 바닥면적의 합계가 300제곱미터 이상인 집회장 또는 공연장에 있어서는 주된 출구외에 보조출구 또는 비상구를 2개소 이상 설치하여야 한다.
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 11조 (건축물의 바깥쪽으로의 출구의 설치기준) 3항
Check(REFB_11_3){
IF CS1 AND CS2 THEN KS
}
CS1 {
Building myBuilding{
getBuildingUsage() = “AssemblyHall”
OR getBuildingUsage() = “PerformanceHall”
}
Space mySpace{
myBuilding.Space.name = “Auditorium”
Space.FloorSlab.area >= 300 m2
}
isExist(mySpace) = TRUE
}
CS2 {
Door myDoor{
isObjectProperty(Door.isEntrance)=TRUE
}
hasObject(myBuilding,myDoor) = TRUE
}
KS {
Door myDoor{
getObjectProperty(Door.functionType ) = "Auxiliary"
OR getObjectProperty(Door.functionType ) = "Emergency"
}
getObjectCount(myDoor) >=2
}
Python Code 변환 예정
Modify
2
25337
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 25조 1 항 1호
1. 거실의 바닥면적이 50제곱미터 이상인 층에는 직통계단외에 피난층 또는 지상으로 통하는 비상탈출구 및 환기통을 설치할 것. 다만, 직통계단이 2개소 이상 설치되어 있는 경우에는 그러하지 아니하다.
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 1항 1호
check(REFB_25_1_1){
IF !(CS) THEN KS
}
KS{
Floor myFloor1{
hasSpace(Floor,Room) = TRUE
getTotalArea(Room) >= 50 m2
}
Floor myFloor2{
isObjectProperty(Floor.isEscape) = TRUE
}
Door myDoor{
isObjectProperty(Door.functionType ) = "Emergency"
(isDirectlyAccessible(Door, myFloor2) = TRUE
OR isDirectlyAccessible(Door, Ground) = TRUE)
}
hasSpace(myFloor1, myDoor)
OR (hasSpace(myFloor1, VentilatorPipe) = TRUE
(isDirectlyAccessible(VentilatorPipe, myFloor2) = TRUE
OR isDirectlyAccessible(VentilatorPipe, Ground) = TRUE))
}
CS{
Floor myFloor1{
hasSpace(Floor,Room) = TRUE
getTotalArea(Room) >= 50 m2
}
Stair myStair{
isObjectProperty(Stair.isDirect) = TRUE
hasSpace(myFloor1, Stair) = TRUE
}
getObjectCount(myStair) >= 2
}
Python Code 변환 예정
Modify
3
25343
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 25조 2 항 1호
1. 비상탈출구의 유효너비는 0.75미터 이상으로 하고, 유효높이는 1.5미터 이상으로 할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 1호
check(REFB_25_2_1){
Door myDoor{
Door.functionType = "Emergency"
Door.Floor.number < 0
}
getObjectWidth(myDoor, a) >= 0.75 m
getObjectHeight(myDoor) >= 1.5 m
}
Python Code 변환 예정
Modify
4
25344
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 25조 2 항 2호
2. 비상탈출구의 문은 피난방향으로 열리도록 하고, 실내에서 항상 열 수 있는 구조로 하여야 하며, 내부 및 외부에는 비상탈출구의 표시를 할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 2호
Check(REFB_25_2_2){
Door myDoor{
Door.functionType = "Emergency"
< 0
}
isEgressDirection(myDoor) = TRUE
}
Python Code 변환 예정
Modify
5
25345
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 25조 2 항 3호
3. 비상탈출구는 출입구로부터 3미터 이상 떨어진 곳에 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 3호
check(REFB_25_2_3){
Door myDoor{
Door.functionType = "Emergency"
Door.Floor.number < 0
}
getSpaceDistance(myDoor, Door) >= 3 m
}
Python Code 변환 예정
Modify
6
25346
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 25조 2 항 4호
4. 지하층의 바닥으로부터 비상탈출구의 아랫부분까지의 높이가 1.2미터 이상이 되는 경우에는 벽체에 발판의 너비가 20센티미터 이상인 사다리를 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 4호
check(REFB_25_2_4){
IF CS THEN KS
}
CS{
Door myDoor{
Door.functionType = "Emergency"
Door.Floor.number < 0
}
Floor myFloor{
Floor.number < 0
}
getObjectVerticalDistance(myFloor, myDoor) >= 1.2 m
}
KS{
isConnectedTo(Wall, Ladder) = TRUE
getObjectProperty(Ladder.footholdWidth) >= 20 cm
}
Python Code 변환 예정
Modify
7
25347
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 25조 2 항 5호
5. 비상탈출구는 피난층 또는 지상으로 통하는 복도나 직통계단에 직접 접하거나 통로 등으로 연결될 수 있도록 설치하여야 하며, 피난층 또는 지상으로 통하는 복도나 직통계단까지 이르는 피난통로의 유효너비는 0.75미터 이상으로 하고, 피난통로의 실내에 접하는 부분의 마감과 그 바탕은 불연재료로 할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 5호
check(REFB_25_2_5){
Floor myFloor(
isObjectProperty(Floor.isEscape) = TRUE
)
Stair myStair{
isObjectProperty(Stair.isDirect) = TRUE
(isDirectlyAccessible(Stair, Ground) = TRUE
OR isDirectlyAccessible(Stair, myFloor) = TRUE)
}
Corridor myCorridor{
isDirectlyAccessible(Corridor, myFloor) = TRUE
OR isDirectlyAccessible(Corridor, Ground) = TRUE
}
Door myDoor{
Door.functionType = "Emergency"
Door.Floor.number < 0
}
(isDirectlyAccessible(myDoor, myStair) = TRUE
OR isDirectlyAccessible(myDoor, myCorridor) = TRUE
OR isGoThrough(myDoor, Corridor, myStair) = TRUE
OR isGoThrough(myDoor, Corridor, myCorridor) = TRUE)
Passage myPassage{
isObjectProperty(Passage.isEscape) = TRUE
}
getSpaceWidth(myPassage) >= 0.75 m
isObjectProperty(myPassage.InteriorFinish.Material.nonCombustibility) = TRUE
}
Python Code 변환 예정
Modify
8
25349
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 25조 2 항 7호
7. 비상탈출구의 유도등과 피난통로의 비상조명등의 설치는 소방법령이 정하는 바에 의할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 7호
check(REFB_25_2_7){
Door myDoor{
Door.functionType = "Emergency"
Door.Floor.number < 0
}
Light myLight{
isObjectProperty(Light.isEmergency) = TRUE
}
Passage myPassage{
isObjectProperty(Passage.isEscape) = TRUE
}
hasElement(myDoor, LeadingLight) = TRUE
hasElement(myPassage, myLight) = TRUE
}
Python Code 변환 예정
Modify
9
34605
건축법 시행령 제 41조 1 항
①건축물의 대지 안에는 그 건축물 바깥쪽으로 통하는 주된 출구와 지상으로 통하는 피난계단 및 특별피난계단으로부터 도로 또는 공지(공원, 광장, 그 밖에 이와 비슷한 것으로서 피난 및 소화를 위하여 해당 대지의 출입에 지장이 없는 것을 말한다. 이하 이 조에서 같다)로 통하는 통로를 다음 각 호의 기준에 따라 설치하여야 한다. <개정 2010.12.13, 2015.9.22, 2016.5.17, 2017.2.3>
Check(EDBA_41_1){
KS
}
KS{
Door myDoor {
getObjectProperty(Door.functionType ) = "Main"
}
Stair myStair{
isAccessible(Stair, Ground) = TRUE
isObjectProperty(Stair.isEscape) = TRUE
OR isObjectProperty(Stair.isSpecialEscape) = TRUE
}
Passage myPassage{
isGoThrough(myStair, Road, Passage)=True
OR isGoThrough(myStair, OpenSpace, Passage )=True
}
isExist(myDoor)=True
isExist(myPassage)=True
getResult(EDBA_41_1_1)=True
getResult(EDBA_41_1_2)=True
getResult(EDBA_41_1_3)=True
}
target_bldg_uses_01 = ['단독주택']
target_bldg_uses_02 = ['문화 및 집회시설', '장례시설', '의료시설', '위락시설']
target_bldg_uses_01_label = '건축물 용도1'
target_bldg_uses_02_label = '건축물 용도2'
def Check():
for building in SELECT('building'):
bldg_use = building.SELECT('building type').STRING()
min_corridor_w = 1.5
min_area = 0.0
if bldg_use in target_bldg_uses_01:
min_corridor_w = 0.9
elif bldg_use in target_bldg_uses_02:
min_corridor_w = 3.0
min_area = 500
if min_area > 0:
area = 0
for space in building.SELECT('space'):
area += space.SELECT('area').UNIT('m2').NUMBER()
if area < min_area:
building.SUCCESS('바닥면적의 합: ' + str(area) + ' < ' + str(min_area))
continue
base_storey = None
stories = building.SELECT('storey')
for storey in stories:
if storey.SELECT('prop', '기준 지상층').BOOL() == True:
base_storey = storey
break
if base_storey is None:
building.ERROR('기준 지상층이 존재하지 않습니다.')
break
stairs = base_storey.SELECT('direct stair')
if stairs.COUNT() == 0:
base_storey.ERROR(base_storey.SELECT('name').STRING() + '에 직통계단이 존재하지 않습니다.')
continue
exDoors = []
for door in base_storey.SELECT('door'):
if door.SELECT('is external').BOOL() == True:
exDoors.append(door)
for stair in stairs:
for route in stair.SELECT('escape route', exDoors):
for space in route.SELECT('passing space'):
width = space.SELECT('min clear width').UNIT('m')
w = width.NUMBER()
if w < min_corridor_w:
width.ERROR('통로 너비: ' + str(w) + ' < ' + str(min_corridor_w))
else:
width.SUCCESS('통로 너비: ' + str(w) + ' >= ' + str(min_corridor_w))
Modify
10
19990
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 8조의2조 2 항 1호
1. 구획된 각 실로부터 주출입구 또는 비상구까지 설치할 것
// 유도등 및 유도표지의 화재안전기준(nfsc 303) 8조의2 (피난유도선 설치기준) 2항 1호
Check(NFSC303_8-2_2_1){
KS
}
KS{
Door myDoor{
isObjectProperty(Door.isEntrance) = TRUE
getObjectProperty(Door.functionType ) = "Main"
}
Door myDoor2{
getObjectProperty(Door.functionType ) = "Emergency"
}
getObjectCountInInterval(LeadingLine, Room, myDOor) >=1
OR getObjectCountInInterval(LeadingLine, Rom, myDoor2) >=1
}
Python Code 변환 예정
Modify