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

1. 성능시험배관은 펌프의 토출측에 설치된 개폐밸브 이전에서 분기하여 설치하고, 유량측정장치를 기준으로 전단 직관부에 개폐밸브를 후단 직관부에는 유량조절밸브를 설치할 것





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

Check(NFSC102_6_8_1){

	KS

}



KS{

	Pipe myPipe{

		isObjectProperty(Pipe.isForTest) = TRUE

	}



	Valve myValve{

		isObjectProperty(Valve.isShutoffValve) = TRUE

		isInstalled(Valve, Pump.Outlet) = TRUE

	}



	Valve myValve2{

		isObjectProperty(Valve.isShutoffValve) = TRUE

		isInstalled(Valve, Pump.Outlet) = FALSE

	}



	Valve myValve3{

		isObjectProperty(Valve.isFloatControlValve) = TRUE

	}



	isDiverged(Pump, myPipe) = TRUE

	getObjectDistance(StraightPipeLine, myPipe) < getObjectDistance(StraightPipeLine, myValve)



	isInstalled(myValve2, myPipe) = TRUE

	isInstalled(myValve3, myPipe) = TRUE

} 




Python Code 변환 예정



Modify
2
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
3
20094 건축물의 구조기준 등에 관한 규칙 제 53조 2호

2. 최대휨모멘트를 받는 부분에 있어서의 인장철근의 간격은 단변방향은 200밀리미터 이하로 하고 장변방향은 300밀리미터 이하로 하되, 슬래브의 두께의 3배 이하로 하여야 한다.





//건축물의 구조기준 등에 관한 규칙 53조 (콘크리트슬래브의 구조) 2호

Check(RSSB_53_0_2){
        KS
}

KS{
   getObjectDistance(TensionReinforcement, "최대휨모멘트를 받는 부분의 단변방향의 간격") <=200 mm
   getObjectDistance(TensionReinforcement, "최대휨모멘트를 받는 부분의 장변방향의 간격") <=300 mm

    TS=getObjectThickness(Slab)
    getObjectDistance(TensionReinforcement, "최대휨모멘트를 받는 부분의간격") <= TS/3


} 




Python Code 변환 예정



Modify
4
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
5
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
6
72672 건축물의 에너지절약설계기준 제 5조 11호 나 목

나. "역률개선용콘덴서”라 함은 역률을 개선하기 위하여 변압기 또는 전동기 등에 병렬로 설치하는 콘덴서를 말한다.





//	비상콘센트설비의 화재안전기준(nfsc 504) 4조 (전원 및 콘센트 등) 5항 3호
Check(NFSC504_4_5_3){
	IF (CS1 THEN KS1) OR (CS2 THEN KS2)
}

CS1{
	Building myBuilding{
		getBuildingUsage() = "ApartmentHouse"
	}

	Floor myFloor{
		getFloorArea(Floor) < 1000m2
	}

	Floor myFloor2{
		hasSpace(myBuilding, Floor) = TRUE
	}

	isExist(myFloor) = TRUE
	OR isExist(myFloor2) = TRUE
}

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

	getObjectDistance(myDoor.Stair.Space, EmergencyPowerOutlet) < 5m
	OR getObjectDistance(myDoor.Stair.AncillaryRoom, EmergencyPowerOutlet) < 5m
}

CS2{
	Building myBuilding{
		getBuildingUsage() = "ApartmentHouse"
	}

	Floor myFloor{
		getFloorArea(Floor) >= 1000m2
		hasSpace(myBuilding, Floor) = FALSE
	}

	isExist(myFloor) = TRUE
}

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

	getObjectDistance(myDoor.Stair.Space, EmergencyPowerOutlet) < 5m
	OR getObjectDistance(myDoor.Stair.AncillaryRoom, EmergencyPowerOutlet) < 5m
} 




Python Code 변환 예정



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

다. "전압강하”라 함은 인입전압(또는 변압기 2차전압)과 부하측전압과의 차를 말하며 저항이나 인덕턴스에 흐르는 전류에 의하여 강하하는 전압을 말한다.





//	비상콘센트설비의 화재안전기준(nfsc 504) 4조 (전원 및 콘센트 등) 5항 3호 가목
Check(NFSC504_4_5_3_1){
	IF CS THEN KS
}

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

