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

20. 농림지역 : 20퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 20호
Check(EDLPUA_84_1_20){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "AgriculturalAndForestryArea"
}

KS{
	getBuildingToLandRatio() <= 20
}
 




Python Code 변환 예정



2
국토의 계획 및 이용에 관한 법률 시행령 제 84조 1 항 21호

21. 자연환경보전지역 : 20퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 21호
Check(EDLPUA_84_1_21){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "NaturalEnvironmentConservationArea"
}

KS{
	getBuildingToLandRatio() <= 20
}
 




Python Code 변환 예정



3
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 1호

1. 제1종전용주거지역 : 50퍼센트 이상 100퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 1호
Check(EDLPUA_85_1_1){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ClassIExclusiveResidentialArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 100
} 




Python Code 변환 예정



4
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 2호

2. 제2종전용주거지역 : 100퍼센트 이상 150퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 2호
Check(EDLPUA_85_1_2){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ClassIIExclusiveResidentialArea"
}

KS{
	getFloorAreaRatio() >= 100
	getFloorAreaRatio() <= 150
} 




Python Code 변환 예정



5
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 3호

3. 제1종일반주거지역 : 100퍼센트 이상 200퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 3호
Check(EDLPUA_85_1_3){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ClassIGeneralResidentialArea"
}

KS{
	getFloorAreaRatio() >= 100
	getFloorAreaRatio() <= 200
} 




Python Code 변환 예정



6
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 4호

4. 제2종일반주거지역 : 150퍼센트 이상 250퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 4호
Check(EDLPUA_85_1_4){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ClassIIGeneralResidentialArea"
}

KS{
	getFloorAreaRatio() >= 150
	getFloorAreaRatio() <= 250
} 




Python Code 변환 예정



7
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 5호

5. 제3종일반주거지역 : 200퍼센트 이상 300퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 5호
Check(EDLPUA_85_1_5){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ClassIIIGeneralResidentialArea"
}

KS{
	getFloorAreaRatio() >= 200
	getFloorAreaRatio() <= 300
} 




Python Code 변환 예정



8
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 6호

6. 준주거지역 : 200퍼센트 이상 500퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 6호
Check(EDLPUA_85_1_6){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "QuasiResidentialArea"
}

KS{
	getFloorAreaRatio() >= 200
	getFloorAreaRatio() <= 500
} 




Python Code 변환 예정



9
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 7호

7. 중심상업지역 : 400퍼센트 이상 1천500퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 7호
Check(EDLPUA_85_1_7){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "CentralCommercialArea"
}

KS{
	getFloorAreaRatio() >= 400
	getFloorAreaRatio() <= 1500
} 




Python Code 변환 예정



10
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 8호

8. 일반상업지역 : 300퍼센트 이상 1천300퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 8호
Check(EDLPUA_85_1_8){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "GeneralCommercialArea"
}

KS{
	getFloorAreaRatio() >= 300
	getFloorAreaRatio() <= 1300
} 




Python Code 변환 예정



11
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 9호

9. 근린상업지역 : 200퍼센트 이상 900퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 9호
Check(EDLPUA_85_1_9){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "NeighboringCommercialArea"
}

KS{
	getFloorAreaRatio() >= 200
	getFloorAreaRatio() <= 900
} 




Python Code 변환 예정



12
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 10호

10. 유통상업지역 : 200퍼센트 이상 1천100퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 10호
Check(EDLPUA_85_1_10){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "CirculationBusinessArea"
}

KS{
	getFloorAreaRatio() >= 200
	getFloorAreaRatio() <= 1100
} 




Python Code 변환 예정



13
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 11호

11. 전용공업지역 : 150퍼센트 이상 300퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 11호
Check(EDLPUA_85_1_11){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ExclusiveIndustrialArea"
}

KS{
	getFloorAreaRatio() >= 150
	getFloorAreaRatio() <= 300
} 




Python Code 변환 예정



14
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 12호

12. 일반공업지역 : 200퍼센트 이상 350퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 12호
Check(EDLPUA_85_1_12){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "GeneralIndustrialArea"
}

KS{
	getFloorAreaRatio() >= 200
	getFloorAreaRatio() <= 350
} 




Python Code 변환 예정



15
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 13호

13. 준공업지역 : 200퍼센트 이상 400퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 13호
Check(EDLPUA_85_1_13){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "QuasiIndustrialArea"
}

KS{
	getFloorAreaRatio() >= 200
	getFloorAreaRatio() <= 400
} 




Python Code 변환 예정



16
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 14호

14. 보전녹지지역 : 50퍼센트 이상 80퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 14호
Check(EDLPUA_85_1_14){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "GreenConservationArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 80
} 




Python Code 변환 예정



17
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 15호

15. 생산녹지지역 : 50퍼센트 이상 100퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 15호
Check(EDLPUA_85_1_15){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "GreenProductionArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 100
} 




Python Code 변환 예정



18
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 16호

16. 자연녹지지역 : 50퍼센트 이상 100퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 16호
Check(EDLPUA_85_1_16){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "GreenNaturalArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 100
} 




Python Code 변환 예정



19
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 17호

17. 보전관리지역 : 50퍼센트 이상 80퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 17호
Check(EDLPUA_85_1_17){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ConservationManagementArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 80
} 




Python Code 변환 예정



20
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 18호

18. 생산관리지역 : 50퍼센트 이상 80퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 18호
Check(EDLPUA_85_1_18){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ProductionManagementArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 80
} 




Python Code 변환 예정



21
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 19호

19. 계획관리지역 : 50퍼센트 이상 100퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 19호
Check(EDLPUA_85_1_19){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "PlanningManagementArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 100
} 




Python Code 변환 예정



22
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 20호

20. 농림지역 : 50퍼센트 이상 80퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 20호
Check(EDLPUA_85_1_20){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "AgriculturalAndForestryArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 80
} 




Python Code 변환 예정



23
국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 21호

21. 자연환경보전지역 : 50퍼센트 이상 80퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 21호
Check(EDLPUA_85_1_21){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "NaturalEnvironmentConservationArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 80
} 




Python Code 변환 예정



24
국토의 계획 및 이용에 관한 법률 시행령 제 85조 6 항 1호

1. 공원·광장(교통광장을 제외한다. 이하 이 조에서 같다)·하천 그 밖에 건축이 금지된 공지에 접한 도로를 전면도로로 하는 대지안의 건축물이나 공원·광장·하천 그 밖에 건축이 금지된 공지에 20미터 이상 접한 대지안의 건축물





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항 1호
Check(EDLPUA_85_6_1){
	IF CS THEN KS
}

CS{
	getBuildingUsage() != "UrbanArea"
	getBuildingUsage() = "DevelopmentPromotionDistrict"
}

