개방형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      
1 / 1 page Total 2500 / 4000 records    신규입력
Select
ALL
None
#
ID
Law
Jo
JO Name
HANG
HO
MOK
Text
Search!
1
19507 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 14조의2조 2호

2. 공동주택등(당해 공동주택등에 출입하는 통로를 포함한다)과 위락시설등(당해 위락시설등에 출입하는 통로를 포함한다)은 내화구조로 된 바닥 및 벽으로 구획하여 서로 차단할 것





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

Check(REFB_14-2_0_2){
    KS
}

KS{
  Space mySpace{
  Space.usage="MultiUnitHouse"  
  OR Space.usage="MedicalFacility"
  OR Space.usage="ChildrenRelatedFacility"
  OR Space.usage="WelfareFacilityForTheAged"
  }
 
 Space mySpace2{
 Space.usage="AmusementFacility"  
 OR Space.usage="FacilityForStorageAndTreatmentOfDangerousSubstance"
 OR Space.usage="Factory"
 OR Space.usage="AutomobileRepairShop"
 }

 Passage myPassage{
    isAccessible(Passage, mySpace)=True
    OR isAccessible(Passage, mySpace2)=True
 }


 isFirePartition(mySpace)=True
 isFirePartition(mySpace2)=True
 isFirePartition(myPassage)=True
} 




Python Code 변환 예정



Modify
2
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
3
25175 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 8조 1 항

①영 제34조에 따른 직통계단의 출입구는 피난에 지장이 없도록 일정한 간격을 두어 설치하고, 각 직통계단 상호간에는 각각 거실과 연결된 복도등 통로를 설치하여야 한다. <개정 2010.4.7>





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조 (직통계단의 설치기준) 1항

Check(REFB_8_1){

        Stair myStair{

             isObjectProperty(Stair.isDirect)=TRUE  

        }



        Passage myPassage{

             isConnectedTo(Room, Passage)=TRUE

        }



	isExist(myPassage)=TRUE

        isConnectedTo(myStair,myPassage)=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
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
6
25349 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 25조 2 항 7호

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





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

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

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

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

	hasElement(myDoor, LeadingLight) = TRUE

	hasElement(myPassage, myLight) = TRUE

} 




Python Code 변환 예정



Modify
7
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
8
27881 건축법 제 49조 1 항

① 대통령령으로 정하는 용도 및 규모의 건축물과 그 대지에는 국토교통부령으로 정하는 바에 따라 복도, 계단, 출입구, 그 밖의 피난시설과 저수조(貯水槽), 대지 안의 피난과 소화에 필요한 통로를 설치하여야 한다. <개정 2013.3.23, 2018.4.17>





//건축법 49조 (건축물의 피난시설 및 용도제한 등) 1항
Check(BA_49_1){
   IF CS THEN KS 
}

CS{
  getResult(EDBA_34_2)= TRUE
  OR getResult(EDBA_35_1) = TRUE
  OR getResuLt(EDBA_35_2) = TRUE
  OR getResuLt(EDBA_35_3) = TRUE
  OR getResuLt(EDBA_35_5) = TRUE
  OR getResult (EDBA_38) = TRUE
  OR getResuLt(EDBA_39_1) = TRUE
  OR getResuLt(EDBA_39_2) = TRUE
}

KS{

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

   isExist(Corridor) = TRUE
   isExist(Stair) = TRUE
   isExist(myDoor) = TRUE
   isExist(EvacuationFacility) = TRUE
   isExist(FireHydrant) = TRUE
   isExist(Tank) = TRUE
   isExist(ExtinguishingSystem)= TRUE
   isExist(Passage)=True

   getResult(REFB_11_1)= TRUE
   getResult(REFB_11_2)= TRUE
   getResult(REFB_11_3)= TRUE
   getResult(REFB_11_4)= TRUE
   getResult(REFB_11_5)= TRUE
} 




Python Code 변환 예정



Modify
9
33161 건축법 시행령 제 41조 1 항 1호 가 목

가. 단독주택: 유효 너비 0.9미터 이상





Check(EDBA_41_1_1){

  IF (CS) THEN KS END IF 

}

CS{

getObjectProperty(Building.usage)="DetachedHouse"

}

KS{

  getObjectProperty(Passage.effectiveWidth)> 0.9M

} 