Floor myFloor{
	getFloorNumber(Floor) < 0
}

CS{
	getFloorArea(myFloor) >= 3000m2
}

KS{
	getObjectDistance(myDoor.Stair.Space, EmergencyPowerOutlet) > 25m
	OR getObjectDistance(myDoor.Stair.AncillaryRoom, EmergencyPowerOutlet) > 25m
}
 




Python Code 변환 예정



Modify
8
72674 건축물의 에너지절약설계기준 제 5조 11호 라 목

라. "고효율조명기기”라 함은 광원, 안정기, 기타 조명기기로서 고효율인증제품 또는 산업통상자원부 고시 「효율관리기자재 운용규정」에서 고효율조명기기로 정의하는 제품을 말한다.





//	비상콘센트설비의 화재안전기준(nfsc 504) 4조 (전원 및 콘센트 등) 5항 3호 나목
Check(NFSC504_4_5_3_2){
	IF CS THEN KS
}

CS{
	getResult(NFSC504_4_5_3_1) = FALSE
}

KS{
	getObjectDistance(myDoor.Stair.Space, EmergencyPowerOutlet) > 25m
	OR getObjectDistance(myDoor.Stair.AncillaryRoom, EmergencyPowerOutlet) > 25m
}
 




Python Code 변환 예정



Modify
9
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
10
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
11
72746 건축물의 에너지절약설계기준 제 6조 4호 라 3) 목

3) 사람의 통행을 주목적으로 하지 않는 출입문





Check(NFCS103){
KS}


KS{
getObjectDistance(SprinklerHead,Ceiling,a)<=30CM
} 




Python Code 변환 예정



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

4) 너비 1.2미터 이하의 출입문





Check(NFCS103_10_7_3){

IF !CS THEN KS

}



objectDistance myObjectDistance1{

getObjectDistance(SprinklerHead,Obstacle,a)

}



objectDistance myObjectDistance2{

getObjectDistance(SprinklerHead,Ceiling,a)

}







