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

②조적식구조인 내력벽의 두께는 그 건축물의 층수·높이 및 벽의 길이에 따라 각각 다음 표의 두께 이상으로 하되, 조적재가 벽돌인 경우에는 당해 벽높이의 20분의 1이상, 블록인 경우에는 당해 벽높이의 16분의 1이상으로 하여야 한다. ┌───────┬─────────────┬─────────────┬─────────────┐ │건축물의 높이 │5미터 미만 │5미터 이상 11미터 미만





//건축물의 구조기준 등에 관한 규칙 32조 (내력벽의 두께) 2항



Check(RSSB_32_2){

        getResult(RSSB_32_7) = TRUE AND getResult(RSSB_32_3) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CS THEN  KS

}

CS {

   getResult(RSSB_33_3)=True

}





KS{

     //HW means Height of wall

Wall myWall{
isObjectProperty(Wall.isLoadBearingWall) = TRUE
}
       HW=getObjectHeight(myWall)



     IF isObjectProperty(Wall.Structure.isMansoryStructure)=TRUE

 

    

         IF getBuildingHeight()<5 m

            IF getFloorNumber(myWall)=1

                 IF getObjectLength(myWall)<8 m

                     THEN getObjectThickness(myWall)>= 150 mm

                 ELSE THEN  getObjectThickness(myWall)>= 190 mm   

                 END IF 

            END IF 



         ELSE IF  getBuildingHeight()>=5 m  

                  getBuildingHeight()<11 m

                  getFloorNumber(myWall)=1

                  OR getFloorNumber(myWall)=2

             THEN getObjectThickness(myWall)>= 190 mm

         



         ELSE IF  getBuildingHeight()>=11 m  

                  IF getObjectLength(myWall)<8 m

                      getFloorNumber(myWall)=1

                      OR getFloorNumber(myWall)=2

                             THEN getObjectThickness(myWall)>=190 mm

                  ELSE IF getFloorNumber(myWall)=1

                               THEN getObjectThickness(myWall)>=290 mm

                  ELSE IF  getFloorNumber(myWall)=2

                               THEN getObjectThickness(myWall)>=190 mm

                  END IF          

        END IF





             IF getObjectMaterial(myWall)="벽돌"

                  THEN getObjectThickness(myWall)>= HW/20



             ELSE IF getObjectMaterial(myWall)="Block"

                  THEN getObjectThickness(myWall)>= HW/16

              

             END IF







    END IF 

} 




Python Code 변환 예정



Modify
2
11032 건축물의 구조기준 등에 관한 규칙 제 35조

제35조(개구부)





//건축물의 구조기준 등에 관한 규칙 35조 (개구부) 1항
Check(RSSB_35_1){
        getResult(RSSB_28_2) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CS THEN KS
}
CS{
	Wall myWall1{
	isObjectProperty(myWall.Structure.isMansoryStructure) = TRUE
	}
	isInstalled(Window, myWall) = TRUE
	OR isInstalled(Door, myWall) = TRUE
	OR isInstalled(Opening, myWall) = TRUE
}
KS{
	getResult(RSSB_35_1_1) = TRUE
	getResult(RSSB_35_1_2) = TRUE
} 




Python Code 변환 예정



Modify
3
20046 건축물의 구조기준 등에 관한 규칙 제 30조 1 항

제30조(기초) ①조적식구조인 내력벽의 기초(최하층의 바닥면 이하에 해당하는 부분을 말한다)는 연속기초로 하여야 한다.





//건축물의 구조기준 등에 관한 규칙 30조 (기초) 1항
Check(RSSB_30_1){
        getResult(RSSB_28_3) = TRUE AND getResult(RSSB_28_2) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS
}
KS{
	Wall myWall{
	isObjectProperty(Wall.isLoadBearingWall) = TRUE
	getObjectProperty(Wall.Structure.isMansoryStructure) = TRUE
	}
	Foundation myFoundation{
	isInstalled(myWall, Foundation) = TRUE
	}
	isObjectProperty(myFoundation.isContinuousFoundation) = TRUE
} 




Python Code 변환 예정



Modify
4
20047 건축물의 구조기준 등에 관한 규칙 제 30조 2 항

②제1항의 규정에 의한 기초중 기초판은 철근콘크리트구조 또는 무근콘크리트구조로 하고, 기초벽의 두께는 250밀리미터 이상으로 하여야 한다.





//건축물의 구조기준 등에 관한 규칙 30조 (기초) 2항

Check(RSSB_30_2){

        getResult(RSSB_28_3) = TRUE AND getResult(RSSB_28_2) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CS THEN KS

}

CS{

	getResult(RSSB_30_1) = TRUE

}

KS{

	Wall myWall{

	isObjectProperty(Wall.isFoundationWall) = TRUE

	}

	(getObjectProperty(FoundationPlate.Structure.materialType) = "ReinforcedConcrete"

	OR getObjectProperty(FoundationPlate.Structure.materialType) = "PlainConcrete")

	getObjectProperty(myWall.depth) >= 250mm

} 




Python Code 변환 예정



Modify
5
20048 건축물의 구조기준 등에 관한 규칙 제 31조 1 항

제31조(내력벽의 높이 및 길이) ①조적식구조인 건축물중 2층 건축물에 있어서 2층 내력벽의 높이는 4미터를 넘을 수 없다.





//건축물의 구조기준 등에 관한 규칙 31조 (내력벽의 높이 및 길이) 1항
Check(RSSB_31_1){
        getResult(RSSB_28_1) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CS THEN KS
}
CS{
	isObjectProperty(Building.Structure.isMansoryStructure) = TRUE
	getBuildingStoriesCount() = 2
}
KS{
	Wall myWall{
	isObjectProperty(Wall.isLoadBearingWall) = TRUE
	getFloorNumber(Wall.Floor) = TRUE
	}
	getObjectHeight(myWall) < 4m
} 




Python Code 변환 예정



Modify
6
20049 건축물의 구조기준 등에 관한 규칙 제 31조 2 항

②조적식구조인 내력벽의 길이[대린벽(對隣壁)의 경우에는 그 접합된 부분의 각 중심을 이은 선의 길이를 말한다. 이하 이 절에서 같다]는 10미터를 넘을 수 없다.





//건축물의 구조기준 등에 관한 규칙 31조 (내력벽의 높이 및 길이) 2항
Check(RSSB_31_2){
        getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CS THEN KS
}
	Wall myWall{
	isObjectProperty(Wall.isLoadBearingWall) = TRUE
	}
CS{	
	isObjectProperty(myWall.Structure.isMansoryStructure) = TRUE
}
KS{
	getObjectLength(myWall) < 10m
} 




Python Code 변환 예정



Modify
7
20050 건축물의 구조기준 등에 관한 규칙 제 31조 3 항

③조적식구조인 내력벽으로 둘러쌓인 부분의 바닥면적은 80제곱미터를 넘을 수 없다.





//건축물의 구조기준 등에 관한 규칙 31조 (내력벽의 높이 및 길이) 3항
Check(RSSB_31_3){
        getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS
}
KS{
	Wall myWall{
	isObjectProperty(Wall.isLoadBearingWall) = TRUE
	isObjectProperty(myWall.Structure.isMansoryStructure) = TRUE
	}
	Space mySapce{
	isSurrounded(Space, myWall) = TRUE
	}
	getFloorArea(mySpace) < 80m2
} 




Python Code 변환 예정



Modify
8
20051 건축물의 구조기준 등에 관한 규칙 제 32조 1 항

제32조(내력벽의 두께) ①조적식구조인 내력벽의 두께(마감재료의 두께는 포함하지 아니한다. 이하 이 절에서 같다)는 바로 윗층의 내력벽의 두께 이상이어야 한다.





//건축물의 구조기준 등에 관한 규칙 32조 (내력벽의 두께) 1항
Check(RSSB_32_1){
        getResult(RSSB_32_7) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS
}
KS{
	Wall myWall1{
	isObjectProperty(Wall.isLoadBearingWall) = TRUE
	isObjectProperty(myWall.Structure.isMansoryStructure) = TRUE
	}
	Floor myFloor{
	isInstalled(myWall1, Floor) = TRUE
	}
	Wall myWAll2{
	isInstalled(Wall, myFloor.UpperFloor) = TRUE
	}
	WD = getObjectProperty(myWall2.depth)

	getObjectProperty(myWall1.depth) >= WD
} 




Python Code 변환 예정



Modify
9
20053 건축물의 구조기준 등에 관한 규칙 제 32조 3 항

③제2항의 규정을 적용함에 있어서 그 조적재가 돌이거나, 돌과 벽돌 또는 블록 등을 병용하는 경우에는 내력벽의 두께는 제2항의 두께에 10분의 2를 가산한 두께 이상으로 하되, 당해 벽높이의 15분의 1이상으로 하여야 한다.





//건축물의 구조기준 등에 관한 규칙 32조 (적용범위 등) 3항

Check(RSSB_32_3){

	getResult(RSSB_32_7) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CH TEHN KS

}

	Wall myWall{

		isObjectProperty(Wall.isLoadBearingWall) = TRUE

	}

	Wall myWall1{

		getResult(RSSB_32_2) = TRUE

	}

CS{

	getObjectProperty(myWall.Structure.materialType) = "Stone" OR "Brick" OR "ConcreteBlock" OR "SteelReinforcedConcreteBlock"

}

KS{

	WT = getWallThickness(myWall)

	WT >= 1.2* getWallThinkness(myWall1)

	WT >= 1/15*getObjectHeight(myWall)

} 




Python Code 변환 예정



Modify
10
20055 건축물의 구조기준 등에 관한 규칙 제 32조 7 항

⑦조적식구조인 내력벽을 이중벽으로 하는 경우에는 제1항 내지 제6항의 규정은 당해 이중벽중 하나의 내력벽에 대하여 적용한다. 다만, 건축물의 최상층(1층인 건축물의 경우에는 1층을 말한다)에 위치하고 그 높이가 3미터를 넘지 아니하는 이중벽인 내력벽으로서 그 각벽 상호간에 가로·세로 각각 400밀리미터 이내의 간격으로 보강한 내력벽에 있어서는 그 각벽의 두께의 합계를 당해 내력벽의 두께로 본다.





//  건축물의 구조기준 등에 관한 규칙 32조 (내력벽의 두께) 7항
Check(RSSB_32_7){
	KS
}

KS{
 isObjectProperty(Wall.Structure.isMansoryStructure) = TRUE
 isObjectProperty(Wall.isDoubleWall) = TRUE
} 




Python Code 변환 예정



Modify
11
20056 건축물의 구조기준 등에 관한 규칙 제 33조 1 항

제33조(칸막이벽 등의 두께) ①조적식구조인 칸막이벽(내력벽이 아닌 그 밖의 벽을 포함한다. 이하 이 절에서 같다)의 두께는 90밀리미터 이상으로 하여야 한다.





check(RSSB_33_1){
getResult(RSSB_28_3) = TRUE AND 
(RSSB_28_1) = TRUE AND 
getResult(RSSB_3_3) = TRUE
	Wall myWall{
		getObjectStructure(Wall) = "MansonryStructure"
		getObjectType(Wall) = "PartitionWall"
	}

	getObjectThickness(myWall) >= 90mm
} 




