//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조 (계단의 설치기준) 2항2호
check(REFB_15_2_2){
IF CS THEN KS
}
CS{
getBuildingUsage()="MiddleSchool"
OR getBuildingUsage()="HighSchool"
}
KS{
getObjectWidth(Stair)>=150 cm
getObjectWidth(StairLanding)>150 cm
getObjectProperty(Stair.riserHeight)>=18 cm
getObjectProperty(Stair.riserWidth)>=26 cm
}
|
def Check():
for building in SELECT('building'):
bldg_use = building.SELECT('building type').STRING()
sub_use = building.SELECT('prop', '세부용도').STRING()
min_clear_w = 0.6
max_riser_h = 0.0
min_tread_w = 0.0
if bldg_use == '교육연구시설':
min_clear_w = 1.5
min_tread_w = 0.26
if sub_use == '초등학교':
max_riser_h = 0.16
elif sub_use in ['중학교', '고등학교']:
max_riser_h = 0.18
elif (bldg_use == '문화 및 집회시설' and sub_use in ['공연장', '집회장', '관람장']) or (bldg_use == '판매시설'):
min_clear_w = 1.2
else:
min_clear_w = 0.6
for storey in building.SELECT('storey'):
for stair in storey.SELECT('stair'):
clear_width = stair.SELECT('clear width').UNIT('m')
clear_w = clear_width.NUMBER()
if clear_w < min_clear_w:
clear_width.ERROR('유효너비: ' + str(clear_w) + ' < ' + str(min_clear_w))
else:
clear_width.SUCCESS('유효너비: ' + str(clear_w) + ' >= ' + str(min_clear_w))
if max_riser_h > 0:
for riser_height in stair.SELECT('riser height'):
riser_h = riser_height.UNIT('m').NUMBER()
if riser_h > max_riser_h:
riser_height.ERROR('단높이: ' + str(riser_h) + ' > ' + str(max_riser_h))
break
if min_tread_w > 0:
for tread_width in stair.SELECT('tread width'):
tread_w = tread_width.UNIT('m').NUMBER()
if tread_w < min_tread_w:
tread_width.ERROR('단너비: ' + str(tread_w) + ' < ' + str(min_tread_w))
break
|