개방형BIM 기반의 건축설계 적법성 평가 자동화 기술 및 응용기술 개발
Development of OpenBIM based Architectural Design Code Checking and Evaluation Technology
  Welcome to BIM - 2nd Project Website - Yonsei University
PAGE MENU  
전체법규 - 법규데이터베이스
- 대한민국 전체 법규 목록
- 설계품질검토 대상 관련법규
- 관련법규 변동 현황
대상법규 - 문장 논리규칙체계화
- 조항단위 논리규칙체계
- 문장단위 논리규칙체계
주어부 - 객체.속성 데이터베이스
- 법규로부터의 객체.속성 분류
- 명칭DB: 객체 | 객체및속성
서술부 - 함수 데이터베이스
- 논리규칙화 함수 분류
- 논리규칙화 함수 DB
관계부 - 문장 내.외 관계논리
- 문장 내.외 관계유형분류
- 문장 내.외관계 논리체계화
문장단위 | 체크리스트 단위
KBimCode 데이터베이스
- KBimCode Lang. Definition
- KBimCode Editor:
전체 개발항목 단위
우선순위 개발항목 단위
- KBimCode DB 2단계:
문장단위 | 조항단위 |
분야/용도/단계 체크리스트 단위
- KBimLogic Applications
KBimAssess Code 데이터베이스
- Executable KBimAssess Code
- KBimCode-Assess 연동모듈
 
(2025-06-28 기준) 설계품질검토용 건축법 및 관련법규 - KBIMCode (문장단위)
    1      
1 / 1 page Total 2500 / 4000 records    신규입력
Select
ALL
None
#
ID
Law
Jo
JO Name
HANG
HO
MOK
Text
Search!
1
19995 장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행규칙 제 별표1조

1. 장애인등의 통행이 가능한 접근로 가. 유효폭 및 활동공간 (1) 휠체어사용자가 통행할 수 있도록 접근로의 유효폭은 1.2미터 이상으로 하여야 한다. (2) 휠체어사용자가 다른 휠체어 또는 유모차 등과 교행할 수 있도록 50미터마다 1.5미터×1.5미터 이상의 교행구역을 설치할 수 있다. (3) 경사진 접근로가 연속될 경우에는 휠체어사용자가 휴식할 수 있도록 30미터마다 1.5미터×1.5미터 이상의 수평면으로 된 참을 설치할





//장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행규칙 별표1 편의시설의 구조·재질등에 관한 세부기준(제2조제1항관련)

Check(ERCDAPA_2_1_*_1_4_나_1){
	IF (CS1 THEN KS1) OR (CS2 THEN KS2)

	ParkingUnit myParkingUnit{
		isObjectProperty(ParkingUnit.isParallelParking) = TRUE
	}

	CS1{
		isObjectProperty(ParkingUnit.isParallelParking) = TRUE
	}

	KS1{
		getObjectWidth(ParkingLotArea.isHandicapParking, a) >= 3.3 m
		getElementLength(ParkingLotArea.isHandicapParking) >= 5 m
	}

	CS2{
		isObjectProperty(ParkingLotArea.isParallelParking) = FALSE
	}

	KS2{
		getObjectWidth(ParkingLotArea.isHandicapParking, a) >= 2 m
		getElementLength(ParkingLotArea.isHandicapParking) >= 6 m
	}
}


check(ERCDAPA_2_1_*_1_4_나_2){
	getObjectGradient(ParkingSpace.Floor) <= 1/50
}


check(ERCDAPA_2_1_*_1_6_가_1){
	
	Door myDoor1{
		isObjectProperty(Door.isEntrance) = TRUE
	}

	Door myDoor2{
		isObjectProperty(Door.isEntrance) = TRUE
		getObject(Door.isEntrance) != getObject(myDoor1)
	}

	getObjectWidth(Door.isEntrance) >= 0.8 m
	isEgressDirection(myDoor1) = isEgressDirection(myDoor2)
	getObjectDistance(myDoor1, myDoor2) >= 1.2 m
}


