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

라. 계단실의 바깥쪽과 접하는 창문등(망이 들어 있는 유리의 붙박이창으로서 그 면적이 각각 1제곱미터 이하인 것을 제외한다)은 당해 건축물의 다른 부분에 설치하는 창문등으로부터 2미터 이상의 거리를 두고 설치할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 라목

check(REFB_9_2_1_4){

IF (CS1 AND CS2) THEN KS

}

CS1 {

Opening myOpening1{

	isConnectedTo(Stair.Space, Opening) = TRUE

	getObjectProperty(Opening.material)= “WireContainedGlass”

	getObjectProperty(Window.panelOperationType)= “FixedSashWindow”

	getObjectProperty(Opening.area)=< 1㎡	

}

CS2 {

Opening myOpening2{

	getObject(Opening) != myOpening1 	

}

KS{

getElementDistance(myOpening1, myOpening2, a)>=2m;	

}



} 




Python Code 변환 예정



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

마. 건축물의 내부와 접하는 계단실의 창문등(출입구를 제외한다)은 망이 들어 있는 유리의 붙박이창으로서 그 면적을 각각 1제곱미터 이하로 할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 마목
check(REFB_9_2_1_5){
     KS
}
KS{

Opening myOpening3{
	getObject(Opening)!= Door
	isConnectedToExternal(Opening) = FALSE
	hasElement(Stair.Space, Opening) = TRUE
}

	getObjectProperty(myOpening3.material)= “WireContainedGlass”
	getObjectProperty(myOpening3.type)= “FixedSashWindow”
	getObjectProperty(myOpening3.area)=< 1㎡
	
}    
 




Python Code 변환 예정



3
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 2호 가 목

가. 계단은 그 계단으로 통하는 출입구외의 창문등(망이 들어 있는 유리의 붙박이창으로서 그 면적이 각각 1제곱미터 이하인 것을 제외한다)으로부터 2미터 이상의 거리를 두고 설치할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 2호 가목

check(REFB_9_2_2_1){

    IF (CS) THEN KS

}





CS {

Opening myOpening1{			getObjectProperty(Opening.material)= “WireContainedGlass”

	getObjectProperty(Window.panelOperationType)= “FixedSashWindow”

	getObjectProperty(Opening.area)=< 1㎡	

}

Door myDoor {

	isAccessible(Stair, Door)=TRUE

}

Opening myOpening2{

	getObject(Opening) != myOpening1 

	getObject(Opening) != myDoor	

}

isExist(myOpening2) = TRUE

}



KS{

getElementDistance(Stair, myOpening2, a)>=2m;	

} 




Python Code 변환 예정



4
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 3호 마 목

마. 계단실·노대 또는 부속실에 설치하는 건축물의 바깥쪽에 접하는 창문등(망이 들어 있는 유리의 붙박이창으로서 그 면적이 각각 1제곱미터이하인 것을 제외한다)은 계단실·노대 또는 부속실외의 당해 건축물의 다른 부분에 설치하는 창문등으로부터 2미터 이상의 거리를 두고 설치할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 마목

check (REFB_9_2_3_5){

CS TEHN KS

}

CS{

	Space mySpace {

		getSpace(Stair.Space)

		getSpace(“Balcony”)

		getSpace(“AncillaryRoom”)

}

	Opening myOpening1 {

		hasElement(mySpace,Opening)=TRUE

		isConnectedToExternal(Opening) = TRUE



	Opening myOpening2 {

		getObjectProperty(Opening.material)= “WireContainedGlass”

		getObjectProperty(Window.panelOperationType)= “FixedSashWindow”

		getObjectProperty(Opening.area)=< 1㎡

}

	Opening myOpening3{

		getObject(myOpening1)-getObject(myOpening2)

}

isExist(myOpening3)=TRUE



KS{

	Opening myOpening4{

		getObject(Opening)-getObject(myOpening3)

}

getElementDistance(myOpening3, myOpening4, a)>=2m

} 




Python Code 변환 예정



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

사. 계단실의 노대 또는 부속실에 접하는 창문등(출입구를 제외한다)은 망이 들어 있는 유리의 붙박이창으로서 그 면적을 각각 1제곱미터 이하로 할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 사목

check (REFB_9_2_3_7){

CS TEHN KS

}

CS{

	Space mySpace {

		getSpace(“Balcony”)

		getSpace(“AncillaryRoom”)

		hasObject(Stair.Space,Space)=TRUE

}

	Opening myOpening {

		getObject(mySpace.Opening)

}

isExist(myOpening)=TRUE

}



KS{

getObjectProperty(myOpening.material)= “WireContainedGlass”

getObjectProperty(Window.panelOperationType)= “FixedSashWindow”

getObjectProperty(myOpening.area)=< 1㎡

} 




Python Code 변환 예정



6
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 3 항

③영 제35조제1항에 따른 피난계단 또는 특별피난계단은 돌음계단으로 하여서는 아니되며, 영 제40조에 따라 옥상광장을 설치하여야 하는 건축물의 피난계단 또는 특별피난계단은 해당 건축물의 옥상으로 통하도록 설치하여야 한다. 이 경우 옥상으로 통하는 출입문은 피난방향으로 열리는 구조로서 피난시 이용에 장애가 없어야 한다. <개정 2010.4.7>





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 3항

Check(REFB_9_3) {

	KS

}

KS {

	Stair myStair1{

		isObjectProperty(Stair.isEscape)=TRUE

		OR isObjectProperty(Stair.isSpecialEscape)=TRUE

}

	Space mySpace{

		getObjectProperty(Space.usage) = “RooftopPlaza”
}
		hasObject(Rooftop, mySpace)=TRUE



}

	Stair myStair2{

		hasObject(mySpace.Building,myStair1)=TRUE 

}	

	getObjectProperty(myStair.type)!= “WindingStair”

	isAccessible(myStair2,mySpace)=TRUE

	isEgressDirection(mySpace.Door) = TRUE

} 




Python Code 변환 예정



7
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 4 항

④영 제35조제2항에서 "갓복도식 공동주택"이라 함은 각 층의 계단실 및 승강기에서 각 세대로 통하는 복도의 한쪽 면이 외기(外氣)에 개방된 구조의 공동주택을 말한다. <신설 2006.6.29>





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 4항
Check(REFB_9_4) {
	KS
}
	Building myBuilding{
		Building.usage = “SideCorridorTypeMultiUnitHouse”
}

	Space mySpace = getSpace(“Corridor”)
	isConnectedToExternal(mySpace)=TRUE

 




Python Code 변환 예정



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

②영 제39조제1항에 따라 건축물의 바깥쪽으로 나가는 출구를 설치하는 건축물중 문화 및 집회시설(전시장 및 동·식물원을 제외한다), 종교시설, 장례식장 또는 위락시설의 용도에 쓰이는 건축물의 바깥쪽으로의 출구로 쓰이는 문은 안여닫이로 하여서는 아니된다. <개정 2010.4.7>





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



Check(REFB_11_2){
     

IF CS1 AND CS2 THEN KS


}





CS1 {

Building myBuilding{

getBuildingUsage() = “CulturalAndAssemblyFacility”

OR getBuildingUsage() = “ReligiousFacility”

OR getBuildingUsage() = “AmusementFacility”

OR getBuildingUsage() = “FuneralParlor”

getBuildingUsage() != “ExhibitionHall”

getBuildingUsage() != “ZoologicalAndBotanicalGarden”

}



Door myDoor{

isObjectProperty(myBuilding.Door.isEntrance)=TRUE

}

isExist(myDoor) = TRUE

}



KS {

getObjectProperty(myDoor.panelOperationType) != “OpeningInDoor”



} 




Python Code 변환 예정



9
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 11조 3 항

③영 제39조제1항의 규정에 의하여 건축물의 바깥쪽으로 나가는 출구를 설치하는 경우 관람석의 바닥면적의 합계가 300제곱미터 이상인 집회장 또는 공연장에 있어서는 주된 출구외에 보조출구 또는 비상구를 2개소 이상 설치하여야 한다.





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

Check(REFB_11_3){
     

IF CS1 AND CS2 THEN KS


}





CS1 {

Building myBuilding{

getBuildingUsage() = “AssemblyHall”

OR getBuildingUsage() = “PerformanceHall”

}



Space mySpace{

myBuilding.Space.name = “Auditorium”

Space.FloorSlab.area >= 300 m2

}



isExist(mySpace) = TRUE

}



CS2 {

Door myDoor{

isObjectProperty(Door.isEntrance)=TRUE

}

hasObject(myBuilding,myDoor) = TRUE

}



KS {

Door myDoor{

getObjectProperty(Door.functionType) = "Auxiliary"

OR getObjectProperty(Door.functionType) = "Emergency" 

}



getObjectCount(myDoor) >=2

} 




Python Code 변환 예정



10
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 11조 6 항

⑥법 제39조제1항에 따라 영 제39조제1항 각 호의 어느 하나에 해당하는 건축물의 바깥쪽으로 나가는 출입문에 유리를 사용하는 경우에는 안전유리를 사용하여야 한다. <신설 2006.6.29>





// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 11조 (건축물의 바깥쪽으로의 출구의 설치기준) 6항
Check(REFB_11_6){  
   KS
}

KS{
    Door myDoor{
       isObjectProperty(Door.isEntrance)=TRUE
    }
    IF getObjectMaterial(myDoor)="Glass"
         THEN getObjectType(Glass)="Safety"  

} 




Python Code 변환 예정



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

1. 손잡이는 최대지름이 3.2센티미터 이상 3.8센티미터 이하인 원형 또는 타원형의 단면으로 할 것





check(REFB_15_4_1){

     KS

}

KS{

       getElementWidth(Railing,Handle) >= 3.2CM

       AND getElementWidth(Handle) <= 3.8CM

       getObjectProperty(Handle.sectionShapeType)="Circle" OR "Oval"

} 




Python Code 변환 예정



12
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 17조 3 항

③제1항 및 제2항의 규정을 적용함에 있어서 수시로 개방할 수 있는 미닫이로 구획된 2개의 거실은 이를 1개의 거실로 본다.





// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 17조 (채광 및 환기를 위한 창문등) 3항

check(REFB_17_3){

	IF CS THEN KS

}



CS{

Door myDoor{
getObjectProperty(Door.panelOperationType) = "SlidingDoor"
}

	Room myRoom{

		isPartitioned(Room, myDoor, Room) = TRUE

	}

}



KS{

	myRoom = Room

} 




Python Code 변환 예정



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

1. 철근콘크리트조·철골철근콘크리트조로서 두께가 10센티미터이상인 것





check(REFB_19_2_1){

     KS

}



KS{
Wall myWall{
   isObjectProperty(Wall.isPartitionWall) = TRUE
}
   getObjectProperty(myWall.Structure.materialType) = "ReinforcedConcrete" OR "SteelFramedReinforcedConcrete" 

   AND getObjectThickness(myWall) >= 10CM

} 




Python Code 변환 예정



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

2. 무근콘크리트조 또는 석조로서 두께가 10센티미터(시멘트모르타르·회반죽 또는 석고플라스터의 바름두께를 포함한다)이상인 것





check(REFB_19_2_2){

     KS

}



KS{
Wall myWall{
   isObjectProperty(Wall.isPartitionWall) = TRUE
}

   getObjectProperty(myWall.Structure.materialType) = "PlainConcrete" OR "Stone" 
 getObjectThickness(myWall) >= 10CM

} 




Python Code 변환 예정



15
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 19조 2 항 3호

3. 콘크리트블록조 또는 벽돌조로서 두께가 19센티미터 이상인 것





check(REFB_19_2_3){

     KS

}



KS{
Wall myWall{
   isObjectProperty(Wall.isPartitionWall) = TRUE
}

   getObjectProperty(myWall.Structure.materialType) = "ConcreteBlock" OR "Brick" 
 getObjectThickness(myWall) >= 19CM

} 




Python Code 변환 예정



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

1. 거실의 바닥면적이 50제곱미터 이상인 층에는 직통계단외에 피난층 또는 지상으로 통하는 비상탈출구 및 환기통을 설치할 것. 다만, 직통계단이 2개소 이상 설치되어 있는 경우에는 그러하지 아니하다.





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 1항 1호

check(REFB_25_1_1){

	IF !(CS) THEN KS

}



KS{

	Floor myFloor1{

		hasSpace(Floor,Room) = TRUE

		getTotalArea(Room) >= 50 m2

	}



	Floor myFloor2{

		isObjectProperty(Floor.isEscape) = TRUE

	}



	Door myDoor{

		isObjectProperty(Door.functionType) = "Emergency"

		(isDirectlyAccessible(Door, myFloor2) = TRUE

		OR isDirectlyAccessible(Door, Ground) = TRUE)

	}

	

	hasSpace(myFloor1, myDoor)

	OR (hasSpace(myFloor1, VentilatorPipe) = TRUE

	(isDirectlyAccessible(VentilatorPipe, myFloor2) = TRUE

	OR isDirectlyAccessible(VentilatorPipe, Ground) = TRUE))

}



CS{

	Floor myFloor1{

		hasSpace(Floor,Room) = TRUE

		getTotalArea(Room) >= 50 m2

	}



	Stair myStair{

		isObjectProperty(Stair.isDirect) = TRUE

		hasSpace(myFloor1, Stair) = TRUE

	}



	getObjectCount(myStair) >= 2

} 




Python Code 변환 예정



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

1. 비상탈출구의 유효너비는 0.75미터 이상으로 하고, 유효높이는 1.5미터 이상으로 할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 1호

check(REFB_25_2_1){

Door myDoor{
Door.functionType = "Emergency"
Door.Floor.number < 0
}
	getObjectWidth(myDoor, a) >= 0.75 m 

	getObjectHeight(myDoor) >= 1.5 m

} 




Python Code 변환 예정



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

2. 비상탈출구의 문은 피난방향으로 열리도록 하고, 실내에서 항상 열 수 있는 구조로 하여야 하며, 내부 및 외부에는 비상탈출구의 표시를 할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 2호

Check(REFB_25_2_2){

Door myDoor{
Door.functionType = "Emergency"
 < 0
}
	isEgressDirection(myDoor) = TRUE

} 




Python Code 변환 예정



19
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 25조 2 항 3호

3. 비상탈출구는 출입구로부터 3미터 이상 떨어진 곳에 설치할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 3호

check(REFB_25_2_3){

Door myDoor{
Door.functionType = "Emergency"
Door.Floor.number < 0
}
	getSpaceDistance(myDoor, Door) >= 3 m 

} 




Python Code 변환 예정



20
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 25조 2 항 4호

4. 지하층의 바닥으로부터 비상탈출구의 아랫부분까지의 높이가 1.2미터 이상이 되는 경우에는 벽체에 발판의 너비가 20센티미터 이상인 사다리를 설치할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 4호

check(REFB_25_2_4){

	IF CS THEN KS

}



CS{
Door myDoor{
Door.functionType = "Emergency"
Door.Floor.number < 0
}
Floor myFloor{
Floor.number < 0 
}
	getObjectVerticalDistance(myFloor, myDoor) >= 1.2 m

}



KS{

	isConnectedTo(Wall, Ladder) = TRUE

	getObjectProperty(Ladder.footholdWidth) >= 20 cm

} 




Python Code 변환 예정



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

5. 비상탈출구는 피난층 또는 지상으로 통하는 복도나 직통계단에 직접 접하거나 통로 등으로 연결될 수 있도록 설치하여야 하며, 피난층 또는 지상으로 통하는 복도나 직통계단까지 이르는 피난통로의 유효너비는 0.75미터 이상으로 하고, 피난통로의 실내에 접하는 부분의 마감과 그 바탕은 불연재료로 할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 5호

check(REFB_25_2_5){

	

	Floor myFloor(

		isObjectProperty(Floor.isEscape) = TRUE

	)



	Stair myStair{

		isObjectProperty(Stair.isDirect) = TRUE

		(isDirectlyAccessible(Stair, Ground) = TRUE

		OR isDirectlyAccessible(Stair, myFloor) = TRUE)

	}



	Corridor myCorridor{

		isDirectlyAccessible(Corridor, myFloor) = TRUE

		OR isDirectlyAccessible(Corridor, Ground) = TRUE

	}

Door myDoor{
Door.functionType = "Emergency"
Door.Floor.number < 0
}

	(isDirectlyAccessible(myDoor, myStair) = TRUE

	OR isDirectlyAccessible(myDoor, myCorridor) = TRUE

	OR isGoThrough(myDoor, Corridor, myStair) = TRUE

	OR isGoThrough(myDoor, Corridor, myCorridor) = TRUE)

Passage myPassage{
isObjectProperty(Passage.isEscape) = TRUE
}

	getSpaceWidth(myPassage) >= 0.75 m



	isObjectProperty(myPassage.InteriorFinish.Material.nonCombustibility) = TRUE

} 




Python Code 변환 예정



22
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 25조 2 항 7호

7. 비상탈출구의 유도등과 피난통로의 비상조명등의 설치는 소방법령이 정하는 바에 의할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 7호

check(REFB_25_2_7){	
Door myDoor{
Door.functionType = "Emergency"
Door.Floor.number < 0
}

Light myLight{
isObjectProperty(Light.isEmergency) = TRUE
}

Passage myPassage{
isObjectProperty(Passage.isEscape) = TRUE
}

	hasElement(myDoor, LeadingLight) = TRUE

	hasElement(myPassage, myLight) = TRUE

} 




Python Code 변환 예정



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

①「건축법」 (이하 "법"이라 한다) 제51조제3항에 따라 방화지구 내 건축물의 지붕으로서 내화구조가 아닌 것은 불연재료로 하여야 한다. <개정 2005.7.22, 2010.12.30>





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 23조 (방화지구안의 지붕ㆍ방화문 및 외벽등) 1항

Check(REFB_23_1){

	IF CS THEN KS

}



CS{


	Building myBuilding{
getObjectProperty(Building.SpecialPurposeDistrict.type) = "FirePreventionDistrict"
	}



	Roof myRoof{

		hasObject(myBuilding, Roof) = TRUE

	}



	isObjectProperty(myRoof.isFireResistantStructure) != TRUE

}



KS{

	isObjectProperty(myRoof.Material.nonCombustibility) = TRUE

} 




Python Code 변환 예정



24
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 3조 1호 가 목

가. 철근콘크리트조 또는 철골철근콘크리트조로서 두께가 10센티미터 이상인 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 1호 가목

Check (REFB_3_0_1_가){
	KS
}
KS{
	getObjectProperty(Wall.Structure.materialType) = "ReinforcedConcrete" OR "SteelFramedReinforcedConcrete"
	getWallThickness(Wall) >= 10cm
}
 




Python Code 변환 예정



25
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 3조 4호 가 목

가. 철근콘크리트조 또는 철골철근콘크리트조로서 두께가 10센티미터 이상인 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 4호 가목

Check (REFB_3_0_4_가){
	KS
}
KS{
	getObjectProperty(Wall.Structure.materialType) = "ReinforcedConcrete" OR "SteelFramedReinforcedConcrete"
	getObjectThickness(FloorSlab.Structure) >= 10cm
} 




Python Code 변환 예정



26
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 3조 6호 가 목

가. 철근콘크리트조 또는 철골철근콘크리트조





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 6호 가목

Check (REFB_3_0_6_가){
	KS
}
KS{
	getObjectProperty(Roof.Structure.materialType) = "ReinforcedConcrete" OR "SteelFramedReinforcedConcrete"
} 




Python Code 변환 예정



27
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 3조 7호 가 목

가. 철근콘크리트조 또는 철골철근콘크리트조





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 7호 가목

Check (REFB_3_0_7_가){
	KS
}
KS{
	getObjectProperty(Stair.Structure.materialType) = "ReinforcedConcrete" OR "SteelFramedReinforcedConcrete"
} 




Python Code 변환 예정



28
건축법 시행령 제 52조 1호

1. 건축물의 최하층에 있는 거실(바닥이 목조인 경우만 해당한다)





//건축법 시행령 52조 (거실 등의 방습) 1호

Check(EDBA_52_0_1){

CS}



CS{

hasObject(BottomFloor, Room) = TRUE
 getObjectProperty(FloorSlab.Structure.materialType) = "Timber"

} 




Python Code 변환 예정



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

1. 건축물의 지붕을 평지붕으로 하는 경우: 헬리포트를 설치하거나 헬리콥터를 통하여 인명 등을 구조할 수 있는 공간





//건축법 시행령 40조 (옥상광장 등의 설치) 3항 1호

Check(EDBA_40_3_1){

  IF (CS) THEN KS

}



CS{

	getObjectProperty(Roof.shapeType) = “FlatRoof”

}



KS{

	isExist(Heliport) = True

        getResult(REFB_13_1)=True

        getResult(REFB_13_2)=True

} 




Python Code 변환 예정



30
건축법 시행령 제 40조 3 항 2호

2. 건축물의 지붕을 경사지붕으로 하는 경우: 경사지붕 아래에 설치하는 대피공간





//건축법 시행령 40조 (옥상광장 등의 설치) 3항 2호

Check(EDBA_40_3_2){

  IF (CS) THEN KS

}



CS{

	getObjectProperty(Roof.shapeType) = “PitchedRoof ”

}



KS{
Space mySpace{
Space.isEscape = TRUE
}
	isExist(mySpace) = True

	getObjectProperty(mySpace.Roof.shapeType) = “PitchedRoof”



        getResult(REFB_13_3)=True

        

} 




Python Code 변환 예정



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

1. 상업지역(근린상업지역은 제외한다)의 건축물로서 다음 각 목의 어느 하나에 해당하는 것





// 건축법 시행령 61조 (건축물의 마감재료) 2항 1호


Check(EDBA_61_2_1){
       KS
}




KS{
    getObjectProperty(Building.SpecialPurposeArea.type) = "CommercialArea"
    getResult(EDBA_61_2_1_가)=TRUE
  

} 




Python Code 변환 예정



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

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





Check(EDBA_41_1){

    KS

}







KS{



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

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

       OR isObjectProperty(Stair.isSpecialEscape) = TRUE



   }

   Passage  myPassage{

       isGoThrough(myStair, Road, Passage)=True

       OR isGoThrough(myStair, OpenSpace, Passage )=True

   }



   isExist(myDoor)=True

   isExist(myPassage)=True

   getResult(EDBA_41_1_1)=True

   getResult(EDBA_41_1_2)=True

   getResult(EDBA_41_1_3)=True

} 








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

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

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

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

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

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

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

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

        stairs = base_storey.SELECT('direct stair')

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

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

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





33
건축법 시행령 제 35조 2 항

② 건축물(갓복도식 공동주택은 제외한다)의 11층(공동주택의 경우에는 16층) 이상인 층(바닥면적이 400제곱미터 미만인 층은 제외한다) 또는 지하 3층 이하인 층(바닥면적이 400제곱미터미만인 층은 제외한다)으로부터 피난층 또는 지상으로 통하는 직통계단은 제1항에도 불구하고 특별피난계단으로 설치하여야 한다. <개정 2008.10.29>





//건축법 시행령 35조 (피난계단의 설치) 2항
check(EDBA_35_2){
	IF (CS1 AND CS2) THEN KS
}

CS1{
	Building.usage != "MultiUnitHouse.SideCorridorTypeMultiUnitHouse"
}

CS2{
	Floor myFloor{
 		IF (Building.usage = "MultiUnitHouse“) 
			THEN getFloorNumber(Floor) >= 16
     		ELSE 		
			getFloorNumber(Floor) >= 11
     		ENDIF

 		OR getFloorNumber(Floor) < -3
		getFloorArea(Floor) >= 400m2
	}

	Stair myStair {
		(isAccessible(Stair, Floor.isEscape) = TRUE
		 OR isAccessible(Stair, Ground) = TRUE)
                        isObjectProperty(Stair.isDirect) = TRUE
	}

	hasObject(myFloor, myStair) = TRUE
}

KS{
	isObjectProperty(myStair.isSpecialEscape) = TRUE
}
 




Python Code 변환 예정



34
건축법 시행령 제 39조 2 항

② 법 제49조제1항에 따라 건축물의 출입구에 설치하는 회전문은 국토해양부령으로 정하는 기준에 적합하여야 한다.





// 건축법 시행령 39조 (건축물 바깥쪽으로의 출구 설치) 2항

Check(EDBA_39_2){     
IF  CS THEN KS
}

CS {
Door myDoor {
isObjectProperty(Door.isEntrance) = TRUE
Door.panelOperationType=“RevolvingDoor”
}
isExist(myDoor) = TRUE
}

KS {
getResult(REFB_11_2)=TRUE
}
 




Python Code 변환 예정



35
건축법 시행령 제 56조 2 항

② 제1항제1호 및 제2호에 해당하는 용도로 쓰지 아니하는 건축물로서 그 지붕틀을 불연재료로 한 경우에는 그 지붕틀을 내화구조로 아니할 수 있다.





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

check(EDBA_56_2){

	IF (!CS1 AND CS2) THEN !KS



CS1{

        getResult(EDBA_56_1_1)=TRUE

        AND getResult(EDBA_56_1_2)=TRUE

}



CS2{

        getObjectMaterialType(RoofTruss)= "NonCombustibleMaterial"

}



KS{

        isFireResistantStructure(RoofTruss) = TRUE

} 




Python Code 변환 예정



36
건축법 시행령 제 57조 3 항

③ 연면적 1천 제곱미터 이상인 목조 건축물의 구조는 국토해양부령으로 정하는 바에 따라 방화구조로 하거나 불연재료로 하여야 한다.





//  건축법 시행령 57조 (대규모 건축물의 방화벽 등) 3항

Check(EDBA_57_3){

	IF CS THEN KS

}



CS{

	getObjectProperty(Building.grossFloorArea) >= 1000m2

	getObjectProperty(Building.Structure.materialType) = "Timber"

}



KS{

	getObjectProperty(MainStructuralPart.Material.nonCombustibility) = TRUE

	OR getObjectProperty(MainStructuralPart.isFireProofStructure) = TRUE

} 




Python Code 변환 예정



37
건축법 시행령 제 51조 3 항

③ 법 제49조제2항에 따라 오피스텔에 거실 바닥으로부터 높이 1.2미터 이하 부분에 여닫을 수 있는 창문을 설치하는 경우에는 국토해양부령으로 정하는 기준에 따라 추락방지를 위한 안전시설을 설치하여야 한다. <신설 2009.7.16>





// 건축법 시행령 51조 (거실의 채광 등) 3항

check(EDBA_51_3){

	IF CS THEN KS

}



CS{

Window myWindow{
getObjectProperty(Window.panelOperationType) = "SwingingWindow"
}
	getBuildingUsage() = "Officetels.Room"

	getElementHeight(myWindow) <= 1.2 m

}



KS{

	isExist(FallPreventionSafetyFacility) = TRUE

	getResult(REFB_17_4) = TRUE

} 








min_win_h = 1.2
min_rail_h = 1.2
min_win_h_label = '기준 창문 높이'
min_rail_h_label = '최소 난간 높이'

def Check():
    for building in SELECT('building'):
        bldg_use = building.SELECT('building type').STRING()
        sub_use = building.SELECT('prop', '세부용도').STRING()
        if not (bldg_use == '업무시설' and sub_use == '오피스텔'):
            continue
        for space in building.SELECT('space'):
            for win in space.SELECT('window'):
                if win.SELECT('lower edge height').UNIT('m').NUMBER() > min_win_h:
                    continue
                for railing in win.SELECT('railing'):
                    height = railing.SELECT('height').UNIT('m')
                    h = height.NUMBER()
                    if h < min_rail_h:
                        height.ERROR('난간 높이: ' + str(h) + 'm(< ' + str(min_rail_h) + 'm)')
                    else:
                        height.SUCCESS('난간 높이: ' + str(h) + 'm(>= ' + str(min_rail_h) + 'm)')

                    return

                win.ERROR('난간이 존재하지 않습니다.') 





38
국토의 계획 및 이용에 관한 법률 제 77조 1 항 1호 가 목

가. 주거지역: 70퍼센트 이하





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호 가목
Check(LPUA_77_1_1_1){
	IF CS THEN KS
}
	
CS{
	getObjectProperty(SpecialPurposeArea.type) = "ResidentialArea"
}

KS{
	getObjectProperty(Building.buildingToLandRatio) = BTL
	BTL <= 70
} 




Python Code 변환 예정



39
국토의 계획 및 이용에 관한 법률 제 77조 1 항 1호 나 목

나. 상업지역: 90퍼센트 이하





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호 나목
Check(LPUA_77_1_1_2){
	IF CS THEN KS
}
		
CS{
	getObjectProperty(SpecialPurposeArea.type) = "CommercialArea"
}

KS{
	getObjectProperty(Building.buildingToLandRatio) = BTL
	BTL <= 90
} 




Python Code 변환 예정



40
국토의 계획 및 이용에 관한 법률 제 77조 1 항 1호 다 목

다. 공업지역: 70퍼센트 이하





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호 다목
Check(LPUA_77_1_1_3){
	IF CS THEN KS
}
	
CS{
	getObjectProperty(SpecialPurposeArea.type) = "IndustrialArea"
}

KS{
	getObjectProperty(Building.buildingToLandRatio) = BTL
	BTL <= 70
} 




Python Code 변환 예정



41
국토의 계획 및 이용에 관한 법률 제 77조 1 항 1호 라 목

라. 녹지지역: 20퍼센트 이하





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호 라목
Check(LPUA_77_1_1_4){
	IF CS THEN KS
}
	
CS{
	getObjectProperty(SpecialPurposeArea.type) = "GreenArea"
}

KS{
	getObjectProperty(Building.buildingToLandRatio) = BTL
	BTL <= 20
} 




Python Code 변환 예정



42
국토의 계획 및 이용에 관한 법률 제 77조 1 항 2호 가 목

가. 보전관리지역: 20퍼센트 이하





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 2호 가목
Check(LPUA_77_1_2_1){
	IF CS THEN KS
}
		
CS{
	getObjectProperty(SpecialPurposeArea.type) = "ConservationManagementArea"
}

KS{
	getObjectProperty(Building.buildingToLandRatio) = BTL
	BTL <= 20
} 




Python Code 변환 예정



43
국토의 계획 및 이용에 관한 법률 제 77조 1 항 2호 나 목

나. 생산관리지역: 20퍼센트 이하





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 2호 나목
Check(LPUA_77_1_2_2){
	IF CS THEN KS
}
		
CS{
	getObjectProperty(SpecialPurposeArea.type) = "ProductionManagementArea"
}

KS{
	getObjectProperty(Building.buildingToLandRatio) = BTL
	BTL <= 20
} 




Python Code 변환 예정



44
국토의 계획 및 이용에 관한 법률 제 77조 1 항 2호 다 목

다. 계획관리지역: 40퍼센트 이하





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 2호 다목
Check(LPUA_77_1_2_3){
	IF CS THEN KS
}
		
CS{
	getObjectProperty(SpecialPurposeArea.type) = "PlanningManagementArea"
}

KS{
	getObjectProperty(Building.buildingToLandRatio) = BTL
	BTL <= 40
} 




Python Code 변환 예정



45
국토의 계획 및 이용에 관한 법률 제 77조 1 항 3호

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





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 3호
Check(LPUA_77_1_3){
	IF CS THEN KS
}
		
CS{
	getObjectProperty(SpecialPurposeArea.type) = "AgriculturalAndForestryArea"
}

KS{
	getObjectProperty(Building.buildingToLandRatio) = BTL
	BTL <= 20
} 




Python Code 변환 예정



46
국토의 계획 및 이용에 관한 법률 제 77조 1 항 4호

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





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 4호
Check(LPUA_77_1_4){
	IF CS THEN KS
}
		
CS{
	getObjectProperty(SpecialPurposeArea.type) = "NaturalEnvironmentConservationArea"
}

KS{
	getObjectProperty(Building.buildingToLandRatio) = BTL
	BTL <= 20
} 




Python Code 변환 예정



47
국토의 계획 및 이용에 관한 법률 제 77조 3 항 3호

3. 제40조에 따른 수산자원보호구역





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 3호
Check(LPUA_77_3_3){
	KS
}

KS{
	getResult(LPUA_40) = TRUE
	getObjectProperty(SpecialPurposeZone.type) = "FisheryResourcesProtectionZone"
} 




Python Code 변환 예정



48
국토의 계획 및 이용에 관한 법률 제 77조 3 항 4호

4. 「자연공원법」에 따른 자연공원





// 국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 4호 

Check(LPUA_77_3_4){
      KS
}


KS{
getObjectProperty(SpecialPurposeZone.type) = "NaturalPark"
} 




Python Code 변환 예정



49
국토의 계획 및 이용에 관한 법률 제 77조 3 항 5호

5. 「산업입지 및 개발에 관한 법률」 제2조제8호라목에 따른 농공단지





// 국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 5호

Check(LPUA_J77_3_5){
      KS
}

KS{
   getObjectProperty(SpecialPurposeZone.type) = "AgriculturalAndIndustrialComplexes"
 
}  




Python Code 변환 예정



50
국토의 계획 및 이용에 관한 법률 제 77조 3 항 6호

6. 공업지역에 있는 「산업입지 및 개발에 관한 법률」 제2조제8호가목부터 다목까지의 규정에 따른 국가산업단지, 일반산업단지 및 도시첨단산업단지와 같은 조 제12호에 따른 준산업단지





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 6호 

Check(LPUA_77_3_6){
         KS
}


KS{
    getObjectProperty(SpecialPurposeZone.type) = "NationalIndustrialComplexes"
    OR  getObjectProperty(SpecialPurposeZone.type) = "GeneralIndustrialComplexes"
    OR getObjectProperty(SpecialPurposeZone.type) = "UrbanHighTechIndustrialComplexes"
    OR getObjectProperty(SpecialPurposeZone.type) = "SemiIndustrialComplex"

}


 




Python Code 변환 예정



51
국토의 계획 및 이용에 관한 법률 제 77조 3 항 1호

1. 제37조제1항제6호에 따른 취락지구





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 1호
Check(LPUA_77_3_1){
	KS
}

KS{
	getResult(LPUA_37_1_8) = TRUE
	getObjectProperty(SpecialPurposeDistrict.type) = "SettlementDistrict"
} 




Python Code 변환 예정



52
국토의 계획 및 이용에 관한 법률 제 77조 3 항 2호

2. 제37조제1항제7호에 따른 개발진흥지구(도시지역 외의 지역 또는 대통령령으로 정하는 용도지역만 해당한다)





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 2호
Check(LPUA_77_3_2){
	KS
}

KS{
	getResult(LPUA_37_1_9) = TRUE
	getObjectProperty(SpecialPurposeDistrict.type) = "DevelopmentPromotionDistrict"
	getObjectProperty(SpecialPurposeArea.type) != "UrbanArea"
} 




Python Code 변환 예정



53
국토의 계획 및 이용에 관한 법률 제 78조 1 항 1호

1. 도시지역





// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호

Check(LPUA_78_1_1){
IF CS THEN KS
}

CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "UrbanArea"
}
KS{
getResult(LPUA_78_1_1_가)=TRUE
OR getResult(LPUA_78_1_1_나)=TRUE
OR getResult(LPUA_78_1_1_다)=TRUE
OR getResult(LPUA_78_1_1_라)=TRUE

}
 




Python Code 변환 예정



54
국토의 계획 및 이용에 관한 법률 제 78조 1 항 1호 가 목

가. 주거지역: 500퍼센트 이하





// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 가목

Check(LPUA_78_1_1_가){
IF CS THEN KS
}

CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "ResidentialArea"
}

KS{
getFloorAreaRatio() <= 500%
}
 




Python Code 변환 예정



55
국토의 계획 및 이용에 관한 법률 제 78조 1 항 1호 나 목

나. 상업지역: 1천500퍼센트 이하





// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 나목

Check(LPUA_78_1_1_나){
IF CS THEN KS
}

CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "CommercialArea"
}

