//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 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')
|