//건축법 시행령 38조(관람석 등으로부터의 출구 설치)
Check(EDBA_38){
IF (CS) THEN KS ENDIF
}
CS{
getResult(EDBA_38_0_1) = TRUE
OR getResult(EDBA_38_0_2) = TRUE
OR getResult(EDBA_38_0_3) = TRUE
OR getResult(EDBA_38_0_4) = TRUE
OR getResult(EDBA_38_0_5) = TRUE
}
KS {
Space mySpace = getSpace("Auditorium")+getSpace("AssemblyHall")
Door myExit {
isObjectProperty(Door.isEntrance) = TRUE
isAccessible(mySpace, Door) = TRUE
getResult(REFB_10_1) = TRUE
}
hasElement(mySpace, myExit)=TRUE
}
|
identified_space_codes =['33703', '33708']
min_area = 300
min_door_width = 1.5
min_door_count = 2
identified_space_codes_label ='해당 공간 명칭'
min_area_label = '바닥면적이 다음 미만일 경우 제외(m2)'
min_door_width_label = '출구 유효너비'
min_door_count_label = '유효너비 이상 최소 출구 개수'
def Check():
for space in SELECT('space'):
name = space.SELECT('name').STRING()
code = space.SELECT('class code').STRING()
if not code in identified_space_codes:
continue
area = space.SELECT('area').UNIT('m2').NUMBER()
if area >= min_area:
exitCnt = 0
door_width_sum = 0
inward_exist = False
for door in space.SELECT('space door'):
if door.SELECT('is inward', space).BOOL() == False:
door_width = door.SELECT('width').UNIT('m2').NUMBER()
if door_width >= min_door_width:
exitCnt += 1
door_width_sum += door_width
else:
door.ERROR('안여닫이 출구')
inward_exist = True
if inward_exist == True:
continue
if exitCnt >= min_door_count:
if door_width_sum >= (area / 100) * 0.6:
space.SUCCESS(name)
else:
space.ERROR(name + ', 출구유효너비 합: ' + str(door_width_sum) + 'm, 바닥면적: ' + str(area) + 'm2')
else:
space.ERROR(name + ', 출구 수 : ' + str(exitCnt) + '( < ' + str(min_door_count) + ')')
else:
space.SUCCESS('바닥면적:' + str(area) + '㎡ ( < ' + str(min_area) + '㎡)')
|