② 방화지구 안의 공작물로서 간판, 광고탑, 그 밖에 대통령령으로 정하는 공작물 중 건축물의 지붕 위에 설치하는 공작물이나 높이 3미터 이상의 공작물은 주요부를 불연(不燃)재료로 하여야 한다.
//건축법 51조 (방화지구 안의 건축물) 2항
Check(BA_51_2){
IF CS THEN KS
}
CS{
getResult(LPUA_37_1_4)=True
}
KS{
Construction myConstruction {
isInstalled(Construction , Rooftop)=True
OR Construction.height>=3 m
}
isObjectProperty(myConstruction.MainStructuralPart.Material.nonCombustibility)=True
}
② 대통령령으로 정하는 용도 및 규모의 건축물의 안전·위생 및 방화(防火) 등을 위하여 필요한 용도 및 구조의 제한, 방화구획(防火區劃), 화장실의 구조, 계단·출입구, 거실의 반자 높이, 거실의 채광·환기, 배연설비와 바닥의 방습 등에 관하여 필요한 사항은 국토교통부령으로 정한다. <개정 2013.3.23, 2019.4.23>
//건축법 49조 (건축물의 피난시설 및 용도제한 등) 2항
Check(BA_49_2){
IF CS THEN KS
}
CS{
getResult(EDBA_34_1)= TRUE
OR getResult(EDBA_34_3)= TRUE
OR getResult(EDBA_34_4)= TRUE
OR getResult(EDBA_46_1)= TRUE
OR getResult(EDBA_46_2)= TRUE
OR getResult(EDBA_46_3)= TRUE
OR getResult(EDBA_46_4)= TRUE
OR getResult(EDBA_46_5)= TRUE
OR getResult(EDBA_47_1)= TRUE
OR getResult(EDBA_47_2)= TRUE
OR getResult(EDBA_48_1)= TRUE
OR getResult(EDBA_48_2)= TRUE
OR getResult(EDBA_50)= TRUE
OR getResult(EDBA_51_1)= TRUE
OR getResult(EDBA_51_2)= TRUE
OR getResult(EDBA_51_3)= TRUE
OR getResult(EDBA_52)= TRUE
}
KS{
getResult(REFB_3)= TRUE
AND getResult(REFB_4)= TRUE
AND getResult(REFB_8)= TRUE
AND getResult(REFB_9)= TRUE
AND getResult(REFB_10)= TRUE
AND getResult(REFB_11)= TRUE
AND getResult(REFB_14)= TRUE
AND getResult(REFB_15)= TRUE
AND getResult(REFB_16)= TRUE
AND getResult(REFB_17)= TRUE
AND getResult(REFB_18)= TRUE
}
①대통령령으로 정하는 용도 및 규모의 건축물의 내부 마감재료는 방화에 지장이 없는 재료로 하되, 「다중이용시설 등의 실내공기질관리법」 제5조 및 제6조에 따른 실내공기질 유지기준 및 권고기준을 고려하고 관계 중앙행정기관의 장과 협의하여 국토해양부령으로 정하는 기준에 따른 것이어야 한다. <개정 2009.12.29>
//건축법 52조 (건축물의 마감재료) 1항
Check(BA_52_1){
IF CS THEN KS
}
Building myBuilding{
getResult(EDBA_61_1)=TRUE
}
CS{
isExist(myBuilding)=TRUE
}
KS{
getResult(REFB_24_1)=TRUE
getResult(REFB_24_2)=TRUE
getResult(REFB_24_3)=TRUE
getResult(REFB_24_4)=TRUE
}
4. 공장의 용도로 쓰는 건축물. 다만, 건축물이 1층 이하이고, 연면적 1천 제곱미터 미만으로서 다음 각 목의 요건을 모두 갖춘 경우는 제외한다.
Check(EDBA_61_1_4){
IF !CS THEN KS}
CS{
getResult(EDBA_61_1_4_가)=PASS
OR getResult(EDBA_61_1_4_나)=PASS
OR getResult(EDBA_61_1_4_다)=PASS
}
KS{
getBuildingUsage="Factory"}
② 법 제49조제3항에 따라 다음 각 호의 어느 하나에 해당하는 건축물의 층간바닥(화장실의 바닥은 제외한다)은 국토교통부령으로 정하는 기준에 따라 설치하여야 한다. <신설 2014.11.28, 2016.8.11>
//건축법 시행령 53조 (경계벽 등의 설치) 2항
Check(EDBA_53_2){
IF CS THEN KS
}
CS{
getResult(EDBA_53_2_1)=True
OR getResult(EDBA_53_2_2)=True
OR getResult(EDBA_53_2_3)=True
OR getResult(EDBA_53_2_4)=True
OR getResult(EDBA_53_2_5)=True
}
KS{
getResult(REFB_19_3)=True
}
①건축물의 대지 안에는 그 건축물 바깥쪽으로 통하는 주된 출구와 지상으로 통하는 피난계단 및 특별피난계단으로부터 도로 또는 공지(공원, 광장, 그 밖에 이와 비슷한 것으로서 피난 및 소화를 위하여 해당 대지의 출입에 지장이 없는 것을 말한다. 이하 이 조에서 같다)로 통하는 통로를 다음 각 호의 기준에 따라 설치하여야 한다. <개정 2010.12.13, 2015.9.22, 2016.5.17, 2017.2.3>
①법 제52조제1항에서 "대통령령으로 정하는 용도 및 규모의 건축물"이란 다음 각 호의 어느 하나에 해당하는 건축물을 말한다. 다만, 그 주요구조부가 내화구조 또는 불연재료로 되어 있고 그 거실의 바닥면적(스프링클러나 그 밖에 이와 비슷한 자동식 소화설비를 설치한 바닥면적을 뺀 면적으로 한다. 이하 이 조에서 같다) 200제곱미터 이내마다 방화구획이 되어 있는 건축물은 제외한다. <개정 2009.7.16, 2010.2.18, 2010.12.13, 2013.3.23, 2014.3.24, 2014.8.27, 2014.10.14, 2015.9.22, 2017.2.3>
//건축법 시행령 61조 (건축물의 마감재료) 1항
Check(EDBA_61_1){
IF !CS THEN KS
}
CS{
(isObjectProperty(MainStructuralPart.isFireResistantStructure)=TRUE
OR isObjectProperty(MainStructuralPart.Material.nonCombustibility)=TRUE)
isFirePartition(Room.Floor, a, 200)=TRUE
}
KS{
getResult(EDBA_61_1_1)=TRUE
OR getResult(EDBA_61_1_2)=TRUE
OR getResult(EDBA_61_1_3)=TRUE
OR getResult(EDBA_61_1_4)=TRUE
OR getResult(EDBA_61_1_5)=TRUE
OR getResult(EDBA_61_1_6)=TRUE
OR getResult(EDBA_61_1_7)=TRUE
}
6. 문화 및 집회시설, 종교시설, 판매시설, 운수시설, 의료시설, 교육연구시설 중 학교(초등학교만 해당한다)·학원, 노유자시설, 수련시설, 업무시설 중 오피스텔, 숙박시설, 위락시설(단란주점 및 유흥주점은 제외한다), 장례시설, 「다중이용업소의 안전관리에 관한 특별법 시행령」 제2조에 따른 다중이용업(단란주점영업 및 유흥주점영업은 제외한다)의 용도로 쓰는 건축물
Check(EDBA_61_1_6){
KS}
KS{
(getBuildingUsage()="ClassIINeighborhoodLivingFacility.PerformanceHall"
OR getBuildingUsage()="ClassIINeighborhoodLivingFacility.BilliardRoom")
OR getBuildingUsage()="CulturalAndAssemblyFacility.WeddingHall"
OR getBuildingUsage()="EducationAndResearchFacility.ElementarySchool"
OR getBuildingUsage()="Trainingfacility"
OR (getBuildingUsage()="AmusementFacility.BarBusiness"
OR getResult(ERSASP_2)= TRUE)
}
③ 법 제11조제2항제2호에서 "위락시설과 숙박시설 등 대통령령으로 정하는 용도에 해당하는 건축물"이란 다음 각 호의 건축물을 말한다. <개정 2008.10.29>
//건축법 시행령 8조 (건축허가) 3항
Check(EDBA_8_3){
KS
}
KS{
getResult(EDBA_8_3_1)=True
OR getResult(EDBA_8_3_2)=True
OR getResult(EDBA_8_3_3)=True
OR getResult(EDBA_8_3_4)=True
OR getResult(EDBA_8_3_5)=True
}
4. 제1호부터 제3호까지의 용도로 쓰지 아니하는 3층 이상의 층으로서 그 층 거실의 바닥면적의 합계가 400제곱미터 이상인 것
//건축법 시행령 34조 (직통계단의 설치) 2항4호
check(EDBA_34_2_4){
IF getResult(EDBA_34_2_1)=FALSE
OR getResult(EDBA_34_2_2)=FALSE
OR getResult(EDBA_34_2_3)=FALSE
THEN getTotalFloorNumber(myFloor.Room)>=400 m2
END IF
}
① 법 제49조제1항에 따라 5층 이상 또는 지하 2층 이하인 층에 설치하는 직통계단은 국토해양부령으로 정하는 기준에 따라 피난계단 또는 특별피난계단으로 설치하여야 한다. 다만, 건축물의 주요구조부가 내화구조 또는 불연재료로 되어 있는 경우로서 다음 각 호의 어느 하나에 해당하는 경우에는 그러하지 아니하다. <개정 2008.10.29>
//건축법 시행령 35조(피난계단의 설치) 1항
Check(EDBA_35_1){
IF (!CS1 AND !CS2 AND CS3) THEN KS
}
CS1 {
isFireProofStructure(MainStructuralPart) = TRUE
OR isObjectProperty(MainStructuralPart.Material.nonCombustibility) = TRUE
}
CS2 {
getResult(EDBA_35_1_1) = TRUE
OR getResult(EDBA_35_1_2) = TRUE
}
CS3{
Floor myFloor {
Floor.number > 5
OR Floor.number <= -2
}
Stair myStair {
isObjectProperty(Stair.isDirect) = TRUE
}
hasElement(myFloor, myStair) = TRUE
}
KS {
isObjectProperty(myStair.isEscape) = TRUE
OR isObjectProperty(myStair.isSpecialEscape) = TRUE
}
① 법 제49조제2항에 따라 주요구조부가 내화구조 또는 불연재료로 된 건축물로서 연면적이 1천 제곱미터를 넘는 것은 국토해양부령으로 정하는 기준에 따라 내화구조로 된 바닥·벽 및 제64조에 따른 갑종 방화문(국토해양부장관이 정하는 기준에 적합한 자동방화셔텨를 포함한다. 이하 이 조에서 같다)으로 구획(이하 "방화구획"이라 한다)하여야 한다. 다만, 「원자력법」 제2조에 따른 원자로 및 관계시설은 「원자력법」에서 정하는 바에 따른다.
//건축법 시행령 46조 (방화구획의 설치) 1항
Check(EDBA_46_1){
IF (!CS1 AND CS2) THEN KS
}
CS1{
getBuildingUsage()="NuclearReactorAndRelatedFacility"
}
CS2{
(isObjectProperty(MainStructuralPart.isFireResistantStructure)=TRUE
OR isObjectProperty(MainStructuralPart.Material.nonCombustibility)=TRUE))
AND Building.grossFloorArea>1000 m2
}
KS{
Floor myFloor{
isObjectProperty(FloorSlab.isFireResistantStructure)=TRUE
}
Wall myWall{
isObjectProperty(Wall.isFireResistantStructure)=TRUE
}
Door myDoor{
isObjectProperty(Door.isStrictFireproofDoor)=TRUE
}
isFirePartition(Building, myFloor)=TRUE
AND isFirePartition(Building, myWall)=TRUE
AND isFirePatrition(Building, myDoor)=TRUE
AND getResult(REFB_14_1)=TRUE
AND getResult(REFB_14_2)=TRUE
AND getResult(REFB_14_3)=TRUE
}
② 다음 각 호의 어느 하나에 해당하는 건축물의 부분에는 제1항을 적용하지 아니하거나 그 사용에 지장이 없는 범위에서 제1항을 완화하여 적용할 수 있다.
//건축법 시행령 46조 (방화구획의 설치) 2항
check(EDBA_46_2){
IF CS THEN KS
}
KS{
getResult(EDBA_46_1)=FALSE
}
CS{
getResult(EDBA_46_2_2)=TRUE
OR getResult(EDBA_46_2_3)=TRUE
OR getResult(EDBA_46_2_4)=TRUE
OR getResult(EDBA_46_2_5)=TRUE
OR getResult(EDBA_46_2_6)=TRUE
OR getResult(EDBA_46_2_7)=TRUE
}
④ 공동주택 중 아파트로서 4층 이상인 층의 각 세대가 2개 이상의 직통계단을 사용할 수 없는 경우에는 발코니에 인접 세대와 공동으로 또는 각 세대별로 다음 각 호의 요건을 모두 갖춘 대피공간을 하나 이상 설치하여야 한다. 이 경우 인접 세대와 공동으로 설치하는 대피공간은 인접 세대를 통하여 2개 이상의 직통계단을 쓸 수 있는 위치에 우선 설치되어야 한다.
//건축법 시행령 46조 (방화구획의 설치) 4항
check(EDBA_46_4){
IF CS THEN KS1 AND KS2
}
Zone myZone{
isObjectProperty(Zone.isOccupiedByOneHousehold) = TRUE
}
KS1{
Space mySpace{
Space.isEscape = TRUE
}
isExist(Balcony)=TRUE
AND hasElement(Balcony,mySpace)=TRUE
AND (getResult(EDBA_46_4_1)=TRUE
AND getResult(EDBA_46_4_2)=TRUE
AND getResult(EDBA_46_4_3)=TRUE
AND getResult(EDBA_46_4_4)=TRUE)
}
KS2{
Stair myStair{
Stair.isDirect = TRUE
}
isGoThrough(myZone,mySpace,myZone)=TRUE
AND isGoThrough(mySpace,myZone,myStair)=TRUE
}
CS{
getBuildingUsage()="MultiUnitHouses.ApartmentHouses"
AND Floor.number >=4
AND isDirectlyAccessible(myZone, myStair)=TRUE
AND myStair.Number>=2
}
⑤ 제4항에도 불구하고 아파트의 4층 이상인 층에서 발코니에 설치하는 인접 세대와의 경계벽이 파괴하기 쉬운 경량구조 등이거나 경계벽에 피난구를 설치한 경우에는 대피공간을 설치하지 아니할 수 있다.
//건축법 시행령 46조 (방화구획의 설치) 5항
Check(EDBA_5){
CS
}
Space mySpace{
Space.isEscape = TRUE
}
CS{getObjectProperty(Building.usage)="ApartmentHouses"
AND isExist(Balcony)=TRUE
AND (hasObject(Balcony,Structure)=TRUE
AND (getResult(EDBA_5_1)=TRUE
or getResult(EDBA_5_2)=TRUE
or getResult(EDBA_5_3)=TRUE)
AND isExist(mySpace)=FALSE
}
std_floor_area = 200
std_floor_area_label = '기준 연면면적'
def Check():
for building in SELECT('building'):
if building.SELECT('area').Unit(m2).NUmber() < 200:
continue
② 법 제49조제2항에 따라 제39조제1항 각 호의 어느 하나에 해당하는 건축물의 출입구는 국토해양부령으로 정하는 기준에 적합하여야 한다.
//건축법 시행령 48조 (계단ㆍ복도 및 출입구의 설치)2항
Check(EDBA_48_2){
IF CS THEN KS
}
CS{
getResult(EDBA_39_1_1)=True
OR getResult(EDBA_39_1_2)=True
OR getResult(EDBA_39_1_3)=True
OR getResult(EDBA_39_1_4)=True
OR getResult(EDBA_39_1_5)=True
OR getResult(EDBA_39_1_6)=True
OR getResult(EDBA_39_1_7)=True
OR getResult(EDBA_39_1_8)=True
OR getResult(EDBA_39_1_9)=True
OR getResult(EDBA_39_1_10)=True
}
KS{
getResult(REFB_11_1)=True
getResult(REFB_11_2)=True
getResult(REFB_11_3)=True
getResult(REFB_11_4)=True
getResult(REFB_11_5)=True
getResult(REFB_11_6)=True
}
target_bldg_type_1 = ['제2종 근린생활시설', '문화 및 집회시설', '종교시설', '판매시설', '업무시설', '창고시설', '교육연구시설', '장례시설', '승강기를 설치하여야하는 건축물']
target_bldg_sub_type_2 = ['판매시설']
max_route_length_stair_to_door = 30
max_route_length_space_to_door = 60
min_em_door_count = 2
min_em_door_h = 1.5
min_em_door_w = 0.75
target_bldg_types_1_label = '외부 출입구 방향 적용 대상 건출물 용도'
target_bldg_types_2_label = '외부 출입구 유효너비 대상 건출물 용도'
max_route_length_stair_to_door_label = '직통계단과 외부 출입구 간 최소거리'
max_route_length_space_to_door_label = '거실과 외부 출입구 간 최소거리'
min_em_door_count_label = '최소 비상구 개수'
min_em_door_h_label = '최소 비상구 높이'
min_em_door_w_label = '최소 비상구 유효너비'
def Check():
for building in SELECT('building'):
bldg_type = building.SELECT('building type').STRING()
sub_type = building.SELECT('prop', '세부용도').STRING()
if (bldg_type in target_bldg_type_1):
if bldg_type == '제2종 근린생활시설' and sub_type in ['공연장', '종교집회장', '인터넷컴퓨터게임시설제공업소']:
message = '검토 대상 건물이 아닙니다.' + '(용도:' + bldg_type + ', 세부용도:' + sub_type + ' )'
SUCCESS(message)
break
elif bldg_type == '문화 및 집회시설' and sub_type in ['전시장', '동물원', '식물원']:
message = '검토 대상 건물이 아닙니다.' + '(용도:' + bldg_type + ', 세부용도:' + sub_type + ' )'
SUCCESS(message)
break
elif bldg_type == '업무시설' and sub_type == '청사':
message = '검토 대상 건물이 아닙니다.' + '(용도:' + bldg_type + ', 세부용도:' + sub_type + ' )'
SUCCESS(message)
break
elif bldg_type == '교육연구시설' and sub_type == '학교':
message = '검토 대상 건물이 아닙니다.' + '(용도:' + bldg_type + ', 세부용도:' + sub_type + ' )'
SUCCESS(message)
break
message = '검토 대상 건물입니다.' + '(용도:' + bldg_type + ', 세부용도:' + sub_type + ' )'
SUCCESS(message)
else:
message = '검토 대상 건물이 아닙니다.' + '(용도:' + bldg_type + ', 세부용도:' + sub_type + ' )'
SUCCESS(message)
break
evac_storey_exist = False
stories = building.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:
stairs = storey.SELECT('direct stair')
if stairs.COUNT() == 0:
storey.ERROR(storey.SELECT('name').STRING() + '에 직통계단이 존재하지 않습니다.')
continue
exDoors = []
for door in storey.SELECT('door'):
if door.SELECT('is external').BOOL() == True:
exDoors.append(door)
for stair in stairs:
route_length = -1
for route in stair.SELECT('escape route', exDoors):
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:
stair.ERROR(stair.SELECT('name').STRING() + '부터 외부 출입구까지 갈 수 없다.')
elif route_length > max_route_length_stair_to_door:
stair.ERROR(stair.SELECT('name').STRING() + '부터 외부 출입구까지의 거리가 멀다 : ' + str(route_length))
else:
stair.SUCCESS(stair.SELECT('name').STRING() + ' : ' + str(route_length))
spaces = storey.SELECT('space')
for space in spaces:
route_length = -1
for route in space.SELECT('escape route', exDoors):
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_to_door:
space.ERROR(space.SELECT('name').STRING() + '부터 외부 출입구까지의 거리가 멀다 : ' + str(route_length))
else:
space.SUCCESS(space.SELECT('name').STRING() + ' : ' + str(route_length))
if bldg_type in target_bldg_types_1:
for door in exDoors:
if door.SELECT('is inward').BOOL():
door.ERROR('외부 출입구의 방향이 안여닫이입니다.')
for space in spaces:
code = space.SELECT('class code').STRING()
if not code in theater_space_codes:
continue
area = space.SELECT('area').UNIT('m2').NUMBER()
if area < 300:
continue
emExits = []
for door in space.SELECT('space door'):
if door.SELECT('prop', '비상구').BOOL() or door.SELECT('prop', '보조출입구').BOOL():
emExits.append(door)
if len(emExits) < min_em_door_count:
space.ERROR('비상구(보조출입구) 개수:' + str(len(emExits)) + '(<' + str(min_em_door_count) + ')')
continue
em_exit_count = 0
for exit in emExits:
if exit.SELECT('clear opening').UNIT('m').NUMBER() >= min_em_door_w and exit.SELECT('height').UNIT('m').NUMBER() >= min_em_door_h:
em_exit_count += 1
if em_exit_count < min_em_door_count:
space.ERROR('기준(' + str(min_em_door_w) + 'X' + str(min_em_door_h) + ')을 충족하는 비상구(보조출입구) 개수:' + str(em_exit_count) + '(<' + str(min_em_door_count) + ')')
else:
space.SUCCESS('기준(' + str(min_em_door_w) + 'X' + str(min_em_door_h) + ')을 충족하는 비상구(보조출입구) 개수:' + str(em_exit_count) + '(>=' + str(min_em_door_count) + ')')
if bldg_type in target_bldg_types_2:
if storey.SELECT('is evacuation storey').BOOL() == False:
continue
max_area = 0;
for space in spaces:
area = space.SELECT('area').UNIT('m2').NUMBER()
if area > max_area:
max_area = area
min_door_w = max_area / 100 * 0.6;
for door in exDoors:
width = door.SELECT('clear opening').UNIT('m')
w = width.NUMBER()
if (w < min_door_w):
width.ERROR('출구 유효너비:' + str(w) + '(<' + str(min_door_w) + ')')
else:
width.SUCCESS('출구 유효너비:' + str(w) + '(>=' + str(min_door_w) + ')')
제50조 (거실반자의 설치) 법 제49조제2항에 따라 공장, 창고시설, 위험물저장 및 처리시설, 동물 및 식물 관련 시설, 분뇨 및 쓰레기처리시설 또는 묘지 관련시설 외의 용도로 쓰는 건축물 거실의 반자(반자가 없는 경우에는 보 또는 바로 위층의 바닥판의 밑면, 그 밖에 이와 비슷한 것을 말한다)는 국토해양부령으로 정하는 기준에 적합하여야 한다.
// 건축법 시행령 50조 (거실반자의 설치)
check(EDBA_50){
IF (CS) THEN KS
}
CS{
Building.usage != "Factory"
OR Building.usage != "Warehouse"
OR Building.usage != "FacilityForStorageAndTreatmentOfDangerousSubstance"
OR Building.usage != "FacilityForAnimalAndPlant"
OR Building.usage != "ResourceRecyclingFacility"
OR Building.usage != "CemeteryAndRelatedFacility"
}
KS{
getResult(REFB_16_1) = TRUE
getResult(REFB_16_2) = TRUE
}
min_h = 2.1
min_h_label = '최소 반자 높이'
def Check():
for space in SELECT('space'):
dist = space.SELECT('ceiling height')
height = dist.UNIT('m').NUMBER()
if height < min_h:
dist.ERROR('반자 높이 : ' + str(height) + ' < ' + str(min_h))
else:
dist.SUCCESS('반자 높이 : ' + str(height) + ' >= ' + str(min_h))
② 법 제49조제2항에 따라 6층 이상인 건축물로서 문화 및 집회시설, 종교시설, 판매시설, 운수시설, 의료시설, 교육연구시설 중 연구소, 노유자시설 중 아동 관련 시설·노인복지시설, 수련시설 중 유스호스텔, 운동시설, 업무시설, 숙박시설, 위락시설, 관광휴게시설 및 장례식장의 거실에는 국토해양부령으로 정하는 기준에 따라 배연설비(排煙設備)를 하여야 한다. 다만, 피난층인 경우에는 그러하지 아니하다.
//건축법 시행령 51조 (거실의 채광 등) 2항
Check(EDBA_51_2){
IF (!CS1 AND CS2) THEN KS
}
CS1{
Floor myFloor{
isObjectProperty(Floor.isEscape) = TRUE
}
getFloorNumber(Room) = getFloorNumber(myFloor)
}
CS2{
getBuildingStoriesCount() >= 6
getResult(EDBA_51_2_1) = True
OR getResult(EDBA_51_2_2) = True
OR getResult(EDBA_51_2_3) = True
OR getResult(EDBA_51_2_4) = True
OR getResult(EDBA_51_2_5) = True
OR getResult(EDBA_51_2_6) = True
OR getResult(EDBA_51_2_7) = True
OR getResult(EDBA_51_2_8) = True
OR getResult(EDBA_51_2_9) = True
OR getResult(EDBA_51_2_10) = True
OR getResult(EDBA_51_2_11) = True
OR getResult(EDBA_51_2_12) = True
OR getResult(EDBA_51_2_13) = True
OR getResult(EDBA_51_2_14) = True
OR getResult(EDBA_51_2_15) = True
}
KS{
hasSpace(Room, SmokeExhaustionSystem) = True
getResult(RFB_14_1) = True
getResult(REFB_17_1) = True
getResult(REFB_17_2) = True
}
제52조 (거실 등의 방습) 법 제49조제2항에 따라 다음 각 호의 어느 하나에 해당하는 거실·욕실 또는 조리장의 바닥 부분에는 국토해양부령으로 정하는 기준에 따라 방습을 위한 조치를 하여야 한다.
//건축법 시행령 52조 (거실 등의 방습)
Check(EDBA_52){
IF CS THEN KS}
CS{
getResult(EDBA_52_0_1)=TRUE
OR getResult(EDBA_52_0_2)=TRUE
OR getResult(EDBA_52_0_3)=TRUE
getObject(Floor)
}
KS{
getResult(REFB_18_1)=TRUE
AND getResult(REFB_18_2)=TRUE
}
① 법 제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
}
① 법 제64조제2항에 따라 높이 31미터를 넘는 건축물에는 다음 각 호의 기준에 따른 대수 이상의 비상용 승강기(비상용 승강기의 승강장 및 승강로를 포함한다. 이하 이 조에서 같다)를 설치하여야 한다. 다만, 법 제64조제1항에 따라 설치되는 승강기를 비상용 승강기의 구조로 하는 경우에는 그러하지 아니하다.
//건축법 시행령 90조 (비상용 승강기의 설치) 1항
Check(EDBA_90_1){
IF (!CS1 AND CS2) THEN KS
}
CS1{
getResult(BA_64_1)=TRUE
isObjectProperty(Elevator.isEmergency)=TRUE
}
CS2{
getBuildingHeight()>31 m
}
KS{
getResult(EDBA_90_1_1)=TRUE
getReslut(EDBA_90_1_2)=TRUE
}
① 법 제50조제1항에 따라 다음 각 호의 어느 하나에 해당하는 건축물(제5호에 해당하는 건축물로서 2층 이하인 건축물은 지하층 부분만 해당한다)의 주요구조부는 내화구조로 하여야 한다. 다만, 연면적이 50제곱미터 이하인 단층의 부속건축물로서 외벽 및 처마 밑면을 방화구조로 한 것과 무대의 바닥은 그러하지 아니하다. <개정 2009.6.30>
//건축법 시행령 56조 (건축물의 내화구조) 1항
check(EDBA_56_1){
IF !CS THEN KS
}
Space mySpace{
Space.usage="StagePart"
}
Floor myFloor{
hasSpace(mySpace, Floor) = TRUE
}
CS {
getTotalFloorArea()<= 50m2
AND getBuildingStoriesCount()=1
AND getBuildingUsage()="AccessoryBuidling"
AND isFireProofStructure("OuterWall" | "eaves" | myFloor)=TRUE
}
KS {
getResult(EDBA_56_1_1 = TRUE
OR getResult(EDBA_56_1_2) = TRUE
OR getResult(EDBA_56_1_3) = TRUE
OR getResult(EDBA_56_1_4) = TRUE
OR getResult(EDBA_56_1_5) = TRUE
AND isFireProofStructure(MainStructuralPart) = TRUE
}
5. 3층 이상인 건축물 및 지하층이 있는 건축물. 다만, 단독주택(다중주택 및 다가구주택은 제외한다), 동물 및 식물 관련 시설, 발전시설(발전소의 부속용도로 쓰는 시설은 제외한다), 교도소·감화원 또는 묘지 관련 시설(화장장은 제외한다)의 용도로 쓰는 건축물과 철강 관련 업종의 공장 중 제어실로 사용하기 위하여 연면적 50제곱미터 이하로 증축하는 부분은 제외한다.
//건축법 시행령 56조 (건축물의 내화구조) 1항 5호
check(EDBA_56_1_5){
IF !CS THEN KS
}
Building myBuilding{
getBuildingUsage() = "PowerPlant"
isObjectProperty(Building.isAttachedBuilding) = TRUE
}
Building myBuilding{
getResult(REFB_*_3_30) = TRUE
getResult(REFB_*_3_31) = TRUE
}
CS{
getBuildingUsage() = "facilities for animals and plants"
| "facilities for power generation"
| "correctional facilities and military installations.prison"
| "correctional facilities and military installations.reformatories
| "myFactory"
OR (getBuildingUsage() = "detached houses"
AND getBuildingUsage() != "detached houses.multi-user houses"
| "detached houses.multi-family houses" )
OR (getBuildingUsage() = "facilities for power generation"
AND (getBuildingUsage() = "myBuilding"
OR (getBuildingUsage() = "cemeteries and related facilities"
AND getBuildingUsage() != "Crematorium")
}
KS{
Floor myFloor{
Floor.number < 0
}
getBuildingStoriesCount() >= 3
AND isExist(myFloor) = TRUE
}
① 건축물의 피난층(직접 지상으로 통하는 출입구가 있는 층을 말한다. 이하 같다) 외의 층에서는 피난층 또는 지상으로 통하는 직통계단(경사로를 포함한다. 이하 같다)을 거실의 각 부분으로부터 계단(거실로부터 가장 가까운 거리에 있는 계단을 말한다)에 이르는 보행거리가 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
}
③ 층수가 11층 이상인 건축물로서 11층 이상인 층의 바닥면적의 합계가 1만 제곱미터 이상인 건축물(지붕을 평지붕으로 하는 경우만 해당한다)의 옥상에는 국토해양부령으로 정하는 기준에 따라 헬리포트를 설치하거나 헬리콥터를 통하여 인명 등을 구조할 수 있는 공간을 확보하여야 한다. <개정 2009.7.16>
① 법 제49조제2항에 따라 의료시설, 노유자시설(아동 관련 시설 및 노인복지시설만 해당한다), 공동주택 또는 장례식장과 위락시설, 위험물저장 및 처리시설, 공장 또는 자동차 관련 시설(정비공장만 해당한다)은 같은 건축물에 함께 설치할 수 없다. 다만, 다음 각 호의 어느 하나에 해당하는 경우로서 국토해양부령으로 정하는 경우에는 그러하지 아니하다. <개정 2009.7.16>
//건축법 시행령 47조 (방화에 장애가 되는 용도의 제한) 1항
Check(EDBA_47_1){
IF !CS THEN KS
}
CS{
getResult(EDBA_47_1_1)=True
OR getResult(EDBA_47_1_3)=True
getResult(REFB_14-2)=True
}
KS{
Space mySpace1{
getSpaceUsage(Space)="MedicalFacility"
OR getSpaceUsage(Space)="FacilitiesForTheAgedAndChildren.ChildrenRelatedFacility"
OR getSpaceUsage(Space)="FacilitiesForTheAgedAndChildren.WelfareFacilityForTheAged"
OR getSpaceUsage(Space)="MultiUnitHouse"
}
Space mySpace2{
getSpaceUsage(Space)="FuneralParlor"
OR getSpaceUsage(Space)="AmusementFacility"
OR getSpaceUsage(Space)="FacilityForStorageAndTreatmentOfDangerousSubstance"
OR getSpaceUsage(Space)="Factory"
OR getSpaceUsage(Space)="FacilityForMotorVehicle.AutomobileRepairShop"
isExistTogether(mySpace1, mySpace2)=False
}
}
① 제36조에 따라 지정된 용도지역에서 건폐율의 최대한도는 관할 구역의 면적과 인구 규모, 용도지역의 특성 등을 고려하여 다음 각 호의 범위에서 대통령령으로 정하는 기준에 따라 특별시ㆍ광역시ㆍ특별자치시ㆍ특별자치도ㆍ시 또는 군의 조례로 정한다. <개정 2011.4.14, 2013.7.16, 2015.8.11>
//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항
Check(LPUA_77_1){
KS
}
KS{
getResult(LPUA_77_1_1) = TRUE
OR getResult(LPUA_77_1_2) = TRUE
OR getResult(LPUA_77_1_3) = TRUE
OR getResult(LPUA_77_1_4) = TRUE
}
③ 다음 각 호의 어느 하나에 해당하는 지역에서의 건폐율에 관한 기준은 제1항과 제2항에도 불구하고 80퍼센트 이하의 범위에서 대통령령으로 정하는 기준에 따라 특별시ㆍ광역시ㆍ특별자치시ㆍ특별자치도ㆍ시 또는 군의 조례로 따로 정한다. <개정 2011.4.14, 2011.8.4, 2015.8.11, 2017.4.18>
//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항
Check(LPUA_77_3){
IF CS THEN KS
}
CS{
getResult(LPUA_77_3_1) = TRUE
OR getResult(LPUA_77_3_2) = TRUE
OR getResult(LPUA_77_3_3) = TRUE
OR getResult(LPUA_77_3_4) = TRUE
OR getResult(LPUA_77_3_5) = TRUE
OR getResult(LPUA_77_3_6) = TRUE
}
KS{
getObjectProperty(Building.buildingToLandRatio) = BTL
BTL <= 80
}
//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 1호
Check(LPUA_77_3_1){
KS
}
KS{
getResult(LPUA_37_1_8) = TRUE
getObjectProperty(SpecialPurposeDistrict.type) = "SettlementDistrict"
}
① 제36조에 따라 지정된 용도지역에서 용적률의 최대한도는 관할 구역의 면적과 인구 규모, 용도지역의 특성 등을 고려하여 다음 각 호의 범위에서 대통령령으로 정하는 기준에 따라 특별시·광역시·시 또는 군의 조례로 정한다.
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항
Check(LPUA_78_1){
KS
}
KS{
getResult(LPUA_78_1_1)=TRUE
getResult(LPUA_78_1_2)=TRUE
getResult(LPUA_78_1_3)=TRUE
getResult(LPUA_78_1_4)=TRUE
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호
Check(LPUA_78_1_1){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "UrbanArea"
}
KS{
getResult(LPUA_78_1_1_가)=TRUE
OR getResult(LPUA_78_1_1_나)=TRUE
OR getResult(LPUA_78_1_1_다)=TRUE
OR getResult(LPUA_78_1_1_라)=TRUE
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호
Check(LPUA_78_1_2){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "ControlArea"
}
KS{
getResult(LPUA_78_1_2_가)=TRUE
OR getResult(LPUA_78_1_2_나)=TRUE
OR getResult(LPUA_78_1_2_다)=TRUE
}
⑩제1항 내지 제4항 및 제7항의 규정에 의하여 완화하여 적용되는 건폐율 및 용적률은 당해 용도지역 또는 용도지구에 적용되는 건폐율의 150퍼센트 및 용적률의 200퍼센트를 각각 초과할 수 없다. <개정 2004.1.20.>
//국토의 계획 및 이용에 관한 법률 시행령 46조 (도시지역 내 지구단위계획구역에서의 건폐율 등의 완화적용) 10항
Check(EDLPUA_46_10){
IF CS THEN KS
}
CS{
getResult(EDLPUA_46_1)=TRUE
OR getResult(EDLPUA_46_2)=TRUE
OR getResult(EDLPUA_46_3)=TRUE
OR getResult(EDLPUA_46_4)=TRUE
OR getResult(EDLPUA_46_7)=TRUE
}
KS{
BBTR = getObjectProperty(Building.buildingToLandRatio)
BFAR = getObjectProperty(Building.floorAreaRatio)
(BBTR < 1.5*getObjectProperty(Building.SpecialPurposeArea.buildingToLandRatio)
OR BBTR < 1.5*getObjectProperty(Building.SpecialPurposeZone.buildingToLandRatio))
(BFAR < 2*getObjectProperty(Building.SpecialPurposeArea.floorAreaRatio)
OR BFAR < 2*getObjectProperty(Building.SpecialPurposeZone.floorAreaRatio))
}
⑧ 제1항에도 불구하고 자연녹지지역에 설치되는 도시·군계획시설 중 유원지의 건폐율은 30퍼센트의 범위에서 도시·군계획조례로 정하는 비율을 초과하여서는 아니 되며, 공원의 건폐율은 20퍼센트의 범위에서 도시·군계획조례로 정하는 비율을 초과하여서는 아니 된다. <개정 2009.7.7, 2011.9.16, 2012.4.10>
//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 8항
Check(EDLPUA_84_8){
KS
}
KS{
IF getObjectProperty(GreenNaturalArea.UrbanAndGunPlanningFacility.type)="AmusementPark"
THEN getBuildingToLandRatio() <30
getResult(Unimplemented_UPMO)
ELSE IF getObjectProperty(GreenNaturalArea.UrbanAndGunPlanningFacility.type)="Park"
THEN getBuildingToLandRatio() <30
getResult(Unimplemented_UPMO)
END IF
}
④지구단위계획구역에서는 법 제52조제3항의 규정에 의하여 도시ㆍ군계획조례의 규정에 불구하고 지구단위계획으로 제84조에 규정된 범위안에서 건폐율을 완화하여 적용할 수 있다. <개정 2012.4.10>
//국토의 계획 및 이용에 관한 법률 시행령 46조 (도시지역 내 지구단위계획구역에서의 건폐율 등의 완화적용) 4항
Check(EDLPUA_46_4){
IF CS THEN KS
}
CS{
getObjectUsage(Zone)="DistrictUnitPlanningZones"
}
KS{
getResult(EDLPUA_84_1)=True
getResult(EDLPUA_84_1)=True
getResult(EDLPUA_84_8)=True
}
①법 제77조제1항 및 제2항의 규정에 의한 건폐율은 다음 각호의 범위안에서 특별시·광역시·시 또는 군의 도시계획조례가 정하는 비율을 초과하여서는 아니된다.
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 용적률) 1항
Check(EDLPUA_84_1){
KS
}
KS{
getResult(EDLPUA_84_1_1) = TRUE
OR getResult(EDLPUA_84_1_2) = TRUE
OR getResult(EDLPUA_84_1_3) = TRUE
OR getResult(EDLPUA_84_1_4) = TRUE
OR getResult(EDLPUA_84_1_5) = TRUE
OR getResult(EDLPUA_84_1_6) = TRUE
OR getResult(EDLPUA_84_1_7) = TRUE
OR getResult(EDLPUA_84_1_8) = TRUE
OR getResult(EDLPUA_84_1_9) = TRUE
OR getResult(EDLPUA_84_1_10) = TRUE
OR getResult(EDLPUA_84_1_11) = TRUE
OR getResult(EDLPUA_84_1_12) = TRUE
OR getResult(EDLPUA_84_1_13) = TRUE
OR getResult(EDLPUA_84_1_14) = TRUE
OR getResult(EDLPUA_84_1_15) = TRUE
OR getResult(EDLPUA_84_1_16) = TRUE
OR getResult(EDLPUA_84_1_17) = TRUE
OR getResult(EDLPUA_84_1_18) = TRUE
OR getResult(EDLPUA_84_1_19) = TRUE
OR getResult(EDLPUA_84_1_20) = TRUE
OR getResult(EDLPUA_84_1_21) = TRUE
}
④특별시장·광역시장·시장 또는 군수가 법 제77조제4항제1호의 규정에 의하여 도시지역에서 토지이용의 과밀화를 방지하기 위하여 건폐율을 낮추어야 할 필요가 있다고 인정하여 당해 지방자치단체에 설치된 도시계획위원회의 심의를 거쳐 정한 구역안에서의 건축물의 경우에는 그 건폐율은 그 구역에 적용할 건폐율의 최대한도의 40퍼센트 이상의 범위안에서 특별시·광역시·시 또는 군의 도시계획조례가 정하는 비율을 초과하여서는 아니된다.
①법 제78조제1항 및 제2항의 규정에 의한 용적률은 다음 각호의 범위안에서 관할구역의 면적, 인구규모 및 용도지역의 특성 등을 감안하여 특별시·광역시·시 또는 군의 도시계획조례가 정하는 비율을 초과하여서는 아니된다.
// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항
Check(EDLPUA_85_1){
KS
}
KS{
getResult(EDLPUA_85_1_1) = TRUE
OR getResult(EDLPUA_85_1_2) = TRUE
OR getResult(EDLPUA_85_1_3) = TRUE
OR getResult(EDLPUA_85_1_4) = TRUE
OR getResult(EDLPUA_85_1_5) = TRUE
OR getResult(EDLPUA_85_1_6) = TRUE
OR getResult(EDLPUA_85_1_7) = TRUE
OR getResult(EDLPUA_85_1_8) = TRUE
OR getResult(EDLPUA_85_1_9) = TRUE
OR getResult(EDLPUA_85_1_10) = TRUE
OR getResult(EDLPUA_85_1_11) = TRUE
OR getResult(EDLPUA_85_1_12) = TRUE
OR getResult(EDLPUA_85_1_13) = TRUE
OR getResult(EDLPUA_85_1_14) = TRUE
OR getResult(EDLPUA_85_1_15) = TRUE
OR getResult(EDLPUA_85_1_16) = TRUE
OR getResult(EDLPUA_85_1_17) = TRUE
OR getResult(EDLPUA_85_1_18) = TRUE
OR getResult(EDLPUA_85_1_19) = TRUE
OR getResult(EDLPUA_85_1_20) = TRUE
OR getResult(EDLPUA_85_1_21) = TRUE
}
⑥법 제78조제4항의 규정에 의하여 준주거지역·중심상업지역·일반상업지역·근린상업지역·전용공업지역·일반공업지역 또는 준공업지역안의 건축물로서 다음 각호의 1에 해당하는 건축물에 대한 용적률은 경관·교통·방화 및 위생상 지장이 없다고 인정되는 경우에는 제1항 각호의 규정에 의한 해당 용적률의 120퍼센트 이하의 범위안에서 특별시·광역시·시 또는 군의 도시계획조례가 정하는 비율로 할 수 있다. <개정 2005.9.8>
// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항
Check(EDLPUA_85_6){
KS
}
KS{
getResult(EDLPUA_85_6_1) = TRUE
OR getResult(EDLPUA_85_6_2) = TRUE
OR getResult(EDLPUA_85_6_3) = TRUE
OR getResult(EDLPUA_85_6_4) = TRUE
}
(3) 하나의 건축물에 제1호, 제2호, 제4호부터 제7호까지, 제7호의2부터 제7호의5까지 및 제8호의 다중이용업 중 어느 하나 이상의 다중이용업과 학원이 함께 있는 경우
Check(ERSASP_2_0_3_나3){
IF CS THEN KS
}
CS{
getObjectProperty(Building.business)= "AEOPE_2_0_1"
}
KS{
getResult(ERSASP_2_0_1)= TRUE
OR getResult(ERSASP_2_0_2)= TRUE
OR getResult(ERSASP_2_0_4)= TRUE
OR getResult(ERSASP_2_0_5)= TRUE
OR getResult(ERSASP_2_0_6)= TRUE
OR getResult(ERSASP_2_0_7)= TRUE
OR getResult(ERSASP_2_0_7-2)= TRUE
OR getResult(ERSASP_2_0_7-3)= TRUE
OR getResult(ERSASP_2_0_7-4)= TRUE
OR getResult(ERSASP_2_0_7-5)= TRUE
OR getResult(ERSASP_2_0_8)= TRUE
}
제2조 (다중이용업) 「다중이용업소의 안전관리에 관한 특별법」(이하 "법"이라 한다) 제2조제1항제1호에 따른 "대통령령이 정하는 영업"이라 함은 다음 각 호의 어느 하나에 해당하는 영업을 말한다. <개정 2008.12.24, 2009.7.1, 2009.8.6>
//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업)
Check(ERSASP_2){
KS
}
KS{
Building myBuilding{
getResult(ERSASP_2_1)= TRUE
OR getResult(ERSASP_2_2)= TRUE
OR getResult(ERSASP_2_3)= TRUE
OR getResult(ERSASP_2_5)= TRUE
OR getResult(ERSASP_2_6)= TRUE
OR getResult(ERSASP_2_7)= TRUE
OR getResult(ERSASP_2_7-2)= TRUE
OR getResult(ERSASP_2_7-3)= TRUE
OR getResult(ERSASP_2_7-4)= TRUE
OR getResult(ERSASP_2_7-5)= TRUE
}
}
④ 다음 각 호의 어느 하나에 해당하는 특정소방대상물 가운데 대통령령으로 정하는 특정소방대상물에는 제9조제1항에도 불구하고 대통령령으로 정하는 소방시설을 설치하지 아니할 수 있다.
// 소방시설 설치ㆍ유지 및 안전관리에 관한 법률 11조 (소방시설기준 적용의 특례) 4항
Check(IMSFA_11_4){
IF CS THEN KS
}
CS{
getResult(IMSFA_11_4_4) = TRUE
}
KS{
isInstalled(FireFightingFacility) = TRUE OR FALSE
}