|
1
|
19469
|
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 10조 2 항 1호
1. 관람석별로 2개소 이상 설치할 것
|
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 10조 (관람석등으로부터의 출구의 설치기준) 2항 1호
check(REFB_10_2_1){
Door myExit {
Door.Space.name = "individualSeats"
getFloorArea(Door.Space) >= 300
isObjectProperty(Door.isEntrance) = TRUE
}
getObjectCount(myExit) >= 2
}
|
SUCCESS
theater_code = '00000'
std_floor_area = 300
theater_code_label = '관람석 공간분류코드'
std_floor_area_label = '기준 바닥면적'
def Check():
for building in SELECT('building'):
if building.SELECT('prop', '연면적').NUMBER() <= std_floor_area:
continue
bldg_use = building.SELECT('building type').STRING()
sub_use = building.SELECT('prop', '세부용도').STRING()
if not (bldg_use == '문화 및 집회시설' and sub_use == '공연장'):
building.SUCESS('검토 대상 건물이 아닙니다.')
continue
for storey in building.SELECT('storey'):
for space in storey.SELECT('space'):
if space.SELECT('class code').STRING() != theater_code:
continue
if space.SELECT('area').UNIT(m2).NUMBER() < std_floor_area:
continue
door_w_total = 0
door_cnt = 0
for door in space.Select('door'):
door_cnt += 1
door_w = door.SELECT('width').Unit(m).number()
door_w_total += door_w
if door_w >= 1.5:
door.SUCCESS('출구의 너비' + door_w +'>= 1.5m')
else:
door.ERROR('출구의 너비' + door_w +'< 1.5m')
min_door_w_total = space.SELECT('area').UNIT(m2).NUMBER()
min_door_w_total = min_door_w_total/100*0.6
if door_w_total >= min_door_w_total :
space.SUCCESS('출구의 너비의 총합' + door_w_total +'>='+ min_door_w_total)
else:
space.ERROR('출구의 너비의 총합' + door_w_total +'<' + min_door_w_total)
if door_cnt >= 2:
space.SUCCESS('출구의 개수' + door_w_total +'>='+ '2')
else:
space.ERROR('출구의 개수' + door_w_total +'<'+ '2')
|
|
Modify
|
|
2
|
19470
|
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 10조 2 항 2호
2. 각 출구의 유효너비는 1.5미터 이상일 것
|
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 10조 (관람석등으로부터의 출구의 설치기준) 2항 2호
check(REFB_10_2_2){
Door myExit {
Door.Space.name = "individualSeats"
getFloorArea(Door.Space) >= 300
isObjectProperty(Door.isEntrance) = TRUE
}
getObjectWidth(myExit) >= 1.5m
}
|
SUCCESS
theater_code = '00000'
std_floor_area = 300
theater_code_label = '관람석 공간분류코드'
std_floor_area_label = '기준 바닥면적'
def Check():
for building in SELECT('building'):
if building.SELECT('prop', '연면적').NUMBER() <= std_floor_area:
continue
bldg_use = building.SELECT('building type').STRING()
sub_use = building.SELECT('prop', '세부용도').STRING()
if not (bldg_use == '문화 및 집회시설' and sub_use == '공연장'):
building.SUCESS('검토 대상 건물이 아닙니다.')
continue
for storey in building.SELECT('storey'):
for space in storey.SELECT('space'):
if space.SELECT('class code').STRING() != theater_code:
continue
if space.SELECT('area').UNIT(m2).NUMBER() < std_floor_area:
continue
door_w_total = 0
door_cnt = 0
for door in space.Select('door'):
door_cnt += 1
door_w = door.SELECT('width').Unit(m).number()
door_w_total += door_w
if door_w >= 1.5:
door.SUCCESS('출구의 너비' + door_w +'>= 1.5m')
else:
door.ERROR('출구의 너비' + door_w +'< 1.5m')
min_door_w_total = space.SELECT('area').UNIT(m2).NUMBER()
min_door_w_total = min_door_w_total/100*0.6
if door_w_total >= min_door_w_total :
space.SUCCESS('출구의 너비의 총합' + door_w_total +'>='+ min_door_w_total)
else:
space.ERROR('출구의 너비의 총합' + door_w_total +'<' + min_door_w_total)
if door_cnt >= 2:
space.SUCCESS('출구의 개수' + door_w_total +'>='+ '2')
else:
space.ERROR('출구의 개수' + door_w_total +'<'+ '2')
|
|
Modify
|
|
3
|
19471
|
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 10조 2 항 3호
3. 개별 관람석 출구의 유효너비의 합계는 개별 관람석의 바닥면적 100제곱미터마다 0.6미터의 비율로 산정한 너비 이상으로 할 것
|
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 10조 (관람석등으로부터의 출구의 설치기준) 2항 3호
check(REFB_10_2_3){
Door myExit {
Door.Space.name = "individualSeats"
getFloorArea(Door.Space) >= 300
isObjectProperty(Door.isEntrance) = TRUE
}
getTotalObjectWidth(myExit) >= getFloorArea(myExit.Space)/100*0.6
}
|
SUCCESS
theater_code = '00000'
std_floor_area = 300
theater_code_label = '관람석 공간분류코드'
std_floor_area_label = '기준 바닥면적'
def Check():
for building in SELECT('building'):
if building.SELECT('prop', '연면적').NUMBER() <= std_floor_area:
continue
bldg_use = building.SELECT('building type').STRING()
sub_use = building.SELECT('prop', '세부용도').STRING()
if not (bldg_use == '문화 및 집회시설' and sub_use == '공연장'):
building.SUCESS('검토 대상 건물이 아닙니다.')
continue
for storey in building.SELECT('storey'):
for space in storey.SELECT('space'):
if space.SELECT('class code').STRING() != theater_code:
continue
if space.SELECT('area').UNIT(m2).NUMBER() < std_floor_area:
continue
door_w_total = 0
door_cnt = 0
for door in space.Select('door'):
door_cnt += 1
door_w = door.SELECT('width').Unit(m).number()
door_w_total += door_w
if door_w >= 1.5:
door.SUCCESS('출구의 너비' + door_w +'>= 1.5m')
else:
door.ERROR('출구의 너비' + door_w +'< 1.5m')
min_door_w_total = space.SELECT('area').UNIT(m2).NUMBER()
min_door_w_total = min_door_w_total/100*0.6
if door_w_total >= min_door_w_total :
space.SUCCESS('출구의 너비의 총합' + door_w_total +'>='+ min_door_w_total)
else:
space.ERROR('출구의 너비의 총합' + door_w_total +'<' + min_door_w_total)
if door_cnt >= 2:
space.SUCCESS('출구의 개수' + door_w_total +'>='+ '2')
else:
space.ERROR('출구의 개수' + door_w_total +'<'+ '2')
|
|
Modify
|
|
4
|
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
|
|
5
|
19718
|
건축법 시행령 제 53조 1 항 2호
2. 공동주택 중 기숙사의 침실, 의료시설의 병실, 교육연구시설 중 학교의 교실 또는 숙박시설의 객실 간 경계벽
|
// 건축법 시행령 53조 (경계벽 등의 설치) 1항 2호
check(EDBA_53_1_1){
KS
}
KS{
Space mySpace1{
Space.Building.usage = “MultiUnitHouse.Dormitory”
Space.name = “BedRoom”
}
Space mySpace1_1{
Space.Building.usage = “MultiUnitHouse.Dormitory”
Space.name != “BedRoom”
}
Space mySpace2{
Space.Building.usage = “MedicalFacility”
Space.name = “Ward”
}
Space mySpace2_1{
Space.Building.usage = “MedicalFacility”
Space.name != “Ward”
}
Space mySpace3{
Space.Building.usage = “EducationAndResearchFacility.School”
Space.name = “ClassRoom”
}
Space mySpace3_1{
Space.Building.usage = “EducationAndResearchFacility.School”
Space.name != “ClassRoom”
}
Space mySpace4{
Space.Building.usage = “LodgingFacility”
Space.name = “GuestRoom”
}
Space mySpace4_1
Space.Building.usage = “LodgingFacility”
Space.name != “GuestRoom”
}
Wall myWall1{
isObjectProperty(Wall.isPartitionWall)=TRUE
hasObject(mySpace1, Wall) =TRUE
}
Wall myWall2{
isObjectProperty(Wall.isPartitionWall)=TRUE
hasObject(mySpace2, Wall) =TRUE
}
Wall myWall3{
isObjectProperty(Wall.isPartitionWall)=TRUE
hasObject(mySpace3, Wall) =TRUE
}
Wall myWall4{
isObjectProperty(Wall.isPartitionWall)=TRUE
hasObject(mySpace4, Wall) =TRUE
}
(hasObject(mySpace1, myWall) =TRUE
hasObject(mySpace1_1, myWall) =FALSE)
OR
(hasObject(mySpace2, myWall) =TRUE
hasObject(mySpace2_1, myWall) =FALSE)
OR
(hasObject(mySpace3, myWall) =TRUE
hasObject(mySpace3_1, myWall) =FALSE)
OR
(hasObject(mySpace4, myWall) =TRUE
hasObject(mySpace4_1, myWall) =FALSE)
}
|
Python Code 변환 예정
|
|
Modify
|