CS{

getObjectWidth(Obstacle)<="myObjectDistance"





KS{

getObjectDistance(Pipe,Ceiling,a)<"myObjectDistance"

OR getObjectDistance(Pipe,Hanger,a)<"myObjectDistance"

OR getObjectDistance(Pipe,LightingFixture,a)<"myObjectDistance"

} 




Python Code 변환 예정



Modify
13
72757 건축물의 에너지절약설계기준 제 7조 2호

2. 평면계획





//스프링클러설비의 화재안전기준 10조 (헤드) 8항
check(NFSC103_10_8){
	(IF !(CS1) THEN KS1) or (IF CS1 THEN KS2)
}

KS1{
	Beam myBeam{
		hasObject(SpecificFireFightingBuilding, Beam) = TRUE
	}

	getElementDistance(myBeam, SprinklerHead, 1) = TRUE

	//Table

	getElementDistance(SprinklerHead.Deflector, Beam, a) + getObjectWidth(SprinklerHead.Deflector)*0.5 = SBD
	getObjectVerticalDistance(SprinklerHead.Deflector, Beam.BottomSurface, a) = SHD

	IF SBD < 0.75 m 
	THEN SHD < getObjectHeight(Beam.BottomSurface)

	IF 0.75 m <= SBD < 1 m 
	THEN SHD < 0.1 m

	IF 1 m <= SBD < 1.5 m
	THEN SHD < 0.15 m

	IF SBD >= 1.5 m 
	THEN SHD < 0.3 m 
}

CS1{
	getObjectDistance(Ceiling.Surface, Beam.BottomSurface) > 55 cm
	getObjectDistance(Beam.BottomSideSurface, SprinklerHead) = OD
	OD <= getElementDistance(SprinklerHead, c)*0.5
}

KS2{
	getObjectDistance(SprinklerHead, SprinklerHead.AttachingToSurface) <= 55 cm
} 




Python Code 변환 예정



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

다. 수영장에는 자연채광을 위한 개구부를 설치하되, 그 면적의 합계는 수영장 바닥면적의 5분의 1 이상으로 한다.





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

KS{
	getObjectDistance(Ceiling, CeilingCovering) < 2m
} 




Python Code 변환 예정



Modify
15
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
16
72778 건축물의 에너지절약설계기준 제 7조 6호

6. 환기계획





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

KS{
	(isObjectProperty(Ceiling.Material.nonCombustibility) = TRUE
	isObjectProperty(CeilingCovering.Material.nonCombustibility) = FALSE)
	OR (isObjectProperty(Ceiling.Material.nonCombustibility) = FALSE
	isObjectProperty(CeilingCovering.Material.nonCombustibility) = TRUE)
	getObjectDistance(Ceiling, CeilingCovering) < 1m
} 




Python Code 변환 예정



Modify
17
72779 건축물의 에너지절약설계기준 제 7조 6호 가 목

가. 외기에 접하는 거실의 창문은 동력설비에 의하지 않고도 충분한 환기 및 통풍이 가능하도록 일부분은 수동으로 여닫을 수 있는 개폐창을 설치하되, 환기를 위해 개폐 가능한 창부위 면적의 합계는 거실 외주부 바닥면적의 10분의 1 이상으로 한다.





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

KS{
	isObjectProperty(Ceiling.Material.nonCombustibility) = FALSE
	isObjectProperty(CeilingCovering.Material.nonCombustibility) = FALSE
	getObjectDistance(Ceiling, CeilingCovering) < 0.5m
} 




Python Code 변환 예정



Modify
18
72860 건축물의 에너지절약설계기준 제 17조 1 항 1호

「법 및 조례에서 정하는 기준 용적률」× [1 + 완화기준]





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



Check(NFSC103A_8_13_1){

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

}

Pipe myPipe{

	isObjectProperty(Pipe.isBranchLines) = TRUE

}

CS1{

	getObjectInterval(SimpleSprinkler.Head) <= 3.5m

}

KS1{

	getObjectCountInInterval(Hanger, SimpleSprinkler.Head) >= 1

	isInstalled(Hanger, myPipe) = TRUE

}



CS2{

	getObjectInterval(SimpleSprinkler.Head) > 3.5m

}

KS2{

	Head myHead{

	isObjectProperty(Head.installationDirectionType) = "BottomUpType"

	}

	isInstalled(Hanger, myPipe, b, 3.5) = TRUE

getObjectCountInInterval(Hanger, SimpleSprinkler.Head) >= 1

	getObjectDistance(myHead, Hanger) >= 8cm 



} 




Python Code 변환 예정



Modify
19
72874 건축물의 에너지절약설계기준 제 21조

제21조(건축물의 에너지 소요량의 평가) 「건축법 시행령」제3조의4에 따른 업무시설 기타 에너지소비특성 및 이용 상황 등이 이와 유사한 건축물로서 연면적의 합계가 3천 제곱미터 이상인 건축물은 1차 에너지 소요량 등을 평가하여 별지 제1호 서식에 따른 건축물 에너지 소요량 평가서를 제출하여야 한다. 다만, 「건축물 에너지효율등급 인증에 관한 규칙」 제11조에 따라 건축물 에너지효율등급 예비인증을 취득한 경우에는 동 규칙 별지 제6호 서식의 건축물 에너지





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



Check(NFSC503A_9_0_3){

	KS

}

KS{

	getObjectDistance(SimpleSprinkler.Head, Ceiling | CeilingCovering | PlenumSpace | Duct | Shelf) <= 2.3m

} 




Python Code 변환 예정



Modify
20
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
21
72876 건축물의 에너지절약설계기준 제 23조 1 항

제23조(복합용도 건축물의 에너지절약계획서 및 설계 검토서 작성방법 등) ① 에너지절약계획서 및 설계 검토서를 제출하여야 하는 건축물 중 비주 거와 주거용도가 복합되는 건축물의 경우에는 해당 용도별로 에너지절 약계획서 및 설계 검토서를 제출하여야 한다.





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



Check(NFSC503A_9_0_6){

	IF !CS THEN KS

}

CS{

	DBSH = getObjectDistance(Head.One, Head.One)

	getObjectdistance(Ceiling.Surface, Beam.BottomSurface) > 55cm

	getObjectdistance(Beam.BottomSideSurface, SimpleSprinkler.Head) <= DBSH/2

}

KS{

Beam myBeam{
isInstalled(Beam, SpecificFireFightingBuilding) = TRUE
}
	DCH = getObjectInterval(Head, myBeam)

	Head myHead{

	getObjectDistance(Head, myBeam) = DCH

	}

	

	IF getElementDistance(myHead.Deflector.Center, Beam) < 0.75m THEN getObjectVerticalLocation(myHead.Deflector, Beam.BottomSurface) < 0



	ELSE IF getElementDistance(myHead.Deflector.Center, Beam) >= 0.75m 

	OR getElementDistance(myHead.Deflector.Center, Beam) < 1m THEN getObjectVerticalLocation(myHead.Deflector, Beam.BottomSurface) < 0 

	getElementDistance(myHead.Deflector, Beam.BottomSurface) < 0.1m



	ELSE IF getElementDistance(myHead.Deflector.Center, Beam) >= 1m 

	OR getElementDistance(myHead.Deflector.Center, Beam) < 1.5m THEN getObjectVerticalLocation(myHead.Deflector, Beam.BottomSurface) < 0 

	getElementDistance(myHead.Deflector, Beam.BottomSurface) < 0.15m



	ELSE IF getElementDistance(myHead.Deflector.Center, Beam) >= 1.5m 

	THEN getObjectVerticalLocation(myHead.Deflector, Beam.BottomSurface) < 0 

	getElementDistance(myHead.Deflector, Beam.BottomSurface) < 0.3m

} 




Python Code 변환 예정



Modify
22
72895 건축물의 에너지절약설계기준 제 28조 1 항 5호

5. 제로에너지빌딩 조기 활성화와 관련하여 국토교통부장관이 요청하는 업무





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

KS{
	getObjectDistance(Sensor, ) >= 1.5m
} 




Python Code 변환 예정



Modify
23
19561 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 20조 1호

1. 굴뚝의 옥상 돌출부는 지붕면으로부터의 수직거리를 1미터 이상으로 할 것. 다만, 용마루ㆍ계단탑ㆍ옥탑등이 있는 건축물에 있어서 굴뚝의 주위에 연기의 배출을 방해하는 장애물이 있는 경우에는 그 굴뚝의 상단을 용마루ㆍ계단탑ㆍ옥탑등보다 높게 하여야 한다.





check(REFB_20_0_1){
     KS
}

KS{
     getObjectDistance(Chimney, Ground)
     -getObjectDistance(Roof, Ground)>= 1M
} 
 




Python Code 변환 예정



Modify
24
19563 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 20조 4호

4. 금속제 굴뚝은 목재 기타 가연재료로부터 15센티미터 이상 떨어져서 설치할 것. 다만, 두께 10센티미터 이상인 금속외의 불연재료로 덮은 경우에는 그러하지 아니하다.





check(REFB_20_0_4){

IF !CS THEN KS

}



CS{

     (isObjectProperty(Chimney.Material.nonCombustibility)= TRUE

     AND !(getObjectProperty(Chimney.Material)="Metal"))

     And getElementWidth(NoncombustibleMaterials)>=10

}



KS{

       getObjectDistance(Chimney, combustibleMaterials)>= 15CM

       AND getObjectProperty(Chimney.Material)="Metal")) 

} 