KS{
	getFloorAreaRatio() <= 100
} 




Python Code 변환 예정



25
국토의 계획 및 이용에 관한 법률 시행령 제 85조 6 항 2호

2. 너비 25미터 이상인 도로에 20미터 이상 접한 대지안의 건축면적이 1천제곱미터 이상인 건축물





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항 2호
Check(EDLPUA_85_6_2){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "FisheryResourcesProtectionZone"
}

KS{
	getFloorAreaRatio() <= 80
} 




Python Code 변환 예정



26
국토의 계획 및 이용에 관한 법률 시행령 제 85조 6 항 3호

3. 「자연공원법」에 따른 자연공원: 100퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항 3호
Check(EDLPUA_85_6_3){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ParkProtectionZone"
}

KS{
	getFloorAreaRatio() <= 100
}
 




Python Code 변환 예정



27
다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 5호

5. 「게임산업진흥에 관한 법률」 제2조제6호ㆍ제6호의2ㆍ제7호 및 제8호의 게임제공업ㆍ인터넷컴퓨터게임시설제공업 및 복합유통게임제공업. 다만, 게임제공업 및 인터넷컴퓨터게임시설제공업의 경우에는 영업장(내부계단으로 연결된 복층구조의 영업장은 제외한다)이 지상 1층 또는 지상과 직접 접하는 층에 설치되고 그 영업장의 주된 출입구가 건축물 외부의 지면과 직접 연결된 구조에 해당하는 경우는 제외한다.





//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 5호


Check(ERSASP_2_0_5){
KS1 AND IF CS THEN !KS2
}


KS1{
getObjectProperty(Building.business)= "GIPA_2_0_6"
OR getObjectProperty(Building.business)= "GIPA_2_0_6-2"
OR getObjectProperty(Building.business)= "GIPA_2_0_7"
OR getObjectProperty(Building.business)= "GIPA_2_0_8"
}


CS{
getObjectProperty(Building.business)= "GIPA_2_0_6"
OR getObjectProperty(Building.business)= "GIPA_2_0_7"
}

KS2{
Space mySpace{
Space.usage = "GIPA_2_0_6"
OR Space.usage = "GIPA_2_0_7"
}
Floor myFloor{
hasObject(Floor,mySpace)=TRUE
}
Door myDoor{
isObjectProperty(mySpace.Door.isEntrance)=TRUE
}

(getObjectProperty(myFloor.number)=1
OR isDirectlyAccessible(myFloor, Ground)=TRUE)
isConnectedToExternal(myDoor)=TRUE
} 




Python Code 변환 예정



28
소방시설 설치·유지 및 안전관리에 관한 법률 제 8조 1 항 1호

1.「건축법」 제2조제2항제1호의 단독주택





//	소방시설 설치ㆍ유지 및 안전관리에 관한 법률 8조 (주택에 설치하는 소방시설) 1항 1호
Check(IMSFA_8_1_1){
	KS
}

KS{
	getBuildingUsage() = "DetachedHouse"
} 




Python Code 변환 예정



29
소방시설 설치·유지 및 안전관리에 관한 법률 제 8조 1 항 2호

2.「건축법」 제2조제2항제2호의 공동주택(아파트 및 기숙사는 제외한다)





//	소방시설 설치ㆍ유지 및 안전관리에 관한 법률 8조 (주택에 설치하는 소방시설) 1항 2호
Check(IMSFA_8_1_2){
	KS
}

KS{
	getBuildingUsage() = "MultiUnitHouse"
	getBuildingUsage() != "ApartmentHouse"
	getBuildingUsage() != "Dormitory"
} 




Python Code 변환 예정



30
소화기구 및 자동소화장치의 화재안전기준(NFSC 101) 제 4조 7호

7. 주방용자동소화장치는 아파트의 각 세대별 주방 및 오피스텔의 각실 별 주방에 다음 각 목의 기준에 따라 설치할 것<개정 2012.6.11>





//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 7호
Check(NFSC101_4_1_7){
	IF CS THEN KS
}

CS{
	Space mySpace{
	getSpaceUsage() = "Kitchen"
	}

}

KS{
	AutomaticFireExtinguishingEquipment myAutomaticFireExtinguishingEquipment{
	isObjectProperty(AutomaticFireExtinguishingEquipment.isKitchenType) = TRUE
	}
	hasSpace(mySpace,myAutomaticFireExtinguishingEquipment) = TRUE
	getResult(NFSC101_4_1_7_3)=TRUE
} 




Python Code 변환 예정



31
소화기구 및 자동소화장치의 화재안전기준(NFSC 101) 제 4조 7호 다 목

다. 가스차단장치는 주방배관의 개폐밸브로부터 2m 이하의 위치에 설치하되, 상시 확인 및 점검이 가능하도록 설치할 것<개정 2012.6.11>





//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 7호 다목
Check(NFSC101_4_1_7_다){
	KS
}
KS{
	ShutdownEquipment myShutdownEquipment{
	isObjectProperty(ShutdownEquipment.type)="GAS"
	}
	Space mySpace{
	isObjectProperty(Space.usage) = "Kitchen"
	}
	Pipe myPipe{
	isInstalled(Pipe, mySpace) = TRUE
	}
	Valve myValve{
	isObjectProperty(Valve.isShutoffValve) = TRUE
	isInstalled(Valve, myPipe) = TRUE
	}
	isElementDistance(myShutdownEquipment, myValve) <= 2m
} 




Python Code 변환 예정



32
연결살수설비의 화재안전기준(NFSC 503) 제 5조 8 항

⑧급수배관에 설치되어 급수를 차단할 수 있는 개폐밸브는 개폐표시형으로 하여야 한다. 이 경우 펌프의 흡입측배관에는 버터플라이밸브(볼형식의 것을 제외한다)외의 개폐표시형밸브를 설치하여야 한다.





//  연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 8항

Check(NFSC503_5_6){
	IF CS THEN KS
}
	Pipe myPipe{
	isObjectProperty(Pipe.usage) = "WaterSupplyPipe"
	}
	Valve myValve1{
	isObjectProperty(Valve.isShutoffValve) = TRUE
	}
CS{
	isInstalled(myValve1,myPipe) = TRUE
}
KS{
	isObjectProperty(myValve1.isIndicatingValve) = TRUE
	Valve myValve2{
	isInstalled(Valve, Pump.Inlet) = TRUE
	}
	isObjectProperty(myValve2.isIndicatingValve) = TRUE
	isObjectProperty(myValve2.isButterflyValve) = FALSE
 } 




Python Code 변환 예정



33
연결살수설비의 화재안전기준(NFSC 503) 제 5조 9 항 2호