Python Code 변환 예정



Modify
12
20057 건축물의 구조기준 등에 관한 규칙 제 33조 2 항

②조적식구조인 칸막이벽의 바로 윗층에 조적식구조인 칸막이벽이나 주요 구조물을 설치하는 경우에는 당해 칸막이벽의 두께는 190밀리미터 이상으로 하여야 한다. 다만, 제34조의 규정에 의한 테두리보를 설치하는 경우에는 그러하지 아니하다.





// 건축물의 구조기준 등에 관한 규칙 33조 (칸막이벽 등의 두께) 2항 



Check(RSSB_33_2){

      getResult(RSSB_28_3) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF (!CS1 AND CS2) THEN KS

}





Wall myWall{

         isObjectProperty(Wall.isPartitionWall)=True

         isObjectProperty(Wall.Structure.isMansoryStructure)=True

    }



CS1{

      getResult(RSSB_34)=True

}





CS2{

    FN=getFloorNumber(myWall)  //FN means myWall's floor number 

    Floor myFloor{

          Floor.number=FN+1

    }

    isInstalled(myFloor, myWall)= True

    OR isInstalled (myFloor, MainStructure)=True

}



KS{

     getObjectThickness(myWall)>=190 mm 

} 




Python Code 변환 예정



Modify
13
20058 건축물의 구조기준 등에 관한 규칙 제 33조 3 항

③제32조의 규정은 조적식구조인 칸막이벽의 두께에 관하여 이를 준용한다.





//건축물의 구조기준 등에 관한 규칙 33조 (칸막이벽 등의 두께) 3항 

Check(RSSB_33_3){
      getResult(RSSB_28_3) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS
}

KS{
      isObjectProperty(Wall.isPartitionWall)=True
      isObjectProperty(Wall.Structure.isMansoryStructure)=True
} 




Python Code 변환 예정



Modify
14
20059 건축물의 구조기준 등에 관한 규칙 제 34조

제34조(테두리보) 건축물의 각층의 조적식구조인 내력벽 위에는 그 춤이 벽두께의 1.5배 이상인 철골구조 또는 철근콘크리트구조의 테두리보를 설치하여야 한다. 다만, 1층인 건축물로서 벽두께가 벽의 높이의 16분의 1이상이거나 벽길이가 5미터 이하인 경우에는 목조의 테두리보를 설치할 수 있다.





//건축물의 구조기준 등에 관한 규칙 34조 (테두리보)



Check(RSSB_34){

     getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CS THEN  KS

}



CS{

    Wall myWall{

      isObjectProperty(Wall.isLoadBearingWall)=True

    }



    isObjectProperty(myWall.Structure.isMansoryStructure)= True

}

   



KS{

  

    WD=getObjectProperty(myWall.depth)

    WH=getObjectProperty(myWall.height)

    WallGirder  myWallGirder{   

      getObjectProperty(WallGirder.height)>=1.5*WD

    }

   

    isInstalled(myWallGrider, myWall, Top)=True







   IF getBuildingStoriesCount()=1

     (WD>=WH/16

      OR getObjectProperty(myWall.length)<=5 m

      )

   THEN getObjectProperty(myWallGrider.Structure.materialType)="Timber"

   

   ELSE THEN   getObjectProperty(myWallGrider.Structure.materialType)="SteelFrame"

OR getObjectProperty(myWallGrider.Structure.materialType)="ReinforcedConcrete"



   END IF

} 




Python Code 변환 예정



Modify
15
20061 건축물의 구조기준 등에 관한 규칙 제 35조 1 항 1호

1. 각층의 대린벽으로 구획된 각 벽에 있어서 개구부의 폭의 합계는 그 벽의 길이의 2분의 1이하로 하여야 한다.





//건축물의 구조기준 등에 관한 규칙 35조 (개구부) 1항 1호
Check(RSSB_35_1_1){
        KS
}
KS{
	Wall myWall1{
	isObjectProperty(Wall.isRightAngleCrossingWall) = TRUE
	isInstalled(Wall, Floor.One) = TRUE
	}
	Wall myWall2{
	isPartitioned(Wall, , myWall1) = TRUE
	}
	WL = getObjectWidth(myWall2)
	OW = getObjectWidth(myOpening)
	Opening myOpening{
	isInstalled(Opening, Wall) = TRUE
	}
	Sum(OW) <= WL * 1/2
} 




Python Code 변환 예정



Modify
16
20062 건축물의 구조기준 등에 관한 규칙 제 35조 1 항 2호

2. 하나의 층에 있어서의 개구부와 그 바로 윗층에 있는 개구부와의 수직거리는 600밀리미터 이상으로 하여야 한다. 같은 층의 벽에 상하의 개구부가 분리되어 있는 경우 그 개구부 사이의 거리도 또한 같다.





//건축물의 구조기준 등에 관한 규칙 35조 (개구부) 1항 2호
Check(RSSB_35_1_2){
	KS2 AND IF CS THEN KS1
}
KS2{
	Opening myOpening1{
	isInstalled(Opening, Floor.One) = TRUE
	}
	Opening myOpening2{
	isInstalled(Opening, myOpening1.Floor.UpperFloor) = TRUE
	}
	getObjectVerticalDistance(myOpening1, myOpening2) >= 600mm
}
CS{
	Opening myOpening3{
	isInstalled(Opening, Floor.One.Wall.One) = TRUE
	}
	getObjectInterval(myOpening3,,a) >= 600mm
} 




Python Code 변환 예정



Modify
17
20063 건축물의 구조기준 등에 관한 규칙 제 35조 2 항

②조적식구조인 벽에 설치하는 개구부에 있어서는 각층마다 그 개구부 상호간 또는 개구부와 대린벽의 중심과의 수평거리는 그 벽의 두께의 2배 이상으로 하여야 한다. 다만, 개구부의 상부가 아치구조인 경우에는 그러하지 아니하다.





//건축물의 구조기준 등에 관한 규칙 35조 (개구부) 2항
Check(RSSB_35_2){
	getResult(RSSB_28_2) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF (!CS1 AND CS2) THEN KS
}
	Wall myWall1{
	isObjectProperty(myWall.Structure.isMansoryStructure) = TRUE
	}