KS{
getFloorAreaRatio() <= 1500%
}
 




Python Code 변환 예정



56
국토의 계획 및 이용에 관한 법률 제 78조 1 항 1호 다 목

다. 공업지역: 400퍼센트 이하





// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 다목

Check(LPUA_78_1_1_다){
IF CS THEN KS
}

CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "IndustrialArea"
}

KS{
getFloorAreaRatio() <= 400%
}
 




Python Code 변환 예정



57
국토의 계획 및 이용에 관한 법률 제 78조 1 항 1호 라 목

라. 녹지지역: 100퍼센트 이하





// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 라목

Check(LPUA_78_1_1_라){
IF CS THEN KS
}

CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "GreenArea"
}

KS{
getFloorAreaRatio() <= 100%
}
 




Python Code 변환 예정



58
국토의 계획 및 이용에 관한 법률 제 78조 1 항 2호

2. 관리지역





// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호

Check(LPUA_78_1_2){
IF CS THEN KS
}

CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "ControlArea"
}

KS{
getResult(LPUA_78_1_2_가)=TRUE
OR getResult(LPUA_78_1_2_나)=TRUE
OR getResult(LPUA_78_1_2_다)=TRUE
}
 




Python Code 변환 예정



59
국토의 계획 및 이용에 관한 법률 제 78조 1 항 2호 가 목

