제43조(내력벽) ①건축물의 각층에 있어서 건축물의 길이방향 또는 너비방향의 보강블록구조인 내력벽의 길이(대린벽의 경우에는 그 접합된 부분의 각 중심을 이은 선의 길이를 말한다. 이하 이 절에서 같다)는 각각 그 방향의 내력벽의 길이의 합계가 그 층의 바닥면적 1제곱미터에 대하여 0.15미터 이상이 되도록 하되, 그 내력벽으로 둘러쌓인 부분의 바닥면적은 80제곱미터를 넘을 수 없다.
// 건축물의 구조기준 등에 관한 규칙 43조 (내력벽) 1항
Check(RSSB_43_1){
getResult(RSSB_41_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS
}
KS{
Wall myWall{
isObjectProperty(Wall.isLoadBearingWall) = TRUE
getObjectProperty(Wall.Structure.materialType) = "SteelReinforcedConcreteBlock"
}
FA =getObjectArea(Floor.One)
getObjectProperty(myWall.Length)>= FA*0.15 m
getObjectProperty(myWall.width)>= FA*0.15 m
Space mySpace{
isSurrounded(Space, myWall)=True
}
getFloorArea(mySpace)<=80 m2
}
2. 배연창의 유효면적은 별표 2의 산정기준에 의하여 산정된 면적이 1제곱미터 이상으로서 그 면적의 합계가 당해 건축물의 바닥면적(영 제46조제1항 또는 제3항의 규정에 의하여 방화구획이 설치된 경우에는 그 구획된 부분의 바닥면적을 말한다)의 100분의 1이상일 것. 이 경우 바닥면적의 산정에 있어서 거실바닥면적의 20분의 1 이상으로 환기창을 설치한 거실의 면적은 이에 산입하지 아니한다.
//건축물의 설비기준 등에 관한 규칙 14조 (배연설비) 1항 2호
Check(RFB_14_1_2){
IF (CS) THEN (KS1 OR KS2)
}
Zone myZone{
isObjectProperty(Zone.isFirePartition) = TRUE
}
Space mySpace{
getSpaceUsage(Space) = "Room"
getTotalElementArea(Ventilator) >= getFloorArea(Space)*0.05
}
Space mySpace2{
hasSpace(Space, myZone) = TRUE
getResult(EDBA_46_1) = TRUE
getREsult(EDBA_46_3) = TRUE
}
CS{
getElementArea(SmokeVentilator) >= 1 m2
getResult(RFB_*_2) = TRUE
}
KS1{
getTotalElementArea(Ventilator) >= (getBuildingArea()-getFloorArea(mySpace))*0.01
}
KS2{
getTotalElementArea(Ventilator) >= (getFloorArea(myZone)-getFloorArea(mySpace))*0.01
}
1. 공연장의 개별 관람석(바닥면적이 300제곱미터 이상인 경우에 한한다)의 바깥쪽에는 그 양쪽 및 뒤쪽에 각각 복도를 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조의2 (복도의 너비 및 설치기준) 3항1호
Check(REFB_15-2_3_1){
IF CS THEN KS
}
CS{
Space mySpace{
getSpaceUsage(Space)="IndividualAuditorium"
}
getFloorArea(mySpace)>300 m2
}
KS{
}
corridor_code = '33105'
theater_code = '00000'
std_floor_area = 200
corridor_code_label = '복도 공간분류코드'
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 == '공연장'):
continue
for storey in building.SELECT('storey'):
for space in storey.SELECT('space'):
if space.SELECT('class code').STRING() != theater_code:
continue
area = space.SELECT('area').UNIT('m2').NUMBER()
side_corridors = []
fb_corridors = []
for s in space.SELECT('side space'):
if s.SELECT('class code').STRING() == corridor_code:
side_corridors.append(s)
for s in space.SELECT('front back space'):
if s.SELECT('class code').STRING() == corridor_code:
fb_corridors.append(s)
if area >= 300:
if len(side_corridors) + len(fb_corridors) < 3:
space.ERROR('관람석의 양쪽과 뒤쪽 중 복도가 존재하지 않는 곳이 있습니다.')
else:
space.SUCCESS('관람석의 양쪽과 뒤쪽에 복도가 존재합니다.')
else:
if len(side_corridors) == 2 or len(fb_corridors) == 2:
space.SUCCESS('관람석의 앞뒤쪽에 복도가 존재합니다.')
else:
space.ERROR('관람석의 앞뒤쪽 중 복도가 존재하지 않는 곳이 있습니다.')
2. 하나의 층에 개별 관람석(바닥면적이 300제곱미터 미만인 경우에 한한다)을 2개소 이상 연속하여 설치하는 경우에는 그 관람석의 바깥쪽의 앞쪽과 뒤쪽에 각각 복도를 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조의2 (복도의 너비 및 설치기준) 3항2호
Check(REFB_15-2_3_2){
IF CS THEN KS
}
CS{
Space mySpace{
getSpaceUsage(Space)="IndividualAuditorium"
}
getFloorArea(mySpace)>300 m2
getObjectCount(Floor.One.mySpace)>=2
}
KS{
}
corridor_code = '33105'
theater_code = '00000'
std_floor_area = 200
corridor_code_label = '복도 공간분류코드'
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 == '공연장'):
continue
for storey in building.SELECT('storey'):
for space in storey.SELECT('space'):
if space.SELECT('class code').STRING() != theater_code:
continue
area = space.SELECT('area').UNIT('m2').NUMBER()
side_corridors = []
fb_corridors = []
for s in space.SELECT('side space'):
if s.SELECT('class code').STRING() == corridor_code:
side_corridors.append(s)
for s in space.SELECT('front back space'):
if s.SELECT('class code').STRING() == corridor_code:
fb_corridors.append(s)
if area >= 300:
if len(side_corridors) + len(fb_corridors) < 3:
space.ERROR('관람석의 양쪽과 뒤쪽 중 복도가 존재하지 않는 곳이 있습니다.')
else:
space.SUCCESS('관람석의 양쪽과 뒤쪽에 복도가 존재합니다.')
else:
if len(side_corridors) == 2 or len(fb_corridors) == 2:
space.SUCCESS('관람석의 앞뒤쪽에 복도가 존재합니다.')
else:
space.ERROR('관람석의 앞뒤쪽 중 복도가 존재하지 않는 곳이 있습니다.')
가. 건축물의 내부와 계단실은 노대를 통하여 연결하거나 외부를 향하여 열 수 있는 면적 1제곱미터 이상인 창문(바닥으로부터 1미터 이상의 높이에 설치한 것에 한한다) 또는 「건축물의 설비기준 등에 관한 규칙」 제14조의 규정에 적합한 구조의 배연설비가 있는 면적 3제곱미터 이상인 부속실을 통하여 연결할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 가목
check (REFB_9_2_3_1){
CS THEN KS
}
CS {
isExist(Stair.Space) = TRUE
}
KS {
Window myWindow {
getObjectProperty(Window.area)>= 1 m2
isObjectProperty(Window.isExternalDirection) = TRUE
getElementDistance(Window, FloorSlab, a)>=1m
}
SmokeExhaustionSystem mySmokeExhaustionSystem {
getElement(SmokeExhaustionSystem)
getResult(RFB_14)=TRUE
}
Space mySpace1{
getSpace(“Balcony”)
}
Space mySpace2{
isExternal(Space)=FALSE
}
Space mySpace3{
getSpace(“AncillaryRoom”)
getFloorArea(Space.Floor, ) >= 3㎡
hasElement(Space,mySmokeExhaustionSystem) = TRUE
hasElement(Space,myWindow) = TRUE
}
isGoThrough(mySpace2,Stair.Space, ,mySpace1)
OR isGoThrough(mySpace2,Stair.Space, ,mySpace3)
①영 제51조에 따라 채광을 위하여 거실에 설치하는 창문등의 면적은 그 거실의 바닥면적의 10분의 1 이상이어야 한다. 다만, 거실의 용도에 따라 별표 1의3에 따라 조도 이상의 조명장치를 설치하는 경우에는 그러하지 아니하다. <개정 2000.6.3, 2010.4.7, 2012.1.6>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 17조 (채광 및 환기를 위한 창문등) 1항
check(REFB_17_1){
IF (getResult(REFB_*_1-3) = FALSE) THEN KS
}
KS{
Window myWindow{
hasElement(Room, myWindow) = TRUE
}
getElementArea(myWindow) >= getFloorArea(Room)*0.1
}
Check(EDBA_61_1_1){
IF CS THEN KS
}
Floor myfloor1 {
isObjectProperty(ClassIINeighborhoodLivingFacility.PerformanceHall)=TRUE
OR isObjectProperty(ClassIINeighborhoodLivingFacility.ReligiousAssemblyFacility)=TRUE
OR isObjectProperty(ClassIINeighborhoodLivingFacility.ReligiousAssemblyFacility)=TRUE
AND getFloorArea()>=300
}
CS{
isExist(myfloor1)=TRUE
OR(getBuildingUsage()= "CulturalAndAssemblyFacility"
AND getBuildingUsage()!= "CulturalAndAssemblyFacility.WeddingHall")
OR getBuildingUsage()= "ReligiousFacility"
OR getBuildingUsage()= "CommercialFacility"
OR getBuildingUsage()= "TransportationFacility"
OR (getBuildingUsage()= "AmusementFacility"
OR (getBuildingUsage()!= "AmusementFacility.Pubs"
AND getBuildingUsage()!= "AmusementFacility.BarBusiness")
}
KS{
getFloorArea(Room)>=200m2
OR (isObjectProperty(MainStructuralPart.isFireResistantStructure)=TRUE
OR isObjectProperty(MainStructuralPart.Material.nonCombustibility)=TRUE
getFloorArea(Room)>=400m2
}
② 건축물(갓복도식 공동주택은 제외한다)의 11층(공동주택의 경우에는 16층) 이상인 층(바닥면적이 400제곱미터 미만인 층은 제외한다) 또는 지하 3층 이하인 층(바닥면적이 400제곱미터미만인 층은 제외한다)으로부터 피난층 또는 지상으로 통하는 직통계단은 제1항에도 불구하고 특별피난계단으로 설치하여야 한다. <개정 2008.10.29>
//건축법 시행령 35조 (피난계단의 설치) 2항
check(EDBA_35_2){
IF (CS1 AND CS2) THEN KS
}
CS1{
Building.usage != "MultiUnitHouse.SideCorridorTypeMultiUnitHouse"
}
CS2{
Floor myFloor{
IF (Building.usage = "MultiUnitHouse“)
THEN getFloorNumber(Floor) >= 16
ELSE
getFloorNumber(Floor) >= 11
ENDIF
OR getFloorNumber(Floor) < -3
getFloorArea(Floor) >= 400m2
}
Stair myStair {
(isAccessible(Stair, Floor.isEscape) = TRUE
OR isAccessible(Stair, Ground) = TRUE)
isObjectProperty(Stair.isDirect) = TRUE
}
hasObject(myFloor, myStair) = TRUE
}
KS{
isObjectProperty(myStair.isSpecialEscape) = TRUE
}
2. 문화 및 집회시설 중 전시장 또는 동·식물원, 판매시설, 운수시설, 수련시설, 운동시설 중 체육관·운동장, 위락시설(주점영업의 용도로 쓰는 것은 제외한다), 창고시설, 위험물저장 및 처리시설, 자동차 관련 시설, 방송통신시설 중 방송국·전신전화국·촬영소, 묘지 관련 시설 중 화장장 또는 관광휴게시설의 용도로 쓰는 건축물로서 그 용도로 쓰는 바닥면적의 합계가 500제곱미터 이상인 건축물
4. 건축물의 2층이 단독주택 중 다중주택 및 다가구주택, 공동주택, 제1종 근린생활시설(의료의 용도로 쓰는 시설만 해당한다), 의료시설, 노유자시설 중 아동 관련 시설 및 노인복지시설, 수련시설 중 유스호스텔, 업무시설 중 오피스텔, 숙박시설 또는 장례식장의 용도로 쓰는 건축물로서 그 용도로 쓰는 바닥면적의 합계가 400제곱미터 이상인 건축물
//건축법 시행령 56조 (건축물의 내화구조와 방화벽) 1항 4호
check(EDBA_56_1_4){
Floor myFloor{
getFloorNumber = 2
getObjectUsage(Floor) = "DetachedHouse.MultiUserHouse"
OR getObjectUsage(Floor) = "DetachedHouse.MultiFamilyHouse"
OR getObjectUsage(Floor) = "DetachedHouse.MultiFamilyHouse"
OR getObjectUsage(Floor) = "MultiUnitHouse"
OR getObjectUsage(Floor) = "ClassINeighborhoodLivingFacility.MedicalFacility"
OR getObjectUsage(Floor) = "ClassIINeighborhoodLivingFacility.CommunalLivingFacility"
OR getObjectUsage(Floor) = "MedicalFacility"
OR getObjectUsage(Floor) = "FacilitiesForTheAgedAndChildren.ChildrenRelatedFacility"
OR getObjectUsage(Floor) = "FacilitiesForTheAgedAndChildren.WelfareFacilityForTheAged "
OR getObjectUsage(Floor) = "Trainingfacility.YouthHostel"
OR getObjectUsage(Floor) = "BusinessFacility.Officetel"
OR getObjectUsage(Floor) = "LodgingFacility"
OR getObjectUsage(Floor) = "FuneralParlor"
}
getFloorArea(myFloor) >= 400 m2
}
① 법 제50조제2항에 따라 연면적 1천 제곱미터 이상인 건축물은 방화벽으로 구획하되, 각 구획된 바닥면적의 합계는 1천 제곱미터 미만이어야 한다. 다만, 주요구조부가 내화구조이거나 불연재료인 건축물과 제56조제1항제5호 단서에 따른 건축물 또는 내부설비의 구조상 방화벽으로 구획할 수 없는 창고시설의 경우에는 그러하지 아니하다.
// 건축법 시행령 57조 ( 대규모 건축물의 방화벽 등) 1항
Check(EDBA_57_1){
IF (CS1 AND CS2) THEN KS
}
CS1{
getObjectProperty(MainStructuralPart.isFireResistantStructure) = TRUE
OR getObjectProperty(MainStructuralPart.Material.nonCombustibility) = TRUE
OR getResult(EDBA_56_1_5) = TRUE
}
CS2{
getObjectProperty(Building.grossFloorArea) >= 1000m2
}
KS{
Space mySpace{
getFloorArea(Space) < 1000m2
}
Space mySpace2{
Space != mySpace
}
Wall myWall{
isObjectProperty(Wall.isFireProofWall) = TRUE
}
isPartitioned(mySpace, mySpace2, myWall) = TRUE
}
2. 높이 31미터를 넘는 각 층의 바닥면적 중 최대 바닥면적이 1천500제곱미터를 넘는 건축물: 1대에 1천500제곱미터를 넘는 3천 제곱미터 이내마다 1대씩 더한 대수 이상
//건축법 시행령 90조 (비상용 승강기의 설치) 1항2호
Check(EDBA_1_2){
IF CS THEN KS
}
Floor myFloor{
getObjectHeight(Floor)>31 m
}
CS{
getFloorArea(myFloor)>1500 m2
}
KS{
FA=getFloorArea(myFloor) //FA means floor area
IF FA>=4500 m2
THEN {(FA-1500)/3000}+1 < getObjectCount(EmergencyElevator)
getObjectCount(EmergencyElevator) < {(FA-1500)/3000}+2
END IF
}
① 건축물의 피난층(직접 지상으로 통하는 출입구가 있는 층을 말한다. 이하 같다) 외의 층에서는 피난층 또는 지상으로 통하는 직통계단(경사로를 포함한다. 이하 같다)을 거실의 각 부분으로부터 계단(거실로부터 가장 가까운 거리에 있는 계단을 말한다)에 이르는 보행거리가 30미터 이하가 되도록 설치하여야 한다. 다만, 건축물(지하층에 설치하는 것으로서 바닥면적의 합계가 300제곱미터 이상인 공연장·집회장·관람장 및 전시장은 제외한다)의 주요구조부가 내화구조 또는 불연재료로 된 건축물은 그 보행거리가 50미터(층수가 16층 이상인 공동주택은 40미터) 이하가 되도록 설치할 수 있으며, 자동화 생산시설에 스프링클러 등 자동식 소화설비를 설치한 공장으로서 국토해양부령으로 정하는 공장인 경우에는 그 보행거리가 75미터(무인화 공장인 경우에는 100미터) 이하가 되도록 설치할 수 있다. <개정 2009.7.16>
// 건축법 시행령 34조 (직통계단의 설치) 1항
Check(EDBA_34_1){
KS
}
KS{
Floor myFloor{
isObjectProperty(Floor.isEscape) = TRUE
}
Space mySpace{
getObjectProperty(Space.usage)="PerformanceHall"
OR getObjectProperty(Space.usage)="AssemblyHall"
OR getObjectProperty(Space.usage)="Auditorium"
OR getObjectProperty(Space.usage)="ExhibitionHall"
}
Door myDoor{
isDirectlyAccessible(Door, Ground)=TRUE
}
Stair myStair{
isObjectProperty(Stair.isDirect)=TRUE
isAccessible(Stair,myFloor)=TRUE
OR isAccessible(Stair,Ground)=TRUE
}
Ramp myRamp{
isAccessible(Ramp,myFloor)=TRUE
OR isAccessible(Ramp,Ground)=TRUE
}
Floor myFloor2{
isObjectProperty(Floor.isEscape)=FALSE
OR hasObject(Floor, myDoor)=FALSE
}
Zone myZone{
isDirectlyAccessible(myStair, Zone)=FALSE
}
IF
getFloorNumber(mySpace)>0
getFloorArea(mySpace)<=300 m2
isFireResistantStructure(MainStructuralPart)=TRUE
OR isObjectProperty(MainStructuralPart.Material.nonCombustibility)=TRUE
THEN IF getBuildingStoriesCount()>=16
getBuildingUsage()="MultiUnitHouse"
THEN ED= 40
ELSE THEN ED=50
END IF
ELSE IF
getBuildingUsage() = "Factory"
isExist(ExtinguishingSystem)=TRUE
isObjectProperty(ExtinguishingSystem.isAutomatic)=TRUE
getResult(REFB_8_2)=TRUE
THEN IF getBuildingUsage() = "UnmannedFactory"
THEN ED=100
ELSE THEN ED=75
END IF
ELSE THEN ED=30
END IF
(hasObject(myFloor,myStair)=TRUE
hasObject(myZone, myStair)=TRUE
getObjectDistance(Room,myStair, 1)<=ED)
OR
(hasObject(myFloor,myRamp)=TRUE
hasObject(myZone, myRamp)=TRUE
getObjectDistance(Room,myRamp, 1)<=ED)
}
max_route_length = 30
def Check():
evac_storey_exist = False
stories = SELECT('storey')
for storey in stories:
if storey.SELECT('is evacuation storey').BOOL() == True:
evac_storey_exist = True
break
if evac_storey_exist == False:
ERROR('피난층이 존재하지 않습니다.')
return
for storey in stories:
if storey.SELECT('is evacuation storey').BOOL() == True:
continue
stairs = storey.SELECT('direct stair')
if stairs.COUNT() == 0:
storey.ERROR(storey.SELECT('name').STRING() + '에 직통계단이 존재하지 않습니다.')
continue
for space in storey.SELECT('space'):
route_length = -1
for route in space.SELECT('escape route', stairs):
length = route.SELECT('length').UNIT('m').NUMBER()
if length > 0:
if route_length < 0:
route_length = length
else:
route_length = min([route_length, length])
if route_length < 0:
space.ERROR(space.SELECT('name').STRING() + '부터 직통계단까지 갈 수 없다.')
elif route_length > max_route_length:
space.ERROR(space.SELECT('name').STRING() + '부터 직통계단까지의 거리가 멀다 : ' + str(route_length))
else:
space.SUCCESS(space.SELECT('name').STRING() + ' : ' + str(route_length))
⑤ 건축물의 5층 이상인 층으로서 문화 및 집회시설 중 전시장 또는 동·식물원, 판매시설, 운수시설(여객용 시설만 해당한다), 운동시설, 위락시설, 관광휴게시설(다중이 이용하는 시설만 해당한다) 또는 수련시설 중 생활권 수련시설의 용도로 쓰는 층에는 제34조에 따른 직통계단 외에 그 층의 해당 용도로 쓰는 바닥면적의 합계가 2천 제곱미터를 넘는 경우에는 그 넘는 2천 제곱미터 이내마다 1개소의 피난계단 또는 특별피난계단(4층 이하의 층에는 쓰지 아니하는 피난계단 또는 특별피난계단만 해당한다)을 설치하여야 한다. <개정 2008.10.29, 2009.7.16>
//건축법 시행령 35조 (피난계단의 설치) 5항
check(EDBA_35_5){
IF (CS) THEN KS
}
CS{
Floor myFloor{
Floor.number >= 5
OR Floor.usage = "CulturalAndAssemblyFacility.ExhibitionHall"
OR Floor.usage = "CulturalAndAssemblyFacility.ZoologicalAndBotanicalGarden"
OR Floor.usage = "CommercialFacility"
OR Floor.usage = "PassengerTrafficFacilities“??
OR Floor.usage = "SportsFacility"
OR Floor.usage = "AmusementFacility"
OR Floor.usage = "FacilityForTourismAndRelaxation“???
OR Floor.usage = "Trainingfacility.TrainingFacilityInLivingZone“
}
isExist(myFloor)=True
}
KS{
Stair myStair2{
isObjectProperty(Stair.isSpecialEscape) = True
OR isObjectProperty(Stair.isEscape) = True
}
getResult(EDBA_34) = TRUE
IF (getTotalFloorArea(myFloor.Space) >= 2000m2)
THEN getObjectCount(myStair2) >= 1+ getFloorArea(myFloor.Space)/2000
}
2. 방수구는 아파트 또는 바닥면적이 1,000㎡ 미만인 층에 있어서는 계단(계단의 부속실을 포함하며 계단이 2 이상 있는 경우에는 그 중 1개의 계단을 말한다)으로부터 5m 이내에, 바닥면적 1,000㎡ 이상인 층(아파트를 제외한다)에 있어서는 각 계단(계단의 부속실을 포함하며 계단이 3 이상 있는 층의 경우에는 그 중 2개의 계단을 말한다)으로부터 5m 이내에 설치하되, 그 방수구로부터 그 층의 각 부분까지의 거리가 다음 각목의 기준을 초과하는 경우
//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 2호
Check(NFSC502_6_0_2){
KS
}
KS{
Space mySpce{
getSpaceUsage(Space)="Stair.AncillaryRoom"
OR
(
IF getObjectCoutn(Stair)>=2
THEN getSpace(Stair.One)
ELSE
getSpaceUsage(Space)="Stair"
END IF
)
}
Space mySpce2{
getSpaceUsage(Space)="Stair.AncillaryRoom"
OR
(
IF getObjectCoutn(Stair)>=3
THEN getSpace(Stair.Two)
ELSE
getSpaceUsage(Space)="Stair"
END IF
)
}
IF getBuildingUsage()="ApartmentHouse"
OR getFloorArea()<1000 m2
THEN getObjectDistance(FireDepartmentConnection, mySpace)<5 m
ELSE IF getFloorArea()>1000 m2
THEN getObjectDistance(FireDepartmentConnection, mySpace)<5 m
getResult(NFSC502_6_0_2_가)=True
getResult(NFSC502_6_0_2_나)=True
END IF
}
⑤법 제20조제2항 또는 제3항의 규정에 의한 노외주차장에 설치할 수 있는 부대시설의 종류 및 주차장 총시설면적중 부대시설이 차지하는 비율에 대하여는 제4항의 규정에 불구하고 특별시ㆍ광역시ㆍ시ㆍ군 또는 구의 조례로 정할 수 있다. 이 경우 부대시설이 차지하는 면적의 비율은 주차장 총 시설면적의 40퍼센트를 초과할 수 없다. <신설 1996.6.29, 2004.7.1>
⑥시장ㆍ군수 또는 구청장이 노외주차장내에 국토의계획및이용에관한법률 제2조제7호의 도시계획시설을 부대시설로서 중복하여 설치하고자 하는 경우에는 노외주차장외의 용도로 사용하고자 하는 도시계획시설이 차지하는 면적의 비율은 부대시설을 포함하여 주차장 총 시설면적의 40퍼센트를 초과할 수 없다. <신설 2004.7.1>
①6층 이상인 공동주택에는 국토교통부령이 정하는 기준에 따라 대당 6인승 이상인 승용승강기를 설치하여야 한다. 다만, 「건축법 시행령」 제89조의 규정에 해당하는 공동주택의 경우에는 그러하지 아니하다. <개정 1992.5.30, 1994.12.23, 1994.12.30, 1999.9.29, 2005.6.30, 2008.2.29, 2013.3.23>
//주택건설기준 등에 관한 규정 15조 (승강기등) 1항
Check(RHC_15_1){
getResult(RHC_15_5) = TRUE AND IF (CS1 AND !CS2) THEN KS
}
CS1{
getBuildingUsage() = "MultiUnitHouse"
getBuildingStoriesCount() >= 6
}
CS2{
getBuildingStoriesCount = 6
Stair myStair{
isObjectProperty(Stair.isDirect) = TRUE
}
getFloorArea() = FA
FA / 300 = FA2
getIntegeralNumber(FA2) = FA3
getObjectCount(myStair) >= FA3
}
KS{
Elevator myElevator{
getObjectProperty(Elevator.occupancy) >= 6
}
isExist(myElevator) = TRUE
}