설계품질검토 대상법규   |   조항단위 법규   |   문장단위 법규   |   KBimCode-Assess 연동모듈   |   KBimCode DB   |   주어부 - 객체,속성 DB   |   서술부 - 함수 DB   |   관계부 - 문장관계   |   룰셋생성모듈   |  
(2025-06-28 기준) 설계품질검토용 건축법 및 관련법규 - KBIMCode (문장단위)
      KBIMCode - KBimAssess Python Code     KBIMCode - 체크리스트 단위     KBIMCode - 조항단위
    1      
1 / 1 page Total 2500 / 4000 records
Select
ALL
None
#
Law
Jo
JO Name
HANG
HO
MOK
Text
Search!
1
건축물의 설비기준 등에 관한 규칙 제 23조 3 항 1호

1. 배기구는 도로면으로부터 2미터 이상의 높이에 설치할 것





//	건축물의 설비기준 등에 관한 규칙 23조 (건축물의 냉방설비) 3항 1호
Check(RFB_23_3_1){
	KS
}

KS{
	getObjectVerticalLocation(AirOutlet, RoadSurface) >= 2m
}
 




Python Code 변환 예정



2
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 11조 5 항 1호

1. 제1종 근린생활시설 중 지역자치센터·파출소·지구대·소방서·우체국·방송국·보건소·공공도서관·지역건강보험조합 기타 이와 유사한 것으로서 동일한 건축물안에서 당해 용도에 쓰이는 바닥면적의 합계가 1천제곱미터 미만인 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 11조 (건축물의 바깥쪽으로의 출구의 설치기준) 5항 1호

Check(REFB_11_5_1){
      

KS




}

KS {

Building myBuilding{

getBuildingUsage() = “ClassINeighborhoodLivingFacility.CommunityCenter”

OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.PoliceBox”

OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.PoliceSubstation”

OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.FireStation”

OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.PostOffice”

OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.BroadcastingStation”

OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.HealthCenter”

OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.PublicLibrary”

OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.RegionalHealthInsuranceAssociation”



}



Space mySpace{

Space.usage=“CommunityCenter”

Space.usage=“PoliceBox”

Space.usage=“PoliceSubstation”

Space.usage=“FireStation”

Space.usage=“PostOffice”

Space.usage=“BroadcastingStation”

Space.usage=“HealthCenter”

Space.usage=“PublicLibrary”

Space.usage=“RegionalHealthInsuranceAssociation”

Space.FloorSlab.area < 1000 m2

}

isExist(myBuilding) = TRUE

isExist(mySpace) = TRUE

} 




Python Code 변환 예정



3
건축법 시행령 제 61조 1 항 3호

3. 위험물저장 및 처리시설(자가난방과 자가발전 등의 용도로 쓰는 시설을 포함한다), 자동차 관련 시설, 방송통신시설 중 방송국ㆍ촬영소 또는 발전시설의 용도로 쓰는 건축물





Check(EDBA_61_1_3){
KS}