가. 보전관리지역: 80퍼센트 이하





// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호 가목

Check(LPUA_78_1_2_가){
IF CS THEN KS
}

CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "ConservationManagementArea"
}

KS{
getFloorAreaRatio() <= 80%
}
 




Python Code 변환 예정



60
국토의 계획 및 이용에 관한 법률 제 78조 1 항 2호 나 목

나. 생산관리지역: 80퍼센트 이하





// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호 나목

Check(LPUA_78_1_2_나){
IF CS THEN KS
}

CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "ProductionManagementArea"
}

KS{
getFloorAreaRatio() <= 80%
}
 




Python Code 변환 예정



61
국토의 계획 및 이용에 관한 법률 제 78조 1 항 2호 다 목

다. 계획관리지역: 100퍼센트 이하





// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호 다목

Check(LPUA_78_1_2_다){
IF CS THEN KS
}

CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "PlanningManagementArea"
}

KS{
getFloorAreaRatio() <=100%
}
 




Python Code 변환 예정



62
국토의 계획 및 이용에 관한 법률 제 78조 1 항 3호

3. 농림지역: 80퍼센트 이하





// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 3호

Check(LPUA_78_1_3){
IF CS THEN KS
}

CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "AgriculturalAndForestryArea"
}

KS{
getFloorAreaRatio() <= 80%
}
 