def Check():
    if SELECT("building type").STRING() == "DetachedHouse":
        passage = SELECT("passage")
        if passage.SELECT("clear width").UNIT("m").NUMBER()> 0.9:
            passage.SUCCESS("pass")
        else:
            passage.ERROR("fail")
 





Modify
10
33163 건축법 시행령 제 41조 1 항 1호 다 목

다. 그 밖의 용도로 쓰는 건축물: 유효 너비 1.5미터 이상





Check(EDBA_41_1_3){

IF (CS) THEN KS END IF

}

CS{

Building.usage !="DetachedHouse"

OR   Building.usage !="CulturalAndAssemblyFacility"

   OR Building.usage !="ReligiousFacility" 

   OR  Building.usage !="MedicalFacility" 

   OR Building.usage !="AmusementFacility" 

   OR Building.usage !="FuneralParlor"  
}

KS{

 getObjectProperty(Passage.effectiveWidth)> 1.5m ;

} 








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

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

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

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

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

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

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

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

        stairs = base_storey.SELECT('direct stair')

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

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

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





Modify
11
34605 건축법 시행령 제 41조 1 항

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





Check(EDBA_41_1){

    KS

}







KS{



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

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

       OR isObjectProperty(Stair.isSpecialEscape) = TRUE



   }

   Passage  myPassage{

       isGoThrough(myStair, Road, Passage)=True

       OR isGoThrough(myStair, OpenSpace, Passage )=True

   }



   isExist(myDoor)=True

   isExist(myPassage)=True

   getResult(EDBA_41_1_1)=True

   getResult(EDBA_41_1_2)=True

   getResult(EDBA_41_1_3)=True

} 








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

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

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

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

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

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

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

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

        stairs = base_storey.SELECT('direct stair')

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

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

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





Modify
12
34608 건축법 시행령 제 41조 1 항 1호 나 목

나. 바닥면적의 합계가 500제곱미터 이상인 문화 및 집회시설, 종교시설, 의료시설, 위락시설 또는 장례시설: 유효 너비 3미터 이상





Check(EDBA_41_1_2){

   IF (CS) THEN  KS END IF

}



CS{

FloorSlab.area> 500 m2 

   Building.usage="CulturalAndAssemblyFacility"

   OR Building.usage="ReligiousFacility" 

   OR  Building.usage="MedicalFacility" 

   OR Building.usage="AmusementFacility" 

   OR Building.usage="FuneralParlor"  

}



KS{

  Passage.effectiveWidth> 3m ;

} 








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

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

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

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

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

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

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

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

        stairs = base_storey.SELECT('direct stair')

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

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

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





Modify
13
36612 건축법 시행령 제 46조 2 항 3호

3. 계단실부분·복도 또는 승강기의 승강로 부분(해당 승강기의 승강을 위한 승강로비 부분을 포함한다)으로서 그 건축물의 다른 부분과 방화구획으로 구획된 부분





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

check(EDBA_46_2_3){

KS

}



KS{

 isObjectProperty(Stair.Space.isFirePartition)=TRUE

 OR isObjectProperty(Passage.isFirePartition)=TRUE

 OR isObjectProperty(ElevatorShaft.isFirePartition)=TRUE

} 




Python Code 변환 예정



Modify
14
19964 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 4조

제4조(유도등 및 유도표지의 종류) 특정소방대상물의 용도별로 설치하여야 할 유도등 및 유도표지는 다음 표에 따라 그에 적응하는 종류의 것으로 설치하여야 한다.<개정 2008.12.15, 2012.8.20>





// 유도등 및 유도표지의 화재안전기준(nfsc 303) 4조 (유도등 및 유도표지의 종류) 

Check(NFSC303_4){
   KS
}

