개방형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
72577 간이스프링클러설비의 화재안전기준(NFSC 103A) 제 8조 6 항 2호

2. 유량측정장치는 성능시험배관의 직관부에 설치하되, 펌프의 정격토출량의 175% 이상 측정할 수 있는 성능이 있을 것





//  간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 6항 2호

Check(NFSC103A_8_6_2){

	KS

}

KS{

	Pipe myPipe{

		isObjectProperty(Pipe.isForTest) = TRUE

	}

	

	isConnectedTo(myPipe, DischargeMeasuringEquipment) = TRUE

	getObjectProperty(DischargeMeasuringEquipment.measurementCapacity) = DME

	getObjectProperty(Pump.ratedDischargePressure) = PDP



	PDP*1.75 <= DME

} 




Python Code 변환 예정



Modify
2
24886 건축물의 구조기준 등에 관한 규칙 제 25조 3 항

③가새는 그 두 끝부분을 기둥·보 그 밖의 구조부재인 가로재와 잇도록 하여야 한다. <개정 2009.12.31>





//건축물의 구조기준 등에 관한 규칙 25조 (가새) 3항

Check(RSSB_25_3){

        KS

}

KS{

	isObjectProperty(HorizontalMember.isStructuralMember) = TRUE

	isConnectedTo(Brace, HorizontalMember) = TRUE

} 




Python Code 변환 예정



Modify
3
19386 건축물의 설비기준 등에 관한 규칙 제 10조 3호 나 목

나. 각층으로부터 피난층까지 이르는 승강로를 단일구조로 연결하여 설치할 것





//건축물의 설비기준 등에 관한 규칙 10조 (비상용승강기의 승강장 및 승강로의 구조) 3호 나목

Check(RFB_10_0_3_나){

	KS

}



KS{

	Floor myFloor{

		isObjectProperty(Floor.isEscape)=TRUE

	}
ElevatorShaft myElevatorShaft1{
	hasObject(Floor,ElevatorShaft)=TRUE
}
ElevatorShaft myElevatorShaft2{
	hasObject(myFloor,ElevatorShaft)=TRUE	
}
	isConnectedTo(myElevatorShaf1t, myElevatorShaft2, SingleStructure)=TRUE

} 




Python Code 변환 예정



Modify
4
25140 건축물의 설비기준 등에 관한 규칙 제 14조 2 항 1호

1. 배연구 및 배연풍도는 불연재료로 하고, 화재가 발생한 경우 원활하게 배연시킬 수 있는 규모로서 외기 또는 평상시에 사용하지 아니하는 굴뚝에 연결할 것





//건축물의 설비기준 등에 관한 규칙 14조 (배연설비) 2항1호



Check(RFB_14_2_1){
Duct myDuct{
getObjectProperty(Duct.functionType) = "Exhaust"
}
	isObjectProperty(SmokeExhaustionOpening.Material.nonCombustibility) = TRUE

	isObjectProperty(myDuct.Material.nonCombustibility) = TRUE

	(isConnectedToExternal(SmokeExhaustionOpening) = TRUE

        isConnectedToExternal(myDuct) = TRUE)

	OR( isConnectedTo(SmokeExhaustionOpening,Chimney) = TRUE

            isConnectedTo(myDuct,Chimney) = TRUE)

} 




Python Code 변환 예정



Modify
5
72691 건축물의 에너지절약설계기준 제 5조 5호