Python Code 변환 예정



63
국토의 계획 및 이용에 관한 법률 제 78조 1 항 4호

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





// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 4호

Check(LPUA_78_1_4){
IF CS THEN KS
}

CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "NaturalEnvironmentConservationArea"
}

KS{
getFloorAreaRatio() <= 80%
}
 




Python Code 변환 예정



64
국토의 계획 및 이용에 관한 법률 제 77조 1 항 1호

1. 도시지역





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호
Check(LPUA_77_1_1){
	KS
}

KS{
	getObjectProperty(SpecialPurposeArea.type) = "UrbanArea"
} 




Python Code 변환 예정



65
국토의 계획 및 이용에 관한 법률 제 77조 1 항 2호

2. 관리지역





//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호
Check(LPUA_77_1_2){
	KS
}

KS{
	getObjectProperty(SpecialPurposeArea.type) = "ControlArea"
} 




Python Code 변환 예정



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

2. 개발진흥지구: 다음 각 목에서 정하는 비율 이하





//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 2호

Check(EDLPUA_84_3_2){
      IF CS THEN KS
}

CS{
   getObjectProperty(Building.SpecialPurposeDistrict.type)="DevelopmentPromotionDistrict"
}

KS{
    getBuildingToLandRatio()<=40%
} 




Python Code 변환 예정



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