KS{
getBuildingUsage()="FacilityForStorageAndTreatmentOfDangerousSubstance"
OR getBuildingUsage()="FacilityForMotorVehicle"
OR (getBuildingUsage()="FacilityForBroadcastingAndTelecommunication.BroadcastingStation"
OR getBuildingUsage()="FacilityForBroadcastingAndTelecommunication.Studio"
OR getBuildingUsage()="FacilityForBroadcastingAndTelecommunication.PowerPlant"
} 




Python Code 변환 예정



4
건축법 시행령 제 41조 1 항

①건축물의 대지 안에는 그 건축물 바깥쪽으로 통하는 주된 출구와 지상으로 통하는 피난계단 및 특별피난계단으로부터 도로 또는 공지(공원, 광장, 그 밖에 이와 비슷한 것으로서 피난 및 소화를 위하여 해당 대지의 출입에 지장이 없는 것을 말한다. 이하 이 조에서 같다)로 통하는 통로를 다음 각 호의 기준에 따라 설치하여야 한다. <개정 2010.12.13, 2015.9.22, 2016.5.17, 2017.2.3>





Check(EDBA_41_1){

    KS

}







KS{



   Door  myDoor {
getObjectProperty(Door.functionType) = "Main"
   }

   Stair myStair{
isAccessible(Stair, Ground) = TRUE
isObjectProperty(Stair.isEscape) = TRUE

       OR isObjectProperty(Stair.isSpecialEscape) = TRUE



   }

   Passage  myPassage{

       isGoThrough(myStair, Road, Passage)=True

       OR isGoThrough(myStair, OpenSpace, Passage )=True

   }



   isExist(myDoor)=True

   isExist(myPassage)=True

   getResult(EDBA_41_1_1)=True

   getResult(EDBA_41_1_2)=True

   getResult(EDBA_41_1_3)=True

} 








target_bldg_uses_01 = ['단독주택']
target_bldg_uses_02 = ['문화 및 집회시설', '장례시설', '의료시설', '위락시설']

target_bldg_uses_01_label = '건축물 용도1'
target_bldg_uses_02_label = '건축물 용도2'

def Check():
    for building in SELECT('building'):
        bldg_use = building.SELECT('building type').STRING()
        min_corridor_w = 1.5
        min_area = 0.0

        if bldg_use in target_bldg_uses_01:
            min_corridor_w = 0.9
        elif bldg_use in target_bldg_uses_02:
            min_corridor_w = 3.0
            min_area = 500

        if min_area > 0:
            area = 0
            for space in building.SELECT('space'):
                area += space.SELECT('area').UNIT('m2').NUMBER()
            if area < min_area:
                building.SUCCESS('바닥면적의 합: ' + str(area) + ' < ' + str(min_area))
                continue

        base_storey = None
        stories = building.SELECT('storey')

        for storey in stories:
            if storey.SELECT('prop', '기준 지상층').BOOL() == True:
                base_storey = storey
                break

        if base_storey is None:
            building.ERROR('기준 지상층이 존재하지 않습니다.')
            break

        stairs = base_storey.SELECT('direct stair')

        if stairs.COUNT() == 0:
            base_storey.ERROR(base_storey.SELECT('name').STRING() + '에 직통계단이 존재하지 않습니다.')
            continue

        exDoors = []
        for door in base_storey.SELECT('door'):
            if door.SELECT('is external').BOOL() == True:
                exDoors.append(door)

        for stair in stairs:
            for route in stair.SELECT('escape route', exDoors):
                for space in route.SELECT('passing space'):
                    width = space.SELECT('min clear width').UNIT('m')
                    w = width.NUMBER()
                    if w < min_corridor_w:
                        width.ERROR('통로 너비: ' + str(w) + ' < ' + str(min_corridor_w))
                    else:
                        width.SUCCESS('통로 너비: ' + str(w) + ' >= ' + str(min_corridor_w)) 





5
건축법 시행령 제 56조 1 항 2호

2. 문화 및 집회시설 중 전시장 또는 동·식물원, 판매시설, 운수시설, 수련시설, 운동시설 중 체육관·운동장, 위락시설(주점영업의 용도로 쓰는 것은 제외한다), 창고시설, 위험물저장 및 처리시설, 자동차 관련 시설, 방송통신시설 중 방송국·전신전화국·촬영소, 묘지 관련 시설 중 화장장 또는 관광휴게시설의 용도로 쓰는 건축물로서 그 용도로 쓰는 바닥면적의 합계가 500제곱미터 이상인 건축물





//건축법 시행령 56조 (건축물의 내화구조) 1항 2호

check(EDBA_56_1_2){

        KS

}

	

KS{

        (getBuildingUsage() = "ExhibitionHall" |  "ZoologicalANDbotanicalGarden" | "CommercialFacility"  | "TransportationFacilities"  | "gymnasium.educationAndresearchFacilities"   | "hall.educationAndresearchFacilities" | "gymnasium" | "sportsfacilities.stadium" | "sports facilities.warehouses"  | "factory.facilitiesForStorageAndreatmentOfDangerousSubstance"  | "factory.facilitiesForMotorVehicles" | "facilitiesforbroadcastingAndTelecommunications.broadcastingStation"  | "facilitiesforbroadcasting andtelecommunications.telegraphAndTelephoneStations" | "facilitiesforbroadcasting and telecommunications.studio" | "cemeteries and relatedfacilities.Crematorium | "facilitiesfortourismandrelaxation"

OR (getBuildingUsage() = "amusementfacilities"

AND getBuildingUsage() != "barbusiness.amusementfacilities"))

AND getFloorArea(getSpace(getBuildingUsage()) > = 500m2))

} 




