개방형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-27 기준) 설계품질검토용 건축법 및 관련법규 - KBIMCode (문장단위)
    1      
1 / 1 page Total 2500 / 4000 records    신규입력
Select
ALL
None
#
ID
Law
Jo
JO Name
HANG
HO
MOK
Text
Search!
1
25184 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 8조의2조 3 항 4호

4. 비상용 승강기는 피난안전구역에서 승하차 할 수 있는 구조로 설치할 것





// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (직통계단의 설치기준) 3항4호
check(REFB_8-2_3_4){
   
   Elevator  myElevator{
     isObjectProperty(Elevator.isEmergency)=TRUE
   }

   isDirectlyAccessible(myZone, myElevator)=TRUE
} 




Python Code 변환 예정



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

①영 제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)

} 




Python Code 변환 예정



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

사. 계단은 내화구조로 하고 피난층 또는 지상까지 직접 연결되도록 할 것





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 사목
Check(REFB_9_2_1_7){
KS
}
KS {
Floor myFloor {
	isObjectProperty(Floor.isEscape) = TRUE
}

isFireResistantStructure(Stair) = TRUE
(isDirectlyAccessible(Stair,myFloor)= TRUE 
OR isDirectlyAccessible(Stair,Ground) = TRUE) 
 }



 




Python Code 변환 예정



Modify
4
25222 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 11조 5 항

⑤다음 각 호의 어느 하나에 해당하는 건축물의 피난층 또는 피난층의 승강장으로부터 건축물의 바깥쪽에 이르는 통로에는 제15조제5항에 따른 경사로를 설치하여야 한다. <개정 2010.4.7>





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

CS1 {
getResult(REFB_11_5_1)=TRUE
OR getResult(REFB_11_5_2)=TRUE
OR getResult(REFB_11_5_3)=TRUE
OR getResult(REFB_11_5_4)=TRUE
OR getResult(REFB_11_5_5)=TRUE
OR getResult(REFB_11_5_6)=TRUE
}

CS2{
Floor myFloor{
	isObjectProperty(Floor.isEscape)=TRUE
}

Passage myPassage{
isDirectlyAccessible(myFloor,Passage) = TRUE
OR isDirectlyAccessible(myFloor.Platform,Passage) = TRUE
isConnectedToExternal(Passage) = TRUE
}

isExist(myPassage)=TRUE
}

KS{
hasObject(myPassage,Ramp)=TRUE
getResult(REFB_15_5)=TRUE
}


 




Python Code 변환 예정



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



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

2. 바닥면적이 1천제곱미터이상인 층에는 피난층 또는 지상으로 통하는 직통계단을 영 제46조의 규정에 의한 방화구획으로 구획되는 각 부분마다 1개소 이상 설치하되, 이를 피난계단 또는 특별피난계단의 구조로 할 것





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

check(REFB_25_1_2){

	IF CS THEN KS

}



CS{

	getTotalFloorArea(Floor) >= 1000 m2

}



KS{

	Floor myFloor{

		isObjectProperty(Floor.isEscape) = TRUE

	}



	Stair myStair{

		isObjectProperty(Stair.isDirect) = TRUE



		(isDirectlyAccessible(Stair, Ground) = TRUE

		OR isDirectlyAccessible(Stair, myFloor) = TRUE)



		(isObjectProperty(Stair.isEscape) = TRUE

		OR isObjectProperty(Stair.isSpecialEscape) = TRUE)

	}



	Zone myZone{

		isObjectProperty(Zone.isFirePartition) = TRUE

	}



	hasSpace(myZone, myStair) = TRUE

} 




Python Code 변환 예정



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



Modify
8
36618 건축법 시행령 제 46조 4 항

④ 공동주택 중 아파트로서 4층 이상인 층의 각 세대가 2개 이상의 직통계단을 사용할 수 없는 경우에는 발코니에 인접 세대와 공동으로 또는 각 세대별로 다음 각 호의 요건을 모두 갖춘 대피공간을 하나 이상 설치하여야 한다. 이 경우 인접 세대와 공동으로 설치하는 대피공간은 인접 세대를 통하여 2개 이상의 직통계단을 쓸 수 있는 위치에 우선 설치되어야 한다.