①지구단위계획구역(도시지역 외에 지정하는 경우로 한정한다. 이하 이 조에서 같다)에서는 법 제52조제3항에 따라 지구단위계획으로 당해 용도지역 또는 개발진흥지구에 적용되는 건폐율의 150퍼센트 및 용적률의 200퍼센트 이내에서 건폐율 및 용적률을 완화하여 적용할 수 있다. <개정 2005.1.15, 2007.4.19, 2012.4.10>





//EDLPUA 47조 1항



Check(EDLPUA_47_1){

     IF CS THEN KS

}



CS{

     getObjectUsage(Zone)="DistrictUnitPlanningZones"

}



KS{
SpecialPurposeArea mySpecialPurposeArea{
getObjectProperty(Building.SpecialPurposeArea.type) = "DevelopmentPromotionDistrict"
}

BLR= getObjectProperty(Building.SpecialPurposeArea.buildingToLandRatio) OR getObjectProperty(mySpecialPurposeArea.buildingToLandRatio)

FAR= getObjectProperty(Building.SpecialPurposeArea.floorAreaRatio) OR getObjectProperty(mySpecialPurposeArea.floorAreaRatio)


   getBuildingToLandRatio()<=BLR*150%

   getFloorAreaRatio(FAR)<=200%

} 