2. 폐쇄형헤드를 사용하는 연결살수설비의 청소구는 주배관 또는 교차배관(교차배관을 설치하는 경우에 한한다) 끝에 40㎜ 이상 크기의 개폐밸브를 설치하고, 호스접결이 가능한 나사식 또는 고정배수 배관식으로 할 것. 이 경우 나사식의 개폐밸브는 옥내소화전 호스접결용의 것으로 하고, 나사보호용의 캡으로 마감하여야 한다.





 //  연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 9항 2호

Check(NFSC503_5_9_2){
	IF CS THEN KS
}
CS{
	Head myHead{
	isObjectProperty(Head.openAndCloseType)="EnclosedType"
	}
	isObjectProperty(myHead.systemType) = "HookingUpSprinklerSystem"
}
KS{
	Pipe myPipe1{
	isObjectProperty(Pipe.isRiser) = TRUE
	}
	Pipe myPipe2{
	isObjectProperty(Pipe.isCrossMains) = TRUE
	}
	Valve myValve{
	isObjectProperty(Valve.isShutoffValve) = TRUE
	getObjectLength(Valve) >= 40mm
	}
	getObjectProperty(myValve.Type) = "나사식" 
	getObjectProperty(myValve.usage) = "옥내소화전 호스접결용"
} 




Python Code 변환 예정



34
연결살수설비의 화재안전기준(NFSC 503) 제 7조 3호

3. 통신기기실·전자기기실·기타 이와 유사한 장소





//연결살수설비의 화재안전기준(nfsc 503) 7조 (헤드의 설치제외) 3호
Check(NFSC503_7_0_3){
	KS
}

KS{
	getBuildingUsage() = "CommunicationsApparatusRoom"
	OR getBuildingUsage() = "ElectronicEquipmentRoom"
} 




Python Code 변환 예정



35
연결살수설비의 화재안전기준(NFSC 503) 제 7조 5호

5. 병원의 수술실·응급처치실·기타 이와 유사한 장소





//연결살수설비의 화재안전기준(nfsc 503) 7조 (헤드의 설치제외) 5호
Check(NFSC503_7_0_5){
	KS
}

KS{
	getBuildingUsage() = "SurgeryRoom.Hospital"
	OR getBuildingUsage() = "EmergencyCareRoom.Hospital"
} 




Python Code 변환 예정



36
연결송수관설비의 화재안전기준(NFSC 502) 제 4조 4호

4. 송수구로부터 연결송수관설비의 주배관에 이르는 연결배관에 개폐밸브를 설치한 때에는 그 개폐상태를 쉽게 확인 및 조작할 수 있는 옥외 또는 기계실 등의 장소에 설치할 것. 이 경우 개폐밸브에는 그 밸브의 개폐상태를 감시제어반에서 확인할 수 있도록 급수개폐밸브 작동표시 스위치를 다음 각 목의 기준에 따라 설치하여야 한다. <개정 2014.8.18>





//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 4호



Check(NFSC502_4_0_4){

      IF CS THEN KS 

}



CS{

    Pipe  myPipe1{
Pipe.systemType = "FireDepartmentConnectionSystem"
Pipe.isRiser = TRUE
}

    Pipe  myPipe2{

         isConnectedTo(FireDepartmentConnection, Pipe)=True

         isConnectedTo(myPipe1, Pipe)=True

    }

  

   Valve myValve{

     isObjectProperty(Valve.isShutoffValve)=True  

   }





    hasObject(myConnectionPipe, myValve)=True

}