check(ERCDAPA_2_1_*_1_6_가_2){
	
	isObjectProperty(Door.isAutomatic) = FALSE
	isObjectProperty(Door.isSillFree) = TRUE
}

check(ERCDAPA_2_1_*_1_8_가_2){
	
	getObjectVerticalDistance(FloorSurface,Door.Bottom)
}

check(ERCDAPA_2_1_*_1_8_나){
	
	Stair myStair{
		isObjectProperty(Stair.isEscape) = TRUE
		isObjectProperty(Stair.isOutdoor) = TRUE
	}

	getObjectWidth(myStair) >= 0.9 m 
	getObjectWidth(myStair.StairLanding) >= 0.9 m

	Stair myStair2{
		isObjectProperty(Stair.isEscape) = FALSE
		isObjectProperty(Stair.isOutdoor) = FALSE
	}

	getObjectWidth(myStair2) >= 1.2 m 
	getObjectWidth(myStair2.StairLanding) >= 1.2 m
}


check(ERCDAPA_2_1_*_1_8_다_1){
	
	hasObject(Stair, VerticalSurfaceStair) = TRUE
}

check(ERCDAPA_2_1_*_1_8_다_2){
	
	getObjectWidth(Stair.threadWidth) >= 0.28 m
	getObjectHeight(Stair.riserHeight) <= 0.18m
}

check(ERCDAPA_2_1_*_1_8_다_3){
	
	getObjectGradient(Stair.riserGradient) >= 60
	getObjectLength(Stair.nosingLength) < 3 cm
} 




Python Code 변환 예정



Modify
2
19999 장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행령 제 별표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 변환 예정



Modify
3
20145 주차장법 시행규칙 제 4조 1 항 8호 가 목

가. 주차대수 규모가 20대 이상 50대 미만인 경우: 한 면 이상





//주차장법 시행규칙 4조 (노상주차장의 구조·설비기준) 1항 8호 가목



Check(ERPA_4_1_8_가){

    IF CS THEN KS

}



CS{

  getObjectCount(ParkingLot.ParkingUnit)>=20

  getObjectCount(ParkingLot.numberOfParkingUnit)<50

}





KS{



Area myArea{

   isObjectProperty(ParkingLotArea.isHandicapParking)=True

}

    getObjectCount(myArea)>=1

} 




Python Code 변환 예정



Modify
4
20146 주차장법 시행규칙 제 4조 1 항 8호 나 목

나. 주차대수 규모가 50대 이상인 경우: 주차대수의 2퍼센트부터 4퍼센트까지의 범위에서 장애인의 주차수요를 고려하여 해당 지방자치단체의 조례로 정하는 비율 이상





//주차장법 시행규칙 4조 (노상주차장의 구조·설비기준) 1항 8호 나목



Check(ERPA_4_1_8_나){

    IF CS THEN KS

}



CS{

  getObjectCount(ParkingLot.ParkingUnit)>=50



}





KS{



    Area myArea{

        isObjectProperty(ParkingLotArea.isHandicapParking)=True

    }

    PLC=getObjectProperty(ParkingLot.numberOfParkingUnit)



    getObjectCount(myArea)>=PLC*2%

    getObjectCount(myArea)<=PLC*4%

    getResult(Unimplemented_LGMO)=True

} 




Python Code 변환 예정



Modify
5
20147 주차장법 시행규칙 제 5조 7호

7. 주차대수 400대를 초과하는 규모의 노외주차장의 경우에는 노외주차장의 출구와 입구를 각각 따로 설치하여야 한다. 다만, 출입구의 너비의 합이 5.5미터 이상으로서 출구와 입구가 차선 등으로 분리되는 경우에는 함께 설치할 수 있다.





//주차장법 시행규칙 5조 (노외주차장의 설치에 대한 계획기준) 7항

Check(ERPA_5_7){

      IF (!CS1 AND CS2) THEN KS

}