Python Code 변환 예정



68
국토의 계획 및 이용에 관한 법률 시행령 제 84조 8 항

⑧ 제1항에도 불구하고 자연녹지지역에 설치되는 도시·군계획시설 중 유원지의 건폐율은 30퍼센트의 범위에서 도시·군계획조례로 정하는 비율을 초과하여서는 아니 되며, 공원의 건폐율은 20퍼센트의 범위에서 도시·군계획조례로 정하는 비율을 초과하여서는 아니 된다. <개정 2009.7.7, 2011.9.16, 2012.4.10>





//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 8항 

Check(EDLPUA_84_8){
	KS
}

KS{
      IF getObjectProperty(GreenNaturalArea.UrbanAndGunPlanningFacility.type)="AmusementPark"
      
      	THEN   getBuildingToLandRatio() <30 
                	          getResult(Unimplemented_UPMO)
     
      ELSE IF getObjectProperty(GreenNaturalArea.UrbanAndGunPlanningFacility.type)="Park"

     	THEN    getBuildingToLandRatio() <30 
                 	           getResult(Unimplemented_UPMO)
      
      END IF
     
} 
 




Python Code 변환 예정



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

1. 취락지구 : 60퍼센트 이하(집단취락지구에 대하여는 개발제한구역의지정및관리에관한특별조치법령이 정하는 바에 의한다)