Python Code 변환 예정



6
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 4조

제4조(유도등 및 유도표지의 종류) 특정소방대상물의 용도별로 설치하여야 할 유도등 및 유도표지는 다음 표에 따라 그에 적응하는 종류의 것으로 설치하여야 한다.<개정 2008.12.15, 2012.8.20>





// 유도등 및 유도표지의 화재안전기준(nfsc 303) 4조 (유도등 및 유도표지의 종류) 

Check(NFSC303_4){
   KS
}

KS{
  LeadingLight myLeadingLight1{
      // isObejctProperty(LeadingLight.isForExit)=True, 대형
  }

  LeadingLight myLeadingLight2{
     //  isObejctProperty(LeadingLight.isForExit)=True , 중형
  }

  LeadingLight myLeadingLight3{
     //  isObejctProperty(LeadingLight.isForExit)=True, 소형
  }


  LeadingLight myLeadingLight4{
       isObejctProperty(LeadingLight.isForPassage)=True
  }

  LeadingLight myLeadingLight5{
       isObjectProperty(LeadingLight.isForSeat)=True
  }

  LeadingSign myLeadingSign1{

       isObjectProperty(LeadingSign.isForExit)=True
  }

  LeadingSign myLeadingSign2{

       isObjectProperty(LeadingSign.isForPassage)=True
  }

  IF  getBuildingUsage()="PerformanceHall"
      OR getBuildingUsage()="AssemblyHall"
      OR getBuildingUsage()="Auditorium"   
      OR getBuildingUsage()="SportsFacility" 
      OR getBuildingUsage()="Tavern"  
     THEN 
          isExist(myLeadingLight1)=True
          isExist(myLeadingLight4)=True
          isExist(myLeadingLight5)=True
  
  ELSE IF getBuildingUsage()="AmusementFacility"
      OR getBuildingUsage()="CommercialFacility"
      OR getBuildingUsage()="TransportationFacility"   
      OR getBuildingUsage()="TouristAccommodationBusiness" 
      OR getBuildingUsage()="MedicalFacility"  
      OR getBuildingUsage()="FuneralParlor"  
      OR getBuildingUsage()="FacilityForBroadcastingAndTelecommunication"  
      OR getBuildingUsage()="ExhibitionHall"  
      OR getBuildingUsage()="UndergroundShoppingCenter" 
      OR getBuildingUsage()="SubwayStation"   
     THEN isExist(myLeadingLight1)=True
          isExist(myLeadingLight4)True

  ELSE IF getBuildingUsage()="LodgingFacility"
      OR getBuildingUsage()="Officetel"
   //   OR   지하층, 무창층 또는 층수가 11층 이상인 특정소방대상물 
     THEN isExist(myLeadingLight2)=True
          isExist(myLeadingLight4)True

 
  ELSE IF getBuildingUsage()="ClassINeighborhoodLivingFacility"
      OR getBuildingUsage()="ClassIINeighborhoodLivingFacility"
      OR getBuildingUsage()="FacilitiesForTheAgedAndChildren"
      OR getBuildingUsage()="BusinessFacility"   
      OR getBuildingUsage()="FacilityForPowerGeneration"   
      OR getBuildingUsage()="ReligiousFacility"
      OR getBuildingUsage()="EducationAndResearchFacility"   
      OR getBuildingUsage()="Trainingfacility" 
      OR getBuildingUsage()="Factory"
      OR getBuildingUsage()="Warehouse"   
      OR getBuildingUsage()="CorrectionalFacilityAndMilitaryInstallation"  
      OR getBuildingUsage()="Dormitory"
      OR getBuildingUsage()="AutomobileRepairShop"   
      OR getBuildingUsage()="DrivingSchool" 
      OR getBuildingUsage()="RepairingSchool"
      OR getBuildingUsage()="PubliclyUsedEstablishment"   
      OR getBuildingUsage()="ComplexBuilding"  
      OR getBuildingUsage()="ApartmentHouse"
         
     THEN isExist(myLeadingLight3)=True
          isExist(myLeadingLight4)True


  ELSE THEN  isExist(myLeadingSign1)=True
             isExist(myLeadingSign2)True
  END IF
    






} 