KS{

    isExternal(myValve)=True

    OR (hasObject(Space, myValve)=True   
getSpaceUsage(Space) = "MachinRoom"


} 




Python Code 변환 예정



37
연결송수관설비의 화재안전기준(NFSC 502) 제 5조 1 항 2호

2. 지면으로부터의 높이가 31m 이상인 특정소방대상물 또는 지상 11층 이상인 특정소방대상물에 있어서는 습식설비로 할 것





//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 1항 2호



Check(NFSC502_5_1_2){

    IF CS THEN KS 

}



CS{

   (

      getBuildingHeight()>=31 m

      OR getBuildingStoriesCount()>=11 

    )

   getBuildingUsage()="SpecificFireFightingBuilding"

   

}



KS{

      getObjectProperty(FireDepartmentConnectionSystem.dryWetType)="WetFireDepartmentConnectionSystem" 

} 




Python Code 변환 예정



38
연결송수관설비의 화재안전기준(NFSC 502) 제 6조 1호 가 목

가. 아파트의 1층 및 2층





//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 1호 가목

Check(NFSC502_6_0_1_가){
    KS
}

KS{
    getBuildigUsage()="ApartmentHouse"
    getFloorNumber()=1
    OR getFloorNumber()=2
} 




Python Code 변환 예정



39
연결송수관설비의 화재안전기준(NFSC 502) 제 6조 1호 다 목

다. 송수구가 부설된 옥내소화전을 설치한 특정소방대상물(집회장·관람장·백화점·도매시장·소매시장·판매시설·공장·창고시설 또는 지하가를 제외한다)로서 다음의 어느 하나에 해당하는 층 (1) 지하층을 제외한 층수가 4층 이하이고 연면적이 6,000㎡ 미만인 특정소방대상물의 지상층 (2) 지하층의 층수가 2 이하인 특정소방대상물의 지하층





//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 1호 다목



Check(NFSC502_6_0_1_다목){

         KS

}



KS{

       getBuildingUsage()!="AssemblyHall"

       getBuildingUsage()!="Auditorium"

       getBuildingUsage()!="DepartmentStore"

       getBuildingUsage()!="WholesaleMarket"

       getBuildingUsage()!="CommercialFacility"

       getBuildingUsage()!="Factory"

       getBuildingUsage()!="Warehouse"

       getBuildingUsage()!="UndergroundMarket"



      

FireHydrant myFireHydrant{
isExternal(FireHydrant)  = FALSE
         isInstalled(FireDepartmentConnection, FireHydrant)=True

    }       



    isInstalled(myIndoorFireHydrant,SpecificFireFightingBuilding)=True



    Floor myFloor{

            Floor.number>0

    }

    Floor myFloor2{

            Floor.number<0

    }

    (

    gerObjectCount(myFloor)<=4 

    getGrossFloorArea()<6000 m2

    Floor.number>0

    )



    OR 

    (

     getObjectCount(myFloor)<=2

     Floor.number<0        

    )

    



    

} 




Python Code 변환 예정



40
연결송수관설비의 화재안전기준(NFSC 502) 제 6조 2호

2. 방수구는 아파트 또는 바닥면적이 1,000㎡ 미만인 층에 있어서는 계단(계단의 부속실을 포함하며 계단이 2 이상 있는 경우에는 그 중 1개의 계단을 말한다)으로부터 5m 이내에, 바닥면적 1,000㎡ 이상인 층(아파트를 제외한다)에 있어서는 각 계단(계단의 부속실을 포함하며 계단이 3 이상 있는 층의 경우에는 그 중 2개의 계단을 말한다)으로부터 5m 이내에 설치하되, 그 방수구로부터 그 층의 각 부분까지의 거리가 다음 각목의 기준을 초과하는 경우





//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 2호

Check(NFSC502_6_0_2){
     KS 
}

KS{
     Space mySpce{
         getSpaceUsage(Space)="Stair.AncillaryRoom"
         OR
         (
         IF getObjectCoutn(Stair)>=2
             THEN getSpace(Stair.One)
         ELSE 
             getSpaceUsage(Space)="Stair"
         END IF
         )
     }

      Space mySpce2{
         getSpaceUsage(Space)="Stair.AncillaryRoom"
         OR
         (
         IF getObjectCoutn(Stair)>=3
             THEN getSpace(Stair.Two)
         ELSE 
             getSpaceUsage(Space)="Stair"
         END IF
         )
     }

     IF getBuildingUsage()="ApartmentHouse"
        OR getFloorArea()<1000 m2 
      
     THEN getObjectDistance(FireDepartmentConnection, mySpace)<5 m 

     ELSE IF getFloorArea()>1000 m2
    
     THEN getObjectDistance(FireDepartmentConnection, mySpace)<5 m 
          getResult(NFSC502_6_0_2_가)=True
          getResult(NFSC502_6_0_2_나)=True
        
     END IF
} 




Python Code 변환 예정



41
연결송수관설비의 화재안전기준(NFSC 502) 제 6조 2호 가 목

가. 지하가(터널은 제외한다) 또는 지하층의 바닥면적의 합계가 3,000㎡ 이상인 것은 수평거리 25m





//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 2호 가목



Check(NFSC502_6_0_2_가){



    IF CS THEN KS1 ELSE KS2

}



CS{

       Space mySpace{

            getSpaceUsage()="UndergroundMarket"

            OR getFloorNumber()<0

        }



       getFloorArea(mySpace)>3000 m2

}



KS1{



    getElementDistance(FireDepartmentConnectionSystem.OutLet, Wall )<=25 m

    getElementDistance(FireDepartmentConnectionSystem.OutLet, Column )<=25 m



}





KS2{

       getResult(NFSC502_6_0_2_나)=True

 } 




Python Code 변환 예정



42
연결송수관설비의 화재안전기준(NFSC 502) 제 6조 3호 가 목

가. 아파트의 용도로 사용되는 층





//연결송수관설비의 화재안전기준(nfsc502) 6조 (방수구) 3호 가목



Check(NFSC502_6_0_3_가){

        KS      

}



KS{

   getFloorUsage()="ApartmentHouse"

} 




Python Code 변환 예정



43
연소방지설비의 화재안전기준(NFSC 506) 제 4조 2 항

②급수배관(송수구로부터 연소방지설비방수구에 급수하는 배관을 말한다. 이하 같다)은 전용으로 하여야 한다.





//	연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 2항
Check(NFSC506_4_2){
	KS
}

KS{
	Pipe myPipe{
		getObjectProperty(Pipe.usage) = "WaterSUpplyPipe"
	}

	isObjectProperty (myPipe.isShared) = FALSE
}
 




Python Code 변환 예정



44
연소방지설비의 화재안전기준(NFSC 506) 제 4조 3 항

③급수배관에 설치되어 급수를 차단할 수 있는 개폐밸브는 개폐표시형으로 하여야 한다.





//연소방지설비의 화재안전 기준(nfsc 506) 4조 (배관) 3항
Check(NFSC506_4_3){
	KS
}

KS{
	FeedWaterShutoffValve myFeedWaterShutoffValve{
		isObjectProperty(FeedWaterShutoffValve.isIndicatingValve) = TRUE
	}
	
	Pipe myPipe{
		isObjectProperty(Pipe.usage) = "WaterSupplyPipe"
	}

	hasObject(myPipe, myFeedWaterShutoffValve) = TRUE
} 




Python Code 변환 예정



45
유도등 및 유도표지의 화재안전기준(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 변환 예정



46
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 6조 1 항 1호 다 목

다. 바닥으로부터 높이 1m 이하의 위치에 설치할 것. 다만, 지하층 또는 무창층의 용도가 도매시장·소매시장·여객자동차터미널·지하역사 또는 지하상가인 경우에는 복도·통로 중앙부분의 바닥에 설치하여야 한다.





//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 1호 다목

Check(NFSC303_6_1_1_다){
           KS
}

KS{ 
   Floor myFloor{
       getFloorNumber()<0
       OR hasObject(Floor, Window)=False
   }
   
   IF getFloorUsage(myFloor)="WholesaleMarket"
      OR getFloorUsage(myFloor)="RetailMarket"
      OR getFloorUsage(myFloor)="PassengerVehicleTransportTerminal"
      OR getFloorUsage(myFloor)="UndergroundStation"
      OR getFloorUsage(myFloor)="UndergroundShoppingCenter" 
      THEN   //  복도·통로 중앙부분의 바닥에 설치하여야 한다.
   ELSE THEN
       getObjectVerticalDistance(FloorSlab, LeadingLightForCorridors )<= 1 m
} 




Python Code 변환 예정



47
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 7조 2 항

②객석내의 통로가 경사로 또는 수평로로 되어 있는 부분은 다음의 식에 따라 산출한 수(소수점 이하의 수는 1로 본다)의 유도등을 설치하고, 그 조도는 통로바닥의 중심선 0.5m 높이에서 측정하여 0.2㏓ 이상이어야 한다. <개정 2012.8.20>





//유도등 및 유도표지의 화재안전기준(nfsc 303) 7조 (객석유도등 설치기준) 2항



Check(NFSC303_7_2){

            IF CS THEN KS

}



CS{

Space mySpace{
Space.usage = "Auditorium"
}
isInstalled(Passage, mySpace) = TRUE
isObjectProperty(Passage.isFlatWay) = TRUE
OR isObjectProperty(Passage.isSlopeWay) = TRUE


}





KS{

    LeadingLight myLeadingLight{

          isObjectProperty(LeadingLight.isForSeat)=True

    }



    isExist(myLeadingLight)=True



    //LAP means Length of Auditorium passage

    LAP= getObjectLength(AuditoriumPassage)

    getObjectCount(myLeadingLight)>= LAP/4-1

   // getSpaceIlluminance(AuditoriumPassage, "통로바닥의 중심선 0.5m 높이에서 측정")>0.2 lx , 측정 기준에 관한 파라미터 추가 필요 



} 




Python Code 변환 예정



48
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 4 항 1호

1. 화학공장·격납고·제련소등 : 광전식분리형감지기 또는 불꽃감지기. 이 경우 각 감지기의 공칭감시거리 및 공칭시야각등 감지기의 성능을 고려하여야 한다.





자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 4항 1호

Check(NFSC203_7_4_1){
	IF CS THEN KS
}
CS{
	getBuildingUsage() = "ChemistryFactory"
	OR getBuildingUsage() = "Hangar"
	OR getBuildingUsage() = "Smelter"
}
KS{
	Sensor mySensor1{
	getObjectProperty(Sensor.sensingMode) = "PhotoelectricType"
	getObjectProperty(Sensor.sensingRange) = "SeparateType"
	}	
	isInstalled(mySensor1) = TRUE
	OR isInstalled(FlameSensor) = TRUE
} 




Python Code 변환 예정



49
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 4 항 2호

2. 전산실 또는 반도체 공장등 : 광전식공기흡입형감지기. 이 경우 설치장소·감지면적 및 공기흡입관의 이격거리등은 형식승인 내용에 따르며 형식승인 사항이 아닌 것은 제조사의 시방에 따라 설치하여야 한다.





자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 4항 2호

Check(NFSC203_7_4_2){
	IF CS THEN KS
}
CS{
	getSpaceUsage() = "ComputerRoom"
	OR getBuildingUsage() = "SemiconductorFactory"
}
KS{
	Sensor mySensor1{
	getObjectProperty(Sensor.sensingMode) = "PhotoelectricType"
	getObjectProperty(Sensor.sensingRange) = "AspiratingType"
	}
	isInstalled(mySensor1) = TRUE
} 




Python Code 변환 예정



50
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 5 항 5호

5. 목욕실·욕조나 샤워시설이 있는 화장실·기타 이와 유사한 장소





자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 5항 5호

Check(NFSC203_7_5_5){
	IF CS THEN KS
}
CS{
	Space mySpace1{
	getSpaceUsage() = "Toliet"
	}
	Space mySpace2{
	getSpaceUsage() = "Bathoroom"
	}
	isInstalled(mySpace1, mySpace2) = TRUE
	
KS{
	isInstalled(Sensor) = FALSE
} 




Python Code 변환 예정



51
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 제 7조 6호

6. 통신시설





//	장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 6호
Check(CDAPA_7_0_6){
	KS
}

KS{
	getBuildingUsage() = "CommunicationFacility"
}
 




Python Code 변환 예정



52
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 제 7조 1호

1. 공원





//	장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 1호
Check(CDAPA_7_0_1){
	KS
}

KS{
	getBuildingUsage() = "Park"
} 




Python Code 변환 예정



53
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 제 7조 2호

2. 공공건물 및 공중이용시설





//	장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 2호
Check(CDAPA_7_0_2){
	KS
}

KS{
	getBuildingUsage() = "PublicFacility"
} 




Python Code 변환 예정



54
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 제 7조 3호

3. 공동주택





//	장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 3호
Check(CDAPA_7_0_3){
	KS
}

KS{
	getBuildingUsage() = "MultiUnitHouse"
} 




Python Code 변환 예정



55
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 제 7조 4호

4. 통신시설





//	장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 4호
Check(CDAPA_7_0_4){
	KS
}

KS{
	getBuildingUsage() = "CommunicationFacility"
} 




Python Code 변환 예정



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

1. 공원 2. 공공건물 및 공중이용시설 가. 제1종 근린생활시설 (1) 수퍼마켓·일용품(식품·잡화·의류·완구·서적·건축자재·의약품ㆍ의료기기 등) 등의 소매점으로서 동일한 건축물(하나의 대지 안에 2동 이상의 건축물이 있는 경우에는 이를 동일한 건축물로 본다. 이하 같다) 안에서 당해 용도에 쓰이는 바닥면적의 합계가 300제곱미터 이상 1천제곱미터 미만인 시설 (2) 이용원·미용원·목욕장으로서 동일한 건축물 안에서 당해 용도에 쓰이는 바닥면적





// 장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행령 별표1 편의시설 설치 대상시설(제3조 관련)


Check(EDCDAPA_*_1_2_가_1){
getBuildingUsage()=“RetailStore”
Floor myFloor{
	getFloorUsage(Floor)=”RetailStore”
}
getTotalFloorArea(myFloor)>=300 m2
getTotalFloorArea(myFloor)<1000 m2
}


Check(EDCDAPA_*_1_2_가_2){
Building myBuilding {
getBuildingUsage()=“Barbershop”
OR getBuildingUsage()=“BeautyShop”
OR getBuildingUsage()=“Bathhouse”
}
Floor myFloor{
	getFloorUsage(Floor)= myBuilding.usage
}
getTotalFloorArea(myFloor)>=500 m2
}

Check(EDCDAPA_*_1_2_가_3){
Building myBuilding{
getBuildingUsage()=“CommunityCenter”
OR getBuildingUsage()=“PoliceBox”
OR getBuildingUsage()=“PoliceSubstation”
OR getBuildingUsage()=“PostOffice”
OR getBuildingUsage()=“HealthCenter”
OR getBuildingUsage()=“PublicLibrary”
OR getBuildingUsage()=“NationalHealthInsuranceService_NationalPensionService_Korea EmploymentAgencyForTheDisabled_KoreaWorkersCompensationAndWelfareServiceOffice”
}
Floor myFloor{
	getFloorUsage(Floor)= myBuilding.usage
}
getTotalFloorArea(myFloor)<1000 m2
}


Check(EDCDAPA_*_1_2_가_4){
getBuildingUsage()=“Shelter”
}

Check(EDCDAPA_*_1_2_가_5){
getBuildingUsage()=“PublicToilet”
}

Check(EDCDAPA_*_1_2_가_6){
Building myBuilding{
getBuildingUsage()=“Clinic_ DentalClinic_OrientalMedicalClinic_MaternityClinic”
}
Floor myFloor{
	getFloorUsage(Floor)= myBuilding.usage
}
getTotalFloorArea(myFloor)>=500 m2
}

Check(EDCDAPA_*_1_2_가_7){
getBuildingUsage()=“CommunityChildCenter”
Floor myFloor{
	getFloorUsage(Floor)= “CommunityChildCenter”
}
getTotalFloorArea(myFloor)>=300 m2
}


Check(EDCDAPA_*_1_2_나_1){
getBuildingUsage()=“Restaurant”
Floor myFloor{
	getFloorUsage(Floor)= “CommunityChildCenter”
}
getTotalFloorArea(myFloor)>=300 m2
}

Check(EDCDAPA_*_1_2_나_2){
Building myBuilding {
(getBuildingUsage()=“RestingRestaurant”
OR getBuildingUsage()=“Bakery”)
getBuildingUsage() !=”ClassINeighborhoodLivingFacility”
}
Floor myFloor{
	getFloorUsage(Floor)= myBuilding.usage
}
getTotalFloorArea(myFloor)>=300 m2

}

Check(EDCDAPA_*_1_2_나_2){
getBuildingUsage()=“MassageParlor”
Floor myFloor{
	getFloorUsage(Floor)= “MassageParlor”
}
getTotalFloorArea(myFloor)>=500 m2

}

Check(EDCDAPA_*_1_2_카_1){
getBuildingUsage()=“PublicOfficeBuilding. OfficeBuildingOfLocalGovernment ”
getBuildingUsage() !=”ClassINeighborhoodLivingFacility”
}

Check(EDCDAPA_*_1_2_카_2){
Building myBuilding{
getBuildingUsage()=“GeneralBusinessFacility.FinanceBusiness”
OR getBuildingUsage()=“GeneralBusinessFacility.Office”
OR getBuildingUsage()=“GeneralBusinessFacility.NewspaperOffice”
OR getBuildingUsage()=“GeneralBusinessFacility. Officetel”
}
Floor myFloor {
 getFloorUsage()=myBuilding.usage
}
getTotalFloorArea(myFloor)>=500 m2
}

Check(EDCDAPA_*_1_2_카_3){
Building myBuilding{
getBuildingUsage()=“GeneralBusinessFacility.NationalHealthInsuranceService_NationalPensionService_Korea EmploymentAgencyForTheDisabled_KoreaWorkersCompensationAndWelfareServiceOffice”
}
Floor myFloor {
 getFloorUsage()=myBuilding.usage
}
getTotalFloorArea(myFloor)>=1000 m2
}
 




Python Code 변환 예정



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



58
주차장법 제 19조의5조 1 항

① 기계식주차장의 설치기준은 국토교통부령으로 정한다. <개정 2013.3.23, 2018.8.14>





//주차장법 19조의5 (기계식주차장의 설치기준)

Check(PLA_19-5){
  IF CS THEN KS
}

CS{
   getSpaceUsage()="MechanicalParking"
}

KS{
    getResult(ERPA_16-2_0_1)=True
} 




Python Code 변환 예정



59
주차장법 제 19조 1 항

①국토의계획및이용에관한법률의 규정에 의한 도시지역·제2종지구단위계획구역 및 지방자치단체의 조례가 정하는 관리지역안에서 건축물·골프연습장 기타 주차수요를 유발하는 시설(이하 "施設物"이라 한다)을 건축 또는 설치하고자 하는 자는 당해 시설물의 내부 또는 그 부지안에 부설주차장(貨物의 荷役 기타 사업수행을 위한 駐車場을 포함한다. 이하 같다)을 설치하여야 한다. <개정 1995.12.29, 2002.2.4>





//주차장법 19조 (부설주차장의 설치) 1항



Check(PLA_19_1){

   IF CS THEN KS 

}



CS{

   getSiteUsage()="UrbanArea"

   OR getSiteUsage()="DistrictUnitPlanningZone"

   OR getSiteUsage()="ControlArea"

}



KS{

   ParkingLot myParkingLot{

     isObjectProperty(ParkingLot.isAttachedParking)=True

   }

   isInstalled(myParkingLot, Facility)=True

   isInstalled(myParkingLot, Site)=True

} 




Python Code 변환 예정



60
주차장법 시행규칙 제 16조의2조 1 항 1호 가 목

가. 중형 기계식주차장(길이 5.05미터 이하, 너비 1.9미터 이하, 높이 1.55미터 이하, 무게 1,850킬로그램 이하인 자동차를 주차할 수 있는 기계식주차장을 말한다. 이하 같다): 너비 8.1미터 이상, 길이 9.5미터 이상의 전면공지 또는 지름 4미터 이상의 방향전환장치와 그 방향전환장치에 접한 너비 1미터 이상의 여유 공지





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



Check(ERPA_16-2_0_1_가){

   IF CS THEN KS

}



CS{

ParkingLot myParkingLot{
	ParkingLot.operationType = "MechanicalParking"
}
   getObjectProperty(myParkingLot.scale)="MiddleSize"

}



KS{

   Space mySpace{

     getSpaceUsage()="FrontageSpace"

     Space.width>=8.1 m

     Space.length>9.5 m

   }

  

    isExist(mySpace)=True

    OR isExist(DirectionSwitchingEquipment)=True

       getObjectDiameter(DirectionSwitchingEquipment)>=4 m

       isExist(Space)=True

       isAdjacent(DirectionSwitchingEquipment, Space)=True

       Space.width>=1 m

} 




Python Code 변환 예정



61
주차장법 시행규칙 제 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 변환 예정



62
주차장법 시행규칙 제 6조 4 항 2의2호

2의2. 「석유 및 석유대체연료 사업법 시행령」 제2조제3호에 따른 주유소(특별시장·광역시장, 시장·군수 또는 구청장이 설치한 노외주차장만 해당한다)





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

Check(ERPA_6_4_3){

	KS

}



KS{

	getSpaceUsage(ParkingLotSubsidiaryFacility) = "GasStation"

} 




Python Code 변환 예정



63
주차장법 시행규칙 제 6조 1 항 6호

6. 노외주차장의 주차에 사용되는 부분의 높이는 주차바닥면으로부터 2.1미터 이상으로 하여야 한다.





//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 6호
Check(ERPA_6_1_6){
       IF (!CS1 AND CS2) THEN (KS1 AND KS2)
}

CS1{
	Elevator myElevator{
	getObjectProperty(Elevator.usage) = "AutomobileElevator"
	}
	Opening myOpening1{
	isObjectProperty(Elevator.Opening.isEntrance)=TRUE
	}
	Opening myOpening2{
	isObjectProperty(Elevator.Opening.isExit)=TRUE
	}
	myOpening1 != myOpening2
	isExist(myOpening1)=TRUE
	isExist(myOpening2)=TRUE
}
CS2{
	getObjectProperty(ParkingLot.operationType) = "DriveInParking"
	isObjectProperty(ParkingLot.isOffStreetParking)=TRUE
}

KS1{
	
}
KS2{
	getResult(ERPA_16-2_1)=TRUE
	getResult(ERPA_16-2_3)=TRUE
}
 




Python Code 변환 예정



64
주차장법 시행규칙 제 6조 4 항 1호

1. 관리사무소ㆍ휴게소 및 공중변소





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

Check(ERPA_6_4_1){

	KS

}



KS{

	getSpaceUsage(ParkingLotSubsidiaryFacility) = "ControlOffice"

	OR getSpaceUsage(ParkingLotSubsidiaryFacility) = "RestArea"

	OR getSpaceUsage(ParkingLotSubsidiaryFacility) = "PublicToilet"

} 




Python Code 변환 예정



65
주차장법 시행규칙 제 6조 4 항 2호

2. 간이매점 및 자동차의 장식품판매점





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

Check(ERPA_6_4_2){

	KS

}



KS{

	getSpaceUsage(ParkingLotSubsidiaryFacility) = "SnackBar"

	OR getSpaceUsage(ParkingLotSubsidiaryFacility) = "CarOrnamentationShop"

	OR getSpaceUsage(ParkingLotSubsidiaryFacility) = "ElectricVehicleChargingStation"

} 




Python Code 변환 예정



66
주차장법 시행규칙 제 6조 6 항

⑥시장ㆍ군수 또는 구청장이 노외주차장내에 국토의계획및이용에관한법률 제2조제7호의 도시계획시설을 부대시설로서 중복하여 설치하고자 하는 경우에는 노외주차장외의 용도로 사용하고자 하는 도시계획시설이 차지하는 면적의 비율은 부대시설을 포함하여 주차장 총 시설면적의 40퍼센트를 초과할 수 없다. <신설 2004.7.1>





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

Check(ERPA_6_6){

	IF CS THEN KS

}



ParkingLot myParkingLot{

	isObjectProperty(ParkingLot.isOffStreetParking) = TRUE

}


Building myBuilding{
Building.usage = "UrbanGunPlanningFacility"
getResult(LPUA_2_0_7) = TRUE
hasSpace(myParkingLot, Building) = TRUE
getSpaceUsage(Building) = getSpaceUsage(SubsidiaryFacility)

}

Building myBuilding1{
Building.usage = "UrbanGunPlanningFacility"
}

CS{

	getObjectNumber(myBuilding) >= 2

}



KS{

	(getFloorArea(myBuilding1)- getFloorArea(myBuilding)) <= (getTotalObjectArea(ParkingLot) + getTotalObjectArea(SubsidiaryFacility))*0.4

} 




Python Code 변환 예정



67
주차장법 시행규칙 제 16조의2조 1 항 1호 나 목

나. 대형 기계식주차장(길이 5.75미터 이하, 너비 2.15미터 이하, 높이 1.85미터 이하, 무게 2,200킬로그램 이하인 자동차를 주차할 수 있는 기계식주차장을 말한다. 이하 같다): 너비 10미터 이상, 길이 11미터 이상의 전면공지 또는 지름 4.5미터 이상의 방향전환장치와 그 방향전환장치에 접한 너비 1미터 이상의 여유 공지





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



Check(ERPA_16-2_0_1_나){

   IF CS THEN KS      

}





CS{
ParkingLot myParkingLot{
	ParkingLot.operationType = "MechanicalParking"
}
   getObjectProperty(myParkingLot.scale)="LargeSize"

}



KS{

   Space mySpace{

     getSpaceUsage()="FrontageSpace"

     Space.width>=10 m

     Space.length>11 m

   }

  

    isExist(mySpace)=True

    OR isExist(DirectionSwitchingEquipment)=True

       getObjectDiameter(DirectionSwitchingEquipment)>=4.5 m

       isExist(Space)=True

       isAdjacent(DirectionSwitchingEquipment, Space)=True

       Space.width>=1 m

} 




Python Code 변환 예정



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

2. 기계식주차장치의 내부에 방향전환장치를 설치한 경우와 2층 이상으로 주차구획이 배치되어 있고 출입구가 있는 층의 모든 주차구획을 기계식주차장치 출입구로 사용할 수 있는 기계식주차장의 경우에는 제1호에도 불구하고 제6조제1항제3호 또는 제11조제5항제2호를 준용한다.





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

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

CS{
   hasObject(MechanicalParkingEquipment,DirectionSwitchingEquipment)=True
   OR 
   //2츠이상으로 주차구획이 배치되어 있고 
   // 출입구가 있는 층의 모든 주차구획을 기계식주차장치 출입구로 사용할 수 있는
   getSpaceUsage()="MechanicalParking"
}

KS{
   getResult(ERPA_6_1_3)=True
   OR getResult(ERPA_11_5_2)=True
} 




Python Code 변환 예정



69
주차장법 시행규칙 제 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 변환 예정



70
주차장법 시행규칙 제 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 변환 예정



71
주차장법 시행규칙 제 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 변환 예정



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



73
주차장법 시행령 제 6조 1 항 6호

6. 시설면적이 1만 제곱미터 이상인 공장을 건축하는 경우





//주차장법 시행령 6조 (부설주차장의 설치) 1항 6호

Check(EDPA_6_1_6){
KS
}

KS{
   getBuildingUsage()= "Factory"
   getObjectProperty(Building.facilityArea)>= 10000m2
} 




Python Code 변환 예정



74
주택건설기준 등에 관한 규정 제 15조 1 항

①6층 이상인 공동주택에는 국토교통부령이 정하는 기준에 따라 대당 6인승 이상인 승용승강기를 설치하여야 한다. 다만, 「건축법 시행령」 제89조의 규정에 해당하는 공동주택의 경우에는 그러하지 아니하다. <개정 1992.5.30, 1994.12.23, 1994.12.30, 1999.9.29, 2005.6.30, 2008.2.29, 2013.3.23>





//주택건설기준 등에 관한 규정 15조 (승강기등) 1항
Check(RHC_15_1){
	getResult(RHC_15_5) = TRUE AND IF (CS1 AND !CS2) THEN KS
}

CS1{
	getBuildingUsage() = "MultiUnitHouse"
	getBuildingStoriesCount() >= 6
}

CS2{
	getBuildingStoriesCount = 6
	
	Stair myStair{
		isObjectProperty(Stair.isDirect) = TRUE
	}

	getFloorArea() = FA
	FA / 300 = FA2
	getIntegeralNumber(FA2) = FA3
	getObjectCount(myStair) >= FA3
}

KS{
	Elevator myElevator{
		getObjectProperty(Elevator.occupancy) >= 6
	}

	isExist(myElevator) = TRUE
} 




Python Code 변환 예정



75
주택건설기준 등에 관한 규정 제 15조 2 항

②10층 이상인 공동주택의 경우에는 제1항의 승용승강기를 비상용승강기의 구조로 하여야 한다. <개정 2007.7.24>





//주택건설기준 등에 관한 규정 15조 (승강기등) 2항
Check(RHC_15_2){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "MultiUnitHouse"
	getBuildingStoriesCount() >= 10
}

KS{
	Elevator myElevator{
		getObjectProperty(Elevator.cooupancy) >= 6
		isObjectProperty(Elevator.isEmergency) = TRUE
	}

	isExist(myElevator) = TRUE
} 




Python Code 변환 예정



76
주택건설기준 등에 관한 규정 제 15조 3 항 2호

2. 승강기의 폭 또는 너비중 한변은 1.35미터 이상, 다른 한변은 1.6미터 이상일 것





//주택건설기준 등에 관한 규정 15조 (승강기등) 3항 2호
Check(RHC_15_3_2){
	KS
}

KS{
	Elevator myElevator{
		getObjectProperty(Elevator.usage) = "FreightElevator"
	}

	(getObjectWidth(myElevator) >= 1.35m
	getObjectDepth(myElevator) >= 1.6m)
	OR(getObjectWidth(myElevator) >= 1.6m
	getObjectDepth(myElevator) >= 1.35m)
} 




Python Code 변환 예정



77
주택건설기준 등에 관한 규정 제 15조 3 항 3호

3. 계단실형인 공동주택의 경우에는 계단실마다 설치할 것





//주택건설기준 등에 관한 규정 15조 (승강기등) 3항 3호
Check(RHC_15_3_3){
	IF CS THEN KS
}

CS{
	
}

KS{
	Elevator myElevator{
		getObjectProperty(Elevator.usage) = "FreightElevator"
	}

	isInstalled(myElevator, Stair.Space) = TRUE
} 




Python Code 변환 예정



78
주택건설기준 등에 관한 규정 제 15조 3 항 4호

4. 복도형인 공동주택의 경우에는 100세대까지 1대를 설치하되, 100세대를 넘는 경우에는 100세대마다 1대를 추가로 설치할 것





//주택건설기준 등에 관한 규정 15조 (승강기등) 3항 4호
Check(RHC_15_3_4){
	IF CS THEN KS
}

CS{
	
}

KS{
	Elevator myElevator{
		getObjectProperty(Elevator.usage) = "FreightElevator"
	}

	getObjectCount(myElevator) = ELV
	100*n <= getObjectProperty(Building.numberOfHousehold) <100*(n+1)
	n <= ELV
}
 




Python Code 변환 예정



79
주택건설기준 등에 관한 규정 제 15조 4 항

④제1항 또는 제2항의 규정에 의한 승용승강기 또는 비상용승강기로서 제3항 각호의 기준에 적합한 것은 화물용승강기로 겸용할 수 있다.





//주택건설기준 등에 관한 규정 15조 (승강기등) 4항
Check(RHC_15_4){
	IF CS THEN KS
}

CS{
	Elevator myElevator{
		isObjectProperty(Elevator.isEmergency) = TRUE
		OR getObjectProperty(Elevator.usage) = "PassengerElevator"
	}

	getResult(RHC_15_1) = TRUE
	getResult(RHC_15_2) = TRUE
	getResult(RHC_15_3_1) = TRUE
	getResult(RHC_15_3_2) = TRUE
	getResult(RHC_15_3_3) = TRUE
	getResult(RHC_15_3_4) = TRUE
}

KS{
	Elevator myElevator{
		isObjectProperty(Elevator.isEmergency) = TRUE
		OR getObjectProperty(Elevator.usage) = "PassengerElevator"
	}

	Elevator myElevator2{
		getObjectProperty(Elevator.usage) = "FreightElevator"
	}

	isReplaced(myElevator2, myElevator) = TRUE
} 




Python Code 변환 예정



80
주택건설기준 등에 관한 규정 제 15조 3 항

③10층 이상인 공동주택에는 이사짐등을 운반할 수 있는 다음 각호의 기준에 적합한 화물용승강기를 설치하여야 한다. <개정 1993.9.27, 2001.4.30, 2016.12.30>





//주택건설기준 등에 관한 규정 15조 (승강기등) 3항
Check(RHC_15_3){
	getResult(RHC_15_5) = TRUE AND IF CS THEN KS
}

CS{
	getBuildingUsage() = "MultiUnitHouse"
	getBuildingStoriesCount() >= 7
}

KS{
	getResult(RHC_15_3_1) = TRUE
	getResult(RHC_15_3_2) = TRUE
	getResult(RHC_15_3_3) = TRUE
	getResult(RHC_15_3_4) = TRUE
} 




Python Code 변환 예정



81
주택건설기준 등에 관한 규정 제 11조

제11조(지하층의 활용) 공동주택을 건설하는 주택단지에 설치하는 지하층은 「주택법 시행령」 제7조제1호 및 제2호에 따른 근린생활시설(이하 "근린생활시설"이라 한다. 다만, 이 조에서는 변전소ㆍ정수장 및 양수장을 제외하되, 변전소의 경우 「전기사업법」 제2조제2호에 따른 전기사업자가 자신의 소유 토지에 「전원개발촉진법 시행령」 제3조제1호에 따른 시설의 설치ㆍ운영에 종사하는 자를 위하여 건설하는 공동주택 및 주택과 주택 외의 건축물을 동일건축물에 복합하여 건설하는 경우로서 사업계획승인권자가 주거안정에 지장이 없다고 인정하는 건축물의 변전소는 포함한다)ㆍ주차장ㆍ주민공동시설 및 주택(사업계획승인권자가 해당 주택의 주거환경에 지장이 없다고 인정하는 경우로서 1층 세대의 주거전용부분으로 사용되는 구조만 해당한다) 그 밖에 관계 법령에 따라 허용되는 용도로 사용할 수 있으며, 그 구조 및 설비는 「건축법」제53조에 따른 기준에 적합하여야 한다. <개정 2005.6.30, 2006.1.6, 2008.10.29, 2009.10.19, 2013.6.17, 2017.10.17>





//주택건설기준 등에 관한 규정 11조 (지하층의 활용) 

Check(RHC_11){
     IF CS THEN KS
}

CS{
   
   getBuildingUsage()="	MultiUnitHouse"
   getFloorNumber(Space)<0
}

KS{
    getResult(BA_53)=True
} 




Python Code 변환 예정



82
주택법 시행령 제 47조 5 항

⑤ 감리자는 법 제16조제2항에 따라 착공신고를 하거나 감리업무의 범위에 속하는 각종 시험 및 자재확인 등을 하는 경우에는 서명 또는 날인을 하여야 한다.





//주택법 시행령 47조 (행위허가 등의 기준 등) 5항
Check(NFSC506_47_5){
	IF !CS THEN KS
}

CS{
	getBuildingUsage() = "MultiUnitHouse"
	getObjectProperty(Floor.number) < 0
}

KS{
	Floor myFloor{
		getObjectProperty(Floor.number) < 0
	}

	getFloorUsage(myFloor) != "ResidentsCommonSpace"
} 




Python Code 변환 예정



  ◁prev 1   2   3