개방형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 (문장단위)
  ◁prev 1   2   3   4   next▷  
3 / 4 page Total 2500 / 4000 records    신규입력
Select
ALL
None
#
ID
Law
Jo
JO Name
HANG
HO
MOK
Text
Search!
1
19888 다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 3호

3. 「학원의 설립ㆍ운영 및 과외교습에 관한 법률」 제2조제1호에 따른 학원(이하 "학원"이라 한다)으로서 다음 각 목의 어느 하나에 해당하는 것





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


Check(ERSASP_2_0_3){
IF CS THEN KS
}

CS{
getObjectProperty(Building.business)= "AEOPE_2_0_1_"
}

KS{
getResult(ERSASP_2_0_3_가)= TRUE
OR getResult(ERSASP_2_0_3_나)= TRUE
} 




Python Code 변환 예정



Modify
2
19889 다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 3호 나 목

(3) 하나의 건축물에 제1호, 제2호, 제4호부터 제7호까지, 제7호의2부터 제7호의5까지 및 제8호의 다중이용업 중 어느 하나 이상의 다중이용업과 학원이 함께 있는 경우





Check(ERSASP_2_0_3_나3){
IF CS THEN KS
}

CS{
getObjectProperty(Building.business)= "AEOPE_2_0_1"
}
KS{
getResult(ERSASP_2_0_1)= TRUE
OR getResult(ERSASP_2_0_2)= TRUE
OR getResult(ERSASP_2_0_4)= TRUE
OR getResult(ERSASP_2_0_5)= TRUE
OR getResult(ERSASP_2_0_6)= TRUE
OR getResult(ERSASP_2_0_7)= TRUE
OR getResult(ERSASP_2_0_7-2)= TRUE
OR getResult(ERSASP_2_0_7-3)= TRUE
OR getResult(ERSASP_2_0_7-4)= TRUE
OR getResult(ERSASP_2_0_7-5)= TRUE
OR getResult(ERSASP_2_0_8)= TRUE
} 




Python Code 변환 예정



Modify
3
19890 다중이용업소의 안전관리에 관한 특별법 시행령 제 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 변환 예정



Modify
4
19891 다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 6호

6. 「음악산업진흥에 관한 법률」 제2조제13호에 따른 노래연습장업





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


Check(ERSASP_2_0_6){
KS
}

KS{
getObjectProperty(Building.business)= "MIPA_2_0_13"
}
 




Python Code 변환 예정



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

7. 「모자보건법」 제2조제12호에 따른 산후조리업





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


Check(ERSASP_2_0_7){
KS
}

KS{
getObjectProperty(Building.business)= "MCHA_2_0_11"
}
 




Python Code 변환 예정



Modify
6
19893 다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 7의2호

7의2. 고시원업[구획된 실(室) 안에 학습자가 공부할 수 있는 시설을 갖추고 숙박 또는 숙식을 제공하는 형태의 영업]





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




Check(ERSASP_2_0_7-2){
KS
}

KS{
getObjectProperty(Building.business)= "AccommodationForExaminers"
}
 




Python Code 변환 예정



Modify
7
19894 다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 7의3호

7의3. 「사격 및 사격장 안전관리에 관한 법률 시행령」 제2조제1항 및 별표 1에 따른 권총사격장(실내사격장에 한정하며, 같은 조 제1항에 따른 종합사격장에 설치된 경우를 포함한다)





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


Check(ERSASP_2_0_7-3){
KS
}

KS{
getObjectProperty(Building.business)= "GunShootingRange"
}
 




Python Code 변환 예정



Modify
8
19895 다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 7의4호

7의4. 「체육시설의 설치ㆍ이용에 관한 법률」 제10조제1항제2호에 따른 골프 연습장업(실내에 1개 이상의 별도의 구획된 실을 만들어 스크린과 영사기 등의 시설을 갖추고 골프를 연습할 수 있도록 공중의 이용에 제공하는 영업에 한정한다)





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


Check(ERSASP_2_0_7-4){
KS
}

KS{
getObjectProperty(Building.business)="IUSA_10_1_2_9"
} 




Python Code 변환 예정



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

7의5. 「의료법」 제82조제4항에 따른 안마시술소





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


Check(ERSASP_2_0_7-5){
KS
}

KS{
getObjectProperty(Building.business)="MassageParlor"
} 




Python Code 변환 예정



Modify
10
19903 소화기구 및 자동소화장치의 화재안전기준(NFSC 101) 제 4조 1 항 4호 가 목

가. 각층마다 설치하되, 특정소방대상물의 각 부분으로부터 1개의 소화기까지의 보행거리가 소형소화기의 경우에는 20m 이내, 대형소화기의 경우에는 30m 이내가 되도록 배치할 것. 다만, 가연성물질이 없는 작업장의 경우에는 작업장의 실정에 맞게 보행거리를 완화하여 배치할 수 있으며, 지하구의 경우에는 화재발생의 우려가 있거나 사람의 접근이 쉬운 장소에 한하여 설치할 수 있다<개정 2012.6.11>





//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 4호 가목



Check(NFSC101_4_1_4){

       KS

}



KS{

     isInstalled(FireExtinguisher, Floor)=True

     

     IF getObjectProperty(FireExtinguisher.sizeType)="SmallSize"

     THEN getObjectDistance(SpecificFireFightingBuilding.Wall, FireExtinguisher.One)<=20 m

          getObjectDistance(SpecificFireFightingBuilding.Column, FireExtinguisher.One)<=20 m



     ELSE IF getObjectProperty(FireExtinguisher.sizeType)="LargeSize"

     THEN getObjectDistance(SpecificFireFightingBuilding.Wall, FireExtinguisher.One)<=30 m

          getObjectDistance(SpecificFireFightingBuilding.Column, FireExtinguisher.One)<=30 m



     END IF 

} 




Python Code 변환 예정



Modify
11
19910 소화기구 및 자동소화장치의 화재안전기준(NFSC 101) 제 4조 2 항

② 이산화탄소 또는 할로겐화합물(할론 1301과 청정소화약제를 제외한다)을 방사하는 소화기구(자동확산소화장치를 제외한다)는 지하층이나 무창층 또는 밀폐된 거실로서 그 바닥면적이 20㎡ 미만의 장소에는 설치할 수 없다. 다만, 배기를 위한 유효한 개구부가 있는 장소인 경우에는 그러하지 아니하다.<개정 2008.12.15, 2012.6.11>





//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 2항

Check(NFSC101_4_2){

	KS

}



KS{

	FireExtinguisher myFireExtinguisher{

	getObjectProperty(FireExtinguishingEquipment.extinguishingAgentType) = "GasType"

	}

	Space mySpace{

		(getFloorNumber(Space) = -1

	OR hasSpace(Space, Window) = FALSE

	OR isObjectProperty(Room.isEnclosed)=TRUE)

	getObjectProperty(Space.FloorSlab) < 20 m2

	}



	getSpace(mySpace, myFireExtinguisher) = FALSE

} 




Python Code 변환 예정



Modify
12
19912 연결살수설비의 화재안전기준(NFSC 503) 제 4조 1 항 2호