Python Code 변환 예정



7
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행령 제 별표2조

1. 삭제 <2006.1.19> 2. 공원<표-EDCDAPA_*_2_T1> (편의시설의 종류 :설치기준) 가. 장애인 등의 출입이 가능한 출입구 :공원 외부에서 내부로 이르는 출입구는 주출입구를 포함하여 적어도 하나 이상을 장애인등의 출입이 가능하도록 유효폭·형태 및 부착물 등을 고려하여 설치하여야 한다. 나. 장애인등의 통행이 가능한 보도 :공원시설(공중이 직접 이용하는 시설에 한한다)에 접근할 수 있는 공원안의 보도중 적어도 하나는 장애인등이 통행할





// 장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행령 별표2 대상시설별 편의시설의 종류 및 설치기준(제4조관련)



Check(EDCDAPA_*_2_3_가_2_가){

IF CS1 AND CS2 THEN KS

}



ParkingLot myParkingLot{

isObjectProperty(ParkingLot.isAttachedParking) = TRUE

}

CS1 {

isExist(myParkingLot) = TRUE

}

CS2 {

getObjectProperty(myParkingLot.numberOfParkingUnit) >= 10

}

KS1 {

Area myArea{

isObjectProperty(ParkingLotArea.isHandicapParking)=TRUE

}

hasSpace(myParkingLot, myArea) = TRUE

getResult(EDPA_*_1) = TRUE

}



Check(EDCDAPA_*_2_3_가_4_가){

KS1 IF CS1 THEN KS2

}



Door myDoor1{

	isObjectProperty(Door.isEntrance)=TRUE

	isObjectProperty(myDoor1.isHandicapAccessible)=TRUE

}

Door myDoor2{

Door.Space.usage = “Office”

isObjectProperty(myDoo2.isHandicapAccessible)=TRUE

}

KS1 {

isExist(myDoor1) = TRUE

isExist(myDoor2) = TRUE

}

CS1{

Building.usage = “BusinessFacility.GovernmentOfficeBuilding”

Building.usage != “ClassINeighborhoodLivingFacility”

}

KS2 {

isObjectProperty(myDoor1.isAutomatic)=TRUE

isObjectProperty(myDoo2.isAutomatic)=TRUE

}







ParkingLot myParkingLot{

isObjectProperty(ParkingLotArea.isHandicapParking)=TRUE

}





Building myBuilding1_1{

	Building.usage = “ClassINeighborhoodLivingFacility.RetailStore”

	Building.usage = “ClassINeighborhoodLivingFacility.Barbershop”

	Building.usage = “ClassINeighborhoodLivingFacility.BeautyShop”

	Building.usage = “ClassINeighborhoodLivingFacility.Bathhouse”

}

Building myBuilding1_2{

	Building.usage = “ClassINeighborhoodLivingFacility.CommunityCenter”

	Building.usage = “ClassINeighborhoodLivingFacility.PoliceBox”

	Building.usage = “ClassINeighborhoodLivingFacility.PoliceSubstation”

	Building.usage = “ClassINeighborhoodLivingFacility.PostOffice”

Building.usage = “ClassINeighborhoodLivingFacility.HealthCenter”

	Building.usage = “ClassINeighborhoodLivingFacility.PublicLibrary”

	Building.usage = “ClassINeighborhoodLivingFacility.NationalHealthInsuranceService_NationalPensionService_Korea EmploymentAgencyForTheDisabled_KoreaWorkersCompensationAndWelfareServiceOffice”

}

Building myBuilding1_3{

	Building.usage = “ClassINeighborhoodLivingFacility.Clinic_ DentalClinic_OrientalMedicalClinic_MaternityClinic”

}

Building myBuilding1_4{

	Building.usage = “ClassINeighborhoodLivingFacility.CommunityChildCenter”

	Building.facilityArea >= 300 m2

}

Building myBuilding1_5{

	Building.usage = “ClassINeighborhoodLivingFacility.Shelter”

}

Building myBuilding1_6{

	Building.usage = “ClassINeighborhoodLivingFacility.PublicToilet”

}