//건축법 시행령 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

} 




Python Code 변환 예정



Modify
9
37352 건축법 시행령 제 34조 1 항

① 건축물의 피난층(직접 지상으로 통하는 출입구가 있는 층을 말한다. 이하 같다) 외의 층에서는 피난층 또는 지상으로 통하는 직통계단(경사로를 포함한다. 이하 같다)을 거실의 각 부분으로부터 계단(거실로부터 가장 가까운 거리에 있는 계단을 말한다)에 이르는 보행거리가 30미터 이하가 되도록 설치하여야 한다. 다만, 건축물(지하층에 설치하는 것으로서 바닥면적의 합계가 300제곱미터 이상인 공연장·집회장·관람장 및 전시장은 제외한다)의 주요구조부가 내화구조 또는 불연재료로 된 건축물은 그 보행거리가 50미터(층수가 16층 이상인 공동주택은 40미터) 이하가 되도록 설치할 수 있으며, 자동화 생산시설에 스프링클러 등 자동식 소화설비를 설치한 공장으로서 국토해양부령으로 정하는 공장인 경우에는 그 보행거리가 75미터(무인화 공장인 경우에는 100미터) 이하가 되도록 설치할 수 있다. <개정 2009.7.16>





// 건축법 시행령 34조 (직통계단의 설치) 1항

Check(EDBA_34_1){
     KS
}

KS{
Floor myFloor{
      isObjectProperty(Floor.isEscape) = TRUE
}

Space mySpace{
      getObjectProperty(Space.usage)="PerformanceHall"
      OR getObjectProperty(Space.usage)="AssemblyHall"
      OR getObjectProperty(Space.usage)="Auditorium"	
      OR getObjectProperty(Space.usage)="ExhibitionHall"
}

Door myDoor{
     isDirectlyAccessible(Door, Ground)=TRUE
}

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

Ramp myRamp{
     isAccessible(Ramp,myFloor)=TRUE
     OR isAccessible(Ramp,Ground)=TRUE
}

Floor myFloor2{
     isObjectProperty(Floor.isEscape)=FALSE
     OR hasObject(Floor, myDoor)=FALSE
}

	Zone myZone{

		isDirectlyAccessible(myStair, Zone)=FALSE

	}

 

IF

	getFloorNumber(mySpace)>0

	getFloorArea(mySpace)<=300 m2

	isFireResistantStructure(MainStructuralPart)=TRUE

	OR isObjectProperty(MainStructuralPart.Material.nonCombustibility)=TRUE 

	THEN IF        getBuildingStoriesCount()>=16

	               getBuildingUsage()="MultiUnitHouse"

	          THEN ED= 40 

	ELSE THEN   ED=50               

	END IF



ELSE IF   

	getBuildingUsage() = "Factory" 

	isExist(ExtinguishingSystem)=TRUE 

	isObjectProperty(ExtinguishingSystem.isAutomatic)=TRUE

	getResult(REFB_8_2)=TRUE

	THEN IF   	getBuildingUsage() = "UnmannedFactory" 

			THEN ED=100

	ELSE THEN  ED=75

	END IF 



ELSE THEN ED=30

	END IF 



	(hasObject(myFloor,myStair)=TRUE

	hasObject(myZone, myStair)=TRUE

	getObjectDistance(Room,myStair, 1)<=ED)

	OR 

	(hasObject(myFloor,myRamp)=TRUE

	hasObject(myZone, myRamp)=TRUE

	getObjectDistance(Room,myRamp, 1)<=ED)

} 








max_route_length = 30

