Open BIM based Technological Environment for Building Design Quality Enhancement
1-2. 설계품질검증 자동화를 위한 각종 법규 및 제기준의 체계화된 논리규칙 데이터베이스 구축
- 건축물 설계품질 혁신을 위한 개방형 BIM 기술 환경 구축 | 국토교통부
제9조(피난계단 및 특별피난계단의 구조) ①영 제35조제1항의 규정에 의하여 건축물의 5층 이상 또는 지하 2층 이하의 층으로부터 피난층 또는 지상으로 통하는 직통계단(지하 1층인 건축물의 경우에는 5층 이상의 층으로부터 피난층 또는 지상으로 통하는 직통계단과 직접 연결된 지하 1층의 계단을 포함한다)은 피난계단 또는 특별피난계단으로 설치하여야 한다.
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 1항
Check(REFB_9_1){
IF (CS1) THEN KS1 ELSE IF (CS2) THEN KS2
CS1{
Floor myFloor1 {
Floor.number > 5
OR Floor.number <= -2
}
Stair myStair1 {
isObjectProperty(Stair.isDirect) = TRUE
}
Floor myFloor2 {
isObjectProperty(Floor.isEscape)= TRUE
}
isGoThrough(myFloor1, myStair1, myFloor2)= TRUE
OR isGoThrough(myFloor1, myStair1, Ground) = TRUE
}
CS2{
Floor myFloor3 {
Floor.number >= 5
}
Stair myStair3 {
isObjectProperty(Stair.isDirect) = TRUE
(isGoThrough(myFloor3, myFloor2, Stair) = TRUE
OR isGoThrough(myFloor3, Ground, Stair) = TRUE)
}
Stair myStair2 {
Stair.Floor.number = -1
}
isDirectlyAccessible(myStair2, myStair3)=TRUE
KS1 {
(isObjectProperty(myStair1.isEscape) = TRUE
OR isObjectProperty(myStair1.isSpecialEscape) = TRUE)
}
KS2{
(isObjectProperty(myStair2.isEscape) = TRUE
OR isObjectProperty(myStair2.isSpecialEscape) = TRUE)
(isObjectProperty(myStair3.isEscape) = TRUE
OR isObjectProperty(myStair3.isSpecialEscape) = TRUE)
}
바. 건축물의 내부에서 계단실로 통하는 출입구의 유효너비는 0.9미터 이상으로 하고, 그 출입구에는 피난의 방향으로 열 수 있는 것으로서 언제나 닫힌 상태를 유지하거나 화재로 인한 연기, 온도, 불꽃 등을 가장 신속하게 감지하여 자동적으로 닫히는 구조로 된 제26조에 따른 갑종방화문을 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 바목
Check(REFB_9_2_1_6){
KS
}
KS {
Door myDoor{
isConnectedToExternal(Opening) = FALSE
}
Space mySpace{
isExternal(Space)=FALSE
}
isGoThrough(mySpace,myDoor,Stair.Space.) = TRUE
isObjectProperty(Door.effectiveWidth) >= 0.9m
isEgressDirection(Door) = TRUE;
}
가. 건축물의 내부와 계단실은 노대를 통하여 연결하거나 외부를 향하여 열 수 있는 면적 1제곱미터 이상인 창문(바닥으로부터 1미터 이상의 높이에 설치한 것에 한한다) 또는 「건축물의 설비기준 등에 관한 규칙」 제14조의 규정에 적합한 구조의 배연설비가 있는 면적 3제곱미터 이상인 부속실을 통하여 연결할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 가목
check (REFB_9_2_3_1){
CS THEN KS
}
CS {
isExist(Stair.Space) = TRUE
}
KS {
Window myWindow {
getObjectProperty(Window.area)>= 1 m2
isObjectProperty(Window.isExternalDirection) = TRUE
getElementDistance(Window, FloorSlab, a)>=1m
}
SmokeExhaustionSystem mySmokeExhaustionSystem {
getElement(SmokeExhaustionSystem)
getResult(RFB_14)=TRUE
}
Space mySpace1{
getSpace(“Balcony”)
}
Space mySpace2{
isExternal(Space)=FALSE
}
Space mySpace3{
getSpace(“AncillaryRoom”)
getFloorArea(Space.Floor, ) >= 3㎡
hasElement(Space,mySmokeExhaustionSystem) = TRUE
hasElement(Space,myWindow) = TRUE
}
isGoThrough(mySpace2,Stair.Space, ,mySpace1)
OR isGoThrough(mySpace2,Stair.Space, ,mySpace3)
자. 건축물의 내부에서 노대 또는 부속실로 통하는 출입구에는 제26조에 따른 갑종방화문을 설치하고, 노대 또는 부속실로부터 계단실로 통하는 출입구에는 제26조에 따른 갑종방화문 또는 을종방화문을 설치할 것. 이 경우 갑종방화문 또는 을종방화문은 언제나 닫힌 상태를 유지하거나 화재로 인한 연기, 온도, 불꽃 등을 가장 신속하게 감지하여 자동적으로 닫히는 구조로 하여야 한다.
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 자목
check (REFB_9_2_3_9){
IF(CS1) THEN KS1 OR (CS2) TEHN KS2
}
Space mySpace1 {
isExternal(Space)=FALSE
}
Space mySpace2 = getSpace(“Balcony”) + getSpace(“AncillaryRoom”)
CS1{
isGoThrough(mySpace1,Door,mySpace2) = TRUE
}
KS1 {
isObjectProperty(Door.isStrictFireproofDoor)= TRUE
}
CS2{
isGoThrough(mySpace2,Door,Stair.Space) = TRUE
}
KS2{
isObjectProperty(Door.isFireproofDoor)= TRUE
}
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
}
제24조(건축물의 마감재료) ①법 제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)
}
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
}
③ 초고층 건축물에는 피난층 또는 지상으로 통하는 직통계단과 직접 연결되는 피난안전구역(건축물의 피난ㆍ안전을 위하여 건축물 중간층에 설치하는 대피공간을 말한다. 이하 같다)을 지상층으로부터 최대 30개 층마다 1개소 이상 설치하여야 한다. <신설 2009.7.16., 2011.12.30.>
④ 준초고층 건축물에는 피난층 또는 지상으로 통하는 직통계단과 직접 연결되는 피난안전구역을 해당 건축물 전체 층수의 2분의 1에 해당하는 층으로부터 상하 5개층 이내에 1개소 이상 설치하여야 한다. 다만, 국토교통부령으로 정하는 기준에 따라 피난층 또는 지상으로 통하는 직통계단을 설치하는 경우에는 그러하지 아니하다. <신설 2011.12.30., 2013.3.23.>
제37조(지하층과 피난층 사이의 개방공간 설치) 바닥면적의 합계가 3천 제곱미터 이상인 공연장ㆍ집회장ㆍ관람장 또는 전시장을 지하층에 설치하는 경우에는 각 실에 있는 자가 지하층 각 층에서 건축물 밖으로 피난하여 옥외 계단 또는 경사로 등을 이용하여 피난층으로 대피할 수 있도록 천장이 개방된 외부 공간을 설치하여야 한다.
Check(EDBA_37){
IF (CS) THEN KS END IF
Space mySpace{
Space.Floor.area > 3000 M2;
Space.usage="PerformanceHall"
OR Space.usage="AssemblyHall"
OR Space.usage="Auditorium"
OR Space.usage="ExhibitionHall"
}
}
CS{
mySpace.Floor.number< 0
}
KS{
Stair myStair{
Stair.isOutdoor = TRUE
}
Floor myFloor{
Floor.isEscape = TRUE
}
Space mySpace{
hasObject(Space, Ceiling) != TRUE
}
(isGoThrough(mySpace, myStair, myFloor)=True
OR isGoThrough(mySpace, Ramp, myFloor)=True)
AND isExternal(mySpace)=True
}
제41조(대지 안의 피난 및 소화에 필요한 통로 설치) ①건축물의 대지 안에는 그 건축물 바깥쪽으로 통하는 주된 출구와 지상으로 통하는 피난계단 및 특별피난계단으로부터 도로 또는 공지(공원, 광장, 그 밖에 이와 비슷한 것으로서 피난 및 소화를 위하여 해당 대지의 출입에 지장이 없는 것을 말한다. 이하 이 조에서 같다)로 통하는 통로를 다음 각 호의 기준에 따라 설치하여야 한다. <개정 2010.12.13.>
④ 공동주택 중 아파트로서 4층 이상인 층의 각 세대가 2개 이상의 직통계단을 사용할 수 없는 경우에는 발코니에 인접 세대와 공동으로 또는 각 세대별로 다음 각 호의 요건을 모두 갖춘 대피공간을 하나 이상 설치하여야 한다. 이 경우 인접 세대와 공동으로 설치하는 대피공간은 인접 세대를 통하여 2개 이상의 직통계단을 쓸 수 있는 위치에 우선 설치되어야 한다. <개정 2013.3.23.>
//건축법 시행령 46조 (방화구획의 설치) 4항
check(EDBA_46_4){
IF CS THEN KS1 AND KS2
}
Zone myZone{
isObjectProperty(Zone.isOccupiedByOneHousehold) = TRUE
}
KS1{
Space mySpace{
Space.isEscape = TRUE
}
isExist(Balcony)=TRUE
AND hasElement(Balcony,mySpace)=TRUE
AND (getResult(EDBA_46_4_1)=TRUE
AND getResult(EDBA_46_4_2)=TRUE
AND getResult(EDBA_46_4_3)=TRUE
AND getResult(EDBA_46_4_4)=TRUE)
}
KS2{
Stair myStair{
Stair.isDirect = TRUE
}
isGoThrough(myZone,mySpace,myZone)=TRUE
AND isGoThrough(mySpace,myZone,myStair)=TRUE
}
CS{
getBuildingUsage()="MultiUnitHouses.ApartmentHouses"
AND Floor.number >=4
AND isDirectlyAccessible(myZone, myStair)=TRUE
AND myStair.Number>=2
}