Python Code 변환 예정



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

①영 제39조제1항의 규정에 의하여 건축물의 바깥쪽으로 나가는 출구를 설치하는 경우 피난층의 계단으로부터 건축물의 바깥쪽으로의 출구에 이르는 보행거리(가장 가까운 출구와의 보행거리를 말한다. 이하 같다)는 영 제34조제1항의 규정에 의한 거리이하로 하여야 하며, 거실(피난에 지장이 없는 출입구가 있는 것을 제외한다)의 각 부분으로부터 건축물의 바깥쪽으로의 출구에 이르는 보행거리는 영 제34조제1항의 규정에 의한 거리의 2배 이하로 하여야 한다.





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 11조 (건축물의 바깥쪽으로의 출구의 설치기준) 1항

Check(REFB_11_1){ 
IF CS THEN KS1 AND KS2
}

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

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

getObjectDistance(myFloor.Stair, myDoor,a) <= EDBA_34_1.distance

}

KS2 {

getObjectDistance(Room, myDoor) <= (EDBA_34_1.distance)*2

}

 




Python Code 변환 예정



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

3. 너비가 3미터를 넘는 계단에는 계단의 중간에 너비 3미터 이내마다 난간을 설치할 것. 다만, 계단의 단높이가 15센티미터 이하이고, 계단의 단너비가 30센티미터 이상인 경우에는 그러하지 아니하다.





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조 (계단의 설치기준) 1항3호
check(REFB_15_1_3){
     IF !CS THEN KS
}