CS2{

	ParkingLot myParkingLot{

	isObjectProperty(ParkingLot.isOffStreetParking)=TRUE

	}

	getObjectProperty(ParkingLot.numberOfParkingUnit) > 400

}

	Opening myOpening1{

	isObjectProperty(myParkingLot.Oepning.isEntrance)=TRUE

	}

	Opening myOpening2{

	isObjectProperty(myParkingLot.Oepning.isExit)=TRUE

	}

	myOpening1 != myOpening2



CS1{



	getObjectProperty(myOpening1.width) = W1

	getObjectProperty(myOpening2.width) = W2

	W1 + W2 >= 5.5m

}



KS2{

	isExist(myOpening1) = TRUE

	isExist(myOpening2) = TRUE	

} 




Python Code 변환 예정



Modify
6
20148 주차장법 시행규칙 제 5조 8호

8. 특별시장·광역시장, 시장·군수 또는 구청장이 설치하는 노외주차장의 주차대수 규모가 50대 이상인 경우에는 주차대수의 2퍼센트부터 4퍼센트까지의 범위에서 장애인의 주차수요를 고려하여 지방자치단체의 조례로 정하는 비율 이상의 장애인 전용주차구획을 설치하여야 한다.





//주차장법 시행규칙 5조 (노상주차장의 구조·설비기준) 8호 

Check(ERPA_5_0_8){
    IF CS THEN KS
}

CS{
  
  ParkingLot myParkingLot{
    isObjectProperty(ParkingLot.isOffStreetParking)=True
  }

  getObjectCount(myParkingLot.ParkingUnit)>=50

}


KS{

    Area myArea{
        isObjectProperty(myParkingLotArea.isHandicapParking)=True
    }

    PLC=getObjectCount(myParkingLot.ParkingUnit)

    getObjectCount(myArea)>=PLC*2%
    getObjectCount(myArea)<=PLC*4%
    getResult(Unimplemented_LGMO)=True
}

 




Python Code 변환 예정



Modify
7
61162 주차장법 시행규칙 제 11조 2 항 1호

1. 주차대수 30대를 초과하는 지하식 또는 건축물식 형태의 자주식주차장으로서 판매시설, 숙박시설, 운동시설, 위락시설, 문화 및 집회시설, 종교시설 또는 업무시설(이하 이 항에서 "판매시설등"이라 한다)의 용도로 이용되는 건축물의 부설주차장





//주차장법 시행규칙 11조 (부설주차장의 구조·설비기준) 2항 1조
Check(ERPA_11_2_1){
	KS
}

KS{
	Building myBuilding{
		getBuildingUsage() = "CommercialFacility" OR "LodgingFacility", "AmusementFacility", "CulturalAndAssemblyFacility", "ReligiousFacility","BusinessFacility"
	}
		isObjectProperty(myBuilding.ParkingLot.isAttachedParking) = TRUE
		getObjectProperty(ParkingLot.numberOfParkingUnit) > 30
		getObjectProperty(ParkingLot.operationType) = "DriveInParking" OR "MechanicalParking"

} 




Python Code 변환 예정



Modify
8
61301 주차장법 시행규칙 제 11조 4 항

④ 주차대수 50대 이상의 부설주차장에 설치되는 확장형 주차단위구역에 관하여는 제6조제1항제14호를 준용한다. <신설 2012.7.2>





//주차장법 시행규칙 11조 (부설주차장의 구조·설비기준) 4항
Check(ERPA_11_4){
	IF CS THEN KS
}

CS{
	ParkingLot myParkingLot{
		isObjectProperty(ParkingLot.isAttachedParking) = TRUE
		getObjectProperty(ParkingLot.numberOfParkingUnit) >= 50
	}

	ParkingUnit myParkingUnit{
		getObjectProperty(ParkingUnit) = "ExtensionType"
	}

	hasSpace(myParkingLot, myParkingUnit) = TRUE
}