KS{
  LeadingLight myLeadingLight1{
      // isObejctProperty(LeadingLight.isForExit)=True, 대형
  }

  LeadingLight myLeadingLight2{
     //  isObejctProperty(LeadingLight.isForExit)=True , 중형
  }

  LeadingLight myLeadingLight3{
     //  isObejctProperty(LeadingLight.isForExit)=True, 소형
  }


  LeadingLight myLeadingLight4{
       isObejctProperty(LeadingLight.isForPassage)=True
  }

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

  LeadingSign myLeadingSign1{

       isObjectProperty(LeadingSign.isForExit)=True
  }

  LeadingSign myLeadingSign2{

       isObjectProperty(LeadingSign.isForPassage)=True
  }

  IF  getBuildingUsage()="PerformanceHall"
      OR getBuildingUsage()="AssemblyHall"
      OR getBuildingUsage()="Auditorium"   
      OR getBuildingUsage()="SportsFacility" 
      OR getBuildingUsage()="Tavern"  
     THEN 
          isExist(myLeadingLight1)=True
          isExist(myLeadingLight4)=True
          isExist(myLeadingLight5)=True
  
  ELSE IF getBuildingUsage()="AmusementFacility"
      OR getBuildingUsage()="CommercialFacility"
      OR getBuildingUsage()="TransportationFacility"   
      OR getBuildingUsage()="TouristAccommodationBusiness" 
      OR getBuildingUsage()="MedicalFacility"  
      OR getBuildingUsage()="FuneralParlor"  
      OR getBuildingUsage()="FacilityForBroadcastingAndTelecommunication"  
      OR getBuildingUsage()="ExhibitionHall"  
      OR getBuildingUsage()="UndergroundShoppingCenter" 
      OR getBuildingUsage()="SubwayStation"   
     THEN isExist(myLeadingLight1)=True
          isExist(myLeadingLight4)True

  ELSE IF getBuildingUsage()="LodgingFacility"
      OR getBuildingUsage()="Officetel"
   //   OR   지하층, 무창층 또는 층수가 11층 이상인 특정소방대상물 
     THEN isExist(myLeadingLight2)=True
          isExist(myLeadingLight4)True

 
  ELSE IF getBuildingUsage()="ClassINeighborhoodLivingFacility"
      OR getBuildingUsage()="ClassIINeighborhoodLivingFacility"
      OR getBuildingUsage()="FacilitiesForTheAgedAndChildren"
      OR getBuildingUsage()="BusinessFacility"   
      OR getBuildingUsage()="FacilityForPowerGeneration"   
      OR getBuildingUsage()="ReligiousFacility"
      OR getBuildingUsage()="EducationAndResearchFacility"   
      OR getBuildingUsage()="Trainingfacility" 
      OR getBuildingUsage()="Factory"
      OR getBuildingUsage()="Warehouse"   
      OR getBuildingUsage()="CorrectionalFacilityAndMilitaryInstallation"  
      OR getBuildingUsage()="Dormitory"
      OR getBuildingUsage()="AutomobileRepairShop"   
      OR getBuildingUsage()="DrivingSchool" 
      OR getBuildingUsage()="RepairingSchool"
      OR getBuildingUsage()="PubliclyUsedEstablishment"   
      OR getBuildingUsage()="ComplexBuilding"  
      OR getBuildingUsage()="ApartmentHouse"
         
     THEN isExist(myLeadingLight3)=True
          isExist(myLeadingLight4)True


  ELSE THEN  isExist(myLeadingSign1)=True
             isExist(myLeadingSign2)True
  END IF
    






} 




Python Code 변환 예정



Modify
15
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
16
19970 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 6조 1 항

제6조(통로유도등 설치기준) ①통로유도등은 특정소방대상물의 각 거실과 그로부터 지상에 이르는 복도 또는 계단의 통로에 다음 각 호의 기준에 따라 설치하여야 한다. <개정 2012.8.20>





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

Check(NFSC303_6_1){
         KS
}


KS{
 Corridor myCorridor{
       isGothrough(SpecificFireFightingBuilding.Room, Corridor, Ground)=True 
 }
   
 Stair myStair{
        isGothrough(SpecificFireFightingBuilding.Room, Stair, Ground)=True   
 }


       hasObject(myCorridor, LeadingLight.isForPassage)=True
       hasObject(myStair, LeadingLight.isForPassage)=True
       getResult(NFSC303_6_1_1)=True
       getResult(NFSC303_6_1_2)=True
       getResult(NFSC303_6_1_3)=True
} 




Python Code 변환 예정



Modify
17
19976 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 6조 1 항 2호 가 목

가. 거실의 통로에 설치할 것. 다만, 거실의 통로가 벽체 등으로 구획된 경우에는 복도통로유도등을 설치하여야 한다.





// 유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 2호 가목

Check(NFSC303_6_1_2_가){
          KS
}