5. "고효율에너지기자재인증제품”(이하 "고효율인증제품”이라 한다)이라 함은 산업통상자원부 고시 「고효율에너지기자재 보급촉진에 관한규정」(이하 "고효율인증규정”이라 한다)에서 정한 기준을 만족하여 에너지관리공단에서 인증서를 교부받은 제품을 말한다.





//	옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 6항

Check(NFSC102_6_6){

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

}

Port myPort{
Port.typeForWater = "IndoorFireHydrantDischarge"
}

	Pipe myPipe{

		isObjectProperty(Pipe.isBranchLines) = TRUE

		isConnectedTo(Pipe, myPort) = TRUE

	}



	Pipe myPipe2{

		isObjectProperty(Pipe.isRiser) = TRUE

	}



CS1{

	getObjectProperty(myPipe.systemType) = "HoseReelHydrantSystem"

}



KS1{

	getObjectProperty(myPipe.diameter) >= 25mm

}



CS2{

	getObjectProperty(myPipe.systemType) != "HoseReelHydrantSystem"

}



KS2{

	getObjectProperty(myPipe.diameter) >= 40mm

}



CS3{

	getObjectProperty(myPipe2.systemType) = "HoseReelHydrantSystem"

}



KS3{

	getObjectProperty(myPipe2.diameter) >= 32mm

}



CS4{

	getObjectProperty(myPipe2.systemType) != "HoseReelHydrantSystem"

}



KS4{

	getObjectProperty(myPipe2.diameter) >= 50mm

} 




Python Code 변환 예정



Modify
6
72692 건축물의 에너지절약설계기준 제 5조 6호

6. "완화기준”이라 함은 「건축법」, 「국토의 계획 및 이용에 관한 법률」 및 「지방자치단체 조례」등에서 정하는 조경설치면적, 건축물의 용적률 및 높이제한 기준을 적용함에 있어 완화 적용할 수 있는 비율을 정한 기준을 말한다.





//  옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 7항

Check(NFSC503A_6_7){

	IF CS THEN KS

}



CS{

	Pipe.isShared(SimpleSprinklersystem.Pipe, 	FireDepartmentConnectionSystem.Pipe) = TRUE

}

KS{

	Pipe myPipe1{

	isObjectProperty(Pipe.isRiser) = TRUE

	}

	Port myPort{

	getObjectProperty(Port.typeForWater) = "Delivery"

	Pipe myPipe2{

	isConnectedTo(Pipe, myPort) = TRUE

	}

	

	isObjectProperty(myPipe1.diameter) >= 100 mm	

	getObjectProperty(myPipe2.diameter) >= 65 mm

} 




Python Code 변환 예정



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

너. "태양열취득률(SHGC)"이라 함은 입사된 태양열에 대하여 실내로 유입된 태양열취득의 비율을 말한다.





//  옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 13항 2호

Check(NFSC503A_6_13_2){

 IF !CS THEN KS 

}

CS{

	isShared(HookingUpSprinklerSystem.Pipe, SprinklerSystem.Pipe, WaterSprayExtingushingSystem.Pipe, FoamExtinguishingSystem.Pipe) = TRUE

	OR isShared(HookingUpSprinklerSystem.Pipe, FireDepartmentConnectionSystem.Pipe) = TRUE

}

KS{

	Port myPort{ 

	getObjectProperty(HookingUpSprinklerSystem.Port.typeForWater) = "FireDepartmentConnection" 

 	}

 	Pipe myPipe{

	isObjectProperty(Pipe.isRiser)=TRUE

	}

	Vavle myValve{

	isObjectProperty(Valve.isShutoffValve)= TRUE

	}

 	isConnectedTo(myPort, Pipe) = TRUE

 	isConnectedTo(Pipe, myPipe) = TRUE

  	isInstalled(myValve, myPipe) = FALSE

 } 




Python Code 변환 예정



Modify
8
72712 건축물의 에너지절약설계기준 제 5조 9호 파 목

파. "평균 열관류율”이라 함은 지붕(천창 등 투명 외피부위를 포함하지 않는다), 바닥, 외벽(창 및 문을 포함한다) 등의 열관류율 계산에 있어 세부 부위별로 열관류율값이 다를 경우 이를 면적으로 가중평균하여 나타낸 것을 말한다. 단, 평균열관류율은 중심선 치수를 기준으로 계산한다.





//  스프링클러설비의 화재안전기준(nfsc 103) 4조 (수원) 5항 2호
Check(NFSC103_4_5_2){
	KS
}

Pipe myPipe{
	isObjectProperty(Pipe.isRiser) = TRUE
	isInstalled(Pipe, SprinklerSystem) = TRUE
}

Tank myTank{
	getObjectProperty(Tank.operationType) = "ElevatedWaterTank"
}

WaterSupplyOpening myWaterSupplyOpening{
	isConnectedTo(WaterSupplyOpening, myPipe) = TRUE
}

WaterSupplyOpening myWaterSupplyOpening2{
	WaterSupplyOpening != myWaterSupplyOpening
}

KS{
	getObjectVerticalLocation(myWaterSupplyOpening, myWaterSupplyOpening2) < 0
}

 




Python Code 변환 예정



Modify
9
72759 건축물의 에너지절약설계기준 제 7조 2호 나 목

나. 건축물의 체적에 대한 외피면적의 비 또는 연면적에 대한 외피면적의 비는 가능한 작게 한다.





//스프링클러설비의 화재안전기준(nfsc 103) 11조 (송수구) 2호

Check(NFSC103_11_0_2){
	IF CS THEN KS
}

CS{
	Port myPort{
	isObjectProperty(Port.typeForWater) = "FireDepartmentConnection"
	}
	Pipe myPipe{
	isObjectProperty(Pipe.isRiser)=TRUE
	}
	Valve myValve{
	isObjectProperty(Valve.isShutoffValve)=TRUE
	}
	isConnectedTo(myPort,Pipe)=TRUE
	isConnectedTo(Pipe,myPipe)=TRUE
	isInstalled(Pipe, myValve) = TRUE
}
KS{
	Space mySpace{
	isObjectProperty(Space.usage) = "MachineRoom"
	}
	isExternal(myValve)=TRUE 
	OR hasSpace(mySpace,myValve)=TRUE 




Python Code 변환 예정



Modify
10
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
11
72794 건축물의 에너지절약설계기준 제 9조 2호 나 목

나. 난방기기, 냉방기기, 냉동기, 송풍기, 펌프 등은 부하조건에 따라 최고의 성능을 유지할 수 있도록 대수분할 또는 비례제어운전이 되도록 한다.





// 간이스프링클러설비의 화재안전기준(nfsc 103a) 4조 (수원) 2항 2호







Check(NFSC503A_4_2_2){



	KS



}



KS{



Pipe myPipe{

getObjectProperty(Pipe.usage)= "WaterSupplyPipe"

getObjectProperty(Pipe.systemType)="SimpleSprinklerSystem"
isObjectProperty(Pipe.isRiser)= TRUE

}



	Tank myTank{ 



	getObjectProperty(Tank.operationType) = "ElevatedWaterTank"



	}



	Port myPort1{



	getObjectProperty(Port.typeForWater) = "Supply"



	isConnectedTo(Port,myTank) = TRUE



	isConnectedTo(Port,myWaterSupplyPipe) = TRUE



	}







	Port myPort2 {



	getObject(Port) - getObject(myPort1)



	}







	Distance1 = getObjectVerticalDistance(myPort1, Ground.Surface, b)  



	Distance2 = getObjectVerticalDistance(myPort2, Ground.Surface, b)







	Distance1 - Distance2 < 0



} 




Python Code 변환 예정



Modify
12
72840 건축물의 에너지절약설계기준 제 11조 3호 가 목

가. 옥외등은 고효율 에너지기자재 인증제품 또는 산업통상자원부 고시 효율관리기자재 운용규정」에서 고효율조명기기로 등록된 고휘도방전램프(HID Lamp : High Intensity Dis charge Lamp) 또는 LED 램프를 사용하고, 옥외등의 조명회로는 격등 점등과 자동점멸기에 의한 점멸이 가능하도록 한다.





//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 5항

Check(NFSC503A_8_5){
	IF CS THEN KS
}

CS{
	Pipe myPipe1{
Pipe.systemType = "SimpleSprinklersystem"
}
	Pipe myPipe2{
Pipe.systemType = "FireDepartmentConnectionSystem"
}
Pipe.isShared(myPipe1, myPipe2) = TRUE
}
KS{
	Pipe myPipe3{
	isObjectProperty(Pipe.isRiser) = TRUE
	}
	Port myPort{
	getObjectProperty(Port.typeForWater) = "Delivery"
	Pipe myPipe4{
	isConnectedTo(Pipe, myPort) = TRUE
	}
	
	isObjectProperty(myPipe3.diameter) >= 100 mm	
	getObjectProperty(myPipe4.diameter) >= 65 mm
} 




Python Code 변환 예정



Modify
13
72849 건축물의 에너지절약설계기준 제 11조 4호 라 목

라. 실내 조명설비는 군별 또는 회로별로 자동제어가 가능하도록 한다.





// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 10항



Check(NFSC503A_8_10){

	IF CS THEN KS

}

	Pipe myPipe1{

	isObjectProperty(Pipe.isBranchLines) = TRUE

	}

	Head myHead{

	isObjectProperty(Head.installationDirectionType) = "TopDownType"

	}

CS{

	isInstalled(myHead, myPipe1) = TRUE

}

KS{

	Pipe mypipe2{

	isConnectedTo(myPipe1, Pipe) = TRUE

	isConnectedTo(myHead, Pipe) = TRUE

	}

	getObjectVerticalLocation(myPipe1, myPipe1) > 0 

} 




Python Code 변환 예정



Modify
14
72853 건축물의 에너지절약설계기준 제 13조

제13조(에너지절약계획서 및 설계 검토서 작성) 에너지절약 설계 검토서는 별지 제1호 서식에 따라 에너지절약설계기준 의무사항 및 에너지성능지표, 에너지소요량 평가서로 구분된다. 에너지절약계획서를 제출하는 자는 에너지절약계획서 및 설계 검토서(에너지절약설계기준 의무사항 및 에너지성능지표, 에너지소요량 평가서)의 판정자료를 제시(전자문서로 제출하는 경우를 포함한다)하여야 한다. 다만, 자료를 제시할 수 없는 경우에는 부득이 당해 건축사 및 설계에 협력하는





// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 11항 2호 가목

Check(NFSC503A_8_11_2_가){
	KS
}
KS{
	Pipe myPipe{
	isObjectProperty(Pipe.usage) = "WaterDrainPipe"
	isObjectProperty(Pipe.isRiser) = TRUE
	}
	Valve myValve{
	isObjectProperty(Valve.isShutoffValve) = TRUE
	}
	isConnectedTo(Pipe, myPipe) = TRUE
	isInstalled(myValve, Pipe) = TRUE
} 




Python Code 변환 예정



Modify
15
72856 건축물의 에너지절약설계기준 제 15조 2 항

② 에너지성능지표의 각 항목에 대한 배점의 판단은 에너지절약계획서 제출자가 제시한 설계도면 및 자료에 의하여 판정하며, 판정 자료가 제시되지 않을 경우에는 적용되지 않은 것으로 간주한다.





// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 12항 1호



Check(NFSC503A_8_12_1){

	KS

}

KS{

	Pipe myPipe{

	isObjectProperty(Pipe.isBranchLines) = TRUE

	isFarthestDistance(WaterflowIndicator, Pipe) = TRUE

	}

	isInstalled(TestingDevice, myPipe.End) = TRUE

	isConnectedTo(TestingDevice, myPipe.End) = TRUE

} 




Python Code 변환 예정



Modify
16
72903 건축물의 에너지절약설계기준 제 별표5조

열관류율 계산 시 적용되는 실내 및 실외측 표면 열전달저항





자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 7호 라목
Check(NFSC203_7_3_7_라){
	KS
}
KS{
	Pipe myPipe{
	isObjectProperty(Pipe.isForAir) = TRUE
	}
	isConnectedTo(myPipe, DetectingElement.One) = TRUE
	getObjectLength(myPipe) <= 100m
} 




Python Code 변환 예정



Modify
17
72908 건축물의 에너지절약설계기준 제 서식1조

에너지절약계획 설계 검토서






자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 8호 나목
Check(NFSC203_7_3_8_나){
	KS
}
KS{
	isConnectedTo(ThermocoupleElement, DetectingElement.One) = TRUE
	getObjectCount(ThermocoupleElement) <= 20
} 




Python Code 변환 예정



Modify
18
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
19
19602 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 30조 1호 나 목

나. 승강장은 각 층의 내부와 연결될 수 있도록 하되, 그 출입구에는 갑종방화문을 설치할 것. 이 경우 방화문은 언제나 닫힌 상태를 유지할 수 있는 구조이어야 한다.





// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 1호 나목
check(REFB_30_0_1_나){
      KS
}
KS{
	isConnectedTo(Platform, Floor.One.Space) = TRUE
	Door myDoor{
	isObjectProperty(Door.isEntrance) = TRUE
	isInstalled(Door, Floor.One) = TRUE
	}
	isObjectProperty(myDoor.isStrictFireproofDoor) = TRUE
} 




Python Code 변환 예정



Modify
20
19608 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 30조 2호 나 목

나. 각 층으로부터 피난층까지 이르는 승강로를 단일구조로 연결하여 설치할 것





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



Check(REFB_30_0_2_나){

      KS

}



KS{

   Floor myFloor{

     isObjectProperty(Floor.isEscape)=True

   }

   

ElevatorShaft myElevatorShaft1{
	hasObject(Floor,ElevatorShaft)=TRUE
}
ElevatorShaft myElevatorShaft2{
	hasObject(myFloor,ElevatorShaft)=TRUE	


isConnectedTo(myElevatorShaf1t, myElevatorShaft2, SingleStructure)=TRUE


} 




Python Code 변환 예정



Modify
21
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
22
25194 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 1호 라 목

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





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

check(REFB_9_2_1_4){

IF (CS1 AND CS2) THEN KS

}

CS1 {

Opening myOpening1{

	isConnectedTo(Stair.Space, Opening) = TRUE

	getObjectProperty(Opening.material)= “WireContainedGlass”

	getObjectProperty(Window.panelOperationType)= “FixedSashWindow”

	getObjectProperty(Opening.area)=< 1㎡	

}

CS2 {

Opening myOpening2{

	getObject(Opening) != myOpening1 	

}

KS{

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

}



} 




Python Code 변환 예정



Modify
23
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
24
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
25
19915 연결살수설비의 화재안전기준(NFSC 503) 제 4조 1 항 5호

5. 송수구로부터 주배관에 이르는 연결배관에는 개폐밸브를 설치하지 아니 할 것. 다만, 스프링클러설비·물분무소화설비·포소화설비 또는 연결송수관설비의 배관과 겸용하는 경우에는 그러하지 아니하다.





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



Check(NFSC503_4_1_5){

 IF !CS THEN KS 

}

CS{
Pipe myPipe1{
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
}
Pipe myPipe2{
getObjectProperty(Port.systemType) = "SprinklerSystem"
}
Pipe myPipe3{
getObjectProperty(Port.systemType) = "WaterSprayExtingushingSystem"
}
Pipe myPipe4{
getObjectProperty(Port.systemType) = "FoamExtinguishingSystem"
}
Pipe myPipe5{
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
}
Pipe myPipe6{
getObjectProperty(Port.systemType) = "FireDepartmentConnectionSystem"
}
	isShared(myPipe1, myPipe2, myPipe3, myPipe4) = TRUE

	OR isShared(myPipe5, myPipe6) = TRUE

}

KS{

	Port myPort{ 
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
	getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" 

 	}

 	Pipe myPipe{

	isObjectProperty(Pipe.isRiser)=TRUE

	}

	Vavle myValve{

	isObjectProperty(Valve.isShutoffValve)= TRUE

	}

 	isConnectedTo(myPort, Pipe) = TRUE

 	isConnectedTo(Pipe, myPipe) = TRUE

  	isInstalled(myValve, myPipe) = FALSE

 } 




Python Code 변환 예정



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

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





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



Check(NFSC503_5_3){

	IF CS THEN KS

}

	Head myHead{

	isObjectProperty(Head.openAndCloseType) = "EnclosedType"

	}

	Pipe myPipe1{

	isObjectProperty(Pipe.isRiser) = TRUE

	isObjectProperty(myPipe.systemType) = "HookingUpSprinklerSystem"

	}

CS{

	isInstalled(myHead, myPipe1) = TRUE

}

KS{

	Pipe myPipe2{

	isObjectProperty(Pipe.isRiser) = TRUE

	isObjectProperty(myPipe.systemType) = "IndoorFireHydrantSystem"

	}

	Tank myTank{

	isInstalled(Tank, Rooftop) = TRUE

	}

	Pipe myPipe3{
	Pipe.isForWater = TRUE

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

	}

	Valve myValve{

	isObjectProperty(Valve.isCheckValve) = TRUE

	}

	(isConnectedTo(myPipe1, myPipe2) = TRUE

	isInstalled(myValve, myPipe1) = TRUE

	isInstalled(myValve, myPipe2) = TRUE)



	OR (isConnectedTo(myPipe1, myPipe3) = TRUE

	isInstalled(myValve, myPipe1) = TRUE

	isInstalled(myValve, myPipe3) = TRUE)



	OR (isConnectedTo(myPipe1, myTank) = TRUE

	isInstalled(myValve, myPipe1) = TRUE

	isInstalled(myValve, myTank) = TRUE)

} 




Python Code 변환 예정



Modify
27
19929 연결살수설비의 화재안전기준(NFSC 503) 제 5조 4 항 1호

1. 송수구의 가장 먼 가지배관의 끝으로부터 연결하여 설치할 것





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

Check(NFSC503_5_4_1){
	KS
}
KS{
	Pipe myPipe1{
	isObjectProperty(Pipe.isForTest) = TRUE
	}
	Port myPort{
	getObjectProperty(Port.typeForWater) = "FireDepartmentConnection"
	}
	Pipe myPipe2{
	isObjectProperty(Pipe.isBranchLines) = TRUE
	isFarthestDistance(myPort, Pipe) = TRUE
	}

	isConnectedTo(myPipe1, myPipe2) = TRUE
} 




Python Code 변환 예정



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

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





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

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




Python Code 변환 예정



Modify
29
20463 연결송수관설비의 화재안전기준(NFSC 502) 제 4조 4호

4. 송수구로부터 연결송수관설비의 주배관에 이르는 연결배관에 개폐밸브를 설치한 때에는 그 개폐상태를 쉽게 확인 및 조작할 수 있는 옥외 또는 기계실 등의 장소에 설치할 것. 이 경우 개폐밸브에는 그 밸브의 개폐상태를 감시제어반에서 확인할 수 있도록 급수개폐밸브 작동표시 스위치를 다음 각 목의 기준에 따라 설치하여야 한다. <개정 2014.8.18>





//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 4호



Check(NFSC502_4_0_4){

      IF CS THEN KS 

}



CS{

    Pipe  myPipe1{
Pipe.systemType = "FireDepartmentConnectionSystem"
Pipe.isRiser = TRUE
}

    Pipe  myPipe2{

         isConnectedTo(FireDepartmentConnection, Pipe)=True

         isConnectedTo(myPipe1, Pipe)=True

    }

  

   Valve myValve{

     isObjectProperty(Valve.isShutoffValve)=True  

   }





    hasObject(myConnectionPipe, myValve)=True

}



KS{

    isExternal(myValve)=True

    OR (hasObject(Space, myValve)=True   
getSpaceUsage(Space) = "MachinRoom"


} 




Python Code 변환 예정



Modify
30
20465 연결송수관설비의 화재안전기준(NFSC 502) 제 4조 7호

7. 송수구는 연결송수관의 수직배관마다 1개 이상을 설치할 것. 다만, 하나의 건축물에 설치된 각 수직배관이 중간에 개폐밸브가 설치되지 아니한 배관으로 상호 연결되어 있는 경우에는 건축물마다 1개씩 설치할 수 있다.





//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 7호



Check(NFSC502_4_0_7){

    IF CS THEN KS1 ELSE KS2

}



CS{
Port myPort{
Port.typeForWater = "FireDepartmentConnection"
}

    Pipe myPipe{
Pipe.systemType = "FireDepartmentConnectionSystem"
         isObjectProperty(Pipe.isRiser)=True

   }



   Pipe myPipe2{

       isInstalled( myValve, Pipe)=False

   }

   

   Valve myValve{

      isObjectProperty(Valve.isShutOffValve)=True

   }



   

   isConnectedTo(myPipe, myPipe2)=True

}



KS1{

    isInstalled(myPort)=True

}



KS2{

    getObjectCount(myPort,myPipe )>=1

} 




Python Code 변환 예정



Modify
31
20106 연소방지설비의 화재안전기준(NFSC 506) 제 4조 6 항 3호

3. 하향식헤드를 설치하는 경우에 가지배관으로부터 헤드에 이르는 헤드접속배관은 가지관상부에서 분기할 것





//연소방지설비의 화재안전 기준(nfsc 506) 4조 (배관) 6항 3호
Check(NFSC506_4_6_3){
	IF CS THEN KS
}

CS{
	Pipe myPipe{
		hasObject(CombustionProtectionSystem, Pipe) = TRUE
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

	Head myHead{
		getObjectProperty(Head.installationDirectionType) = "TopDownType"
	}

	isInstalled(myPipe, myHead) = TRUE
}

KS{
	Pipe myPipe{
		hasObject(CombustionProtectionSystem, Pipe) = TRUE
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

	Head myHead{
		getObjectProperty(Head.installationDirectionType) = "TopDownType"
	}

	Pipe myPipe2{
		isConnectedTo(myPipe, Pipe) = TRUE
		isConnectedTo(myHead, Pipe) = TRUE
	}

	isDiverged(가지관 상부, myPipe2) = TRUE
} 




Python Code 변환 예정



Modify
32
20109 연소방지설비의 화재안전기준(NFSC 506) 제 4조 7 항 2호

2. 교차배관에는 가지배관과 가지배관 사이마다 1개 이상의 행가를 설치하되, 가지배관 사이의 거리가 4.5m을 초과하는 경우에는 4.5m 이내마다 1개 이상 설치할 것





//  연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 7항 2호

Check(NFSC506_4_7_2){
	IF (CS1 THEN KS1) OR (CS2 THEN KS2)
}

CS1{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
		getObjectInterval(Pipe) <= 4.5m
	}

	Pipe myPipe2{
		isObjectProperty(Pipe.isCrossMains) = TRUE
	}

	isConnectedTo(myPipe, myPipe2) = TRUE
}

KS1{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
		getObjectInterval(Pipe) <= 4.5m
	}

	Pipe myPipe2{
		isObjectProperty(Pipe.isCrossMains) = TRUE
	}

	Hanger myHanger{
		isInstalled(Hanger, myPipe2) = TRUE
	}

	getObjectCountInInterval(myHanger,myPipe) >=1
}

CS2{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
		getObjectInterval(Pipe) > 4.5m
	}

	Pipe myPipe2{
		isObjectProperty(Pipe.isCrossMains) = TRUE
	}

	isConnectedTo(myPipe, myPipe2) = TRUE
}

KS2{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
		getObjectInterval(Pipe) > 4.5m
	}

	Pipe myPipe2{
		isObjectProperty(Pipe.isCrossMains) = TRUE
	}

	Hanger myHanger{
		isInstalled(Hanger, myPipe2) = TRUE
	}

	getObjectCountInInterval(myHanger,myPipe) >=1
	getObjectInterval(myPipe) = OIP
	OIP/4.5 = OIPP
	(OIPP-1) <= getObjectCountInInterval(Hanger, myHead) < OIPP
	getObjectInterval(Hanger) = 4.5m
}
 




Python Code 변환 예정



Modify
33
20119 연소방지설비의 화재안전기준(NFSC 506) 제 6조 6호

6. 송수구로부터 주배관에 이르는 연결배관에는 개폐밸브를 설치하지 아니할 것





//	연소방지설비의 화재안전기준(nfsc 506) 6조 (송수구) 6호
Check(NFSC506_6_0_6){
	KS
}

KS{
	Port myPort{
		getObjectProperty(Port.typeForWater) = "FireDepartmentConnection"
	}

	Pipe myPipe2{
		isObjectProperty(Pipe.isRiser) = TRUE
	}


	Pipe myPipe{
		isConnectedTo(Pipe, myPort) = TRUE
		isConnectedTo(Pipe, myPipe2) = TRUE
	}

	Valve myValve{
		isObjectProperty(Valve.isShutoffValve) = TRUE
	}

	isInstalled(myValve, myPipe) = FALSE
} 




Python Code 변환 예정



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

나. 하나의 검출기에 접속하는 감지부는 2개 이상 15개 이하가 되도록 할 것. 다만, 각각의 감지부에 대한 작동여부를 검출기에서 표시할 수 있는 것(주소형)은 형식승인 받은 성능인정범위내의 수량으로 설치할 수 있다.





자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 9호 나목

Check(NFSC203_7_3_9_나){

	IF CS THEN KS

}

CS{

	isConnectedTO(Detector.One, SensingElement) = TRUE

}

KS{

	getObjectCount(SensingElement) >= 2

	getObjectCount(SensingElement) <= 15

} 




Python Code 변환 예정



Modify
35
20027 특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(NFSC 501A) 제 19조 6호

6. 송풍기와 연결되는 캔버스는 내열성(석면재료를 제외한다)이 있는 것으로 할 것





//  특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 19조 (급기송풍기) 6호

Check(NFSC 501A){

	IF CS THEN KS

}



CS{ 

isConnectedTo(AirBlower, Canvas) = TRUE 

}



KS{

	Canvas.Material.thermalResistance = TRUE

	getObjectMaterial(Canvas) != "asbestos"

} 




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.