CS1{
	isObjectProperty(Opening.UpperSideShape) = "Arc"
}
CS2{
	isInstalled(Opening, myWall1) = TRUE
}
KS{
	Wall myWall2{
	isObejctProperty(Wall.isRightAngleCrossingWall) = TRUE
	isInstalled(Wall, myWall1.Floor) = TRUE
	}
	WD = getObjectProperty(myWall1.depth)
	getObject(Floor.One.Opening)
	(getObjectInterval(Opening, ) >= 2* WD
	OR getObjectDistance(Opening, myWall2.Center) >= 2* WD
} 




Python Code 변환 예정



Modify
18
20065 건축물의 구조기준 등에 관한 규칙 제 36조

제36조(벽의 홈) 조적식구조인 벽에 그 층의 높이의 4분의 3이상인 연속한 세로홈을 설치하는 경우에는 그 홈의 깊이는 벽의 두께의 3분의 1이하로 하고, 가로홈을 설치하는 경우에는 그 홈의 깊이는 벽의 두께의 3분의 1이하로 하되, 길이는 3미터 이하로 하여야 한다.





//건축물의 구조기준 등에 관한 규칙 36조 (벽의 홈)



Check(RSSB_36){

   getResult(RSSB_28_2) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CS THEN KS 

}



CS{

   Wall myWall{

     isObjectProperty(Wall.Structure.isMansoryStructure)=True

   }

   

   isInstalled(Channel, myWall)=True

   

}

   

KS{

   WD=getObjectProperty(myWall.depth)



   IF getObjectProperty(Channel.shapeType)="VerticleChannel"

      FH=getObjectHeight(Floor.Space)

      getObjectProperty(Channel.length)>=FH*3/4

   

   THEN getObjectProperty(Channel.depth)<= WD/3



   ELSE IF getObjectProperty(Channel.shapeType)="HorizontalChannel"

  

   THEN getObjectProperty(Channel.depth)<= WD/3

        getObjectProperty(Channel.length)<= 3 m



   END IF 

} 




Python Code 변환 예정



Modify
19
20069 건축물의 구조기준 등에 관한 규칙 제 39조 3호

3. 담의 길이 2미터 이내마다 담의 벽면으로부터 그 부분의 담의 두께 이상 튀어나온 버팀벽을 설치하거나, 담의 길이 4미터 이내마다 담의 벽면으로부터 그 부분의 담의 두께의 1.5배 이상 튀어나온 버팀벽을 설치할 것. 다만, 각 부분의 담의 두께가 제2호의 규정에 의한 담의 두께의 1.5배 이상인 경우에는 그러하지 아니하다.





//건축물의 구조기준 등에 관한 규칙 39조 (조적식구조인 담) 3호
Check(RSSB_39_0_3){
	IF !CS THEN KS
}
CS{
	
}
KS{
	FD = getObjectProperty(Fence.depth)
	Wall myWall{
	isObjectProperty(Wall.isSupportingWall) = TRUE
	}
	(isInstalled(myWall, Fence, b, 2) = TRUE
	getObjectProperty(Wall.depth) >= FD)
	OR (isInstalled(myWall, Fence, b, 4) = TRUE
	getObjectProperty(Wall.depth) >= 1.5* 2호 규정에 의한 담의 두께)
} 




Python Code 변환 예정



Modify
20
20072 건축물의 구조기준 등에 관한 규칙 제 42조

제42조(기초) 보강블록구조인 내력벽의 기초(최하층 바닥면 이하의 부분을 말한다)는 연속기초로 하되 그 중 기초판 부분은 철근콘크리트구조로 하여야 한다.





//	건축물의 구조기준 등에 관한 규칙 42조 (기초)
Check(RSSB_42){
	getResult(RSSB_41_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS
}

KS{
	Wall myWall{
		isObjectProperty(Wall.isLoadBearingWall) = TRUE
		getFloorNumber(Wall) < 1
	}

	getObjectProperty(myWall.Structure.materialType) = "SteelReinforcedConcreteBlock"
	isObjectProperty(Foundation.isCountinuousFoundation) = TRUE

	getObjectStructure(FoundationPlate.Structure.materialType) = "ReinforcedConcrete"
} 




Python Code 변환 예정



Modify
21
20073 건축물의 구조기준 등에 관한 규칙 제 43조 1 항

제43조(내력벽) ①건축물의 각층에 있어서 건축물의 길이방향 또는 너비방향의 보강블록구조인 내력벽의 길이(대린벽의 경우에는 그 접합된 부분의 각 중심을 이은 선의 길이를 말한다. 이하 이 절에서 같다)는 각각 그 방향의 내력벽의 길이의 합계가 그 층의 바닥면적 1제곱미터에 대하여 0.15미터 이상이 되도록 하되, 그 내력벽으로 둘러쌓인 부분의 바닥면적은 80제곱미터를 넘을 수 없다.





//	건축물의 구조기준 등에 관한 규칙 43조 (내력벽) 1항
Check(RSSB_43_1){
	getResult(RSSB_41_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS
}

KS{
    Wall myWall{
      isObjectProperty(Wall.isLoadBearingWall) = TRUE
      getObjectProperty(Wall.Structure.materialType) = "SteelReinforcedConcreteBlock"
    }
  
        FA =getObjectArea(Floor.One)
	getObjectProperty(myWall.Length)>= FA*0.15 m
        getObjectProperty(myWall.width)>= FA*0.15 m

        Space mySpace{
            isSurrounded(Space, myWall)=True
        }

         getFloorArea(mySpace)<=80 m2
} 




Python Code 변환 예정



Modify
22
20074 건축물의 구조기준 등에 관한 규칙 제 43조 2 항

②보강블록구조인 내력벽의 두께(마감재료의 두께를 포함하지 아니한다. 이하 이절에서 같다)는 150밀리미터 이상으로 하되, 그 내력벽의 구조내력에 주요한 지점간의 수평거리의 50분의 1이상으로 하여야 한다.





//	건축물의 구조기준 등에 관한 규칙 43조 (내력벽) 2항
Check(RSSB_43_2){
	getResult(RSSB_41_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS
}

KS{
	Wall myWall{
		isObjectProperty(Wall.isLoadBearingWall) = TRUE
		getFloorNumber(Wall) < 1
		getObjectProperty(Wall.Structure.materialType) = "SteelReinforcedConcreteBlock"
	}

	getWallThickness(myWall) >= 150mm
} 




Python Code 변환 예정



Modify
23
20075 건축물의 구조기준 등에 관한 규칙 제 43조 3 항

③보강블록구조의 내력벽은 그 끝부분과 벽의 모서리부분에 12밀리미터 이상의 철근을 세로로 배치하고, 9밀리미터 이상의 철근을 가로 또는 세로 각각 800밀리미터 이내의 간격으로 배치하여야 한다.





//	건축물의 구조기준 등에 관한 규칙 43조 (내력벽) 3항
Check(RSSB_43_3){
	getResult(RSSB_41_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS
}

KS{
    Wall myWall{
      isObjectProperty(Wall.isLoadBearingWall) = TRUE
      getObjectProperty(Wall.Structure.materialType) = "SteelReinforcedConcreteBlock"
    }

   Reinforcement myReinforcement{
        getObjectProperty(Reinforcement.diameter)>=12 mm
   }
      
    isInstalled( myReinforcement, myWall, Vertical , myWall.BothEndSides)=True
    isInstalled( myReinforcement, myWall, Vertical , myWall.Edge)=True

    Reinforcement myReinforcement2{
        getObjectProperty(Reinforcement.diameter)>=9 mm
   }
   
    isInstalled( myReinforcement2, myWall, 800 mm , myWall.BothEndSides)=True
    isInstalled( myReinforcement2, myWall, 800 mm , myWall.Edge)=True
} 




Python Code 변환 예정



Modify
24
20076 건축물의 구조기준 등에 관한 규칙 제 43조 4 항

④제3항의 규정에 의한 세로철근의 양단은 각각 그 철근지름의 40배 이상을 기초판 부분이나 테두리보 또는 바닥판에 정착시켜야 한다.





//건축물의 구조기준 등에 관한 규칙 43조 (내력벽) 4항

Check(RSSB_43_4){

	getResult(RSSB_41_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS

}



KS{

   RD>=40*getObjectProperty(RSSB_43_3_myReinforcement.diameter)

      

    isInstalled( RSSB_43_3_myReinforcement.BothEndSides, FoundationPlate , RD, "정착")=True



    OR  isInstalled( RSSB_43_3_myReinforcement.BothEndSides, WallGirder, RD, "정착")=True



      OR  isInstalled( RSSB_43_3_myReinforcement.BothEndSides, FloorSlab   , RD, "정착")=True



} 




Python Code 변환 예정



Modify
25
20077 건축물의 구조기준 등에 관한 규칙 제 44조

제44조(테두리보) 보강블록구조인 내력벽의 각층의 벽 위에는 춤이 벽두께의 1.5배 이상인 철근콘크리트구조의 테두리보를 설치하여야 한다. 다만, 최상층의 벽으로서 그 벽위에 철근콘크리트구조의 옥상바닥판이 있는 경우에는 그러하지 아니하다.





//건축물의 구조기준 등에 관한 규칙 44조 (테두리보)



Check(RSSB_44){

     getResult(RSSB_41_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF !CS THEN  KS

}



!CS{

  Wall myWall{

   isInstalled(Wall, TopFloor)=True

  } 

  

  FloorSlab myFloorSlab{
isInstalled(FloorSlab, Rooftop) = TRUE
       getObjectProperty(FloorSlab.Structure.materialType)="ReinforcedConcrete"

  }

   isInstalled(myFloorSlabOfRooftop, myWall, Top)=True   

    } 



KS{

   Wall myWall{

     isObjectProperty(Wall.isLoadBearingWall)=True

     isObjectProperty(Wall.Structure.isMansoryStructure)= True

   }



   WD=getObjectProperty(myWall.depth)

   

   WallGirder myWallGirder{   

     getObjectProperty(WallGirder.height)>=1.5*WD

     getObjectProperty(myWallGrider.Structure.materialType)="ReinforcedConcrete"

   }

   

    isInstalled(myWallGrider, myWall, Top)=True



  

} 




Python Code 변환 예정



Modify
26
20089 건축물의 구조기준 등에 관한 규칙 제 51조 2호 가 목

가. 슬래브, 벽체, 장선 : 20밀리미터 이상





// 건축물의 구조기준 등에 관한 규칙 51조 (철근을 덮는 두께) 2호 가목

Check(RSSB_51_0_2_가){
        KS
}

KS{
       getObjectThickness(Slab)>=20 mm
       getObjectThickness(Wall)>=20 mm
       getObjectThickness(BridgingJoist)>=20 mm
} 




Python Code 변환 예정



Modify
27
20096 건축물의 구조기준 등에 관한 규칙 제 54조 1호

1. 내력벽의 최소두께는 벽의 최상단에서 4.5미터까지는 150밀리미터 이상이어야 하며, 각 3미터 내려감에 따라 10밀리미터씩의 비율로 증가시켜야 한다. 다만, 두께가 120밀리미터 이상의 경우로서 구조계산에 의하여 안전하다고 확인된 경우에는 그러하지 아니하다.





//건축물의 구조기준 등에 관한 규칙 54조 (내력벽의 구조) 1호

Check(RSSB_54_0_1){
      IF !CS THEN KS
}

Wall myWall{
     isObjectProperty(Wall.isLoadBearingWall)=True
  }

CS{
    getWallThickness(myWall)>=120 mmm
}

KS{

  
   H1=getObjectHeight(myWall)
   H2= H1-4.5 m
   getWallThickness(myWall,H2,H1)>=150 mm
  
   H3=getFloorElevationHeight(myWall.Floor)
   

   getWallThickness(myWall,H3,H2,3 m, a)>=150+10*a
   

  
} 




Python Code 변환 예정



Modify
28
20097 건축물의 구조기준 등에 관한 규칙 제 54조 2호

2. 내력벽의 배근은 9밀리미터 이상의 것을 450밀리미터 이하의 간격으로 하고, 벽두께의 3배 이하이어야 한다. 이 경우 벽의 두께가 200밀리미터 이상일 때에는 벽 양면에 복근으로 하여야 한다.





//건축물의 구조기준 등에 관한 규칙 54조 (내력벽의 구조) 2호

Check(RSSB_54_02){
      KS
}

KS{
   Wall myWall{
     isObjectProperty(Wall.isLoadBearingWall)=True
  }

  Reinforcement myReinforcement{
       getObjectProperty(Reinforcement.diameter)>=9 mm
  }
  
  isInstalled(myReinforcement, myWall, 450 mm)=True
  //벽두께의 3배 이하이어야 한다. 
  IF getObjectProperty(myWall.depth)>=200 mm
  THEN isInstalled(DoubleReinforcement, myWall, myWall.BothSides)=True
  END IF 

} 




Python Code 변환 예정



Modify
29
24894 건축물의 구조기준 등에 관한 규칙 제 28조 3 항

③구조부재가 아닌 조적식구조의 칸막이벽으로서 그 높이가 2미터 이하인 것에 대하여는 제29조·제30조·제33조 및 제35조제3항의 규정에 한하여 이를 적용한다. <개정 2009.12.31>





//건축물의 구조기준 등에 관한 규칙 28조 (적용범위 등) 3항
Check(RSSB_28_3){
	getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS
}
KS{
	Wall myWall{
	isObjectProperty(Wall.isStructuralMember) = FALSE
	isObjectProperty(Wall.isPartitionWall) = TRUE
	isObjectProperty(Wall.Structure.isMansoryStructure) = TRUE
	}
	getObjectHeight(myWall) <= 2m
} 




Python Code 변환 예정



Modify
30
24900 건축물의 구조기준 등에 관한 규칙 제 54조

제54조(내력벽의 구조) 구조부재인 콘크리트벽체는 다음 각호의 기준에 적합하여야 한다. <개정 2009.12.31>





//건축물의 구조기준 등에 관한 규칙 54조 (내력벽의 구조)

Check(RSSB_54){
   getResult(RSSB_3_3) = TRUE AND IF CS THEN KS 
}

CS{
    isObjectProperty(Wall.isStructuralMember)=True
    getObjectProperty(Wall.material)="Concrete"
}

KS{
    getResult(RSSB_54_0_1)=True
    getResult(RSSB_54_0_2)=True
} 




Python Code 변환 예정



Modify
31
19376 건축물의 설비기준 등에 관한 규칙 제 9조 3호

3. 높이 31미터를 넘는 층수가 4개층이하로서 당해 각층의 바닥면적의 합계 200제곱미터(벽 및 반자가 실내에 접하는 부분의 마감을 불연재료로 한 경우에는 500제곱미터)이내마다 방화구획으로 구획한 건축물





//건축물의 설비기준 등에 관한 규칙 9조 (비상용승강기를 설치하지 아니할 수 있는 건축물) 3호

Check(RFB_9_0_3){

    KS

}



KS{

    getBuildingHeight()>31 m

    getBuildingStoriesCount()<=4

    IF isObjectProperty(Wall.InteriorFinish.Material.nonCombustibility)=TRUE

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

    THEN isFirePartition(Floor, a,500)=TRUE 

    ELSE THEN isFirePartition(Floor, a,200)=TRUE 

    END IF

} 




Python Code 변환 예정



Modify
32
19382 건축물의 설비기준 등에 관한 규칙 제 10조 2호 라 목

라. 벽 및 반자가 실내에 접하는 부분의 마감재료(마감을 위한 바탕을 포함한다)는 불연재료로 할 것





//건축물의 설비기준 등에 관한 규칙 10조 (비상용승강기의 승강장 및 승강로의 구조) 2호 라목
Check(RFB_10_0_2_라){
	KS
}

KS{
	Elevator myElevator{
		isObjectProperty(Elevator.isEmergency)=TRUE
	}
	isObjectProperty(myElevator.Platform.Wall.InteriorFinish.Material.nonCombustibility) = TRUE
	isObjectProperty(myElevator.Platform.CeilingCovering.InteriorFinish.Material.nonCombustibility) = TRUE
} 




Python Code 변환 예정



Modify
33
19388 건축물의 설비기준 등에 관한 규칙 제 13조 1 항 1호

1. 보일러는 거실외의 곳에 설치하되, 보일러를 설치하는 곳과 거실사이의 경계벽은 출입구를 제외하고는 내화구조의 벽으로 구획할 것





//	건축물의 설비기준 등에 관한 규칙 13조 (개별난방설비) 1항 1호
Check(RFB_13_1_1){
	KS
}

KS{
	hasSpace(Room, Boiler) = FALSE
	
	Room myRoom{
		hasSpace(Room, Boiler) = TRUE
	}

	Room myRoom2{
		hasAdjacent(myRoom, Room) = TRUE
	}

	Wall myWall{
		isPartitioned(myRoom, myRoom2, Wall) = TRUE
		hasObject(Wall, Door.isEntrance) = FALSE
		isObjectProperty(Wall.isfireResistantStructure) = TRUE
	}

	isExist(myWall) = TRUE
} 




Python Code 변환 예정



Modify
34
19391 건축물의 설비기준 등에 관한 규칙 제 13조 1 항 6호

6. 오피스텔의 경우에는 난방구획마다 내화구조로 된 벽·바닥과 갑종방화문으로 된 출입문으로 구획할 것





//	건축물의 설비기준 등에 관한 규칙 13조 (개별난방설비) 1항 6호

Check(RFB_13_1_6){

	IF CS THEN KS

}



CS{

	getBuildingUsage() = "Officetel"

}



KS{

	Wall myWall{

		isObjectProperty(Wall.isfireResistantStructure)

	}



	FloorSlab myFloorSlab{

		isObjectProperty(FloorSlab.isFireResistantStructure) = TRUE

	}



	Door myDoor{

		isObjectProperty(Door.isStrictFireproofDoor) = TRUE

	}


Zone myZone{
isObjectProperty(Zone.isHeatingSection) = TRUE
}
	isPartitioned(myZone, myWall) = TRUE

	OR isPartitioned(myZone, myFloorSlab) = TRUE

	OR isPartitioned(myZone, myDoor) = TRUE

} 




Python Code 변환 예정



Modify
35
19393 건축물의 설비기준 등에 관한 규칙 제 13조 2 항

②가스보일러에 의한 난방설비를 설치하고 가스를 중앙집중공급방식으로 공급하는 경우에는 제1항의 규정에 불구하고 가스관계법령이 정하는 기준에 의하되, 오피스텔의 경우에는 난방구획마다 내화구조로 된 벽·바닥과 갑종방화문으로 된 출입문으로 구획하여야 한다. <신설 1999.5.11.>





//	건축물의 설비기준 등에 관한 규칙 13조 (개별난방설비) 2항

Check(RFB_13_2){

	IF CS THEN KS

}



CS{

	getBuildingUsage() = "Officetel"

}



KS{

	Wall myWall{

		isObjectProperty(Wall.isfireResistantStructure)

	}



	FloorSlab myFloorSlab{

		isObjectProperty(FloorSlab.isFireResistantStructure) = TRUE

	}



	Door myDoor{

		isObjectProperty(Door.isStrictFireproofDoor) = TRUE

	}


Zone myZone{
isObjectProperty(Zone.isHeatingSection) = TRUE
}
	isPartitioned(myZone, myWall) = TRUE

	OR isPartitioned(myZone, myFloorSlab) = TRUE

	OR isPartitioned(myZone, myDoor) = TRUE

} 




Python Code 변환 예정



Modify
36
72659 건축물의 에너지절약설계기준 제 5조 10호 나 목

나. "효율”이라 함은 설비기기에 공급된 에너지에 대하여 출력된 유효에너지의 비를 말한다.





//	비상경보설비의 화재안전기준 (nfsc 201) 4조 (비상벨설비 또는 자동식사이렌설비) 2항



Check(NFSC201_4_2){

    KS

}



KS{

	Floor myFloor{

		hasSpace(Floor, SpecificFireFightingBuilding) = TRUE

	}

AcousticSystem myAcousticSystem{
isObjectProperty(AcousticSystem.isForPublic) = TRUE
}

	isInstalled(myAcousticSystem, myFloor) = TRUE

	(getObjectDistance(myAcousticSystem, Wall.Structure.) <= 25m 




Python Code 변환 예정



Modify
37
72662 건축물의 에너지절약설계기준 제 5조 10호 마 목

마. "비례제어운전”이라 함은 기기의 출력값과 목표값의 편차에 비례하여 입력량을 조절하여 최적운전상태를 유지할 수 있도록 운전하는 방식을 말한다.





// // 스프링클러설비의 화재안전기준(NFSC 103) 4조 (비상벨설비 또는 자동식사이렌설비) 5항 2호



Check(NFSC201_4_5_1){

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

CS1{

	getObjectDistance(Corridor | Space, Transmitter) < 40m

}

KS1{

	isInstalled(Transmitter, SpecificFireFightingBuilding.Floor.One) = TRUE

	getOjectCount(Transmitter) = 1

	getElementDistance(SpecificFireFightingBuilding.Wall | SpecificFireFightingBuilding.Column, Transmitter) <= 25m

}



CS2{

	getObjectDistance(Corridor | Space, Transmitter) >= 40m

}

KS2{

	isInstalled(Transmitter, SpecificFireFightingBuilding.Floor.One) = TRUE

	getOjectCount(Transmitter) >= 2

	getElementDistance(SpecificFireFightingBuilding.Wall | SpecificFireFightingBuilding.Column, Transmitter) <= 25m

} 




Python Code 변환 예정



Modify
38
72703 건축물의 에너지절약설계기준 제 5조 9호 러 목

러. "일사조절장치"라 함은 태양열의 실내 유입을 조절하기 위한 목적으로 설치하는 장치를 말한다.





//  옥내소화전설비의 화재안전기준(nfsc 102) 7조 (함 및 방수구 등) 2항 1호

Check(NFSC503A_7_2_1){

	KS2 AND IF CS THEN KS1

}

KS2{

	isInstalled(옥내소화전방수구, SpecificFireFightingBuilding.Floor.One) = TRUE

	getElementDistance(SpecificFireFightingBuilding.Wall|SpecificFireFightingBuilding.Column, 옥내소화전방수구.One) <= 25m

}

CS{

	getBuildingUsage() = "MultiUnitHouse"

}	

KS2{

	Door myDoor{

	isObjectProperty(Door.isEntrance) = TRUE

	}

	Floor myFloor{

	isInstalled(myDoor, Floor) = TRUE

	}

Port myPort{
Port.typeForWater="IndoorFireHydrantDischarge"
}
	isInstalled(myPort, myFloor.One) = TRUE

} 




Python Code 변환 예정



Modify
39
72726 건축물의 에너지절약설계기준 제 6조 1호 다 3) 목

3) 구성재료의 열전도율 값으로 열관류율을 계산한 결과가 별표1의 부위별 열관류율 기준을 만족하는 경우 적합한 것으로 본다.(단, 각 재료의 열전도율 값은 한국산업규격 또는 국가공인시험기관의 KOLAS 인정마크가 표시된 시험성적서의 값을 사용하고, 표면열전달저항 및 중공층의 열저항은 이 기준 별표5 및 별표6에서 제시하는 값을 사용)





// 스프링클러설비의 화재안전기준(NFSC 103) 9조 (음향장치 및 기동장치) 1항 3호

Check(NFSC103_9_1_3){
	KS
}
KS{
	Zone myZone{
	isObjectProperty(Zone.isProtectionZone) = TRUE
	}
	isInstalled(AcousticSystem, myZone) = TRUE
	getElementDistance(myZone.Wall|myZone.Column, AcousticSystem.One) <= 25m
} 




Python Code 변환 예정



Modify
40
72733 건축물의 에너지절약설계기준 제 6조 3호

3. 바닥난방에서 단열재의 설치





// 스프링클러설비의 화재안전기준(NFSC 103) 9조 (음향장치 및 기동장치) 3항 5호 나목



Check(NFSC103_9_3_5_나){

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

CS1{

	getObjectDistance(Corridor | Space, Transmitter) < 40m

}

KS1{

	isInstalled(Transmitter, SpecificFireFightingBuilding.Floor.One) = TRUE

	getOjectCount(Transmitter) = 1

	getElementDistance(SpecificFireFightingBuilding.Wall | SpecificFireFightingBuilding.Column, Transmitter) <= 25m

}



CS2{

	getObjectDistance(Corridor | Space, Transmitter) >= 40m

}

KS2{

	isInstalled(Transmitter, SpecificFireFightingBuilding.Floor.One) = TRUE

	getOjectCount(Transmitter) >= 2

	getElementDistance(SpecificFireFightingBuilding.Wall | SpecificFireFightingBuilding.Column, Transmitter) <= 25m

} 




Python Code 변환 예정



Modify
41
72734 건축물의 에너지절약설계기준 제 6조 3호 가 목

가. 바닥난방 부위에 설치되는 단열재는 바닥난방의 열이 슬래브 하부 및 측벽으로 손실되는 것을 막을 수 있도록 온수배관(전기난방인 경우는 발열선) 하부와 슬래브 사이에 설치하고, 온수배관(전기난방인 경우는 발열선) 하부와 슬래브 사이에 설치되는 구성 재료의 열저항의 합계는 층간 바닥인 경우에는 해당 바닥에 요구되는 총열관류저항(별표1에서 제시되는 열관류율의 역수)의 60% 이상, 최하층 바닥인 경우에는 70% 이상이 되어야 한다. 다만, 바닥난방을 하는





//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 1항



Check(NFSC_10_1){

KS2 AND IF CS THEN KS1





KS2{

Space mySpace1{

천장과반자사이

}

hasElement(SpecificFireFightingBuilding.Ceiling,SprinklerHead)= TRUE

hasElement(SpecificFireFightingBuilding.CeilingCovering,SprinklerHead)= TRUE

hasElement(SpecificFireFightingBuilding.mySpace1,SprinklerHead)= TRUE

hasElement(SpecificFireFightingBuilding.Duct,SprinklerHead)= TRUE

hasElement(SpecificFireFightingBuilding.Shelf,SprinklerHead)= TRUE

}



CS{

Space mySpace2{

isExternal(Space)= FALSE 

}

getSpaceWidth(Building.mySpace)<= 9m

}



KS1{

Wall myWall{

Wall.isSideWall=TRUE

}

hasElement(myWall,SprinklerSystem.Head)=TRUE

hasElement(myWall,SprinklerSystem.Head)=FALSE

} 




Python Code 변환 예정



Modify
42
72745 건축물의 에너지절약설계기준 제 6조 4호 라 2) 목

2) 주택의 출입문(단, 기숙사는 제외)





//스프링클러설비의 화재안전기준(NFSC 103) 10조 7호 1항

check(NFSC103_10_7_1){
	KS
}

KS{
	getObjectDistance(Wall, SprinklerHead) >= 10cm
	isVacant(SprinklerHead,a, 60) = TRUE
} 




Python Code 변환 예정



Modify
43
72748 건축물의 에너지절약설계기준 제 6조 4호 마 목

마. 방풍구조를 설치하여야 하는 출입문에서 회전문과 일반문이 같이 설치되어진 경우, 일반문 부위는 방풍실 구조의 이중문을 설치하여야 한다.





//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 7항4호

Check(NFSC103_10_7_4){
  IF !CS THEN KS 
}

CS{

   getObjectProperty(SprinklerHead.shapeType)="SideWallType"
OR getResult(NFSC203_10_7_6)=TRUE
   
}


KS{ isParallel(SprinklerHead.Deflector,Deflector.AttachingToSurface)=TRUE

} 




Python Code 변환 예정



Modify
44
72756 건축물의 에너지절약설계기준 제 7조 1호 나 목

나. 공동주택은 인동간격을 넓게 하여 저층부의 일사 수열량을 증대시킨다.





//스프링클러설비의 화재안전기준 10조 (헤드) 7항 8호
check(NFSC103_10_7_8){
	IF CS THEN KS
}

SprinklerHead mySprinklerHead{
	getObjectProperty(SprinklerHead.shapeType) = "SideWallType"
}

CS{
	isExist(mySprinklerHead) = TRUE
}

KS{
	isInstalled(mySprinklerHead, c) = TRUE
} 




Python Code 변환 예정



Modify
45
72777 건축물의 에너지절약설계기준 제 7조 5호 라 목

라. 창에 직접 도달하는 일사를 조절할 수 있도록 제5조제9호러목에 따른 일사조절장치를 설치한다.





//	스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 5호 나목
Check(NFSC103_15_1_5_2){
	KS
}

KS{
	Wall myWall{
		isConnectedTo(Wall, Ceiling) = TRUE
		isConnectedTo(Wall, CeilingCovering) = TRUE
	}

	isObjectProperty(myWall.Material.nonCombustibility) = TRUE
	getObjectDistance(Ceiling, CeilingCovering) >= 2m
} 




Python Code 변환 예정



Modify
46
72787 건축물의 에너지절약설계기준 제 8조 2호 다 목

다. 기기배관 및 덕트는 국토교통부에서 정하는 「건축기계설비공사표준시방서」의 보온두께 이상 또는 그 이상의 열저항을 갖도록 단열조치를 하여야 한다. 다만, 건축물내의 벽체 또는 바닥에 매립되는 배관 등은 그러하지 아니할 수 있다.





//	스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 14호
Check(NFSC103_15_1_14){
	KS
}

KS{
	(getBuildingUsage() = "Indoor.TennisCourts"
	OR getBuildingUsage() = "Indoor.게이트볼장"
	OR getBuildingUsage() = "Indoor.정구장")

	(getObjectProperty(Floor.InteriorFinish.Material.nonCombustibility) = TRUE
	OR getObjectProperty(Floor.InteriorFinish.Material.quasiNonCombustibility) TRUE)

	(getObjectProperty(Wall.InteriorFinish.Material.nonCombustibility) = TRUE
	OR getObjectProperty(Wall.InteriorFinish.Material.quasiNonCombustibility) TRUE)

	(getObjectProperty(Ceiling.InteriorFinish.Material.nonCombustibility) = TRUE
	OR getObjectProperty(Ceiling.InteriorFinish.Material.quasiNonCombustibility) TRUE)

	isObjectProperty(Space.hasCombustible) = FALSE
	hasSpace(Auditorium, SportsFacility) = FALSE
	getObjectProperty(Floor.number) > 0
} 




Python Code 변환 예정



Modify
47
72875 건축물의 에너지절약설계기준 제 22조

제22조(건축물의 에너지 소요량의 평가방법) 건축물 에너지소요량은 ISO 13790 등 국제규격에 따라 난방, 냉방, 급탕, 조명, 환기 등에 대해 종합적으로 평가하도록 제작된 프로그램에 따라 산출된 연간 단위면적당 1차 에너지소요량 등으로 평가하며, 별표10의 평가기준과 같이 한다.





// 간이스프링클러설비의 화재안전기준(nfsc 103a) 9조 (간이헤드) 4호



Check(NFSC503A_9_0_4){

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

}

CS1{

	isObjectProperty(Head.installationDirectionType) = "BottomUpType" OR "TopDownType"

}

KS1{

	getObjectDistance(Deflector, Ceiling | CeilingCovering) >= 25mm

	getObjectDistance(Deflector, Ceiling | CeilingCovering) <= 102mm

}

CS2{

	isObjectProperty(Head.shapeType) = "SideWallType" 

}

KS2{

	getObjectDistance(Deflector, Ceiling | CeilingCovering) >= 102mm

	getObjectDistance(Deflector, Ceiling | CeilingCovering) <= 152mm

}

CS3{

	isObjectProperty(Head.shapeType) = "FlushType" 

}

KS2{

	getObjectDistance(Deflector, Ceiling | CeilingCovering) <= 102mm

} 




Python Code 변환 예정



Modify
48
72901 건축물의 에너지절약설계기준 제 별표3조

단열재의 두께





자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 7호 가목
Check(NFSC203_7_3_7_가){
	KS3 AND IF !CS THEN KS1 ELSE KS2
}
	Pipe myPipe{
	isObjectProperty(Pipe.isForAir) = TRUE
	}
	Zone myZone{
	isObjectProperty(Zone.isDetectionZone) = TRUE
	}
KS3{
	getElementDistance(myPipe, myZone.Wall) <= 1.5m
	getElementDistance(myPipe, myZone.Column) <= 1.5m
}
CS{
	isFireResistantStructure(SpecificFireFightingBuilding.MainStructuralPart) = TRUE
	
}
KS1{
	getObjectInterval(myPipe) <= 6m
}
KS2{
	getObjectInterval(myPipe) <= 6m
} 




Python Code 변환 예정



Modify
49
72904 건축물의 에너지절약설계기준 제 별표6조

열관류율 계산시 적용되는 중공층의 열저항





자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 7호 마목
Check(NFSC203_7_3_7_마){
	KS
}
KS{
	isInstalled(DetectingElement, Wall) = TRUE
	getObjectGradient(Wall, DetectingElement) < 5
} 




Python Code 변환 예정



Modify
50
11463 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 19조 3 항

③ 법 제49조제3항에 따른 가구ㆍ세대 등 간 소음방지를 위한 바닥은 경량충격음(비교적 가볍고 딱딱한 충격에 의한 바닥충격음을 말한다)과 중량충격음(무겁고 부드러운 충격에 의한 바닥충격음을 말한다)을 차단할 수 있는 구조로 하여야 한다. <신설 2014.11.28>





check(REFB_19_1){

     KS

}



KS{

Wall myWall{
   isObjectProperty(Wall.isPartitionWall) = TRUE
}
Floor myFloor{
hasObject(Floor, myWall)
}
   isFireResistantStructure(myWall)=TRUE
(isConnectedTo(myWall, Roof.BottomSurface) = TRUE
 OR isCOnnectedTo(myWall, myFloor.UpperFloor.FloorSlab) = TRUE)

} 








def Check():
    for building in SELECT('building'):
        bldg_use = building.SELECT('building type').STRING()
        sub_use = building.SELECT('prop', '세부용도').STRING()
        space_codes = []
        
        if bldg_use == '단독주택' and sub_use == '다가구주택':
            space_codes = ['가구'] #가구
        elif (bldg_use == '공동주택' and sub_use != '기숙사') or (bldg_use == '노유자시설' and sub_use == '노인복지주택'):
            space_codes = ['33237'] #세대
        elif bldg_use == '공동주택' and sub_use == '기숙사':
            space_codes = ['33230'] #침실
        elif bldg_use == '의료시설':
            space_codes = ['34310'] #병실
        elif bldg_use == '교육연구시설' and sub_use == '학교':
            space_codes = ['34404', '34409']    #교실
        elif bldg_use == '숙박시설':
            space_codes = ['33201'] #객실
        elif (bldg_use == '제2종 근린생활시설' and sub_use == '다중생활시설') or (bldg_use == '노유자시설' and sub_use == '노인요양시설'):
            space_codes = ['호실'] #호실
        else:
            return

        for storey in building.SELECT('storey'):
            walls_list = []
            for space in storey.SELECT('space'):
                code = space.SELECT('class code').STRING()
                if code in space_codes:
                    walls_list.append(space.SELECT('wall'))
            
            n = len(walls_list)
            for i, walls in enumerate(walls_list):
                if i == n-1:
                    break
                for j, walls2 in enumerate(walls_list):
                    if i >= j:
                        continue
                    for wall in walls:
                        if wall.SELECT('isexterior').BOOL():
                            continue
                        id = wall.SELECT('element id').STRING()
                        for wall2 in walls2:
                            if wall2.SELECT('isexterior').BOOL():
                                continue
                            id2 = wall2.SELECT('element id').STRING()
                            if id == id2:
                                if wall.SELECT('prop', '경계벽').BOOL() == False:
                                    wall.ERROR('해당 벽은 경계벽이어야 합니다.')
                                else:
                                    if wall.SELECT('prop', '내화구조').BOOL() == False:
                                        wall.ERROR('경계벽은 내화구조이어야 합니다.')
                                    else:
                                        if wall.SELECT('top touched').BOOL():
                                            wall.SUCCESS('경계벽 조건에 부합합니다.')
                                        else:
                                            wall.ERROR('경계벽 상단이 슬라브와 닿지 않습니다.')
                                break 





Modify
51
19408 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 3조 1호

1. 벽의 경우에는 다음 각목의 1에 해당하는 것





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

Check (REFB_3_0_1){
	IF CS THEN KS
}
CS{
	isInstalled(Wall) = TRUE
}
KS{
	getResult(REFB_3_0_1_가)=TRUE
    getResult(REFB_3_0_1_나)=TRUE
    getResult(REFB_3_0_1_다)=TRUE
    getResult(REFB_3_0_1_라)=TRUE
    getResult(REFB_3_0_1_마)=TRUE
} 




Python Code 변환 예정



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

나. 골구를 철골조로 하고 그 양면을 두께 4센티미터 이상의 철망모르타르(그 바름바탕을 불연재료로 한 것에 한한다. 이하 이 조에서 같다) 또는 두께 5센티미터 이상의 콘크리트블록ㆍ벽돌 또는 석재로 덮은 것





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

Check (REFB_3_0_1_나){
	KS
}
KS{
	getObjectProperty(Wall.Structure.materialType) = "SteelFrame"  
	(isInstalled(WireMeshMortar, Wall.DoubleSide) = TRUE
	getObjectWidth(WireMeshMortar) >= 4cm)
	(isInstalled(ConcreteBlock, Wall.DoubleSide) = TRUE 
	OR (getObjectWidth(ConcreteBlock) >= 5cm )
	(isInstalled(Brick, Wall.DoubleSide) = TRUE
	OR getObjectWidth(Brick) >= 5cm )
	(isInstalled(Stone, Wall.DoubleSide) = TRUE
	OR getObjectWidth(Stone) >= 5cm)
} 




Python Code 변환 예정



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

다. 철재로 보강된 콘크리트블록조ㆍ벽돌조 또는 석조로서 철재에 덮은 콘크리트블록등의 두께가 5센티미터 이상인 것





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

Check (REFB_3_0_1_다){
	IF CS THEN KS
}
CS{
getObjectProperty(Wall.Structure.materialType) = "ConcreteBlock" OR "Brick" OR "Stone"
isObjectProperty(Structure.isReinforcedSteelStructure) = TRUE
}
KS{
getObjectThickness(Wall.Structure) >= 5cm
}	
 




Python Code 변환 예정



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

라. 벽돌조로서 두께가 19센티미터 이상인 것





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

Check (REFB_3_0_1_라){
	KS
}

KS{
	getObjectProperty(Wall.Structure.materialType) = "Brick"
	getObjectThickness(Wall.Structure) >= 19cm
} 




Python Code 변환 예정



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

마. 고온ㆍ고압의 증기로 양생된 경량기포 콘크리트패널 또는 경량기포 콘크리트블록조로서 두께가 10센티미터 이상인 것





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

Check (REFB_3_0_1_마){
	KS
}
KS{
	getObjectProperty(Wall.Structure.materialType) = "AeratedConcretePanel" OR "AeratedConcreteBlock"
	getObjectThickness(Wall.Structure) >= 10cm
} 




Python Code 변환 예정



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

다. 철재의 양면을 두께 5센티미터 이상의 철망모르타르 또는 콘크리트로 덮은 것





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

Check (REFB_3_0_4_다){
	KS
}
KS{
	(isInstalled(WireMeshMortar, Steel.DoubleSide) = TRUE
	getObjectWidth(WireMeshMortar) >= 5cm)
	OR (isInstalled(ConcreteBlock, Wall.DoubleSide) = TRUE 
	getObjectWidth(ConcreteBlock) >= 5cm)
} 




Python Code 변환 예정



Modify
57
19510 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 14조의2조 5호

5. 거실의 벽 및 반자가 실내에 면하는 부분(반자돌림대ㆍ창대 그 밖에 이와 유사한 것을 제외한다. 이하 이 조에서 같다)의 마감은 불연재료ㆍ준불연재료 또는 난연재료로 하고, 그 거실로부터 지상으로 통하는 주된 복도ㆍ계단 그밖에 통로의 벽 및 반자가 실내에 면하는 부분의 마감은 불연재료 또는 준불연재료로 할 것





// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 14조의2 (복합건축물의 피난시설 등) 5호



Check(REFB_14-2_0_5){

      KS

}



KS{



  Object myObject{

      getObject(Room.wall)

      getObject(Room.CeilingCovering)

  }

   



Corridor myCorridor{

   isGoThrough(Room, Corridor, Ground )=True

}



Stair myStair{

  isGoThrough(Room,Stair, Ground )=True

}



Passage myPassage{

  isGoThrough(Room,Passage, Ground )=True

}



Space mySpace{

   Space.usage==myCorridor.usage

   OR Space.usage==myStair.usage

   OR Space.usage=myPassage.usage



}





Object myObject2{

      getObject(mySpace.wall)

      getObject(mySpace.CeilingCovering)

  }



( isObjectProperty(myObject.InteriorFinish.Material.nonCombustibility)=True

 OR isObjectProperty(myObject.InteriorFinish.Material.quasiNonCombustibility)=True

 OR isObjectProperty(myObject.InteriorFinish.Material.flameResistance)= True
)



isObjectProperty(myObject2.InteriorFinish.Material.nonCombustibility)=True

 OR isObjectProperty(myObject2.InteriorFinish.Material.quasiNonCombustibility)=True





} 




Python Code 변환 예정



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

가. 승강장의 출입구를 제외한 부분은 해당 건축물의 다른 부분과 내화구조의 바닥 및 벽으로 구획할 것





// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 1호 가목

check(REFB_30_0_1_가){

      KS

}

KS{

	FloorSlab myFloorSlab{

	isFireResistantStructure(FloorSlab) = TRUE

}

	Wall myWall{

	isFireResistantStructure(Wall) = TRUE

}

	Object  myElement{

		getObject(Platform.Object) - getObject(Opening)

	}

	isPartitioned(myElement, , myFloorSlab) = TRUE

	isPartitioned(myElement, , myWall) = TRUE

} 




Python Code 변환 예정



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

가. 출입구를 제외한 부분은 해당 건축물의 다른 부분과 내화구조의 바닥 및 벽으로 구획할 것





// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 3호 가목

check(REFB_30_0_3_가){

      KS

}

KS{

	FloorSlab myFloorSlab{

	isFireResistantStructure(FloorSlab) = TRUE

}

	Wall myWall{

	isFireResistantStructure(Wall) = TRUE

}

	Door myDoor{

	isObjectProperty(Door.isEntrance) = TRUE

	}

	Object myElement{

		getObject(Space.Object) - getObject(myDoor)

	}

	isPartitioned(myElement, , myFloorSlab) = TRUE

	isPartitioned(myElement, , myWall) = TRUE

} 




Python Code 변환 예정



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

가. 계단실은 창문·출입구 기타 개구부(이하 "창문등"이라 한다)를 제외한 당해 건축물의 다른 부분과 내화구조의 벽으로 구획할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 가목
check(REFB_9_2_1_1){
     KS
}
KS{
Wall myWall{
	hasElement(Stair.Space, Wall) = TRUE
	hasElement(Wall, Window) = FALSE
	hasElement(Wall, Door) = FALSE
	hasElement(Wall, Opening) = FALSE
}
Stair myStair{
            isObjectProperty(Stair.isEscape)= TRUE
}

isFireResistantStructure(myWall)= TRUE
isPartitioned (myStair, 0, myWall) = TRUE
 	
}
 




Python Code 변환 예정



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

나. 계단실·노대 및 부속실(「건축물의 설비기준 등에 관한 규칙」 제10조제2호 가목의 규정에 의하여 비상용승강기의 승강장을 겸용하는 부속실을 포함한다)은 창문등을 제외하고는 내화구조의 벽으로 각각 구획할 것





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

CS{
	Space mySpace {
		getSpace(Stair.Space)
		getSpace(“Balcony”)
		getSpace(“AncillaryRoom”)
}
isExist(mySpace)=TRUE
}

KS{
   Wall myWall {
getObjectProperty(Wall.isFireResistantStructure = TRUE
}
   isPartitioned(mySpace, 0, myWall)= TRUE
}
 




Python Code 변환 예정



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

2. 손잡이는 벽등으로부터 5센티미터 이상 떨어지도록 하고, 계단으로부터의 높이는 85센티미터가 되도록 할 것





check(REFB_15_4_2){
     KS
}
KS{
       getObjectDistance(Handle,WallLantern) >= 5CM
       AND getObjectVerticalDistance(Handle,Stair) = 85CM
} 




Python Code 변환 예정



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

①영 제53조의 규정에 의하여 건축물에 설치하는 경계벽 및 간막이벽은 내화구조로 하고, 지붕밑 또는 바로 윗층의 바닥판까지 닿게 하여야 한다.





check(REFB_19_1){

     KS

}



KS{

Wall myWall{
   isObjectProperty(Wall.isPartitionWall) = TRUE
}
Floor myFloor{
hasObject(Floor, myWall)
}
   isFireResistantStructure(myWall)=TRUE
(isConnectedTo(myWall, Roof.BottomSurface) = TRUE
 OR isCOnnectedTo(myWall, myFloor.UpperFloor.FloorSlab) = TRUE)

} 








def Check():
    for building in SELECT('building'):
        bldg_use = building.SELECT('building type').STRING()
        sub_use = building.SELECT('prop', '세부용도').STRING()
        space_codes = []
        
        if bldg_use == '단독주택' and sub_use == '다가구주택':
            space_codes = ['가구'] #가구
        elif (bldg_use == '공동주택' and sub_use != '기숙사') or (bldg_use == '노유자시설' and sub_use == '노인복지주택'):
            space_codes = ['33237'] #세대
        elif bldg_use == '공동주택' and sub_use == '기숙사':
            space_codes = ['33230'] #침실
        elif bldg_use == '의료시설':
            space_codes = ['34310'] #병실
        elif bldg_use == '교육연구시설' and sub_use == '학교':
            space_codes = ['34404', '34409']    #교실
        elif bldg_use == '숙박시설':
            space_codes = ['33201'] #객실
        elif (bldg_use == '제2종 근린생활시설' and sub_use == '다중생활시설') or (bldg_use == '노유자시설' and sub_use == '노인요양시설'):
            space_codes = ['호실'] #호실
        else:
            return

        for storey in building.SELECT('storey'):
            walls_list = []
            for space in storey.SELECT('space'):
                code = space.SELECT('class code').STRING()
                if code in space_codes:
                    walls_list.append(space.SELECT('wall'))
            
            n = len(walls_list)
            for i, walls in enumerate(walls_list):
                if i == n-1:
                    break
                for j, walls2 in enumerate(walls_list):
                    if i >= j:
                        continue
                    for wall in walls:
                        if wall.SELECT('isexterior').BOOL():
                            continue
                        id = wall.SELECT('element id').STRING()
                        for wall2 in walls2:
                            if wall2.SELECT('isexterior').BOOL():
                                continue
                            id2 = wall2.SELECT('element id').STRING()
                            if id == id2:
                                if wall.SELECT('prop', '경계벽').BOOL() == False:
                                    wall.ERROR('해당 벽은 경계벽이어야 합니다.')
                                else:
                                    if wall.SELECT('prop', '내화구조').BOOL() == False:
                                        wall.ERROR('경계벽은 내화구조이어야 합니다.')
                                    else:
                                        if wall.SELECT('top touched').BOOL():
                                            wall.SUCCESS('경계벽 조건에 부합합니다.')
                                        else:
                                            wall.ERROR('경계벽 상단이 슬라브와 닿지 않습니다.')
                                break 





Modify
64
25309 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 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 변환 예정



Modify
65
25310 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 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 변환 예정



Modify
66
25311 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 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 변환 예정



Modify
67
25317 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 21조 1 항 1호

1. 내화구조로서 홀로 설 수 있는 구조일 것





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

Check(REFB_21_1_1){
     KS
}

KS{
   Wall myWall{
       isObjectProperty(Wall.isFireProofWall)=True
   }
   
   isObjectProperty(myWall.isfireResistantStructure)=True
}

 




Python Code 변환 예정



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

2. 방화벽의 양쪽 끝과 윗쪽 끝을 건축물의 외벽면 및 지붕면으로부터 0.5미터 이상 튀어 나오게 할 것





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

Check(REFB_21_1_2){
     KS
}

KS{
   Object myObject{
      //방화벽의 양쪽 끝과 윗쪽 끝
   }  

   Wall myWall{
      isObjectProperty(Wall.isExternal)=True
   }

    getObjectDistance(myObject, myWall)>=0.5 m
    getObjectDistance(myObject, Roof)>=0.5 m
} 




Python Code 변환 예정



Modify
69
25319 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 21조 1 항 3호

3. 방화벽에 설치하는 출입문의 너비 및 높이는 각각 2.5미터 이하로 하고, 해당 출입문에는 제26조에 따른 갑종방화문을 설치할 것





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

Check(REFB_21_1_3){
      KS
}

KS{
     Door myDoor{
      isObjectProperty(Door.isEntrance)=True
      isInstalled(Door, myWall)=True
    }

    getObjectWidth(myDoor)<=2.5 m
    getObjectHeight(myDoor)<=2.5 m
    isObjectProperty(myDoor.isStrictFireproofDoor)=True
  
} 




Python Code 변환 예정



Modify
70
25346 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 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 변환 예정



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

①법 제52조제1항에 따라 영 제61조제1항 각 호의 건축물에 대하여는 그 거실의 벽 및 반자의 실내에 접하는 부분(반자돌림대·창대 기타 이와 유사한 것을 제외한다. 이하 이 조에서 같다)의 마감은 불연재료·준불연재료 또는 난연재료로 하여야 하며, 그 거실에서 지상으로 통하는 주된 복도·계단 기타 통로의 벽 및 반자의 실내에 접하는 부분의 마감은 불연재료 또는 준불연재료로 하여야 한다. <개정 2005.7.22, 2010.4.7, 2010.12.30>





check(REFB_24_1){

      KS}



KS{

    (check(EDBA_61_1_1)=TRUE

    OR check(EDBA_61_1_2)=TRUE

    OR check(EDBA_61_1_3)=TRUE

    OR check(EDBA_61_1_4)=TRUE)

    OR check(EDBA_61_1_5)=TRUE)

    OR check(EDBA_61_1_6)=TRUE)

    OR check(EDBA_61_1_7)=TRUE)

    AND (getObjectProperty(Room.Wall.Material.noncombustible)= TRUE

    AND (getObjectProperty(CeilingCornice | WindowSill.Material.noncombustible)= TRUE

    OR !(getObjectProperty(CeilingCornice | WindowSill.Material.noncombustiblel)= TRUE)

    AND (isGoThrough(Room, Corridor | Stair | Passage,Ground)= TRUE

    AND (isFireResistant(getWall(Corridor))=TRUE

    AND isFireResistant(getWall(Stair))=TRUE

    AND isFireResistant(getWall(Passage))=TRUE

    AND isFireResistant(getObject(CeilingCovering))=TRUE)

} 




Python Code 변환 예정



Modify
72
25367 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 24조 2 항

②영 제61조제1항 각 호의 건축물 중 다음 각 호의 어느 하나에 해당하는 거실의 벽 및 반자의 실내에 접하는 부분의 마감은 제1항에도 불구하고 불연재료 또는 준불연재료로 하여야 한다. <개정 2003.1.6, 2005.7.22, 2006.6.29, 2010.4.7, 2010.12.30>





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조 (건축물의 마감재료) 2항



check(REFB_24_2){

     IF CS THEN KS

}





CS{

    getResult(REFB_24_2_1)=TRUE

    OR getResult(REFB_24_2_2)=TRUE

}



KS{

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

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


(isObjectProperty(Room.Wall.InteriorFinish.Material.nonCombustibility)=TRUE

 OR isObjectProperty(Room.Wall.InteriorFinish.Material.quasiNonCombustibility)=TRUE

)

} 




Python Code 변환 예정



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

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





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

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




Python Code 변환 예정



Modify
74
71918 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 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 변환 예정



Modify
75
27010 건축법 제 51조 1 항

① 「국토의 계획 및 이용에 관한 법률」 제37조제1항제4호에 따른 방화지구(이하 "방화지구"라 한다) 안에서는 건축물의 주요구조부와 외벽을 내화구조로 하여야 한다. 다만, 대통령령으로 정하는 경우에는 그러하지 아니하다. <개정 2014.1.14>





//건축법 51조 (방화지구 안의 건축물) 1항 

Check(BA_51_1){
   IF (!CS1 AND CS2) THEN KS
}

CS1{
    getResult(EDBA_58)=True
}

CS2{
    getResult(LPUA_37_1_4)=True
}

KS{

   Wall myWall{
     isObjectProperty(Wall.isExternal)=True
   }

        isFireResistantStructure(MainStructure) = TRUE
        isFireResistantStructure(myWall) = TRUE
}


 




Python Code 변환 예정



Modify
76
19718 건축법 시행령 제 53조 1 항 2호

2. 공동주택 중 기숙사의 침실, 의료시설의 병실, 교육연구시설 중 학교의 교실 또는 숙박시설의 객실 간 경계벽





// 건축법 시행령 53조 (경계벽 등의 설치) 1항 2호



check(EDBA_53_1_1){

	KS

}

KS{


Space mySpace1{

Space.Building.usage = “MultiUnitHouse.Dormitory”

Space.name = “BedRoom”

}



Space mySpace1_1{

Space.Building.usage = “MultiUnitHouse.Dormitory”

Space.name != “BedRoom”

}



Space mySpace2{

Space.Building.usage = “MedicalFacility”

Space.name = “Ward”

}



Space mySpace2_1{

Space.Building.usage = “MedicalFacility”

Space.name != “Ward”

}



Space mySpace3{

Space.Building.usage = “EducationAndResearchFacility.School”

Space.name = “ClassRoom”

}

Space mySpace3_1{

Space.Building.usage = “EducationAndResearchFacility.School”

Space.name != “ClassRoom”

}



Space mySpace4{

Space.Building.usage = “LodgingFacility”

Space.name = “GuestRoom”

}

Space mySpace4_1

Space.Building.usage = “LodgingFacility”

Space.name != “GuestRoom”

}



Wall myWall1{

isObjectProperty(Wall.isPartitionWall)=TRUE

hasObject(mySpace1, Wall) =TRUE

}



Wall myWall2{

isObjectProperty(Wall.isPartitionWall)=TRUE

hasObject(mySpace2, Wall) =TRUE

}



Wall myWall3{

isObjectProperty(Wall.isPartitionWall)=TRUE

hasObject(mySpace3, Wall) =TRUE

}



Wall myWall4{

isObjectProperty(Wall.isPartitionWall)=TRUE

hasObject(mySpace4, Wall) =TRUE

}



(hasObject(mySpace1, myWall) =TRUE

hasObject(mySpace1_1, myWall) =FALSE)

OR

(hasObject(mySpace2, myWall) =TRUE

hasObject(mySpace2_1, myWall) =FALSE)

OR

(hasObject(mySpace3, myWall) =TRUE

hasObject(mySpace3_1, myWall) =FALSE)

OR

(hasObject(mySpace4, myWall) =TRUE

hasObject(mySpace4_1, myWall) =FALSE)



} 




Python Code 변환 예정



Modify
77
19719 건축법 시행령 제 53조 1 항 3호

3. 제2종 근린생활시설 중 다중생활시설의 호실 간 경계벽





// 건축법 시행령 53조 (경계벽 등의 설치) 1항 3호



check(EDBA_53_1_3){

	KS

}


KS{

Space mySpace1{

Space.Building.usage = “ClassIINeighborhoodLivingFacility.CommunalLivingFacility”

}



Wall myWall{

isObjectProperty(Wall.isPartitionWall)=TRUE
hasObject(mySpace1, Wall) =TRUE
}



isObjectProperty(myWall.isSharedByHouseholds) = TRUE


} 




Python Code 변환 예정



Modify
78
19720 건축법 시행령 제 53조 1 항 4호

4. 노유자시설 중 「노인복지법」 제32조제1항제3호에 따른 노인복지주택(이하 "노인복지주택"이라 한다)의 각 세대 간 경계벽





// 건축법 시행령 53조 (경계벽 등의 설치) 1항 4호





check(EDBA_53_1_4){

	KS

}


KS{

Building  myBuilding{

Zone.Building.usage = “FacilitiesForTheAgedAndChildren.WelfareFacilityForTheAged ”

getResult(WOPA_32_1_3)=TRUE

}



Wall myWall{

isObjectProperty(Wall.isPartitionWall)=TRUE
hasObject(myBuilding, Wall) =TRUE
}



isObjectProperty(myWall.isSharedByHouseholds) = TRUE



} 




Python Code 변환 예정



Modify
79
19738 건축법 시행령 제 58조 1호

1. 연면적 30제곱미터 미만인 단층 부속건축물로서 외벽 및 처마면이 내화구조 또는 불연재료로 된 것





check(EDBA_58_0_1){

	getGrossFloorArea() < 30m2;

	isObjectProperty(Building.isAttachedBuilding) = TRUE

	getBuildingStoriesCount() = 1;

	isFireResistantStructure(MainStructure) = TRUE

	OR isFireResistantStructure(ExternalWall) = TRUE;

} 




Python Code 변환 예정



Modify
80
29477 건축법 시행령 제 46조 5 항 1호

1. 인접 세대와의 경계벽이 파괴하기 쉬운 경량구조 등인 경우





//건축법 시행령 46조 (방화구획의 설치) 5항 1호
Check(EDBA_46_5_1){CS
}

CS{
   isObjectProperty(Wall.isPartitionWall)=TRUE
   AND isObjectProperty(Wall.isLightWeightStructure)=TRUE
} 




Python Code 변환 예정



Modify
81
29478 건축법 시행령 제 46조 5 항 2호

2. 경계벽에 피난구를 설치한 경우





//건축법 시행령 46조 (방화구획의 설치) 5항 2호

Check(EDBA_46_5_2){CS

}





CS{
Opening myOpening{
Opening.isEscape = TRUE
}
Wall myWall{
  isObjectProperty(Wall.isPartitionWall)=TRUE
}
  AND hasObject(myWall,myOpening)=TRUE

} 




Python Code 변환 예정



Modify
82
33217 건축법 시행령 제 53조 1 항 1호

1. 단독주택 중 다가구주택의 각 가구 간 또는 공동주택(기숙사는 제외한다)의 각 세대 간 경계벽(제2조제14호 후단에 따라 거실·침실 등의 용도로 쓰지 아니하는 발코니 부분은 제외한다)





// 건축법 시행령 53조 (경계벽 등의 설치) 1항 1호



check(EDBA_53_1_1){

	KS

}




KS{



Zone myZone1{

Zone.Building.usage = “DetachedHouse.MultiFamilyHouse ”

}



Zone myZone2{

Zone.Building.usage = “MultiUnitHouse”

}



Balcony myBalcony{

Balcony.usage != “BedRoom”

Balcony.usage != “LivingRoom”

}



Wall myWall1{

isObjectProperty(Wall.isPartitionWall)=TRUE

hasObject(myZone1.Household, Wall) =TRUE

hasObject(myBalcony,Wall) =FALSE

}



Wall myWall1{

isObjectProperty(Wall.isPartitionWall)=TRUE

hasObject(myZone2.Household, Wall) =TRUE

hasObject(myBalcony,Wall) =FALSE

}





isExist(myWall1)=TRUE

isExist(myWall2)=TRUE



} 




Python Code 변환 예정



Modify
83
36606 건축법 시행령 제 44조

제44조 (피난 규정의 적용례) 건축물이 창문, 출입구, 그 밖의 개구부(開口部)(이하 "창문등"이라 한다)가 없는 내화구조의 바닥 또는 벽으로 구획되어 있는 경우에는 그 구획된 각 부분을 각각 별개의 건축물로 보아 제34조부터 제41조까지를 적용한다.





//건축법 시행령 44조 (피난 규정의 적용례)



Check(EDBA_44){

   IF CS THEN KS

}



CS{

   Door myDoor{

      isObjectProperty(Door.isEntrance)=True

   }



   Object  myElement {

        getObject(Window)

        getObject(Opening)

        getObject(myDoor)

   }

   

   FloorSlab myFloorSlab{



        getObjectProperty(FloorSlab.isFireResistantStructure)=True

   }



     Wall myWall{

        getObjectProperty(FloorSlab.isFireResistantStructure)=True

        hasObject(Wall, myElement) =False

   }



   isFirePartition(Building, myFloorSlab)=True

   OR  isFirePartition(Building, myWall)=True

   



}



KS{

   getResult(EDBA_34)=True

   getResult(EDBA_35)=True

   getResult(EDBA_36)=True

   getResult(EDBA_37)=True

   getResult(EDBA_38)=True

   getResult(EDBA_39)=True

   getResult(EDBA_40)=True

   getResult(EDBA_41)=True

} 




Python Code 변환 예정



Modify
84
36608 건축법 시행령 제 46조 1 항

① 법 제49조제2항에 따라 주요구조부가 내화구조 또는 불연재료로 된 건축물로서 연면적이 1천 제곱미터를 넘는 것은 국토해양부령으로 정하는 기준에 따라 내화구조로 된 바닥·벽 및 제64조에 따른 갑종 방화문(국토해양부장관이 정하는 기준에 적합한 자동방화셔텨를 포함한다. 이하 이 조에서 같다)으로 구획(이하 "방화구획"이라 한다)하여야 한다. 다만, 「원자력법」 제2조에 따른 원자로 및 관계시설은 「원자력법」에서 정하는 바에 따른다.





//건축법 시행령 46조 (방화구획의 설치) 1항

Check(EDBA_46_1){

   IF (!CS1 AND CS2) THEN KS

}





CS1{

  getBuildingUsage()="NuclearReactorAndRelatedFacility"

}



CS2{

  (isObjectProperty(MainStructuralPart.isFireResistantStructure)=TRUE

  OR isObjectProperty(MainStructuralPart.Material.nonCombustibility)=TRUE))

  AND Building.grossFloorArea>1000 m2

}



KS{



  Floor myFloor{

      isObjectProperty(FloorSlab.isFireResistantStructure)=TRUE

  }

  Wall myWall{

      isObjectProperty(Wall.isFireResistantStructure)=TRUE

  }

  Door myDoor{

      isObjectProperty(Door.isStrictFireproofDoor)=TRUE

  }



  isFirePartition(Building, myFloor)=TRUE

  AND  isFirePartition(Building, myWall)=TRUE

  AND  isFirePatrition(Building, myDoor)=TRUE



  AND getResult(REFB_14_1)=TRUE

  AND getResult(REFB_14_2)=TRUE

  AND getResult(REFB_14_3)=TRUE



} 




Python Code 변환 예정



Modify
85
36649 건축법 시행령 제 57조 1 항

① 법 제50조제2항에 따라 연면적 1천 제곱미터 이상인 건축물은 방화벽으로 구획하되, 각 구획된 바닥면적의 합계는 1천 제곱미터 미만이어야 한다. 다만, 주요구조부가 내화구조이거나 불연재료인 건축물과 제56조제1항제5호 단서에 따른 건축물 또는 내부설비의 구조상 방화벽으로 구획할 수 없는 창고시설의 경우에는 그러하지 아니하다.





//  건축법 시행령 57조 (	대규모 건축물의 방화벽 등) 1항
Check(EDBA_57_1){
	IF (CS1 AND CS2) THEN KS
}

CS1{
	getObjectProperty(MainStructuralPart.isFireResistantStructure) = TRUE
	OR getObjectProperty(MainStructuralPart.Material.nonCombustibility) = TRUE
	OR getResult(EDBA_56_1_5) = TRUE
}

CS2{
	getObjectProperty(Building.grossFloorArea) >= 1000m2
}

KS{
	Space mySpace{
		getFloorArea(Space) < 1000m2
	}

	Space mySpace2{
		Space != mySpace
	}

	Wall myWall{
		isObjectProperty(Wall.isFireProofWall) = TRUE
	}

	isPartitioned(mySpace, mySpace2, myWall) = TRUE
} 




Python Code 변환 예정



Modify
86
37042 건축법 시행령 제 56조 1 항

① 법 제50조제1항에 따라 다음 각 호의 어느 하나에 해당하는 건축물(제5호에 해당하는 건축물로서 2층 이하인 건축물은 지하층 부분만 해당한다)의 주요구조부는 내화구조로 하여야 한다. 다만, 연면적이 50제곱미터 이하인 단층의 부속건축물로서 외벽 및 처마 밑면을 방화구조로 한 것과 무대의 바닥은 그러하지 아니하다. <개정 2009.6.30>





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

check(EDBA_56_1){

        IF !CS THEN KS

}

Space mySpace{
Space.usage="StagePart"
}

Floor myFloor{

     hasSpace(mySpace, Floor) = TRUE

}



CS {

       getTotalFloorArea()<= 50m2

       AND getBuildingStoriesCount()=1

       AND getBuildingUsage()="AccessoryBuidling"

       AND isFireProofStructure("OuterWall" | "eaves" | myFloor)=TRUE

}



KS {

	getResult(EDBA_56_1_1 = TRUE  

	OR getResult(EDBA_56_1_2) = TRUE  

	OR getResult(EDBA_56_1_3) = TRUE  

	OR getResult(EDBA_56_1_4) = TRUE  

	OR getResult(EDBA_56_1_5) = TRUE  

   		

	AND isFireProofStructure(MainStructuralPart) = TRUE

} 




Python Code 변환 예정



Modify
87
71635 건축법 시행령 제 81조 3 항 2호

2. 마감재료가 불연재료일 것





//  건축법 시행령 81조 (맞벽건축 및 연결복도) 3항 2호
Check(EDBA_81_3_2){
	KS
}

KS{
	getObjectProperty(Wall.Finish.Material.nonCombustibility) = TRUE
} 




Python Code 변환 예정



Modify
88
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
89
19947 연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 2호

2. 살수가 방해되지 아니하도록 스프링클러헤드로부터 반경 60㎝ 이상의 공간을 보유할 것. 다만, 벽과 스프링클러헤드간의 공간은 10㎝이상으로 한다.





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

KS{
	isVacant(SprinklerHead,a, 60) = TRUE
	getObjectDistance(Wall, SprinklerHead) >= 10CM
} 




Python Code 변환 예정



Modify
90
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
91
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
92
20487 연결송수관설비의 화재안전기준(NFSC 502) 제 6조 2호 가 목

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





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



Check(NFSC502_6_0_2_가){



    IF CS THEN KS1 ELSE KS2

}



CS{

       Space mySpace{

            getSpaceUsage()="UndergroundMarket"

            OR getFloorNumber()<0

        }



       getFloorArea(mySpace)>3000 m2

}



KS1{



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

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



}





KS2{

       getResult(NFSC502_6_0_2_나)=True

 } 




Python Code 변환 예정



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

나. 가목에 해당하지 아니하는 것은 수평거리 50m





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

Check(NFSC502_6_0_2_가){

    KS
}


KS{

    getElementDistance(FireDepartmentConnectionSystem.OutLet, Wall )<=50 m
    getElementDistance(FireDepartmentConnectionSystem.OutLet, Column )<=50 m

} 




Python Code 변환 예정



Modify
94
20113 연소방지설비의 화재안전기준(NFSC 506) 제 5조 1호

1. 천장 또는 벽면에 설치할 것





//	연소방지설비의 화재안전기준(nfsc 506) 5조 (방수헤드) 1호

Check(NFSC506_5_0_1){

	KS

}



KS{

	Head myHead{

		isObjectProperty(Head.isDischargeHead) = TRUE

	}



	isInstalled(myHead, Ceiling.Structure) = TRUE

	OR isInstalled(myHead, Wall.Structure.) = TRUE	

} 




Python Code 변환 예정



Modify
95
20122 연소방지설비의 화재안전기준(NFSC 506) 제 8조 2호

2. 방화벽에 출입문을 설치하는 경우에는 방화문으로 할 것





//	연소방지설비의 화재안전기준(nfsc 506) 8조 (방화벽의 설치기준) 2호
Check(NFSC506_8_0_2){
	IF CS THEN KS
}
	Wall myWall{
		isObjectProperty(Wall.isFireProofWall) = TRUE
	}

	Door myDoor{
		isObjectProperty(Door.isEntrance) = TRUE
	}

CS{
	isInstalled(myDoor, myWall) = TRUE
}


KS{
	isObjectProperty(myDoor.isStrictFireproofDoor) = TRUE
	OR isObjectProperty(myDoor.isFireproofDoor) = TRUE
} 




Python Code 변환 예정



Modify
96
20123 연소방지설비의 화재안전기준(NFSC 506) 제 8조 3호

3. 방화벽을 관통하는 케이블·전선 등에는 내화성이 있는 화재차단재로 마감할 것





//	연소방지설비의 화재안전기준(nfsc 506) 8조 (방화벽의 설치기준) 3호

Check(NFSC506_8_0_3){

	 KS

}



KS{



    Wall myWall{

        isObjectProperty(Wall.isFireProofWall)=True

    }

    

  IF   isInstalled(Wire, myWall)=True

  THEN   isObjectProperty(Wire.Finish.Material.isFireStop)= TRUE

  END IF



  IF  isInstalled(Cable, myWall)=True

  THEN   isObjectProperty(Cable.Finish.Material.isFireStop)= TRUE

  END IF



    

} 




Python Code 변환 예정



Modify
97
72616 연소방지설비의 화재안전기준(NFSC 506) 제 8조 1호

1. 내화구조로서 홀로 설 수 있는 구조일 것





//	연소방지설비의 화재안전기준(nfsc 506) 8조 (방화벽의 설치기준) 1호
Check(NFSC506_8_0_1){
	KS
}

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

	isObjectProperty(myWall.isfireResistantStructure) = TRUE
}
 




Python Code 변환 예정



Modify
98
19982 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 7조 1 항

제7조(객석유도등 설치기준) ①객석유도등은 객석의 통로, 바닥 또는 벽에 설치하여야 한다.





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

Check(NFSC303_7_1){
           KS
}

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

KS{
   isInstalled(myLight, Passage)=True
   (
    isInstalled(myLight, FloorSlab)=True
    OR isInstalled(myLight, Wall)=True
    )
} 




Python Code 변환 예정



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

1. 계단에 설치하는 것을 제외하고는 각층마다 복도 및 통로의 각 부분으로부터 하나의 유도표지까지의 보행거리가 15m 이하가 되는 곳과 구부러진 모퉁이의 벽에 설치할 것





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

Check(NFSC303_8_1_1){
       IF ! CS THEN KS
}

CS{
   isInstalled(LeadingSign,Stair)=True
}

KS{
   getObjectDistance(Floor.One.Corridor.Wall, LeadingSign)<=15 m
   getObjectDistance(Floor.One.Corridor.Column, LeadingSign)<=15 m
    getObjectDistance(Floor.One.Passage.Wall, LeadingSign)<=15 m
   getObjectDistance(Floor.One.Passage.Column, LeadingSign)<=15 m
} 




Python Code 변환 예정



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

마. 감지기는 벽 또는 보로부터 0.6m 이상 떨어진 곳에 설치할 것





//	자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 10호 마목
Check(NFSC203_7_3_10_5{
	KS
}

KS{
	getObjectDistance(SmokeSensor, Wall.Structure) >= 0.6m
	OR getObjectDistance(SmokeSensor, Beam.Structure) >= 0.6m
} 




Python Code 변환 예정



Modify
    1   2   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.