CS{
      getStairStepHeight()<=15 cm
      getStairStepWidth()>=30 cm
}

KS{
   IF   getObjectWidth(Stair)>=3 m
       
       THEN  hasObject(Stair, Railing) = TRUE
             N=getObjectWidth(Stair)/3
             getObjectCount(Railing)>=N
            IF N>1
                 THEN getObjectDistance(Railing,Railing)<3 m
            END IF
   END IF 
}
 








def Check():
    for building in SELECT('building'):
        for stair in building.SELECT('stair'):
            st_w = stair.SELECT('width').UNIT('m')
            st_w_num = height.NUMBER()
            
            if st_w_num >= 3:
                for riser_height in stair.SELECT('riser height'):
                    riser_h_num = riser_height.UNIT('mm').NUMBER()
                    if riser_h_num <=  15:
                        braker = True
                        break
                for riser_width in stair.SELECT('riser width'):
                    riser_w_num = riser_width.UNIT('mm').NUMBER()
                    if riser_w_num >= 30:
                        braker = True
                        break
                if braker is True:
                    break
                else:
                    pass
                # 3미터 이내마다 난간 설치 확인을 위하여 난간간 간격 파악 필요

                 





Modify
27
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
28
25303 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 18조 2 항

②영 제52조에 따라 다음 각 호의 어느 하나에 해당하는 욕실 또는 조리장의 바닥과 그 바닥으로부터 높이 1미터까지의 안벽의 마감은 이를 내수재료로 하여야 한다. <개정 2010.4.7>





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 18조 (거실등의 방습) 2항





Check(REFB_18_2){

  IF CS THEN KS

}



CS{

 getResult(REFB_18_2_1)=TRUE

 OR getResult(REFB_18_2_2)=TRUE

}