def Check():
    evac_storey_exist = False
    stories = SELECT('storey')

    for storey in stories:
        if storey.SELECT('is evacuation storey').BOOL() == True:
            evac_storey_exist = True
            break

    if evac_storey_exist == False:
        ERROR('피난층이 존재하지 않습니다.')
        return

    for storey in stories:
        if storey.SELECT('is evacuation storey').BOOL() == True:
            continue

        stairs = storey.SELECT('direct stair')

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

        for space in storey.SELECT('space'):
            route_length = -1
            for route in space.SELECT('escape route', stairs):
                length = route.SELECT('length').UNIT('m').NUMBER()
                if length > 0:
                    if route_length < 0:
                        route_length = length
                    else:
                        route_length = min([route_length, length])
            if route_length < 0:
                space.ERROR(space.SELECT('name').STRING() + '부터 직통계단까지 갈 수 없다.')
            elif route_length > max_route_length:
                space.ERROR(space.SELECT('name').STRING() + '부터 직통계단까지의 거리가 멀다 : ' + str(route_length))
            else:
                space.SUCCESS(space.SELECT('name').STRING() + ' : ' + str(route_length)) 





Modify
10
37360 건축법 시행령 제 34조 4 항

④ 제3항에 따른 피난안전구역의 규모와 설치기준은 국토해양부령으로 정한다. <신설 2009.7.16>





// 건축법 시행령 34조 (직통계단의 설치) 4항

check(EDBA_34_4){

		IF !CS THEN KS ENDIF

}

CS{

		Stair myStair{

				isObjectProperty(Stair.isDirect) = TRUE

		}

		Floor myFloor{

				isObjectProperty(Floor.isEscape) = TRUE

		}

		isDirectlyAccessible(myStair, myFloor) = TRUE

		OR isDirectlyAccessible(myStair, Ground) = TRUE

}

				

KS{

		isObjectProperty(Building.isQuasiHighriseBuilding) = TRUE

		Stair myStair{

				isObjectProperty(Stair.isDirect) = TRUE			

		}

		Zone myZone{

				isObjectProperty(Zone.isEgressSafetyZone) = TRUE

		}

		Floor myFloor{

				isObjectProperty(Floor.isEscape) = TRUE

		}

                isGoThrough(myFloor, myZone, myStair) = TRUE

		OR isGoThrough(myFloor, Ground, myStair) = TRUE

		(getBuildingStoriesCount()/2)-5 < getFloorNumber(myZone)

                getFloorNumber(myZone) < (getBuildingStoriesCount()/2)+5

} 




Python Code 변환 예정



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

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





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


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


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


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

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

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




Python Code 변환 예정



Modify
12
19966 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 5조 1 항 1호

1. 옥내로부터 직접 지상으로 통하는 출입구 및 그 부속실의 출입구





//유도등 및 유도표지의 화재안전기준(nfsc 303) 5조 (피난구유도등) 1항 1호

Check(NFSC303_5_1_1){
     KS
}

KS{
    Door myDoor {

        isObjectProperty(Door.isEntrance)=True
        isDirectlyAccessible(Door, Ground)=True          
    }

    LeadingLight myLeadingLight{
        isObjectProperty(LeadingLight.isForExit)=True
    }

   isEnstalled(myLeadingLight,myDoor)=True

   IF hasObject(AncillaryRoom, myDoor)=True
   THEN isEnstalled(myLeadingLight, AncillaryRoom )=True
} 




Python Code 변환 예정



Modify
13
19968 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 5조 1 항 3호

3. 제1호와 제2호에 따른 출입구에 이르는 복도 또는 통로로 통하는 출입구





//유도등 및 유도표지의 화재안전기준(nfsc 303) 5조(피란구유도등) 1항 3호 

Check(NFSC303){
           KS
}
  Door myDoor{
      isObjectProperty(Door.isEntrance)=True     
     (OR hasObject( myStair, Door)=True
     OR hasObject(myStair.Space,Door)=True
     OR hasObject(myStair.AncillaryRoom,Door)=True)

       OR isDirectlyAccessible(Door, Ground)=True          
    }
 LeadingLight myLeadingLight{
        isObjectProperty(LeadingLight.isForExit)=True
    }

  Passage myPassage{
     isAccessible(myDoor, Passage)=True
   }
  Corridor myCorriodr{
     isAccessible(myDoor, Corridor)=True
  }

  Door myDoor2{
      isObjectProperty(Door.isEntrance)=True    
     isAccessible(myPassage, Door)=True
     or isAccessible(myCorridor, Door)=True
  }

isInstalled(myLeadingLight, myDoor2)=True

} 




Python Code 변환 예정



Modify
    1      
 

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.