Building myBuilding2_1{

	Building.usage = “ClassIINeighborhoodLivingFacility.Restaurant”

	Building.usage = “ClassIINeighborhoodLivingFacility.RestingRestaurant”

	Building.usage = “ClassIINeighborhoodLivingFacility.Bakery”

	Building.usage != “ClassINeighborhoodLivingFacility”

Building.facilityArea >= 300 m2

}

Building myBuilding2_2{

	Building.usage = “ClassIINeighborhoodLivingFacility.MassageParlor”

}

Building myBuilding3_1{

	Building.usage = “CulturalAndAssemblyFacility.PerformanceHall”

Building.usage = “CulturalAndAssemblyFacility.Auditorium”

}

Building myBuilding3_2{

	Building.usage = “CulturalAndAssemblyFacility.AssemblyHall”

}

Building myBuilding3_3{

	Building.usage = “CulturalAndAssemblyFacility.ExhibitionHall”

Building.usage = “CulturalAndAssemblyFacility.ZoologicalAndBotanicalGarden”

}

Building myBuilding4_1{

	Building.usage = “ReligiousFacility.ReligiousAssemblyFacility”

	Building.facilityArea >= 500 m2

}

Building myBuilding5_1{

	Building.usage = “CommercialFacility.WholesaleMarket”

	Building.usage = “CommercialFacility.RetailMarket”

	Building.usage = “CommercialFacility.Shop”

	Building.facilityArea >= 1000 m2

}

Building myBuilding6_1{

	Building.usage = “MedicalFacility.Hospital”

	Building.usage = “MedicalFacility.DetentionHospital”

}

Building myBuilding7_1{

	Building.usage = “EducationAndResearchFacility.School”

	Building.usage = “EducationAndResearchFacility.SpecialSchool”

	Building.usage != “EducationAndResearchFacility.Kindergarten”

}

Building myBuilding7_2{

	Building.usage = “EducationAndResearchFacility.Kindergarten”

}

Building myBuilding7_3{

	Building.usage = “EducationAndResearchFacility.TrainingInstitute”

	Building.usage = “EducationAndResearchFacility.VocationalTrainingCenter”

	Building.usage != “EducationAndResearchFacility.EducationalInstitute”

Building.facilityArea >= 500 m2

}

Building myBuilding8_1{

	Building.usage = “FacilitiesForTheAgedAndChildren.ChildrenRelatedFacility”

Building.usage = “FacilitiesForTheAgedAndChildren.WelfareFacilityForTheAged”

Building.usage = “FacilitiesForTheAgedAndChildren.SocialWelfareFacility”

Building.usage = “경로당”

Building.usage = “ResidentialFacilityForTheDisabled”

Building.facilityArea >= 500 m2

}

Building myBuilding9_1{

	Building.usage = “Trainingfacility.TrainingFacilityInLivingZone”

	Building.usage = “Trainingfacility.TrainingFacilityInNatureZone”

}

Building myBuilding10_1{

	Building.usage = “SportsFacility”

Building.facilityArea >= 500 m2

}

Building myBuilding11_1{

	Building.usage = “BusinessFacility.GovernmentOfficeBuilding”

Building.facilityArea >= 500 m2

}

Building myBuilding11_2{

	Building.usage = “BusinessFacility.FinanceBusiness”

	Building.usage = “BusinessFacility.Office”

	Building.usage = “BusinessFacility.NewspaperOffice”

	Building.usage = “BusinessFacility.Officetel”

Building.facilityArea >= 500 m2

}

Building myBuilding12_1{

	Building.usage = “LodgingFacility.GeneralLodgingFacility”

}

Building myBuilding12_2{

	Building.usage = “LodgingFacility.TouristAccommodation”

}

Building myBuilding13_1{

	Building.usage = “Factory”

}

Building myBuilding14_1{

	Building.usage = “FacilityForMotorVehicle.ParkingLot”

Building.usage = “FacilityForMotorVehicle.DrivingSchool”

}

Building myBuilding15_1{

	Building.usage = “FacilityForBroadcastingAndTelecommunication.BroadcastingStation”

Building.facilityArea >= 1000 m2

}