KS{
     IF  // isPartitioned(Room.Passage, c)=True  type c: 벽체 등으로 구획
         THEN   isInstalled(Room.Passage,LeadingLightForCorridors)=True 
     ELSE THEN isInstalled(Room.Passage, LeadingLightForLivingRoom )=True
} 




Python Code 변환 예정



Modify
18
19978 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 6조 1 항 2호 다 목

다. 바닥으로부터 높이 1.5m 이상의 위치에 설치할 것. 다만, 거실통로에 기둥이 설치된 경우에는 기둥부분의 바닥으로부터 높이 1.5m 이하의 위치에 설치할 수 있다.<개정 2008.12.15>





//유도등 및 유도표지의 화재안전기준(nfsc 303)  6조 (통로유도등 설치기준) 1항 2호 다목

Check(NFSC303_6_1_2_다){
      KS
}

KS{

   IF hasObject(Room.Passage, Column)=False
      
      THEN   getObjectVerticalDistance(FloorSlab,LeadingLightForLivingRoom )>=1.5 
} 




Python Code 변환 예정



Modify
19
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
20
19983 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 7조 2 항

②객석내의 통로가 경사로 또는 수평로로 되어 있는 부분은 다음의 식에 따라 산출한 수(소수점 이하의 수는 1로 본다)의 유도등을 설치하고, 그 조도는 통로바닥의 중심선 0.5m 높이에서 측정하여 0.2㏓ 이상이어야 한다. <개정 2012.8.20>





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



Check(NFSC303_7_2){

            IF CS THEN KS

}



CS{

Space mySpace{
Space.usage = "Auditorium"
}
isInstalled(Passage, mySpace) = TRUE
isObjectProperty(Passage.isFlatWay) = TRUE
OR isObjectProperty(Passage.isSlopeWay) = TRUE


}





KS{

    LeadingLight myLeadingLight{

          isObjectProperty(LeadingLight.isForSeat)=True

    }



    isExist(myLeadingLight)=True



    //LAP means Length of Auditorium passage

    LAP= getObjectLength(AuditoriumPassage)

    getObjectCount(myLeadingLight)>= LAP/4-1

   // getSpaceIlluminance(AuditoriumPassage, "통로바닥의 중심선 0.5m 높이에서 측정")>0.2 lx , 측정 기준에 관한 파라미터 추가 필요 



} 




Python Code 변환 예정



Modify
21
19984 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 7조 3 항

③객석내의 통로가 옥외 또는 이와 유사한 부분에 있는 경우에는 해당 통로 전체에 미칠 수 있는 수의 유도등을 설치하되, 그 조도는 통로바닥의 중심선 0.5m의 높이에서 측정하여 0.2㏓ 이상이 되어야 한다.<개정 2008.12.15, 2012.8.20>





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

Check(NFSC303_7_3){
          IF CS THEN KS 
}

CS{
     isExternal(AuditoriumPassage)=True
}

KS{
     getSpaceIlluminance(AuditoriumPassage, "통로바닥의 중심선 0.5m의 높이에서 측정")>0.2 lx
} 




Python Code 변환 예정



Modify
22
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
23
19988 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 8조 2 항

②피난방향을 표시하는 통로유도등을 설치한 부분은 유도표지를 설치하지 아니할 수 있다. <개정 2012.8.20>





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

Check(NFSC303_8_2){
   KS
}


KS{
  
  LeadingLight myLeadingLight{
         isObjectProperty(LeadingLight.isForPassage)=True
  }
    
  isExist(myLeadingLight)=True
}

 




Python Code 변환 예정



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

나. 감지기는 복도 및 통로에 있어서는 보행거리 30m(3종에 있어서는 20m)마다, 계단 및 경사로에 있어서는 수직거리 15m(3종에 있어서는 10m)마다 1개 이상으로 할 것





//	자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 10호 나목
Check(NFSC203_7_3_10_2){
	IF (CS1 THEN KS1) OR (CS2 THEN KS2)
}

CS1{
	hasSpace(Corridor, SmokeSensor) = TRUE
	OR hasSpace(Passage, SmokeSensor) = TRUE
}

KS1{
	getObjectInterval(SmokeSensor) <= 30m
}

CS2{
	hasSpace(Stair, SmokeSensor) = TRUE
	OR hasSpace(Ramp, SmokeSensor) = TRUE
}

KS2{
	getObjectInterval(SmokeSensor) <= 15m
} 




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.