//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 1호

Check(EDLPUA_84_3_1){
      IF CS THEN KS
}

CS{
   getObjectProperty(Building.SpecialPurposeDistrict.type)="SettlementDistrict"
}

KS{
    getBuildingToLandRatio()<=60%
} 




Python Code 변환 예정



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

3. 수산자원보호구역 : 40퍼센트 이하





//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 3호

Check(EDLPUA_84_3_3){
      IF CS THEN KS
}

CS{
   getObjectProperty(Building.SpecialPurposeDistrict.type)="FisheryResourcesProtectionZone"
}

KS{
    getBuildingToLandRatio()<=40%
} 




Python Code 변환 예정



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

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





//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 4호

Check(EDLPUA_84_3_4){
      IF CS THEN KS
}

CS{
   getObjectProperty(Building.SpecialPurposeDistrict.type)="ParkProtectionZone"
}

KS{
    getBuildingToLandRatio()<=60%
} 




Python Code 변환 예정



72
국토의 계획 및 이용에 관한 법률 시행령 제 84조 4 항 5호

5. 「산업입지 및 개발에 관한 법률」 제2조제8호라목에 따른 농공단지 : 70퍼센트 이하





//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 5호

Check(EDLPUA_84_3_5){
      IF CS THEN KS
}

CS{
   getObjectProperty(Building.SpecialPurposeDistrict.type)="AgriculturalIndustrialComplex"
}

KS{
    getBuildingToLandRatio()<=70%
} 




Python Code 변환 예정



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

6. 공업지역에 있는 「산업입지 및 개발에 관한 법률」 제2조제8호가목부터 다목까지의 규정에 따른 국가산업단지ㆍ일반산업단지ㆍ도시첨단산업단지 및 같은 조 제12호에 따른 준산업단지: 80퍼센트 이하





//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 6호

Check(EDLPUA_84_3_6){
      IF CS THEN KS
}

CS{
   getObjectProperty(IndustrialComplex.type)="NationalIndustrialComplex"
   OR getObjectProperty(IndustrialComplex.type)="GeneralIndustrialComplex"
   OR getObjectProperty(IndustrialComplex.type)="UrbanHighTechIndustrialComplex"
   OR getObjectProperty(IndustrialComplex.type)="Semi-IndustrialComplex"
}

KS{
    getBuildingToLandRatio()<=70%
} 




Python Code 변환 예정



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

4. 「산업입지 및 개발에 관한 법률」 제2조제8호라목에 따른 농공단지(도시지역외의 지역에 지정된 농공단지에 한한다) : 150퍼센트 이하





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

CS{
	getObjectProperty(IndustrialComplex.type) = "AgriculturalIndustrialComplex"
}

KS{
	getFloorAreaRatio() <= 150%
}
 




Python Code 변환 예정



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

① 다음 각 호의 주택의 소유자는 소방시설 중 소화기구 및 단독경보형감지기를 설치하여야 한다.





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

Check(IMSFA_8_1){

	IF CS THEN KS

}



CS{

	getResult(IMSFA_8_1_1) = TRUE

	OR getResult(IMSFA_8_1_2) = TRUE

}



KS{

Sensor mySensor{
Sensor.isSelfcontainedTypeFireAlarmDevice = TRUE
}
	isExist(mySensor) = TRUE

	OR isExist(FireExtinguisher) = TRUE

} 




Python Code 변환 예정