2. 송수구는 구경 65㎜의 쌍구형으로 설치할 것. 다만, 하나의 송수구역에 부착하는 살수헤드의 수가 10개 이하인 것은 단구형의 것으로 할 수 있다.





//  연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 1항 2호



Check(NFSC503_4_1_2){

 IF CS THEN KS 

}

CS{

 Zone myZone{

  isObjectProperty(Zone.isWaterSupplyZone)=TRUE

 }

 hasObject(myZone.One,HookingUpSprinklerSystem.Head.)=TRUE

 getObjectCount(HookingUpSprinklerSystem.Head.) <= 10  

}

KS{

 Port myPort{
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
 getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" 

 }

 isObjectProperty(myPort.diameter) = 65mm

 getObjectProperty(myPort.shapeType) = "DoubleType"

} 




Python Code 변환 예정



Modify
13
19913 연결살수설비의 화재안전기준(NFSC 503) 제 4조 1 항 3호

3. 개방형헤드를 사용하는 송수구의 호스접결구는 각 송수구역마다 설치할 것. 다만, 송수구역을 선택할 수 있는 선택밸브가 설치되어 있고 각 송수구역의 주요구조부가 내화구조로 되어 있는 경우에는 그러하지 아니하다.





//  연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 1항 3호



Check(NFSC503_4_1_3){

 IF !CS THEN KS 

}

	Zone myZone{

  isObjectProperty(Zone.isWaterSupplyZone)=TRUE

	}

CS{

	Valve myValve{

	isObjectProerpty(Valve.isSelectionValve) = TRUE

	}

	isInstalled(myValve) = TRUE

	hasObject(myZone,MainStructuralPart) = TRUE

	isFireResistantStructure(MainStructuralPart) = TRUE

}

KS{

	 Port myPort{
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
 getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" 

 }

	Head myHead{

	getObjectProperty(Head.openAndCloseType) = "OpenType"

	}

	isInstalled(myPort.호스접결구, myZone.One) = TRUE

} 




Python Code 변환 예정



Modify
14
19915 연결살수설비의 화재안전기준(NFSC 503) 제 4조 1 항 5호

5. 송수구로부터 주배관에 이르는 연결배관에는 개폐밸브를 설치하지 아니 할 것. 다만, 스프링클러설비·물분무소화설비·포소화설비 또는 연결송수관설비의 배관과 겸용하는 경우에는 그러하지 아니하다.





//  연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 1항 5호



Check(NFSC503_4_1_5){

 IF !CS THEN KS 

}

CS{
Pipe myPipe1{
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
}
Pipe myPipe2{
getObjectProperty(Port.systemType) = "SprinklerSystem"
}
Pipe myPipe3{
getObjectProperty(Port.systemType) = "WaterSprayExtingushingSystem"
}
Pipe myPipe4{
getObjectProperty(Port.systemType) = "FoamExtinguishingSystem"
}
Pipe myPipe5{
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
}
Pipe myPipe6{
getObjectProperty(Port.systemType) = "FireDepartmentConnectionSystem"
}
	isShared(myPipe1, myPipe2, myPipe3, myPipe4) = TRUE

	OR isShared(myPipe5, myPipe6) = TRUE

}

KS{

	Port myPort{ 
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
	getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" 

 	}

 	Pipe myPipe{

	isObjectProperty(Pipe.isRiser)=TRUE

	}

	Vavle myValve{

	isObjectProperty(Valve.isShutoffValve)= TRUE

	}

 	isConnectedTo(myPort, Pipe) = TRUE

 	isConnectedTo(Pipe, myPipe) = TRUE

  	isInstalled(myValve, myPipe) = FALSE

 } 




Python Code 변환 예정



Modify
15
19917 연결살수설비의 화재안전기준(NFSC 503) 제 4조 3 항 1호

1. 폐쇄형헤드를 사용하는 설비의 경우에는 송수구·자동배수밸브·체크밸브의 순으로 설치할 것





//  연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 3항 1호



Check(NFSC503_4_3_1){

	IF CS THEN KS

}

CS{

	Head myHead{

	getObjectProperty(Head.openAndCloseType) = "EnclosedType"	

	}

	getObjectProperty(myHead.systemType) = "HookingUpSprinklerSystem"

}

KS{

	Port myPort{ 
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
	getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" 

 	}

 	Valve myValve1{

	isObjectProperty(Valve.isAutomiaticDeliveryValve) = TRUE

	}

	Valve myValve2{

	isObjectProperty(Valve.isCheckValve) = TRUE

	}



	isInstalledInOrder(myPort, myValve1, myValve2) = TRUE

} 




Python Code 변환 예정



Modify
16
19918 연결살수설비의 화재안전기준(NFSC 503) 제 4조 3 항 2호

2. 개방형헤드를 사용하는 설비의 경우에는 송수구·자동배수밸브의 순으로 설치할 것





//  연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 3항 2호



Check(NFSC503_4_3_2){

	IF CS THEN KS

}

CS{

	Head myHead{

	getObjectProperty(Head.openAndCloseType) = "OpenType"	

	}

	getObjectProperty(myHead.systemType) = "HookingUpSprinklerSystem"

}

KS{

	Port myPort{ 
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
	getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" 

 	}

 	Valve myValve1{

	isObjectProperty(Valve.isAutomiaticDeliveryValve) = TRUE

	}



	isInstalledInOrder(myPort, myValve1) = TRUE

} 




Python Code 변환 예정



Modify
17
19919 연결살수설비의 화재안전기준(NFSC 503) 제 4조 4 항

④개방형헤드를 사용하는 연결살수설비에 있어서 하나의 송수구역에 설치하는 살수헤드의 수는 10개 이하가 되도록 하여야 한다.





//  연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 4항

Check(NFSC503_4_4){
	IF CS THEN KS
}
CS{
	Head myHead{
	getObjectProperty(Head.openAndCloseType) = "OpenType"	
	}
	getObjectProperty(myHead.systemType) = "HookingUpSprinklerSystem"
}
KS{
	Zone myZone{
	isObjectProperty(Zone.isWaterSupplyZone) = TRUE
	}
	Head myHead{
	isInstalled(HookingUpSprinklerSystem.Head, myZone.One) = TRUE
	}

	getObjectCount(myHead) <= 10
} 




Python Code 변환 예정



Modify
18
19920 연결살수설비의 화재안전기준(NFSC 503) 제 5조 1 항

제5조(배관 등) ①배관은 배관용탄소강관(KS D 3507) 또는 압력배관용탄소강관(KS D 3562)이나 이와 동등 이상의 강도·내식성 및 내열성을 가진 것으로 하여야 한다. 다만, 다음 각 호의 어느 하나에 해당하는 장소에는 법 제39조에 따라 제품검사에 합격한 소방용 합성수지배관으로 설치할 수 있다. <개정 2012.8.20>





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

Check(NFSC503_5_1){
	IF !CS THEN KS
}
CS{
	getResult(NFSC503_5_1_2) = TRUE
	getResult(NFSC503_5_1_3) = TRUE
}
KS{
	getObjectProperty(Pipe.Material) = "KS D 3507"
	OR getObjectProperty(Pipe.Material) = "KS D 3562"
} 




