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
}
def Check():
for building in SELECT('building'):
for space in building.SELECT('space'):
dist = space.SELECT('ceiling height')
height = dist.UNIT('m').NUMBER()
return height
① 법 제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))
2. 단독주택 중 다중주택·다가구주택, 제2종 근린생활시설 중 학원·독서실, 판매시설, 운수시설(여객용 시설만 해당한다), 의료시설(입원실이 없는 치과병원은 제외한다), 교육연구시설 중 학원, 노유자시설 중 아동 관련 시설·노인복지시설, 수련시설 중 유스호스텔, 숙박시설 또는 장례식장의 용도로 쓰는 3층 이상의 층으로서 그 층의 해당 용도로 쓰는 거실의 바닥면적의 합계가 200제곱미터 이상인 것
//건축법 시행령 34조 (직통계단의 설치) 2항2호
Check(EDBA_34_2_2){
Building myBuilding{
getBuildingUsage()="DentalClinic"
}
Space mySpace{
getSpaceUsage() = "Ward"
}
Floor myFloor1 {
getObjectProperty(Floor.number)>=3
getObjectUsage(Floor) = “DetachedHouse.MultiUserHouse”
OR getObjectUsage(Floor) = “DetachedHouse.MultiFamilyHouse”
OR getObjectUsage(Floor) = “ClassIINeighborhoodLivingFacility.EducationalInstitute”
OR getObjectUsage(Floor) = “ClassIINeighborhoodLivingFacility.ReadingRooms”
OR getObjectUsage(Floor) = “CommercialFacility”
OR getObjectUsage(Floor) = “TransportationFacility.PassengerTrafficFacilities”
OR ( getObjectUsage(Floor) = “MedicalFacility” ADN hasObject(myBuilding, mySpace)=TRUE )
OR getObjectUsage(Floor) = “EducationAndResearchFacility.EducationalInstitutes”
OR getObjectUsage(Floor) = “FacilitiesForTheAgedAndChildren.ChildrenRelatedFacilities”
OR getObjectUsage(Floor) = “EducationAndResearchFacility.WelfareFacilityForTheAged”
OR getObjectUsage(Floor) = “Trainingfacility.YouthHostel”
OR getObjectUsage(Floor) = “LodgingFacility”
}
Floor myFloor2{
getObjectUsage(Floor) = “ClassIINeighborhoodLivingFacility.FacilityForProvidingInternetComputerGameService”
}
getTotalFloorArea(myFloor1.Room)>= 200 m2
OR getTotalFloorArea(myFloor2.Room)>= 300 m2
}
⑤ 건축물의 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
}
}
3. 공동주택과 위락시설이 같은 초고층 건축물에 있는 경우. 다만, 사생활을 보호하고 방범·방화 등 주거 안전을 보장하며 소음·악취 등으로부터 주거환경을 보호할 수 있도록 주택의 출입구·계단 및 승강기 등을 주택 외의 시설과 분리된 구조로 하여야 한다.
//건축법 시행령 47조 (방화에 장애가 되는 용도의 제한) 1항 3호
Check(EDBA_47_1_3){
KS
}
KS{
Space mySpace1{
getSpaceUsage(Space)="MultiUnitHouse"
}
Space mySpace2{
getSpaceUsage(Space)="AmusementFacility"
}
Building myBuilding{
isObjectProperty(Building.isHighriseBuilding)=True
}
isExistTogether(mySpace1, mySpace2, myBuilding)=True
//다만, 주택의 출입구ㆍ계단 및 승강기 등을 주택 외의 시설과 분리된 구조로 하여야 한다.
}
1. 노유자시설 중 아동 관련 시설 또는 노인복지시설과 판매시설 중 도매시장 또는 소매시장
//건축법 시행령 47조 (방화에 장애가 되는 용도의 제한) 2항 1호
Check(EDBA_47_2_1){
KS
}
KS{
getBuildingUsage()="FacilitiesForTheAgedAndChildren.ChildrenRelatedFacility"
OR getBuildingUsage()="FacilitiesForTheAgedAndChildren.WelfareFacilityForTheAged"
OR getBuildingUsage()="CommercialFacility.WholesaleMarket"
OR getBuildingUsage()="CommercialFacility.RetailMarket"
}
//건축법 시행령 47조 (방화에 장애가 되는 용도의 제한) 2항 2호
Check(EDBA_47_2_2){
KS
}
KS{
getBuildingUsage()="DetachedHouse.MultiUserHouse"
OR getBuildingUsage()="DetachedHouse.MultiFamilyHouse"
OR getBuildingUsage()="MultiUnitHouse"
OR getBuildingUsage()="ClassINeighborhoodLivingFacility.MaternityCenter"
OR getBuildingUsage()="ClassINeighborhoodLivingFacility.PostnatalCareCenter"
OR getBuildingUsage()="ClassIINeighborhoodLivingFacility.CommunalLivingFacility"
}
def Check():
typ = SELECT('typology').STRING().lower()
if typ == "MultiUnitHouse":
building.SUCCESS("Building Usage is MultiUniteHouse")
else:
building.ERROR("Building Usage is not MultiUnitHouse")
def Check():
typ = SELECT('typology').STRING().lower()
if typ == "MultiUnitHouse":
building.SUCCESS("Building Usage is AmusementFacility")
else:
building.ERROR("Building Usage is not AmusementFacility")
//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호 가목
Check(LPUA_77_1_1_1){
IF CS THEN KS
}
CS{
getObjectProperty(SpecialPurposeArea.type) = "ResidentialArea"
}
KS{
getObjectProperty(Building.buildingToLandRatio) = BTL
BTL <= 70
}
//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호 나목
Check(LPUA_77_1_1_2){
IF CS THEN KS
}
CS{
getObjectProperty(SpecialPurposeArea.type) = "CommercialArea"
}
KS{
getObjectProperty(Building.buildingToLandRatio) = BTL
BTL <= 90
}
//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호 다목
Check(LPUA_77_1_1_3){
IF CS THEN KS
}
CS{
getObjectProperty(SpecialPurposeArea.type) = "IndustrialArea"
}
KS{
getObjectProperty(Building.buildingToLandRatio) = BTL
BTL <= 70
}
//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호 라목
Check(LPUA_77_1_1_4){
IF CS THEN KS
}
CS{
getObjectProperty(SpecialPurposeArea.type) = "GreenArea"
}
KS{
getObjectProperty(Building.buildingToLandRatio) = BTL
BTL <= 20
}
//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 3호
Check(LPUA_77_1_3){
IF CS THEN KS
}
CS{
getObjectProperty(SpecialPurposeArea.type) = "AgriculturalAndForestryArea"
}
KS{
getObjectProperty(Building.buildingToLandRatio) = BTL
BTL <= 20
}
//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 4호
Check(LPUA_77_1_4){
IF CS THEN KS
}
CS{
getObjectProperty(SpecialPurposeArea.type) = "NaturalEnvironmentConservationArea"
}
KS{
getObjectProperty(Building.buildingToLandRatio) = BTL
BTL <= 20
}
// 국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 5호
Check(LPUA_J77_3_5){
KS
}
KS{
getObjectProperty(SpecialPurposeZone.type) = "AgriculturalAndIndustrialComplexes"
}
6. 공업지역에 있는 「산업입지 및 개발에 관한 법률」 제2조제8호가목부터 다목까지의 규정에 따른 국가산업단지, 일반산업단지 및 도시첨단산업단지와 같은 조 제12호에 따른 준산업단지
//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 6호
Check(LPUA_77_3_6){
KS
}
KS{
getObjectProperty(SpecialPurposeZone.type) = "NationalIndustrialComplexes"
OR getObjectProperty(SpecialPurposeZone.type) = "GeneralIndustrialComplexes"
OR getObjectProperty(SpecialPurposeZone.type) = "UrbanHighTechIndustrialComplexes"
OR getObjectProperty(SpecialPurposeZone.type) = "SemiIndustrialComplex"
}
① 제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항 1호 가목
Check(LPUA_78_1_1_가){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "ResidentialArea"
}
KS{
getFloorAreaRatio() <= 500%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 나목
Check(LPUA_78_1_1_나){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "CommercialArea"
}
KS{
getFloorAreaRatio() <= 1500%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 다목
Check(LPUA_78_1_1_다){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "IndustrialArea"
}
KS{
getFloorAreaRatio() <= 400%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 라목
Check(LPUA_78_1_1_라){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "GreenArea"
}
KS{
getFloorAreaRatio() <= 100%
}
// 국토의 계획 및 이용에 관한 법률 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
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호 가목
Check(LPUA_78_1_2_가){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "ConservationManagementArea"
}
KS{
getFloorAreaRatio() <= 80%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호 나목
Check(LPUA_78_1_2_나){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "ProductionManagementArea"
}
KS{
getFloorAreaRatio() <= 80%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호 다목
Check(LPUA_78_1_2_다){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "PlanningManagementArea"
}
KS{
getFloorAreaRatio() <=100%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 3호
Check(LPUA_78_1_3){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "AgriculturalAndForestryArea"
}
KS{
getFloorAreaRatio() <= 80%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 4호
Check(LPUA_78_1_4){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "NaturalEnvironmentConservationArea"
}
KS{
getFloorAreaRatio() <= 80%
}
//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 2호
Check(EDLPUA_84_3_2){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeDistrict.type)="DevelopmentPromotionDistrict"
}
KS{
getBuildingToLandRatio()<=40%
}
⑩제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))
}
①지구단위계획구역(도시지역 외에 지정하는 경우로 한정한다. 이하 이 조에서 같다)에서는 법 제52조제3항에 따라 지구단위계획으로 당해 용도지역 또는 개발진흥지구에 적용되는 건폐율의 150퍼센트 및 용적률의 200퍼센트 이내에서 건폐율 및 용적률을 완화하여 적용할 수 있다. <개정 2005.1.15, 2007.4.19, 2012.4.10>
//EDLPUA 47조 1항
Check(EDLPUA_47_1){
IF CS THEN KS
}
CS{
getObjectUsage(Zone)="DistrictUnitPlanningZones"
}
KS{
SpecialPurposeArea mySpecialPurposeArea{
getObjectProperty(Building.SpecialPurposeArea.type) = "DevelopmentPromotionDistrict"
}
BLR= getObjectProperty(Building.SpecialPurposeArea.buildingToLandRatio) OR getObjectProperty(mySpecialPurposeArea.buildingToLandRatio)
FAR= getObjectProperty(Building.SpecialPurposeArea.floorAreaRatio) OR getObjectProperty(mySpecialPurposeArea.floorAreaRatio)
getBuildingToLandRatio()<=BLR*150%
getFloorAreaRatio(FAR)<=200%
}
⑧ 제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
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 1호
Check(EDLPUA_84_1_1){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ClassIExclusiveResidentialArea"
}
KS{
getBuildingToLandRatio() <= 50
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 2호
Check(EDLPUA_84_1_2){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ClassIIExclusiveResidentialArea"
}
KS{
getBuildingToLandRatio() <= 50
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 3호
Check(EDLPUA_84_1_3){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ClassIGeneralResidentialArea"
}
KS{
getBuildingToLandRatio() <= 60
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 4호
Check(EDLPUA_84_1_4){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ClassIIGeneralResidentialArea"
}
KS{
getBuildingToLandRatio() <= 60
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 5호
Check(EDLPUA_84_1_5){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ClassIIIGeneralResidentialArea"
}
KS{
getBuildingToLandRatio() <= 50
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 6호
Check(EDLPUA_84_1_6){
IF CS THEN KS
}
CS{
getBuildingUsage() = "QuasiResidentialArea"
}
KS{
getBuildingToLandRatio() <= 70
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 7호
Check(EDLPUA_84_1_7){
IF CS THEN KS
}
CS{
getBuildingUsage() = "CentralCommercialArea"
}
KS{
getBuildingToLandRatio() <= 90
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 8호
Check(EDLPUA_84_1_8){
IF CS THEN KS
}
CS{
getBuildingUsage() = "GeneralCommercialArea"
}
KS{
getBuildingToLandRatio() <= 80
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 9호
Check(EDLPUA_84_1_9){
IF CS THEN KS
}
CS{
getBuildingUsage() = "NeighboringCommercialArea"
}
KS{
getBuildingToLandRatio() <= 70
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 10호
Check(EDLPUA_84_1_10){
IF CS THEN KS
}
CS{
getBuildingUsage() = "CirculationBusinessArea"
}
KS{
getBuildingToLandRatio() <= 80
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 11호
Check(EDLPUA_84_1_11){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ExclusiveIndustrialArea"
}
KS{
getBuildingToLandRatio() <= 70
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 12호
Check(EDLPUA_84_1_12){
IF CS THEN KS
}
CS{
getBuildingUsage() = "GeneralIndustrialArea"
}
KS{
getBuildingToLandRatio() <= 70
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 13호
Check(EDLPUA_84_1_13){
IF CS THEN KS
}
CS{
getBuildingUsage() = "QuasiIndustrialArea"
}
KS{
getBuildingToLandRatio() <= 70
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 14호
Check(EDLPUA_84_1_14){
IF CS THEN KS
}
CS{
getBuildingUsage() = "GreenConservationArea"
}
KS{
getBuildingToLandRatio() <= 20
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 15호
Check(EDLPUA_84_1_15){
IF CS THEN KS
}
CS{
getBuildingUsage() = "GreenProductionArea"
}
KS{
getBuildingToLandRatio() <= 20
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 16호
Check(EDLPUA_84_1_16){
IF CS THEN KS
}
CS{
getBuildingUsage() = "GreenNaturalArea"
}
KS{
getBuildingToLandRatio() <= 20
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 17호
Check(EDLPUA_84_1_17){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ConservationManagementArea"
}
KS{
getBuildingToLandRatio() <= 20
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 18호
Check(EDLPUA_84_1_18){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ProductionManagementArea"
}
KS{
getBuildingToLandRatio() <= 20
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 19호
Check(EDLPUA_84_1_19){
IF CS THEN KS
}
CS{
getBuildingUsage() = "PlanningManagementArea"
}
KS{
getBuildingToLandRatio() <= 40
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 20호
Check(EDLPUA_84_1_20){
IF CS THEN KS
}
CS{
getBuildingUsage() = "AgriculturalAndForestryArea"
}
KS{
getBuildingToLandRatio() <= 20
}
// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 21호
Check(EDLPUA_84_1_21){
IF CS THEN KS
}
CS{
getBuildingUsage() = "NaturalEnvironmentConservationArea"
}
KS{
getBuildingToLandRatio() <= 20
}
④특별시장·광역시장·시장 또는 군수가 법 제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
}
// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 1호
Check(EDLPUA_85_1_1){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ClassIExclusiveResidentialArea"
}
KS{
getFloorAreaRatio() >= 50
getFloorAreaRatio() <= 100
}
// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 2호
Check(EDLPUA_85_1_2){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ClassIIExclusiveResidentialArea"
}
KS{
getFloorAreaRatio() >= 100
getFloorAreaRatio() <= 150
}
// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 3호
Check(EDLPUA_85_1_3){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ClassIGeneralResidentialArea"
}
KS{
getFloorAreaRatio() >= 100
getFloorAreaRatio() <= 200
}
// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 4호
Check(EDLPUA_85_1_4){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ClassIIGeneralResidentialArea"
}
KS{
getFloorAreaRatio() >= 150
getFloorAreaRatio() <= 250
}
// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 5호
Check(EDLPUA_85_1_5){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ClassIIIGeneralResidentialArea"
}
KS{
getFloorAreaRatio() >= 200
getFloorAreaRatio() <= 300
}
// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 6호
Check(EDLPUA_85_1_6){
IF CS THEN KS
}
CS{
getBuildingUsage() = "QuasiResidentialArea"
}
KS{
getFloorAreaRatio() >= 200
getFloorAreaRatio() <= 500
}