KS{
	getResult(ERPA_6_1_14) = TRUE
} 




Python Code 변환 예정



Modify
9
61303 주차장법 시행규칙 제 11조 5 항 1호

1. 차로의 너비는 2.5미터 이상으로 한다. 다만, 주차단위구획과 접하여 있는 차로의 너비는 주차형식에 따라 다음 표에 따른 기준 이상으로 하여야 한다. img10250470 ┌───────┬──────┐ │주차형식 │차로의 너비 │ ├───────┼──────┤ │평행주차 │3.0미터 │ ├───────┼──────┤ │직각주차 │6.0미터 │ ├───────┼──────┤ │60도 대향주차 │4.0미터 │ ├───────┼──────┤ │45도 대향주차 │3.5미터 │ ├───────┼──────┤ │교차주차 │3.5미터 │ └───────┴──────┘





//주차장법 시행규칙 11조 (부설주차장의 구조·설비기준) 5항 1호



Check(ERPA_11_5_1){

     KS

}



KS{

    IF  isAdjacent(ParkingUnit, ParkingLot.Driveway)=True

    THEN 

        IF getObjectProperty(ParkingUnit.parkingType)="ParallelParking"

           THEN ParkingLot.Driveway.width>=3.0 m

        ELSE IF getObjectProperty(ParkingUnit.parkingType)="RightAngleParking"

                THEN ParkingLot.Driveway.width>=6.0 m

              ELSE IF getObjectProperty(ParkingUnit.parkingType)="60AngleParking"

                THEN ParkingLot.Driveway.width>=4.0 m

                   ELSE IF getObjectProperty(ParkingUnit.parkingType)="45AngleParking"

                       THEN ParkingLot.Driveway.width>=3.5 m 

                       ELSE IF getObjectProperty(ParkingUnit.parkingType)="CrossParking"

                THEN ParkingLot.Driveway.width>=3.5 m

       END IF



    ELSE THEN

    ParkingLot.Driveway.width>=2.5 m

    END IF 

} 




Python Code 변환 예정



Modify
10
61376 주차장법 시행규칙 제 6조 1 항 14호

14. 노외주차장에는 제3조제1항제2호에 따른 확장형 주차단위구획을 주차단위구획 총수(평행주차형식의 주차단위구획 수는 제외한다)의 30퍼센트 이상 설치하여야 한다.





//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 14호
Check(ERPA_6_1_14){
	KS
}

KS{
	
	ParkingLot myParkingLot{
		isObjectProperty(ParkingLot.isOffStreetParking) = TRUE
	}

	ParkingUnit myParkingUnit{
		getResult(ERPA_3_1_2) = TRUE
		getObjectProperty(ParkingUnit.parkingUseType) = "ExtensionType"
	}

	ParkingUnit myParkingUnit2{
		getResult(ERPA_3_1_2) = TRUE
		getObjectProperty(ParkingUnit.parkingType) = "ParallelParking"
	}

	hasSpace(myParkingLot, myParkingUnit) = TRUE	
	(getObjectProperty(ParkingUnit.numberOf)*0.3 - getObjectNumber(myParkingUnit2)) <= getObjectNumber(myParkingUnit)
} 




Python Code 변환 예정



Modify
11
61395 주차장법 시행규칙 제 11조 5 항

⑤ 부설주차장의 총주차대수 규모가 8대 이하인 자주식주차장(지평식 및 건축물식 중 필로티 구조만 해당한다)의 구조 및 설비기준은 제1항 본문에도 불구하고 다음 각 호에 따른다. <개정 2012.7.2, 2013.1.25>





//주차장법 시행규칙 11조 (부설주차장의 구조·설비기준) 5항
Check(ERPA_11_5){
	IF CS THEN KS
}

CS{
	ParkingLot myParkingLot{
		isObjectProperty(ParkingLot.isAttachedParking) = TRUE
		isObjectProperty(ParkingLot.operationType) = "DriveInParking"
	}

	getObjectProperty(myParkingLot.numberOfParkingUnit) >= 8
}