KS{

  Finish myFinish{

    getObjectDistance(Finish,floor)<=1



  isObjectPropert(InteriorFinish.Material.waterResistance)=TRUE

} 




Python Code 변환 예정



Modify
29
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
30
25588 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 24조의2조 2 항

②영 제61조제1항제4호나목에서 "국토교통부령으로 정하는 출구"란 건축물의 내부의 각 부분으로부터 출구(가장 가까운 거리에 있는 출구를 말한다)에 이르는 보행거리가 30미터 이하가 되도록 설치된 유효너비 1.5미터 이상의 출구를 말한다. <개정 2008.3.14, 2010.12.30, 2013.3.23>





// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조의2 (소규모 공장용도 건축물의 마감재료) 2항
check(REFB_24-2_2){
      KS
}
KS{
	Door myDoor{
	isObjectProperty(Door.isEntrance) = TRUE
	}
	getObjectDistance(Building.IndoorElement, Door) <= 30
	isObjectProperty(Door.effectiveWidth) >= 1.5m
} 




Python Code 변환 예정



Modify
31
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
32
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
33
19939 연결살수설비의 화재안전기준(NFSC 503) 제 5조 10 항 1호

1. 가지배관에는 헤드의 설치지점 사이마다 1개 이상의 행가를 설치하되, 헤드간의 거리가 3.5 m를 초과하는 경우에는 3.5m 이내마다 1개 이상 설치할 것. 이 경우 상향식헤드와 행가 사이에는 8 ㎝ 이상의 간격을 두어야 한다.





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

Check(NFSC503_5_10_1){
      KS
}

Pipe myPipe{
    isObjectProperty(Pipe.isBranchLines)=True
}
Head myHead{
   getObjectProperty(Head.installationDirectionType)="BottomUpType"
}

KS{
    isInstalled(Hanger, myPipe, "헤드의 설치지점 사이")=True
    IF getObjectDistance(Head)>3.5 m
    THEN isInstalled(Hanger, myPipe, 3.5 m)=True
         getObjectDistance(myHead, Hanger)>8 cm

    getResult(NFSC503_5_10_3)=True
} 




Python Code 변환 예정



Modify
34
19940 연결살수설비의 화재안전기준(NFSC 503) 제 5조 10 항 2호

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





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


Check(NFSC503_5_10_2){
      KS
}

Pipe myPipe{
    isObjectProperty(Pipe.isCrossMains)=True
}
Pipe myPipe2{
 isObjectProperty(Pipe.isBranchLines)=True
}

KS{
    isInstalled(Hanger, myPipe, "가지배관 사이")=True

    IF getObjectDistance(myPipe2)>4.5 m
    THEN isInstalled(Hanger, myPipe, 4.5 m)=True
    END IF     


    getResult(NFSC503_5_10_3)=True
} 




Python Code 변환 예정



Modify
35
19945 연결살수설비의 화재안전기준(NFSC 503) 제 6조 2 항 2호

2. 천장 또는 반자의 각 부분으로부터 하나의 살수헤드까지의 수평거리가 연결살수설비전용헤드의 경우은 3.7m 이하, 스프링클러헤드의 경우는 2.3m 이하로 할 것. 다만, 살수헤드의 부착면과 바닥과의 높이가 2.1m 이하인 부분은 살수헤드의 살수분포에 따른 거리로 할 수 있다.





//	연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 2항 2호
Check(NFSC503_6_2_2){
	IF (CS1 THEN KS1) OR (CS2 THEN KS2)
}

CS1{
	Head myHead{
		isObjectProperty(HookingUpSprinklerSystem.Head.isShared) = FALSE
	}
	isExist(myHead) = TRUE
}

KS1{
	getObjectDistance(Ceiling, HookingUpSprinklerSystem.Head) <= 3.7m
	OR getObjectDistance(CeilingCovering, HookingUpSprinklerSystem.Head) <= 3.7m
}

CS2{
	isExist(SprinklerHead) = TRUE
}

KS2{
	getObjectDistance(Ceiling, SprinklerSystem) <= 2.3m
	OR getObjectDistance(CeilingCovering, SprinklerSystem) <= 2.3m
} 




Python Code 변환 예정



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

3. 스프링클러헤드와 그 부착면(상향식헤드의 경우에는 그 헤드의 직상부의 천장·반자 또는 이와 비슷한 것을 말한다. 이하 같다)과의 거리는 30㎝ 이하로 할 것





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 3호
Check(NFSC503_6_3_3){
	IF (CS1 THEN KS1) or (CS2 THEN KS2)
}

CS1{
	getObjectProperty(SprinklerHead) != "BottomUpType"
}

KS1{
	getObjectDistance(SprinklerHead.AttachingToSurface, SprinklerHead) <= 30CM
}

CS2{
	getObjectProperty(SprinklerHead) = "BottomUpType"
}

KS2{
	getObjectVerticalDistance(Ceiling, SprinklerHead) <= 30CM
} 




Python Code 변환 예정



Modify
38
19953 연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 7호

7. 연소할 우려가 있는 개구부에는 그 상하좌우에 2.5m 간격으로(개구부의 폭이 2.5m 이하인 경우에는 그 중앙에) 스프링클러헤드를 설치하되, 스프링클러헤드와 개구부의 내측면으로부터의 직선거리는 15㎝ 이하가 되도록 할 것. 이 경우 사람이 상시 출입하는 개구부로서 통행에 지장이 있는 때에는 개구부의 상부 또는 측면(개구부의 폭이 9m 이하인 경우에 한한다)에 설치하되, 헤드 상호간의 간격은 1.2m 이하로 설치하여야 한다.





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 7호

Check(NFSC503_6_3_7){

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

}



CS1{

	Opening myOpening{

		isObjectProperty(Opening.isFireSpreading) = TRUE

	}

	isExist(myOpening) = TRUE

	getObjectWidth(myOpening, a) > 2.5m

}



KS1{

	(getObjectDistance(myOpening.InsideSurface, SprinklerSystem.Head) <= 15cm

	getObjectWidth(SprinklerSystem.Head, a) = 2.5m)

	OR (getObjectWidth(myOpening) <= 9m

	getObjectDistance(myOpening.InsideSurface, SprinklerSystem.Head) <= 15cm

	getObjectWidth(SprinklerSystem.Head, a) <= 1.2m)

}



CS2{

	Opening myOpening{

		isObjectProperty(Opening.isFireSpreading) = TRUE

	}

	isExist(myOpening) = TRUE

	getObjectWidth(myOpening, a) <= 2.5m

}



KS2{

	hasObject(myOpening, SprinklerSystem.Head) = TRUE

} 




Python Code 변환 예정



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

2. 방수구는 아파트 또는 바닥면적이 1,000㎡ 미만인 층에 있어서는 계단(계단의 부속실을 포함하며 계단이 2 이상 있는 경우에는 그 중 1개의 계단을 말한다)으로부터 5m 이내에, 바닥면적 1,000㎡ 이상인 층(아파트를 제외한다)에 있어서는 각 계단(계단의 부속실을 포함하며 계단이 3 이상 있는 층의 경우에는 그 중 2개의 계단을 말한다)으로부터 5m 이내에 설치하되, 그 방수구로부터 그 층의 각 부분까지의 거리가 다음 각목의 기준을 초과하는 경우





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

Check(NFSC502_6_0_2){
     KS 
}

KS{
     Space mySpce{
         getSpaceUsage(Space)="Stair.AncillaryRoom"
         OR
         (
         IF getObjectCoutn(Stair)>=2
             THEN getSpace(Stair.One)
         ELSE 
             getSpaceUsage(Space)="Stair"
         END IF
         )
     }

      Space mySpce2{
         getSpaceUsage(Space)="Stair.AncillaryRoom"
         OR
         (
         IF getObjectCoutn(Stair)>=3
             THEN getSpace(Stair.Two)
         ELSE 
             getSpaceUsage(Space)="Stair"
         END IF
         )
     }

     IF getBuildingUsage()="ApartmentHouse"
        OR getFloorArea()<1000 m2 
      
     THEN getObjectDistance(FireDepartmentConnection, mySpace)<5 m 

     ELSE IF getFloorArea()>1000 m2
    
     THEN getObjectDistance(FireDepartmentConnection, mySpace)<5 m 
          getResult(NFSC502_6_0_2_가)=True
          getResult(NFSC502_6_0_2_나)=True
        
     END IF
} 




Python Code 변환 예정



Modify
40
20496 연결송수관설비의 화재안전기준(NFSC 502) 제 7조 1호

1. 방수기구함은 피난층과 가장 가까운 층을 기준으로 3개층마다 설치하되, 그 층의 방수구마다 보행거리 5m 이내에 설치할 것 <개정 2014.8.18>





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



Check(NFSC502_7_0_1){

       KS

}



KS{

    Floor myFloor{

           isObjectProperty(Floor.isEscape)=True

    }



    Floor myFloor2{

         Floor.number>EFN

    }

   

    Floor myFloor3{

         Floor.nmbergetObjectDistance(FireDepartmentConnectionSystem.Port, DischargeCabinet) <= 5 m

} 




Python Code 변환 예정



Modify
41
72587 옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 8 항 1호

1. 성능시험배관은 펌프의 토출측에 설치된 개폐밸브 이전에서 분기하여 설치하고, 유량측정장치를 기준으로 전단 직관부에 개폐밸브를 후단 직관부에는 유량조절밸브를 설치할 것





//	옥내소화전설비의 화재안전기준(NFSC 102) 6조 (배관 등) 8항 1호
Check(NFSC102_6_8_1){
	KS
}

KS{
	Pipe myPipe{
		isObjectProperty(Pipe.isForPerformanceTest) = TRUE
	}

	Valve myValve{
		isObjectProperty(Valve.isShutoffValve) = TRUE
		isInstalled(Valve, Pump.Outlet) = TRUE
	}

	Valve myValve2{
		isObjectProperty(Valve.isShutoffValve) = TRUE
		isInstalled(Valve, Pump.Outlet) = FALSE
	}

	Valve myValve3{
		isObjectProperty(Valve.isFloatControlValve) = TRUE
	}

	isDiverged(Pump, myPipe) = TRUE
	getObjectDistance(Pump.StartPart, myPipe) < getObjectDistance(Pump.StartPart, myValve)

	isInstalled(myValve2, myPipe) = TRUE
	isInstalled(myValve3, myPipe) = TRUE
} 




Python Code 변환 예정



Modify
42
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
43
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
44
19995 장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행규칙 제 별표1조

1. 장애인등의 통행이 가능한 접근로 가. 유효폭 및 활동공간 (1) 휠체어사용자가 통행할 수 있도록 접근로의 유효폭은 1.2미터 이상으로 하여야 한다. (2) 휠체어사용자가 다른 휠체어 또는 유모차 등과 교행할 수 있도록 50미터마다 1.5미터×1.5미터 이상의 교행구역을 설치할 수 있다. (3) 경사진 접근로가 연속될 경우에는 휠체어사용자가 휴식할 수 있도록 30미터마다 1.5미터×1.5미터 이상의 수평면으로 된 참을 설치할





//장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행규칙 별표1 편의시설의 구조·재질등에 관한 세부기준(제2조제1항관련)

Check(ERCDAPA_2_1_*_1_4_나_1){
	IF (CS1 THEN KS1) OR (CS2 THEN KS2)

	ParkingUnit myParkingUnit{
		isObjectProperty(ParkingUnit.isParallelParking) = TRUE
	}

	CS1{
		isObjectProperty(ParkingUnit.isParallelParking) = TRUE
	}

	KS1{
		getObjectWidth(ParkingLotArea.isHandicapParking, a) >= 3.3 m
		getElementLength(ParkingLotArea.isHandicapParking) >= 5 m
	}

	CS2{
		isObjectProperty(ParkingLotArea.isParallelParking) = FALSE
	}

	KS2{
		getObjectWidth(ParkingLotArea.isHandicapParking, a) >= 2 m
		getElementLength(ParkingLotArea.isHandicapParking) >= 6 m
	}
}


check(ERCDAPA_2_1_*_1_4_나_2){
	getObjectGradient(ParkingSpace.Floor) <= 1/50
}


check(ERCDAPA_2_1_*_1_6_가_1){
	
	Door myDoor1{
		isObjectProperty(Door.isEntrance) = TRUE
	}

	Door myDoor2{
		isObjectProperty(Door.isEntrance) = TRUE
		getObject(Door.isEntrance) != getObject(myDoor1)
	}

	getObjectWidth(Door.isEntrance) >= 0.8 m
	isEgressDirection(myDoor1) = isEgressDirection(myDoor2)
	getObjectDistance(myDoor1, myDoor2) >= 1.2 m
}


check(ERCDAPA_2_1_*_1_6_가_2){
	
	isObjectProperty(Door.isAutomatic) = FALSE
	isObjectProperty(Door.isSillFree) = TRUE
}

check(ERCDAPA_2_1_*_1_8_가_2){
	
	getObjectVerticalDistance(FloorSurface,Door.Bottom)
}

check(ERCDAPA_2_1_*_1_8_나){
	
	Stair myStair{
		isObjectProperty(Stair.isEscape) = TRUE
		isObjectProperty(Stair.isOutdoor) = TRUE
	}

	getObjectWidth(myStair) >= 0.9 m 
	getObjectWidth(myStair.StairLanding) >= 0.9 m

	Stair myStair2{
		isObjectProperty(Stair.isEscape) = FALSE
		isObjectProperty(Stair.isOutdoor) = FALSE
	}

	getObjectWidth(myStair2) >= 1.2 m 
	getObjectWidth(myStair2.StairLanding) >= 1.2 m
}


check(ERCDAPA_2_1_*_1_8_다_1){
	
	hasObject(Stair, VerticalSurfaceStair) = TRUE
}

check(ERCDAPA_2_1_*_1_8_다_2){
	
	getObjectWidth(Stair.threadWidth) >= 0.28 m
	getObjectHeight(Stair.riserHeight) <= 0.18m
}

check(ERCDAPA_2_1_*_1_8_다_3){
	
	getObjectGradient(Stair.riserGradient) >= 60
	getObjectLength(Stair.nosingLength) < 3 cm
} 




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.