Python Code 변환 예정



Modify
19
19924 연결살수설비의 화재안전기준(NFSC 503) 제 5조 2 항 1호

1. 연결살수설비 전용헤드를 사용하는 경우에는 다음 표에 따른 구경 이상으로 할 것





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



Check(NFSC503_5_2_1){

	IF CS THEN KS

}

CS{

getObjectProperty(Head.systemType) = "HookingUpSprinklerSystem"
	isObjectProperty(Head.isShared) = FALSE 

}

KS{

	Head myHead{

	isInstalled(Head., Pipe.One) = TRUE

	}

	NH = getObjectCount(myHead)



	IF NH = 1 THEN getObjectDiameter(Pipe) >= 32mm

	ELSE IF NH = 2 THEN getObjectDiameter(Pipe) >= 40mm

	ELSE IF NH = 3 THEN getObjectDiameter(Pipe) >= 50mm

	ELSE IF NH = 4 OR NH = 5 THEN getObjectDiameter(Pipe) >= 65mm

	ELSE IF NH >= 6 AND HN <= 10 THEN getObjectDiameter(Pipe) >= 80mm

} 





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



Check(NFSC503_5_2_2){

	IF CS THEN KS

}

CS{

	isObjectProperty(SprinklerSystem.Head.systemType) = "HookingUpSprinklerSystem"

}

KS{

	getResult(NFSC103_*_1) = TRUE

} 




Python Code 변환 예정Python Code 변환 예정



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

2. 스프링클러헤드를 사용하는 경우에는 「스프링클러설비의 화재안전기준(NFSC 103)」 별표 1의 기준에 따를 것





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



Check(NFSC503_5_2_1){

	IF CS THEN KS

}

CS{
getObjectProperty(Head.systemType) = "HookingUpSprinklerSystem"
	isObjectProperty(Head.isShared) = FALSE 

}

KS{

	Head myHead{

	isInstalled(HookingUpSprinklerSystem.Head., Pipe.One) = TRUE

	}

	NH = getObjectCount(myHead)



	IF NH = 1 THEN getObjectDiameter(Pipe) >= 32mm

	ELSE IF NH = 2 THEN getObjectDiameter(Pipe) >= 40mm

	ELSE IF NH = 3 THEN getObjectDiameter(Pipe) >= 50mm

	ELSE IF NH = 4 OR NH = 5 THEN getObjectDiameter(Pipe) >= 65mm

	ELSE IF NH >= 6 AND HN <= 10 THEN getObjectDiameter(Pipe) >= 80mm

} 




Python Code 변환 예정



Modify
21
19929 연결살수설비의 화재안전기준(NFSC 503) 제 5조 4 항 1호

1. 송수구의 가장 먼 가지배관의 끝으로부터 연결하여 설치할 것





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

Check(NFSC503_5_4_1){
	KS
}
KS{
	Pipe myPipe1{
	isObjectProperty(Pipe.isForTest) = TRUE
	}
	Port myPort{
	getObjectProperty(Port.typeForWater) = "FireDepartmentConnection"
	}
	Pipe myPipe2{
	isObjectProperty(Pipe.isBranchLines) = TRUE
	isFarthestDistance(myPort, Pipe) = TRUE
	}

	isConnectedTo(myPipe1, myPipe2) = TRUE
} 




Python Code 변환 예정



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

⑤개방형헤드를 사용하는 연결살수설비의 수평주행배관은 헤드를 향하여 상향으로 100분의 1 이상의 기울기로 설치하고 주배관중 낮은 부분에는 자동배수밸브를 제4조제3항제3호의 기준에 따라 설치하여야 한다. <개정 2012.8.20>





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



Check(NFSC503_5_5){

	IF CS THEN KS

}

CS{

	Head myHead{

	isObjectProperty(Head.openAndCloseType) = "OpenType"

	}

	isInstalled(myHead, HookingUpSprinklerSystem) = TRUE

}

KS{

	Pipe myPipe{

	isObjectProperty(Pipe.isFeedMains) = TRUE
getObjectProperty(Pipe.systemType) = "HookingUpSprinklerSystem"

	}

	두 객체의 기울기(myPipe, Head) >= 1/100

} 




Python Code 변환 예정