KS{
	getResult(ERPA_11_5_1) = TRUE
	getResult(ERPA_11_5_2) = TRUE
	getResult(ERPA_11_5_3) = TRUE
} 




Python Code 변환 예정



Modify
12
61512 주차장법 시행규칙 제 3조 1 항 1호

1. 평행주차형식의 경우 img24335428 ┌───────────┬──────┬──────┐ │구분 │너비 │길이 │ ├───────────┼──────┼──────┤ │경형 │1.7미터 이상│4.5미터 이상│ ├───────────┼──────┼──────┤ │일반형 │2.0미터 이상│6.0미터 이상│ ├───────────┼──────┼──────┤ │보도와 차도의 구분이 │2.0미터 이상│5.0미터 이상│ │없는 주거지역의 도로 │ │ │ ├───────────┼──────┼──────┤ │이륜자동차전용 │1.0미터 이상│2.3미터 이상│ └───────────┴──────┴──────┘





//  주차장법 시행규칙 3조 (주차장의 주차구획) 1항 1호
Check(ERPA_3_1_1){
	KS
}

KS{
	getObjectProperty(ParkingUnit.parkingType) = "ParallelParking"
}
 








def Check():
    for parklot in ROOT.SELECT('parklot'):
        park_type = parklot.SELECT('prop', '주차형식').STRING()
        car_type = parklot.SELECT('prop', '주차단위구획').STRING()
        min_w = 0.0
        min_l = 0.0

        if park_type == '평행주차':
            if car_type == '경형':
                min_w = 1.7
                min_l = 4.5
            elif car_type == '일반형':
                min_w = 2.0
                min_l = 6.0
            elif car_type == '이륜자동차전용':
                min_w = 1.0
                min_l = 2.3
            else:
                continue
        else:
            if car_type == '경형':
                min_w = 2.0
                min_l = 3.6
            elif car_type == '일반형':
                min_w = 2.5
                min_l = 5.0
            elif car_type == '확장형':
                min_w = 2.6
                min_l = 5.2
            elif car_type == '장애인전용':
                min_w = 3.3
                min_l = 5.0
            elif car_type == '이륜자동차전용':
                min_w = 1.0
                min_l = 2.3
            else:
                continue

        width = parklot.SELECT('width').UNIT('m')
        length = parklot.SELECT('length').UNIT('m')
        w = width.NUMBER()  
        l = length.NUMBER()

        if w < min_w:
            width.ERROR('너비: ' + str(w) + ' (< ' + str(min_w) + ')' ) 
        elif l < min_l:
            length.ERROR('길이: ' + str(l) + ' (< ' + str(min_l) + ')' ) 
        else:
            parklot.SUCCESS(str(w) + ' x ' + str(l)) 





Modify
13
61513 주차장법 시행규칙 제 3조 1 항 2호

2. 평행주차형식 외의 경우 img33758907 ┌────────┬──────┬──────┐ │구분 │너비 │길이 │ ├────────┼──────┼──────┤ │경형 │2.0미터 이상│3.6미터 이상│ ├────────┼──────┼──────┤ │일반형 │2.5미터 이상│5.0미터 이상│ ├────────┼──────┼──────┤ │확장형 │2.6미터 이상│5.2미터 이상│ ├────────┼──────┼──────┤ │장애인전용 │3.3미터 이상│5.0미터 이상│ ├────────┼──────┼──────┤ │이륜자동차 전용 │1.0미터 이상│2.3미터 이상│ └────────┴──────┴──────┘





//  주차장법 시행규칙 3조 (주차장의 주차구획) 1항 2호
Check(ERPA_3_1_2){
	KS
}

KS{
	getObjectProperty(ParkingUnit.parkingType) != "ParallelParking"
} 








