2. 높이가 1미터를 넘는 계단 및 계단참의 양옆에는 난간(벽 또는 이에 대치되는 것을 포함한다)을 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조 (계단의 설치기준) 1항2호
check(REFB_15_1_2){
KS
}
KS{
IF getObjectHeight(Stair)>1 m
OR getObjectHeight(StairLanding)>1 m)
THEN isExist(Railing)=TRUE
END IF
}
def Check():
for building in SELECT('building'):
for stair in building.SELECT('stair'):
st_h = stair.SELECT('height').UNIT('m')
st_h_num = height.NUMBER()
if st_h_num >= 1:
if stair.SELECT('rail').COUNT() == 0:
stair.ERROR('난간이 설치되지 않았습니다.')
else:
stair.SUCCESS('난간이 설치되어 있습니다.')
3. 너비가 3미터를 넘는 계단에는 계단의 중간에 너비 3미터 이내마다 난간을 설치할 것. 다만, 계단의 단높이가 15센티미터 이하이고, 계단의 단너비가 30센티미터 이상인 경우에는 그러하지 아니하다.
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조 (계단의 설치기준) 1항3호
check(REFB_15_1_3){
IF !CS THEN KS
}
CS{
getStairStepHeight()<=15 cm
getStairStepWidth()>=30 cm
}
KS{
IF getObjectWidth(Stair)>=3 m
THEN hasObject(Stair, Railing) = TRUE
N=getObjectWidth(Stair)/3
getObjectCount(Railing)>=N
IF N>1
THEN getObjectDistance(Railing,Railing)<3 m
END IF
END IF
}
def Check():
for building in SELECT('building'):
for stair in building.SELECT('stair'):
st_w = stair.SELECT('width').UNIT('m')
st_w_num = height.NUMBER()
if st_w_num >= 3:
for riser_height in stair.SELECT('riser height'):
riser_h_num = riser_height.UNIT('mm').NUMBER()
if riser_h_num <= 15:
braker = True
break
for riser_width in stair.SELECT('riser width'):
riser_w_num = riser_width.UNIT('mm').NUMBER()
if riser_w_num >= 30:
braker = True
break
if braker is True:
break
else:
pass
# 3미터 이내마다 난간 설치 확인을 위하여 난간간 간격 파악 필요
③공동주택(기숙사를 제외한다)·제1종 근린생활시설·제2종 근린생활시설·문화 및 집회시설·종교시설·판매시설·운수시설·의료시설·노유자시설·업무시설·숙박시설·위락시설 또는 관광휴게시설의 용도에 쓰이는 건축물의 주계단·피난계단 또는 특별피난계단에 설치하는 난간 및 바닥은 아동의 이용에 안전하고 노약자 및 신체장애인의 이용에 편리한 구조로 하여야 하며, 양쪽에 벽등이 있어 난간이 없는 경우에는 손잡이를 설치하여야 한다. <개정 2010.4.7>
check(REFB_15_3){
IF CS THEN KS
}
CS{
getBuildingUsage()= "ClassINeighborhoodLivingFacility"
OR getBuildingUsage() = "ClassIINeighborhoodLivingFacility"
OR getBuildingUsage() = "CulturalAndAssemblyFacility"
OR getBuildingUsage() = "ReligiousFacility"
OR getBuildingUsage() = "CommercialFacility"
OR getBuildingUsage() = "TransportationFacility"
OR getBuildingUsage() = "MedicalFacility"
OR getBuildingUsage() = "FacilitiesForTheAgedAndChildren"
OR getBuildingUsage() = "BusinessFacility"
OR getBuildingUsage() = "LodgingFacility"
OR getBuildingUsage() = "AmusementFacility"
OR getBuildingUsage() = "FacilityForTourismAndRelaxation"
OR (getBuildingUsage() = "MultiUnitHouse" AND getBuildingUsage() != "Dormitory")
}
KS{
isExist(Railing)=TRUE
OR (isExist(Railing)=FALSE AND isExist(Handle)=TRUE)
}
2. 헬리포트의 중심으로부터 반경 12미터 이내에는 헬리콥터의 이·착륙에 장애가 되는 건축물, 공작물, 조경시설 또는 난간 등을 설치하지 아니할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 13조 (헬리포트 및 구조공간 설치 기준) 1항 2호
Check(REFB_13_1_2){
KS
}
KS{
Space mySpace{
// 헬리포트의 중심으로부터 반경 12미터 이내의 공간
}
isInstalled(Building, mySpace)=False
isInstalled(Construction, mySpace)=False
isInstalled(LandscapeFacility, mySpace)=False
isInstalled(Railing, mySpace)=False
}
② 영 제40조제3항제1호에 따라 옥상에 헬리콥터를 통하여 인명 등을 구조할 수 있는 공간을 설치하는 경우에는 직경 10미터 이상의 구조공간을 확보하여야 하며, 구조공간에는 구조활동에 장애가 되는 건축물, 공작물 또는 난간 등을 설치해서는 안 된다. 이 경우 구조공간의 표시기준 등에 관하여는 제1항제3호 및 제4호를 준용한다. <신설 2010.4.7, 2012.1.6>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 13조 (헬리포트 및 구조공간 설치 기준) 2항
Check(REFB_13_2){
KS
}
KS{
Space mySpace{
getObjectDiameter(Space)>=10 m
}
isInstalled(Building, mySpace)=False
isInstalled(Construction, mySpace)=False
isInstalled(Railing, mySpace)=False
}
④ 영 제51조제3항에서 "국토교통부령으로정하는 기준"이란 높이 1.2미터 이상의 난간이나 그 밖에 이와 유사한 추락방지를 위한 안전시설을 말한다. <신설 2010.4.7, 2013.3.23>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 17조 (채광 및 환기를 위한 창문등) 4항
check(REFB_17_4){
getObjectHeight(Railing) >= 1.2 m
OR getObjectHeight(FallPreventionSafetyFacility) >= 1.2 m
}