Modify
23
19936 연결살수설비의 화재안전기준(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 변환 예정



Modify
24
19939 연결살수설비의 화재안전기준(NFSC 503) 제 5조 10 항 1호

1. 가지배관에는 헤드의 설치지점 사이마다 1개 이상의 행가를 설치하되, 헤드간의 거리가 3.5 m를 초과하는 경우에는 3.5m 이내마다 1개 이상 설치할 것. 이 경우 상향식헤드와 행가 사이에는 8 ㎝ 이상의 간격을 두어야 한다.





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

Check(NFSC503_5_10_1){
      KS
}

Pipe myPipe{
    isObjectProperty(Pipe.isBranchLines)=True
}
Head myHead{
   getObjectProperty(Head.installationDirectionType)="BottomUpType"
}

KS{
    isInstalled(Hanger, myPipe, "헤드의 설치지점 사이")=True
    IF getObjectDistance(Head)>3.5 m
    THEN isInstalled(Hanger, myPipe, 3.5 m)=True
         getObjectDistance(myHead, Hanger)>8 cm

    getResult(NFSC503_5_10_3)=True
} 




Python Code 변환 예정



Modify
25
19942 연결살수설비의 화재안전기준(NFSC 503) 제 6조 1 항

제6조(연결살수설비의 헤드) ①연결살수설비의 헤드는 연결살수설비전용헤드 또는 스프링클러헤드로 설치하여야 한다.





//연결살수설비의 화재안전기준(nfsc 503) 6조 (배관 등) 1항
Check(NFSC503_6_1){
	KS
}

KS{
	getObjectProperty(HookingUpSprinklerSystem.Head) = "SprinklerHead"
} 




Python Code 변환 예정



Modify
26
19946 연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항

③폐쇄형스프링클러헤드를 설치하는 경우에는 제2항의 규정 외에 다음 각 호의 기준에 따라 설치하여야 한다. <개정 2012.8.20>





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항

Check(NFSC503_6_3){

	IF CS THEN KS

}



CS{

	Head  myHead{

		getObjectProperty(SprinklerSystem.Head.openAndCloseType) = "EnclosedType"

	}

	isExist(myHead) = TRUE

}



KS{

	getResult(NFSC503_6_3_2) = TRUE

	getResult(NFSC503_6_3_3) = TRUE

	getResult(NFSC503_6_3_5) = TRUE

	getResult(NFSC503_6_3_6) = TRUE

} 




Python Code 변환 예정



Modify
27
19948 연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 3호

3. 스프링클러헤드와 그 부착면(상향식헤드의 경우에는 그 헤드의 직상부의 천장·반자 또는 이와 비슷한 것을 말한다. 이하 같다)과의 거리는 30㎝ 이하로 할 것





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 3호
Check(NFSC503_6_3_3){
	IF (CS1 THEN KS1) or (CS2 THEN KS2)
}

CS1{
	getObjectProperty(SprinklerHead) != "BottomUpType"
}

KS1{
	getObjectDistance(SprinklerHead.AttachingToSurface, SprinklerHead) <= 30CM
}

CS2{
	getObjectProperty(SprinklerHead) = "BottomUpType"
}

KS2{
	getObjectVerticalDistance(Ceiling, SprinklerHead) <= 30CM
} 




Python Code 변환 예정



Modify
28
19949 연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 5호

5. 스프링클러헤드의 반사판은 그 부착면과 평행하게 설치할 것. 다만, 측벽형헤드 또는 제7호에 따라 연소할 우려가 있는 개구부에 설치하는 스프링클러헤드의 경우에는 그러하지 아니하다.





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 5호

Check(NFSC503_6_3_5){

	IF !CS THEN KS

}



CS{

	getObjectProperty(SprinklerSystem.Head.shapeType) = "SideWallType"

}



KS{

	isParallel(SprinklerSystem.Head.Deflector, SprinklerSystem.Head.AttachingToSurface) = TRUE

} 




Python Code 변환 예정



Modify
29
19950 연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 6호

6. 천장의 기울기가 10분의 1을 초과하는 경우에는 가지관을 천장의 마루와 평행하게 설치하고, 스프링클러헤드는 다음 각 목의 어느 하나의 기준에 적합하게 설치할 것





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 6호

Check(NFSC503_6_3_6){

	IF CS THEN (KS1 AND KS2)

}



CS{

	getObjectProperty(Ceiling.gradient) > 0.1

}



KS1{
isObjectProperty(Pipe.isBranchLines) = TRUE
	isParallel(Pipe, Ceiling.Top.) = TRUE

}



KS2{

	getResult(NFSC503_6_3_6_1) = TRUE

	getResult(NFSC503_6_3_6_2) = TRUE

} 




Python Code 변환 예정



Modify
30
19954 연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 8호

8. 습식 연결살수설비외의 설비에는 상향식스프링클러헤드를 설치할 것. 다만, 다음 각 목의 어느 하나에 해당하는 경우에는 그러하지 아니하다.





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 8호

Check(NFSC503_6_3_8){

	IF CS THEN KS

}



CS{


	isObjectProperty(SprinklerSystem.type) != WetPipeSprinklerSystem

	(getResult(NFSC503_6_3_8_1) = FALSE

	OR getResult(NFSC503_6_3_8_2) = FALSE)

}



KS{

	mySprinklerHead{

		getObjectProperty(SprinklerSystem.Head.installationDirectionType) = "BottomUpType"

	}

	isExist(mySprinklerHead) = TRUE

} 




Python Code 변환 예정



Modify
31
19956 연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 8호 다 목

다. 개방형스프링클러헤드를 사용하는 경우





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 8호 다목

Check(NFSC503_6_3_8_3){

	KS

}



KS{

	Head myHead{

		getObjectProperty(SprinklerSystem.Head.openAndCloseType) = "OpenType"

	}

	isExist(myHead) = TRUE

} 




Python Code 변환 예정



Modify
32
19957 연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 9호

9. 측벽형스프링클러헤드를 설치하는 경우 긴변의 한쪽벽에 일렬로 설치(폭이 4.5m 이상 9m 이하인 실은 긴변의 양쪽에 각각 일렬로 설치하되 마주보는 스프링클러헤드가 나란히꼴이 되도록 설치)하고 3.6m 이내마다 설치할 것





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 9호

Check(NFSC503_6_3_9){

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

}



CS1{

	SprinklerHead mySprinklerHead{

		getObjectProperty(SprinklerHead.shapeType) = "SideWallType"

	}

	isExist(mySprinklerHead) = TRUE

	getObjectWidth(Room) < 4.5m

	OR getObjectWidth(Room) > 9m

}



KS1{

	SprinklerHead mySprinklerHead{

		getObjectProperty(SprinklerHead.shapeType) = "SideWallType"

	}

	getObjectWidth(mySprinklerHead, c) < 3.6m

}



CS2{

	Head  myHead{

		getObjectProperty(SprinklerSystem.Head.shapeType) = "SideWallType"

	}

	isExist(mySprinklerHead) = TRUE

	getObjectWidth(Room) >= 4.5m

	OR getObjectWidth(Room) <= 9m

}



KS2{

	Head myHead{

		getObjectProperty(SprinklerSystem.Head.shapeType) = "SideWallType"

	}

	isParallel(mySprinklerHead, Wall) = TRUE

} 




Python Code 변환 예정



Modify
33
19959 연결살수설비의 화재안전기준(NFSC 503) 제 6조 4 항 1호

1. 연결살수설비 전용의 개방형헤드를 설치할 것





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 4항 1호
Check(NFSC503_6_4_1){
	KS
}

KS{
	getObjectProperty(HookingUpSprinklerSystem.Head.openAndCloseType) = "OpenType"
} 




Python Code 변환 예정



Modify
34
72614 연결살수설비의 화재안전기준(NFSC 503) 제 4조 1 항 4호

4. 지면으로부터 높이가 0.5m 이상 1m 이하의 위치에 설치할 것





Check(NFSC503_4_1_4){

 KS

}

KS{

	Port myPort{ 
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"

	getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" 

 	}

 	getObjectVerticalDistance(Ground, myPort) >= 0.5m

 	getObjectVerticalDistance(Ground, myPort) <= 1m

} 




Python Code 변환 예정



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

5. 구경 65㎜의 쌍구형으로 할 것





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



Check(NFSC502_4_0_5){

       KS

}



KS{



Port myPort{
  getObjectProperty(	Port.typeForWater)="FireDepartmentConnection  "
       getObjectProperty(Port.shapeType)="DoubleType"

  }



   getObjectDiameter(myFireDepartmentConnection)= 65 mm

} 




Python Code 변환 예정



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

가. 습식의 경우에는 송수구·자동배수밸브·체크밸브의 순으로 설치할 것





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



Check(){

     IF CS THEN KS

}



CS{

     getObjectProperty(FireDepartmentConnectionSystem.dryWetType)="WetFireDepartmentConnectionSystem"

}



KS{

    // 송수구·자동배수밸브·체크밸브의 순으로 설치할 것

} 




Python Code 변환 예정



Modify
37
20468 연결송수관설비의 화재안전기준(NFSC 502) 제 4조 8호 나 목

나. 건식의 경우에는 송수구·자동배수밸브·체크밸브·자동배수밸브의 순으로 설치할 것





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



Check(NFSC502_4_0_8_나){

    IF CS THEN KS

}



CS{

     getObjectProperty(FireDepartmentConnectionSystem.dryWetType)="DryFireDepartmentConnectionSystem"

}



KS{

    //  송수구·자동배수밸브·체크밸브·자동배수밸브의 순으로 설치할 것

  

} 




Python Code 변환 예정



Modify
38
20471 연결송수관설비의 화재안전기준(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 변환 예정



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

1. 배관 내 사용압력이 1.2 ㎫ 미만일 경우에는 다음 각 목의 어느 하나에 해당하는 것 또는 동등 이상의 강도·내식성 및 내열성을 가진 것





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

Check(NFSC502_5_2_1){
        IF CS THEN KS
}

CS{
   getObjectProperty(Pipe.workingPressure)<1.2 MPa 

}

KS{
     getResult(NFSC502_5_2_1_가)=True
     OR getResult(NFSC502_5_2_1_나)=True
     OR getResult(NFSC502_5_2_1_다)=True
} 




Python Code 변환 예정



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

나. 이음매 없는 구리 및 구리합금관(KS D 5301). 다만, 습식의 배관에 한한다.





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

Check(NFSC502_5_2_1_나){
          IF CS THEN KS
}

CS{
   getObjectProperty(Pipe.type)="WetPipe"
}

KS{
   getObjectMaterial(Pipe)="KSD5301"
} 




Python Code 변환 예정



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

2. 배관 내 사용압력이 1.2 ㎫ 이상일 경우에는 압력배관용탄소강관(KS D 3562) 또는 이와 동등 이상의 강도·내식성 및 내열성을 가진 것





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

Check(NFSC502_5_2_2){
      IF CS THEN KS 
}

CS{
  getObjectProperty(Pipe.workingPressure)>=1.2 MPa 

}

KS{
  getObjectMaterial(Pipe)="KSD3562"
  
} 




Python Code 변환 예정



Modify
42
20481 연결송수관설비의 화재안전기준(NFSC 502) 제 5조 4 항

④ 연결송수관설비의 배관은 주배관의 구경이 100㎜ 이상인 옥내소화전설비·스프링클러설비 또는 물분무등소화설비의 배관과 겸용할 수 있다.[종전의 제2항에서 이동 2014.8.18]





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

Check(NFSC502_5_4){
	IF CS THEN KS
}
CS2{
	isObjectProperty(Pipe.systemType) = "FireDepartmentConnectionSystem"
}
KS{
	Pipe myPipe1{
	isObjectProperty(Pipe.isRiser) = TRUE
	getObjectProperty(Pipe.diameter) >= 100mm
	isObjectProperty(Pipe.systemType) = "IndoorFireHydrantSystem"
	}
	Pipe myPipe2{
	isObjectProperty(Pipe.isRiser) = TRUE
	getObjectProperty(Pipe.diameter) >= 100mm
	isObjectProperty(Pipe.systemType) = "WaterSprayExtingushingSystem"
	}
	isShared(Pipe,myPipe1) = TRUE
	OR isShared(Pipe,myPipe2) = TRUE
	OR isShared(Pipe,myPipe1) != TRUE
	OR isShared(Pipe,myPipe2) != TRUE
} 




Python Code 변환 예정



Modify
43
20489 연결송수관설비의 화재안전기준(NFSC 502) 제 6조 3호

3. 11층 이상의 부분에 설치하는 방수구는 쌍구형으로 할 것. 다만, 다음 각목의 어느 하나에 해당하는 층에는 단구형으로 설치할 수 있다.





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



Check(NFSC502_6_0_3){

     IF CS1 THEN KS1 ELSE IF CS2 THEN KS2

}





CS1{

   Space mySpace{

      getFloorNumber(Space)>=11

   }

   

    isInstalled(FireDepartmentConnectionSystem.Port, mySpace)=True

}



KS1{

       getObjectProperty(FireDepartmentConnectionSystem.Port.shapeType)="DoubleType"

}





CS2{

   getResult(NFSC502_6_0_3_가)=True

   OR getResult(NFSC502_6_0_3_나)=True

}



KS2{

getObjectProperty(FireDepartmentConnectionSystem.Port.shapeType)="SingleType"

} 




Python Code 변환 예정



Modify
44
20493 연결송수관설비의 화재안전기준(NFSC 502) 제 6조 5호

5. 방수구는 연결송수관설비의 전용방수구 또는 옥내소화전방수구로서 구경 65㎜의 것으로 설치할 것





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



Check(NFSC502_6_0_5){

      KS

}



KS{

    getObjectProperty(FireDepartmentConnectionSystem.Port.isShared)= FALSE

    OR getObjectProperty(FireDepartmentConnectionSystem.Port.typeForWater)="IndoorFireHydrantDischarge"


Port myPort{
Port.typeForWater = "Delivery"
}
    getObjectProperty(myPortt.diameter)=65 mm 

} 




Python Code 변환 예정



Modify
45
20098 연소방지설비의 화재안전기준(NFSC 506) 제 4조 1 항

제4조(배관) ①배관은 배관용탄소강관(KS D 3507) 또는 압력배관용탄소강관(KS D 3562)이나 이와 동등 이상의 강도·내식성 및 내열성을 가진 것으로 하여야 한다. 다만, 다음 각 호의 어느 하나에 해당하는 장소에는 법 제39조에 따라 제품검사에 합격한 소방용 합성수지배관으로 설치할 수 있다.<개정 2012.8.20>





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


KS{
    getObjectProperty(Pipe.Material)="KSD3507"
    OR getObjectProperty(Pipe.Material)="KSD3562"
} 




Python Code 변환 예정



Modify
46
20099 연소방지설비의 화재안전기준(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 변환 예정



Modify
47
20102 연소방지설비의 화재안전기준(NFSC 506) 제 4조 4 항 1호

1. 연소방지설비전용헤드를 사용하는 경우에는 다음 표에 따른 구경 이상으로 할 것





//연소방지설비의 화재안전 기준(nfsc 506) 4조 (배관) 4항 1호
Check(NFSC506_4_4_1){
	IF CS THEN KS
}

CS{
	isInstalled(CombustionProtectionSystem, ?) = TRUE
}

KS{
	Pipe myPipe{
		hasObject(CombustionProtectionSystem, Pipe) = TRUE
	}

	SprinklerHead mySprinklerHead{
		isInstalled(myPipe, SprinklerHead) = TRUE
	}

	(getObjectCount(mySprinklerHead) = 1 
	getObjectProperty(myPipe.Diameter) >= 32mm)
	OR(getObjectCount(mySprinklerHead) = 2 
	getObjectProperty(myPipe.Diameter) >= 40mm)
	OR(getObjectCount(mySprinklerHead) = 3
	getObjectProperty(myPipe.Diameter) >= 50mm)
	OR(getObjectCount(mySprinklerHead) = 4
	getObjectProperty(myPipe.Diameter) >= 65mm)
	OR(getObjectCount(mySprinklerHead) = 5
	getObjectProperty(myPipe.Diameter) >= 65mm)
	OR(getObjectCount(mySprinklerHead) >= 6
	getObjectProperty(myPipe.Diameter) >= 80mm)
} 




Python Code 변환 예정



Modify
48
20104 연소방지설비의 화재안전기준(NFSC 506) 제 4조 5 항

⑤연소방지설비에 있어서의 수평주행배관의 구경은 100㎜ 이상의 것으로 하되, 연소방지설비전용헤드 및 스프링클러헤드("방수헤드"라 한다. 이하 같다)를 향하여 상향으로 1,000분의 1 이상의 기울기로 설치하여야 한다.<개정 2012.8.20>





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

KS{
	Pipe myPipe{
		isObjectProperty(Pipe.isFeedMains) = TRUE
	}

	isInstalled(myPipe, CombustionProtectionSystem) = TRUE
	getObjectProperty(myPipe.diameter) >= 100mm
} 




Python Code 변환 예정



Modify
49
20106 연소방지설비의 화재안전기준(NFSC 506) 제 4조 6 항 3호

3. 하향식헤드를 설치하는 경우에 가지배관으로부터 헤드에 이르는 헤드접속배관은 가지관상부에서 분기할 것





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

CS{
	Pipe myPipe{
		hasObject(CombustionProtectionSystem, Pipe) = TRUE
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

	Head myHead{
		getObjectProperty(Head.installationDirectionType) = "TopDownType"
	}

	isInstalled(myPipe, myHead) = TRUE
}

KS{
	Pipe myPipe{
		hasObject(CombustionProtectionSystem, Pipe) = TRUE
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

	Head myHead{
		getObjectProperty(Head.installationDirectionType) = "TopDownType"
	}

	Pipe myPipe2{
		isConnectedTo(myPipe, Pipe) = TRUE
		isConnectedTo(myHead, Pipe) = TRUE
	}

	isDiverged(가지관 상부, myPipe2) = TRUE
} 




Python Code 변환 예정



Modify
50
20108 연소방지설비의 화재안전기준(NFSC 506) 제 4조 7 항 1호

1. 가지배관에는 헤드의 설치지점 사이마다 1개 이상의 행가를 설치하되, 헤드간의 거리가 3.5m을 초과하는 경우에는 3.5m 이내마다 1개 이상 설치할 것. 이 경우 상향식헤드와 행가 사이에는 8㎝ 이상의 간격을 두어야 한다.





//  연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 7항 1호

Check(NFSC506_4_7_1){
	IF (CS1 THEN KS1) OR (CS2 THEN KS2)
}

CS1{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

	Head myHead{
		isInstalled(Head, myPipe) = TRUE
	}

	getObjectInterval(myHead) <= 3.5m
}

KS1{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

	Head myHead{
		isInstalled(Head, myPipe) = TRUE
	}

	getobjectCountInInterval(Hanger, myHead) >= 1
}

CS2{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

	Head myHead{
		isInstalled(Head, myPipe) = TRUE
	}

	getObjectInterval(myHead) > 3.5m
}

KS2{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

	Head myHead{
		isInstalled(Head, myPipe) = TRUE
	}

	getObjectInterval(myHead) = OIH
	OIH/3.5 = OIHH
	(OIHH-1) <= getObjectCountInInterval(Hanger, myHead) < OIHH
	getObjectInterval(Hanger) = 3.5m

	Head myHead2{
		getObjectProperty(Head.installationDirectionType) = "BottomUpType"
	}

	getObjectInterval(myHead2, Hanger) >= 8cm
} 




Python Code 변환 예정



Modify
51
20111 연소방지설비의 화재안전기준(NFSC 506) 제 4조 8 항

⑧연소방지설비는 습식외의 방식으로 하여야 한다.





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

KS{
	getObjectProperty(CombustionProtectionSystem.type) != "WetPipeCombustionProtectionSystem"
} 




Python Code 변환 예정



Modify
52
20117 연소방지설비의 화재안전기준(NFSC 506) 제 6조 2호

2. 송수구는 구경 65㎜의 쌍구형으로 할 것





//	연소방지설비의 화재안전기준(nfsc 506) 6조 (송수구) 2호
Check(NFSC506_6_0_2){
	KS
}

KS{

	Port myPort{
		getObjectProperty(Port.typeForWater) = "FireDepartmentConnection"
	}

	isInstalled(myPort, CombustionProtectionSystem) = TRUE
	getObjectProperty(myPort.diameter) = 65mm
	getObjectProperty(myPort.shapeType) = "DoubleType"
} 




Python Code 변환 예정



Modify
53
20119 연소방지설비의 화재안전기준(NFSC 506) 제 6조 6호

6. 송수구로부터 주배관에 이르는 연결배관에는 개폐밸브를 설치하지 아니할 것





//	연소방지설비의 화재안전기준(nfsc 506) 6조 (송수구) 6호
Check(NFSC506_6_0_6){
	KS
}

KS{
	Port myPort{
		getObjectProperty(Port.typeForWater) = "FireDepartmentConnection"
	}

	Pipe myPipe2{
		isObjectProperty(Pipe.isRiser) = TRUE
	}


	Pipe myPipe{
		isConnectedTo(Pipe, myPort) = TRUE
		isConnectedTo(Pipe, myPipe2) = TRUE
	}

	Valve myValve{
		isObjectProperty(Valve.isShutoffValve) = TRUE
	}

	isInstalled(myValve, myPipe) = FALSE
} 




Python Code 변환 예정



Modify
54
72615 연소방지설비의 화재안전기준(NFSC 506) 제 6조 4호

4. 지면으로부터 높이가 0.5m 이상 1m 이하의 위치에 설치할 것





//	연소방지설비의 화재안전기준(nfsc 506) 6조 (송수구) 4호
Check(NFSC506_6_0_4){
	KS
}

KS{
	Port myPort{
		getObjectProperty(Port.typeForWater) = "FireDepartmentConnection"
		isInstalled(Port, CombustionProtectionSystem) = TRUE
	}
		
	getObjectVerticalLocation(myPort, Ground) >= 0.5m
	getObjectVerticalLocation(myPort, Ground) <= 1m
}
 




Python Code 변환 예정



Modify
55
72579 옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 1 항 1호 가 목

가. 배관용 탄소강관(KS D 3507)





//  옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 1항 1호 가목

Check(NFSC102_6_1_1_가){
	KS
}
KS{
	getObjectProperty(Pipe.Material) = "KS_D_3507"
} 




Python Code 변환 예정



Modify
56
72580 옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 1 항 1호 나 목

나. 이음매 없는 구리 및 구리합금관(KS D 5301). 다만, 습식의 배관에 한한다.





//  옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 1항 1호 나목

Check(NFSC102_6_1_1_나){
	IF CS THEN KS
}
CS{
	isObjectProperty(Pipe.systemType) = "WetPipeSprinklerSystem"
}
KS{
	getObjectProperty(Pipe.Material) = "KS_D_5301"
} 




Python Code 변환 예정



Modify
57
72581 옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 1 항 1호 다 목

다. 배관용 스테인리스강관(KS D 3576) 또는 일반배관용 스테인리스강관(KS D 3595)






//  옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 1항 1호 다목

Check(NFSC102_6_1_1_다){
	KS
}
KS{
	getObjectProperty(Pipe.Material) = "KS_D_3576"
	OR getObjectProperty(Pipe.Material) = "KS_D_3595"
} 




Python Code 변환 예정



Modify
58
72582 옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 1 항 2호

2. 배관 내 사용압력이 1.2 ㎫ 이상일 경우에는 압력배관용탄소강관(KS D 3562) 또는 이와 동등 이상의 강도·내식성 및 내열성을 가진 것<신설 2013.6.10>





//  옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 1항 2호

Check(NFSC102_6_1_2){
	IF CS THEN KS
}
CS{
	isObjectProperty(Pipe.workingPressure) >= 1.2
}
KS{
	getObjectProperty(Pipe.Material) = "KS D 3562"
} 




Python Code 변환 예정



Modify
59
19990 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 8조의2조 2 항 1호

1. 구획된 각 실로부터 주출입구 또는 비상구까지 설치할 것





//	유도등 및 유도표지의 화재안전기준(nfsc 303)  8조의2 (피난유도선 설치기준) 2항 1호

Check(NFSC303_8-2_2_1){

	KS

}



KS{

	

	Door myDoor{

		isObjectProperty(Door.isEntrance) = TRUE

		getObjectProperty(Door.functionType) = "Main"

	}



	Door myDoor2{

		getObjectProperty(Door.functionType) = "Emergency"

	}



	getObjectCountInInterval(LeadingLine, Room, myDOor) >=1

	OR getObjectCountInInterval(LeadingLine, Rom, myDoor2) >=1

} 




Python Code 변환 예정



Modify
60
20442 자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 10호 가 목

가. 감지기의 부착높이에 따라 다음 표에 따른 바닥면적마다 1개 이상으로 할 것





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

Check(NFSC203_7_3_10_가){

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

}



	Sensor mySensor1{

	getObjectProperty(Sensor.type) = "Type1"

	OR getObjectProperty(Sensor.type) = "Type2"

	}

	Sensor mySensor2{

	isObjectProperty(Sensor.type) = "Type3"

	}



CS1{

	getObjectVerticalDistance(FloorSlab, Sensor) < 4m

} 

KS1{

	isInstalled(mySensor1, FloorSlab.Space, C, 150) = TRUE)

	OR isInstalled(mySensor2, FloorSlab.Space, C, 50) = TRUE)

}

CS2{

	getObjectVerticalDistance(FloorSlab, Sensor) >= 4m

	getObjectVerticalDistance(FloorSlab, Sensor) < 20m

}

KS2{

	isInstalled(mySensor1, FloorSlab.Space, C, 75) = TRUE)

} 




Python Code 변환 예정



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

11. 열복합형감지기의 설치에 관하여는 제3호 및 제9호를, 연기복합형감지기의 설치에 관하여는 제10호를, 열연기복합형감지기의 설치에 관하여는 제5호 및 제10호 나목 또는 마목을 준용하여 설치할 것





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



Check(NFSC203_7_3_11){

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

}

CS1{

	getObjectProperty(Sensor.isIntegratedType) = "HeatIntegratedType"

}

KS1{

	getResult(NFSC203_7_3_3) = TRUE

	OR getResult(NFSC203_7_3_9) = TRUE

}	

CS2{

	getObjectProperty(Sensor.isIntegratedType) = "SmokeIntegratedType"

}

KS2{

	getResult(NFSC203_7_3_10) = TRUE

}	

CS3{

	getObjectProperty(Sensor.isIntegratedType) = "HeatAndSmokeIntegratedType"

}

KS3{

	getResult(NFSC203_7_3_5) = TRUE

	OR (getResult(NFSC203_7_3_10_나) = TRUE

	OR getResult(NFSC203_7_3_10_마) = TRUE)

} 




Python Code 변환 예정



Modify
62
20447 자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 12호 라 목

라. 감지기와 감지구역의 각부분과의 수평거리가 내화구조의 경우 1종 4.5m 이하, 2종 3m 이하로 할 것. 기타 구조의 경우 1종 3m 이하, 2종 1m 이하로 할 것





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

Check(NFSC203_7_3_12_라){

	IF (CS1 THEN KS1 AND KS2) OR (!CS1 THEN KS3 AND KS4)

}

	Zone myZone{

	isObjectProperty(Zone.isDetectionZone) = TRUE

	}

	Sensor mySensor1{

	getObjectProperty(Sensor.type) = "Type1"

	}

	Sensor mySensor2{

	getObjectProperty(Sensor.type) = "Type2"

	}

CS1{

	isFireResistantStructure(myZone.Wall) = TRUE

	isFireResistantStructure(myZone.Column) = TRUE

}

KS1{

	getElementDistance(mySensor1, myZone.Wall) <= 4.5m

	getElementDistance(mySensor1, myZone.Column) <= 4.5m

}

KS2{

	getElementDistance(mySensor2, myZone.Wall) <= 3m

	getElementDistance(mySensor2, myZone.Column) <= 3m

}

KS3{

	getElementDistance(mySensor1, myZone.Wall) <= 3m

	getElementDistance(mySensor1, myZone.Column) <= 3m	

}

KS4{

	getElementDistance(mySensor2, myZone.Wall) <= 1m

	getElementDistance(mySensor2, myZone.Column) <= 1m	

} 




Python Code 변환 예정



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

④ 제3항에도 불구하고 다음 각 호의 장소에는 각각 광전식분리형감지기 또는 불꽂감지기를 설치하거나 광전식공기흡입형감지기를 설치할 수 있다.





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

Check(NFSC203_7_4){
	IF CS THEN KS
}
CS{
	getResult(NFSC203_7_4_1) = TRUE
	OR getResult(NFSC203_7_4_2) = TRUE
}
KS{
	Sensor mySensor1{
	getObjectProperty(Sensor.sensingMode) = "PhotoelectricType"
	getObjectProperty(Sensor.sensingRange) = "SeparateType"
	}	
	Sensor mySensor2{
	getObjectProperty(Sensor.sensingMode) = "PhotoelectricType"
	getObjectProperty(Sensor.sensingRange) = "AspiratingType"
	}

	isInstalled(mySensor1) = TRUE
	OR isInstalled(mySensor2) = TRUE
} 




Python Code 변환 예정



Modify
64
20453 자동화재탐지설비 및 시각경보장치의 화재안전기준(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 변환 예정



Modify
65
20454 자동화재탐지설비 및 시각경보장치의 화재안전기준(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 변환 예정



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



Modify
68
12316 주차장법 시행규칙 제 16조의2조 1 항 3호 가 목

가. 중형 기계식주차장: 길이 5.05미터 이상, 너비 1.9미터 이상





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



Check(ERPA_16-2_0_3_가){

   IF CS THEN KS

}



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


}



KS{

    myParking.length>=5.05 m

    myParking.width>1.85 m

} 




Python Code 변환 예정



Modify
69
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
70
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
71
61126 주차장법 시행규칙 제 6조 1 항 12호 나 목

나. 「도로법」 제2조제1항제4호나목에 따른 방호(防護) 울타리





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

KS{
	isExist(CrashBarrier) = TRUE
	getObjectProperty(CrashBarrier) = "FallPreventionSafetyFacility"
} 




Python Code 변환 예정



Modify
72
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
73
61201 주차장법 시행규칙 제 16조의5조 1 항 2호

2. 기계식주차장치 출입구의 크기는 중형 기계식주차장의 경우에는 너비 2.3미터 이상, 높이 1.6미터 이상으로 하여야 하고, 대형 기계식주차장의 경우에는 너비 2.4미터 이상, 높이 1.9미터 이상으로 하여야 한다. 다만, 사람이 통행하는 기계식주차장치 출입구의 높이는 1.8미터 이상으로 한다.





Check(ERPA_16 – 5_1_2) { IF (CS1 then KS1) OR (CS2 then KS2) }
CS1 {
 ParkingLot myParkingLot {
  myParkingLot.operationType = "MechanicalParking" }
 getObjectProperty(myParkingLot.scale) = "MiddleSize"
 MechanicalParkingEquipment myMechanicalParkingEquipment {
  isExist(myMechanicalParkingEquipment, myParkingLot) = true }
 }
KS1{
 Opening myOpening1 {
  isExist(myOpening1, myMechanicalParkingEquipment) = true
  WD1 = getObjectWidth(myOpening1, a) >= 2.3m
  H1 = getObjectHeight(myOpening1, a) >= 1.6m }
 }
CS2 {
 ParkingLot myParkingLot {
  myParkingLot.operationType = "MechanicalParking" }
 getObjectProperty(myParkingLot.scale) = "LargeSize"
 MechanicalParkingEquipment myMechanicalParkingEquipment {
   isExist(myMechanicalParkingEquipment, myParkingLot) = true }
 }
KS2 {
 Opening myOpening2 {
  isExist(myOpening2, myMechanicalParkingEquipment) = true
  WD2 = getObjectWidth(myOpening2, a) >= 2.4m
  H2 = getObjectHeight(myOpening2, a) >= 1.9m }  } 




Python Code 변환 예정



Modify
74
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
75
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
76
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
77
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
78
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
79
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
80
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
81
61618 주차장법 시행규칙 제 6조 1 항 5호 다 목

다. 경사로의 차로너비는 직선형인 경우에는 3.3미터 이상(2차선의 경우에는 6미터 이상)으로 하고, 곡선형인 경우에는 3.6미터이상(2차선의 경우에는 6.5미터 이상)으로 하며, 경사로의 양측벽면으로부터 30센티미터 이상의 지점에 높이 10센티미터 이상 15센티미터 미만의 연석을 설치하여야 한다. 이 경우 연석 부분은 차로의 너비에 포함되는 것으로 본다.





//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호 다목
Check(ERPA_6_1_5_다){
       KS AND IF (CS1 THEN KS1 ELSE KS2) OR (CS2 THEN KS3 ELSE KS4)
}

KS{
	Wall myWall{
		hasObject(Ramp,Wall)=TRUE 
	}
	hasObject(Ramp, ParkingLot.Driveway)=TRUE 
	getElementDistance(myWall.Surface, 	Curb, a) >= 30cm
	10cm =< getObjectProperty(Curb.height) < 15cm
}

CS1{
	getObjectProperty(ParkingLot.Driveway.shapeType) = "LinearType"
	getObjectProperty(ParkingLot.Driveway.numberOfLane) >= 2

}
KS1{
	getOjbectProperty(ParkingLot.Driveway.width) >= 6m
}
KS2{
	getOjbectProperty(ParkingLot.Driveway.width) >= 3.3m
}

CS2{
	getObjectProperty(ParkingLot.Driveway.shapeType) = "CurvedType"
	getObjectProperty(ParkingLot.Driveway.numberOfLane) >= 2

}
KS1{
	getOjbectProperty(ParkingLot.Driveway.width) >= 6.5m
}
KS2{
	getOjbectProperty(ParkingLot.Driveway.width) >= 3.6m
} 




Python Code 변환 예정



Modify
82
61619 주차장법 시행규칙 제 6조 1 항 5호 라 목

라. 경사로의 종단경사도는 직선부분에서는 17퍼센트를 곡선부분에서는 14퍼센트를 초과하여서는 아니 된다.





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

CS1{
	getObjectProperty(ParkingLot.Driveway.shapeType) = "LinearType"
}
KS1{
	getObjectProperty(ParkingLot.Driveway.gradient) < 17%
}
CS2{
	getObjectProperty(ParkingLot.Driveway.shapeType) = "CurvedType"
}
KS2{
	getObjectProperty(ParkingLot.Driveway.gradient) < 14%
} 




Python Code 변환 예정



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



Modify
85
61635 주차장법 시행규칙 제 6조 1 항 12호

12. 노외주차장의 주차단위구획은 평평한 장소에 설치하여야 한다. 다만, 경사도가 7퍼센트 이하인 경우로서 시장ㆍ군수 또는 구청장이 안전에 지장이 없다고 인정하는 경우에는 그러하지 아니하다.





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

CS{
		getObjectProperty(ParkingLot.buildingType)="BuildingType"
		getObjectProperty(ParkingLot.Floor.numberOf) >= 2
}
KS{
	getResult(ERPA_6_1_12_나)=TRUE
} 




Python Code 변환 예정



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



Modify
87
71945 주차장법 시행규칙 제 16조의2조 1 항 3호 나 목

나. 대형 기계식주차장: 길이 5.3미터 이상, 너비 2.15미터 이상





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



Check(ERPA_16-2_0_3_나){

   IF CS THEN KS 

}



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

}





KS{

   myParking.length>5.3 m

   myParking.width>2.15 m

} 




Python Code 변환 예정



Modify
88
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
89
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
90
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
91
61916 주차장법 시행령 제 6조 1 항 6호

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





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

Check(EDPA_6_1_6){
KS
}

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




Python Code 변환 예정



Modify
92
62347 주택건설기준 등에 관한 규정 제 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 변환 예정



Modify
93
62348 주택건설기준 등에 관한 규정 제 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 변환 예정



Modify
94
62350 주택건설기준 등에 관한 규정 제 15조 3 항 1호

1. 적재하중이 0.9톤 이상일 것





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

KS{
	getObjectProperty(Elevator.loadingCapacity) >= 0.9
} 




Python Code 변환 예정



Modify
95
62351 주택건설기준 등에 관한 규정 제 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 변환 예정



Modify
96
62352 주택건설기준 등에 관한 규정 제 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 변환 예정



Modify
97
62353 주택건설기준 등에 관한 규정 제 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 변환 예정



Modify
98
62354 주택건설기준 등에 관한 규정 제 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 변환 예정



Modify
99
65563 주택법 시행령 제 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 변환 예정



Modify
100
20013 특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(NFSC 501A) 제 14조 3호 가 목

가. 배출댐퍼는 두께 1.5㎜ 이상의 강판 또는 이와 동등 이상의 성능이 있는 것으로 설치하여야 하며 비 내식성 재료의 경우에는 부식방지 조치를 할 것





//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 14조 (수직풍도에 따른 배출) 3호 가목

Check(NFSC501A_14_0_1_가){
        KS
}

KS{
   Damper myDamper{
     getObjectProperty(Damper.functionType)="배출댐퍼"
   }
   
   Material myMaterial{
      
   }
  getObjectProperty(myDamper.Material.name)="SteelPlate"
  getObjectProperty(myDamper.Material.depth)>=1.5 mm
} 




Python Code 변환 예정



Modify
  ◁prev 1   2   3   4   next▷  
 

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.