def Check():
    for parklot in ROOT.SELECT('parklot'):
        park_type = parklot.SELECT('prop', '주차형식').STRING()
        car_type = parklot.SELECT('prop', '주차단위구획').STRING()
        min_w = 0.0
        min_l = 0.0

        if park_type == '평행주차':
            if car_type == '경형':
                min_w = 1.7
                min_l = 4.5
            elif car_type == '일반형':
                min_w = 2.0
                min_l = 6.0
            elif car_type == '이륜자동차전용':
                min_w = 1.0
                min_l = 2.3
            else:
                continue
        else:
            if car_type == '경형':
                min_w = 2.0
                min_l = 3.6
            elif car_type == '일반형':
                min_w = 2.5
                min_l = 5.0
            elif car_type == '확장형':
                min_w = 2.6
                min_l = 5.2
            elif car_type == '장애인전용':
                min_w = 3.3
                min_l = 5.0
            elif car_type == '이륜자동차전용':
                min_w = 1.0
                min_l = 2.3
            else:
                continue

        width = parklot.SELECT('width').UNIT('m')
        length = parklot.SELECT('length').UNIT('m')
        w = width.NUMBER()  
        l = length.NUMBER()

        if w < min_w:
            width.ERROR('너비: ' + str(w) + ' (< ' + str(min_w) + ')' ) 
        elif l < min_l:
            length.ERROR('길이: ' + str(l) + ' (< ' + str(min_l) + ')' ) 
        else:
            parklot.SUCCESS(str(w) + ' x ' + str(l)) 





Modify
14
61614 주차장법 시행규칙 제 6조 1 항 4호

4. 노외주차장의 출입구의 너비는 3.5미터 이상으로 하여야 하며, 주차대수규모가 50대 이상인 경우에는 출구와 입구를 분리하거나 너비 5.5미터 이상의 출입구를 설치하여 소통이 원활하도록 하여야 한다.





//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 4호

Check(ERPA_6_1_4){

      KS1 AND IF CS THEN KS2

}



KS1{

	ParkingLot myParkingLot{

	isObjectProperty(ParkingLot.isOffStreetParking)=TRUE

	}

	getObjectProperty(myParkingLot.Opening.width) >= 3.5m

}



CS{

	getObjectProperty(ParkingLot.numberOfParkingUnit) >= 50

}



KS2{

	Opening myOpening1{

	isObjectProperty(Opening.isExit)=TRUE

	}

	Opening myOpening2{

	isObjectProperty(Opening.isEntrance)=TRUE

	}

	myOpening1 != myOpening2

	isExist(myOpening1)=TRUE

	isExist(myOpening2)=TRUE

	OR getObjectProperty(Opening.width) >= 5.5m

} 




Python Code 변환 예정



Modify
15
61621 주차장법 시행규칙 제 6조 1 항 5호 바 목

바. 주차대수규모가 50대 이상인 경우의 경사로는 너비 6미터 이상인 2차선의 차로를 확보하거나 진입차로와 진출차로를 분리하여야 한다.





//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호 바목

Check(ERPA_6_1_5_바){

       IF CS THEN (KS1 OR KS2)

}



CS{

	getObjectProperty(ParkingLot.numberOfParkingUnit) >= 50

	hasObject(Ramp, ParkingLot.Driveway.)=TRUE 

}

KS1{

	getObjectProperty(ParkingLot.Driveway.width) >= 6m

	getObjectProperty(ParkingLot.Driveway.numberOfLane) >= 2

}

KS2{

	Opening myOpening1{

	isObjectProperty(Opening.isExit)=TRUE 

	}

	Opening myOpening2{

	isObjectProperty(Opening.isEntrance)=TRUE 

	}

	myOpening1 != myOpening2

	hasObject(ParkingLot.Driveway., myOpening1)=TRUE 

	hasObject(ParkingLot.Driveway., myOpening2)=TRUE 

} 




Python Code 변환 예정



Modify
16
72624 주차장법 시행규칙 제 6조 1 항 3호 나 1) 목