76
소화기구 및 자동소화장치의 화재안전기준(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 변환 예정



77
소화기구 및 자동소화장치의 화재안전기준(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 변환 예정



78
소화기구 및 자동소화장치의 화재안전기준(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 변환 예정



79
소화기구 및 자동소화장치의 화재안전기준(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 변환 예정



80
스프링클러설비의 화재안전기준(NFSC 103) 제 10조 7 항 7호 다 목

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





//스프링클러설비의 화재안전기준(NFSC 103) 10조 7항 7호 다목
check(NFSC103_10_7_7_다){
KS
}

KS{
SprinklerHead mySprinklerHead{
isObjectProperty(SprinklerHead.openAndCloseType)="OpenType"
}

SprinklerSystem mySprinklerSystem{
getObject(WetPipeSprinklerSystem)
getObject(VacuumSprinklerExtinguishingSystem)
}
SprinklerSystem mySprinklerSystem1{
getObject(SprinklerSystem)!= mySprinklerSystem
}

hasElement(mySprinklerSystem1, mySprinklerHead)=TRUE
} 




Python Code 변환 예정



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



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



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



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



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



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



87
연결살수설비의 화재안전기준(NFSC 503) 제 5조 1 항 3호

3. 천장(상층이 있는 경우에는 상층바닥의 하단을 포함한다. 이하 같다)과 반자를 불연재료 또는 준불연재료로 설치하고 그 내부에 습식으로 배관을 설치하는 경우





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



Check(NFSC503_5_1_3){

	KS

}

KS{

	(isObjectProperty(Ceiling.Material.nonCombustibility)=TRUE

	OR isObjectProperty(Ceiling.Material.quasiNonCombustibility)=TRUE)

	(isObjectProperty(CeilingCovering.Material.nonCombustibility)=TRUE

	OR isObjectProperty(CeilingCovering.Material.quasiNonCombustibility)=TRUE)

	SprinklerSystem mySprinklerSystem{
SprinklerSystem.type = "WetPipeSprinklerSystem"
}

	isInstalled(mySprinklerSystem, Ceiling)=TRUE

	isInstalled(mySprinklerSystem, CeilingCovering)=TRUE

} 




Python Code 변환 예정



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



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



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



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

③폐쇄형헤드를 사용하는 연결살수설비의 주배관은 옥내소화전설비의 주배관(옥내소화전설비가 설치된 경우에 한한다) 및 수도배관(연결살수설비가 설치된 건축물 안에 설치된 수도배관 중 구경이 가장 큰 배관을 말한다) 또는 옥상에 설치된 수조(다른 설비의 수조를 포함한다)에 접속하여야 한다. 이 경우 연결살수설비의 주배관과 옥내소화전설비의 주배관·수도배관·옥상에 설치된 수조의 접속부분에는 체크밸브를 설치하되, 점검하기 쉽게 하여야 한다.





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



Check(NFSC503_5_3){

	IF CS THEN KS

}

	Head myHead{

	isObjectProperty(Head.openAndCloseType) = "EnclosedType"

	}

	Pipe myPipe1{

	isObjectProperty(Pipe.isRiser) = TRUE

	isObjectProperty(myPipe.systemType) = "HookingUpSprinklerSystem"

	}

CS{

	isInstalled(myHead, myPipe1) = TRUE

}

KS{

	Pipe myPipe2{

	isObjectProperty(Pipe.isRiser) = TRUE

	isObjectProperty(myPipe.systemType) = "IndoorFireHydrantSystem"

	}

	Tank myTank{

	isInstalled(Tank, Rooftop) = TRUE

	}

	Pipe myPipe3{
	Pipe.isForWater = TRUE

	연결살수설비가 설치된 건축물 안에 설치된 수도배관 중 구경이 가장 큰 배관

	}

	Valve myValve{

	isObjectProperty(Valve.isCheckValve) = TRUE

	}

	(isConnectedTo(myPipe1, myPipe2) = TRUE

	isInstalled(myValve, myPipe1) = TRUE

	isInstalled(myValve, myPipe2) = TRUE)



	OR (isConnectedTo(myPipe1, myPipe3) = TRUE

	isInstalled(myValve, myPipe1) = TRUE

	isInstalled(myValve, myPipe3) = TRUE)



	OR (isConnectedTo(myPipe1, myTank) = TRUE

	isInstalled(myValve, myPipe1) = TRUE

	isInstalled(myValve, myTank) = TRUE)

} 




Python Code 변환 예정



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

④폐쇄형헤드를 사용하는 연결살수설비에는 다음 각 호의 기준에 따른 시험배관을 설치하여야 한다. <개정 2012.8.20>





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

Check(NFSC503_5_4){
	IF CS THEN KS
}
CS{
	Head myHead{
	isObjectProperty(Head.openAndCloseType) = "EnclosedType"
	}
	isObjectProperty(myHead.systemType) = "HookingUpSprinklerSystem"
}
KS{
	isInstalled(myPipe) = TRUE
	getResult(NFSC503_5_4_1) = TRUE
	getResult(NFSC503_5_4_2) = TRUE
} 




Python Code 변환 예정



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



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



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

⑨연결살수설비 교차배관의 위치·청소구 및 가지배관의 헤드설치는 다음 각 호의 기준에 따른다. <개정 2012.8.20>





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

Check(NFSC503_5_9){
	IF CS THEN KS
}
CS{
	Pipe myPipe1{
	isObjectProperty(Pipe.isCrossMains) = TRUE
	isObjectProperty(Pipe.systemType) = "HookingUpSprinklerSystem")
	}
	Pipe myPipe2{
	isObjectProperty(Pipe.isBranchLines) = TRUE
	isObjectProperty(Pipe.systemType) = "HookingUpSprinklerSystem")
	}
	CleanOut myCleanOut{
	isObjectProperty(CleanOut.systemType) = "HookingUpSprinklerSystem")
	}
	isInstalled(myPipe1) = TRUE
	OR isInstalled(myPipe2.Head) = TRUE
	OR (isInstalled(myCleanOut) = TRUE 

}
KS{
	getResult(NFSC503_5_9_1) = TRUE
	getResult(NFSC503_5_9_2) = TRUE
	getResult(NFSC503_5_9_3) = TRUE
} 




Python Code 변환 예정



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

1. 교차배관은 가지배관과 수평으로 설치하거나 또는 가지배관 밑에 설치하고, 그 구경은 제2항에 따르되, 최소구경이 40㎜ 이상이 되도록 할 것





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

Check(NFSC503_5_9_1){
	KS
}
KS{
	Pipe myPipe1{
	isObjectProperty(Pipe.isCrossMains) = TRUE
	isObjectProperty(Pipe.systemType) = "HookingUpSprinklerSystem"
	}
	Pipe myPipe2{
	isObjectProperty(Pipe.isBranchLines) = TRUE
	isObjectProperty(Pipe.systemType) = "HookingUpSprinklerSystem"
	}
	(isParallel(myPipe1, myPipe2) = TRUE
	OR getObjectVerticalLocation(myPipe1, myPipe2) < 0)
	getObjectDiameter(myPipe1) >= 40mm
	getResult(NFSC503_5_2) = TRUE
}
 




Python Code 변환 예정



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



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

3. 폐쇄형헤드를 사용하는 연결살수설비에 하향식헤드를 설치하는 경우에는 가지배관으로부터 헤드에 이르는 헤드접속배관은 가지관상부에서 분기할 것. 다만, 소화설비용 수원의 수질이 「먹는물관리법」 제5조에 따라 먹는물의 수질기준에 적합하고 덮개가 있는 저수조로부터 물을 공급받는 경우에는 가지배관의 측면 또는 하부에서 분기할 수 있다.





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

Check(NFSC503_5_9_3){
	IF CS THEN KS
}
	Head myHead1{
	isObjectProperty(Head.openAndCloseType) = "EnclosedType"
	}
	Head myHead2{
	isObjectProperty(myHead.installationDirectionType) = "TopDownType"
	}
CS{
	isObjectProperty(myHead1.systemType) = "HookingUpSprinklerSystem"
	isInstalled(myHead2, HookingUpSprinklerSystem) = TRUE
}
KS{
	Pipe myPipe1{
	isObjectProperty(Pipe.isBranchLines) = TRUE
	}
	Pipe myPipe2{
	isConnectedTo(Pipe, myPipe1) = TRUE
	isConnectedTo(Pipe, myHead2) = TRUE
	}
	getObjectVerticalLocation(myPipe2, myPipe1) > 0
} 




Python Code 변환 예정



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



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



  ◁prev 1   2   3   next▷