Building myBuilding15_2{

	Building.usage = “FacilityForBroadcastingAndTelecommunication.TelegraphAndTelephoneStation”

Building.facilityArea >= 1000 m2

}

Building myBuilding16_1{

	Building.usage = “CorrectionalFacilityAndMilitaryInstallation.Prison”

Building.usage = “CorrectionalFacilityAndMilitaryInstallation.DetentionCenter”

}

Building myBuilding17_1{

	Building.usage = “CemeteryAndRelatedFacility.CremationFacility”

	Building.usage = “CemeteryAndRelatedFacility.CharnelHouse”

	Building.usage != “ReligiousFacility”

}

Building myBuilding18_1{

	Building.usage = “FacilityForTourismAndRelaxation.BandStand”

	Building.usage = “FacilityForTourismAndRelaxation.OutdoorTheater”

	Building.usage = “FacilityForTourismAndRelaxation.ChildrenCenter”

}

Building myBuilding18_2{

	Building.usage = “FacilityForTourismAndRelaxation.RestArea”

}

Building myBuilding19_1{

	Building.usage = “FuneralParlor”

}







Check(EDCDAPA_*_2_3_나){

IF (CS1 THEN KS1) OR (CS2 THEN KS2)

}



CS1{

Building myBuilding20_1 {

getObject(myBuilding1_1 | myBuilding12_2)

}

KS1{

hasSpace(myBuilding20_1, myParkingLot) = TRUE 

OR hasSpace(myBuilding20_1, myParkingLot) = FALSE

}

CS2{

 Building myBuilding20_2 {

getObject(myBuilding1_2 | myBuilding1_3 | myBuilding1_4 | myBuilding2_1 | myBuilding2_2 | myBuilding3_1 | myBuilding3_2 | myBuilding3_3 | myBuilding4_1 | myBuilding5_1 | Building myBuilding6_1 | Building myBuilding7_1 | myBuilding7_2 | myBuilding7_3 | myBuilding8_1 | myBuilding9_1 | myBuilding10_1 | myBuilding11_1 | myBuilding11_2 | myBuilding12_1 | myBuilding13_1 | myBuilding14_1 | myBuilding15_1 | myBuilding15_2 | myBuilding16_1 | myBuilding17_1 | myBuilding18_1 | myBuilding18_2 | myBuilding19_1) 

}

KS2{

hasSpace(Building20_2, myParkingLot) = TRUE

}



Check(EDCDAPA_*_2_3_나){

IF CS THEN KS



CS{

Building myBuilding20_3{

getObject(myBuilding1_1 | myBuilding1_2 | myBuilding1_3 | myBuilding1_4 | myBuilding1_5 | myBuilding1_6 | myBuilding2_1 | myBuilding2_2 | myBuilding3_1 | myBuilding3_2 | myBuilding3_3 | myBuilding4_1 | myBuilding5_1 | Building myBuilding6_1 | Building myBuilding7_1 | myBuilding7_2 | myBuilding7_3 | myBuilding8_1 | myBuilding9_1 | myBuilding10_1 | myBuilding11_1 | myBuilding11_2 | myBuilding12_1 | myBuilding13_1 | myBuilding14_1 | myBuilding15_1 | myBuilding15_2 | myBuilding16_1 | myBuilding17_1 | myBuilding18_1 | myBuilding18_2 | myBuilding19_1) 

}

KS{

isObjectProperty(myBuilding20_3.Door.isSillFree) = TRUE

} 




Python Code 변환 예정



8
주차장법 시행규칙 제 16조의2조 1 항 3호

3. 기계식주차장에는 도로에서 기계식주차장치 출입구까지의 차로(이하 "진입로"라 한다) 또는 전면공지와 접하는 장소에 자동차가 대기할 수 있는 장소(이하 "정류장"이라 한다)를 설치하여야 한다. 이 경우 주차대수 20대를 초과하는 20대마다 한 대분의 정류장을 확보하여야 하며, 정류장의 규모는 다음 각 목과 같다. 다만, 주차장의 출구와 입구가 따로 설치되어 있거나 진입로의 너비가 6미터 이상인 경우에는 종단경사도가 6퍼센트 이하인 진입로의 길이 6미터





//주차장법 시행규칙 16조의2 (기계식주차장의 설치기준) 3호

Check(ERPA_16-2_0_3){
       IF CS THEN KS 
}

CS{
   getSpaceUsage()="MechanicalParking"
}


KS{
   Space mySpace{
       isAdjacent(FrontageSpace,Space)=True
   }
   
   isExist(ApproachRoad)=True
   isExist(mySpace)=True
   IF(// 주차장의 출구와 입구가 따로 설치되어 있거나
   OR "진입로".width>6 m) THEN
   //종단경사도가 6퍼센트 이하인 진입로의 길이 6미터마다 
한 대분의 정류장을 확보한 것으로 본다.
   ELSE THEN

   //주차대수 20대를 초과하는 20대마다 한 대분의 정류장을 확보하여야 하며
   getResult(ERPA_16-2_0_3_가)=True
   getResult(ERPA_16-2_0_3_나)=True

  END IF

} 




Python Code 변환 예정



9
주차장법 시행령 제 별표1조

부설주차장의 설치대상 시설물 종류 및 설치기준(제6조제1항 관련) (시설물 :설치기준) 1. 위락시설 :○ 시설면적 100㎡당 1대(시설면적/100㎡) 2. 문화 및 집회시설(관람장은 제외한다), 종교시설, 판매시설, 운수시설, 의료시설(정신병원·요양병원 및 격리병원은 제외한다), 운동시설(골프장·골프연습장 및 옥외수영장은 제외한다), 업무시설(외국공관 및 오피스텔은 제외한다), 방송통신시설 중 방송국, 장례식장 :○ 시설면적 150㎡당 1대(시설면적/





//주차장법 시행령 별표1 부설주차장의 설치대상 시설물 종류 및 설치기준





Check(EDPA_*_1_1){

IF CS THEN KS

}

Space mySpace1{

getBuildingUsage()=” AmusementFacility”

myTotalFloorArea = getTotalFloorArea(mySpace1)

CS{

isExist(mySpace1)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea/100

}





Check(EDPA_*_1_2){

IF CS THEN KS

}

Space mySpace2{

(getBuildingUsage()= “CulturalAndAssemblyFacility”

AND getBuildingUsage() !=” Auditorium”)

OR (getBuildingUsage() = “ReligiousFacility | CommercialFacility | TransportationFacilit”

OR getBuildingUsage() = ”MedicalFacility”

AND getBuildingUsage() != “MentalHospital | ConvalescentHospital | DetentionHoispital”)

OR (getBuildingUsage() = “SportsFacility” 

AND getBuildingUsage() != “GolfCourse | GolfDrivingRange | OurdoorSwimmingPool”)

OR (getBuildingUsage()= “BusinessFacility”

AND getBuildingUsage() != “ForeignOfficialResidence | Officetels” )

}

myTotalFloorArea2 = getTotalFloorArea(mySpace2)

}

CS{

isExist(mySpace2)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea2/150

}



Check(EDPA_*_1_3){

IF CS THEN KS

}

Space mySpace3{

 ((getBuildingUsage ()=” ClassINeighborhoodLivingFacility”

AND getSpaceUsage != “PublicToilet | Shelter | CommunityChildCenter”)

OR getBuildingUsage ()=”ClassIINeighborhoodLivingFacility”

OR getBuildingUsage ()=”LodgingFacility”)

}

myTotalFloorArea3 = getTotalFloorArea(mySpace3)

}

CS{

isExist(mySpace3)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea3/200

}





Check(EDPA_*_1_4){

IF CS1 THEN KS1 OR CS2 THEN KS2

}

Space mySpace1{

getBuildingUsage ()=” DetachedHouse”

}

myTotalFloorArea = getTotalFloorArea(mySpace1)

}

CS1{

myTotalFloorArea>50 

AND myTotalFloorArea<=150

}

KS1{

isObjectProperty(parkingLot.numberofParkingUnit)=1

}

CS2{

myTotalFloorArea>150 

}

KS2{

(myTotalFloorArea-150)/100+1=ParkingLot.numberofParkingUnit

}





Check(EDPA_*_1_7){

IF CS THEN KS

}

Space mySpace7{

getBuildingUsage ()=”Trainingfacility” 

getBuildingUsage ()=”Factory”

getBuildingUsage () != ”AptartmentTypeFactory”

}

myTotalFloorArea7 = getTotalFloorArea(myspace7)

CS{

isExist(mySpace7)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea7/400

}



Check(EDPA_*_1_8){

IF CS THEN KS

}

Space mySpace8{

getBuildingUsage ()= “Warehouse”

}

myTotalFloorArea8 = getTotalFloorArea(mySpace8)

}

CS{

isExist(mySpace8)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea8/400

}



Check(EDPA_*_1_9){

IF CS THEN KS

}

Space mySpace9{

getBuildingUsage ()= “DormitoryForStudents”

}

myTotalFloorArea9 = getTotalFloorArea(myspace9)

CS{

isExist(mySpace9)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea9/400

}





Check(EDPA_*_1_10){

IF CS THEN KS

}

Space mySpace10 { 

getObject(Space) != myspace1 | myspace2 | myspace3 | myspace4 | myspace5 | myspace6 | myspace7 | myspace8 | myspace9 |

}

myTotalFloorArea10 = getTotalFloorArea(mySpace10)

}

CS{

isExist(mySpace9)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea10/300

}





Check(EDPA_*_1_0_1){

IF CS THEN KS

}

CS{

getResult(EDPA_*_1_0_1_가)= TRUE

OR getResult(EDPA_*_1_0_1_나)= TRUE

OR getResult(EDPA_*_1_0_1_다)= TRUE

OR getResult(EDPA_*_1_0_1_라)= TRUE

OR getResult(EDPA_*_1_0_1_마)= TRUE

OR getResult(EDPA_*_1_0_1_바)= TRUE

OR getResult(EDPA_*_1_0_1_사)= TRUE

}

KS{

isExist(ParkingLot.isAttachedParking)=FALSE

}



Check(EDPA_*_1_0_1_가){

KS

}

isExist(ClassINeighborhoodLivingFacility.Substation)=TRUE

OR isExist(ClassINeighborhoodLivingFacility.PumpingStation)=TRUE

OR isExist(ClassINeighborhoodLivingFacility.PurificationPlant)=TRUE

OR isExist(ClassINeighborhoodLivingFacility.Shelter)=TRUE

OR isExist(ClassINeighborhoodLivingFacility.PublicToilet)=TRUE

Check(EDPA_*_1_0_1_나){

KS

}

isExist(ReligiousFacility.Monastery)=TRUE

OR isExist(ReligiousFacility.Convent)=TRUE

OR isExist(ReligiousFacility.Chapel)=TRUE

OR isExist(ReligiousFacility.Shrine)=TRUE

Check(EDPA_*_1_0_1_다){

KS

}

isExist(getBuildingUsage()=”FacilityForAnimalAndPlant”)=TRUE

AND isExist(getBuildingUsage()=”SlaughterHouse”)=FALSE

AND isExist(getBuildingUsage()=”ChickenSlaughterHouse”)=FALSE

Check(EDPA_*_1_0_1_라){

KS

}

isExist(FacilityForBroadcastingAndTelecommunication.TransmitAndReceptionAndTransitFacility)=TRUE

Check(EDPA_*_1_0_1_마){

KS

}

getObjectProperty(Building.isExclusiveUseOfParkingLot) = FALSE

(getBuildingUsage() != "CommercialFacility.DepartmentStore" OR "CommercialFacility.ShoppingCenter" OR  "LargeStore"

OR getBuildingUsage() != "CulturalAndAssemblyFacility.MovieTheater" OR  "CulturalAndAssemblyFacility.ExhibitionHall" OR "CulturalAndAssemblyFacility.WeddingHall"

Check(EDPA_*_1_0_1_바){

KS

}

getBuildingUsage()= “Station”

Check(EDPA_*_1_0_1_사){

KS

}

getResult(EDBA_6_1_4)=TRUE









Check(EDPA_*_1_0_4){

KS

}

Space mySpace{

getBuildingUsage()= “DetachedHouse”

getBuildingUsage() !=”Multi-familyHouses”

}

getTotalArea(mySpace)<=50m2

getTotalArea(mySpace)/100 = ParkingLot.numberOfParkingUnit 




Python Code 변환 예정



    1