1) 이륜자동차전용 노외주차장 (표)





//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 3호 나목
Check(ERPA_6_1_3_나){
     IF CS THEN KS
}

CS{
   getSpaceUsage()="ParkingLot"
   getObjectProperty(ParkingLot.parkingUseType)="TwowheeledVehicle"
}

KS{
   IF 	getObjectProperty(ParkingUnit.parkingType)="ParallelParking"
       IF getObjectCount(Opening)>=2
       THEN  ParkingLot.Driveway.width>=2.25 m
       ELSE IF getObjectCount(Opening)=1
       THEN  ParkingLot.Driveway.width>=3.5 m
       END IF
   ELSE IF getObjectProperty(ParkingUnit.parkingType)="RightAngleParking"
       IF getObjectCount(Opening)>=2
       THEN  ParkingLot.Driveway.width>=4.0 m
       ELSE IF getObjectCount(Opening)=1
       THEN  ParkingLot.Driveway.width>=4.0 m
       END IF
   ELSE IF getObjectProperty(ParkingUnit.parkingType)="45AngleParking"
       IF getObjectCount(Opening)>=2
       THEN  ParkingLot.Driveway.width>=2.3 m
       ELSE IF getObjectCount(Opening)=1
       THEN  ParkingLot.Driveway.width>=3.5 m
       END IF
  END IF
}
 




Python Code 변환 예정



Modify
17
72625 주차장법 시행규칙 제 6조 1 항 3호 나 2) 목

2) 1) 외의 노외주차장 (표)





//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 3호 나목

Check(ERPA_6_1_3_나){

     IF CS THEN KS

}



CS{

   getSpaceUsage()="ParkingLot"

   isObjectProperty(ParkingLot.isOffStreetParking)=True

   getObjectProperty(ParkingLot.parkingUseType)!="TwowheeledVehicle"

}



KS{

   IF 	getObjectProperty(ParkingUnit.parkingType)="ParallelParking"

       IF getObjectCount(Opening)>=2

       THEN  ParkingLot.Driveway.width>=3.3 m

       ELSE IF getObjectCount(Opening)=1

       THEN  ParkingLot.Driveway.width>=5.0 m

       END IF

   ELSE IF getObjectProperty(ParkingUnit.parkingType)="RightAngleParking"

       IF getObjectCount(Opening)>=2

       THEN  ParkingLot.Driveway.width>=6.0 m

       ELSE IF getObjectCount(Opening)=1

       THEN  ParkingLot.Driveway.width>=6.0 m

       END IF

   ELSE IF getObjectProperty(ParkingUnit.parkingType)="60AngleParking"

       IF getObjectCount(Opening)>=2

       THEN  ParkingLot.Driveway.width>=4.5 m

       ELSE IF getObjectCount(Opening)=1

       THEN  ParkingLot.Driveway.width>=5.5 m

       END IF

   ELSE IF getObjectProperty(ParkingUnit.parkingType)="45AngleParking"

       IF getObjectCount(Opening)>=2

       THEN  ParkingLot.Driveway.width>=3.5 m

       ELSE IF getObjectCount(Opening)=1

       THEN  ParkingLot.Driveway.width>=5.0 m

       END IF

getObjectProperty(ParkingUnit.parkingType)="CrossParking"

       IF getObjectCount(Opening)>=2

       THEN  ParkingLot.Driveway.width>=3.5 m

       ELSE IF getObjectCount(Opening)=1

       THEN  ParkingLot.Driveway.width>=5.0 m

       END IF

  END IF

} 




Python Code 변환 예정



Modify
18
20003 주차장법 시행령 제 별표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 변환 예정



Modify
    1      
 

Related Sites

국토부 BIM과제-1st  |   Ministry of Land, Infrasrtucture and Transport   |   Korea Agency for Infrastructure Technology Advancement  |   Space and Design IT Lab   |   Yonsei University
This is Design IT Lab server's restricted area. Authorized users could access this website.