설계품질검토 대상법규   |   조항단위 법규   |   문장단위 법규   |   KBimCode-Assess 연동모듈   |   KBimCode DB   |   주어부 - 객체,속성 DB   |   서술부 - 함수 DB   |   관계부 - 문장관계   |   룰셋생성모듈   |  
(2025-06-28 기준) 설계품질검토용 건축법 및 관련법규 - KBIMCode (문장단위)
      KBIMCode - KBimAssess Python Code     KBIMCode - 체크리스트 단위     KBIMCode - 조항단위
    1      
1 / 1 page Total 2500 / 4000 records
Select
ALL
None
#
Law
Jo
JO Name
HANG
HO
MOK
Text
Search!
1
간이스프링클러설비의 화재안전기준(NFSC 103A) 제 8조 2 항 3호

3. 천장(상층이 있는 경우에는 상층바닥의 하단을 포함한다. 이하 같다)과 반자를 불연재료 또는 준불연재료로 설치하고 그 내부에 습식으로 배관을 설치하는 경우





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

Check(NFSC503A_8_2_3){
	KS
}
KS{	
	SprinklerSystem mySprinklerSystem{
	isObjectProperty(SprinklerSystem.type) = "WetPipeSprinklerSystem"
	}
	(isObjectProperty(Ceiling.Material.nonCombustibility)=TRUE
	OR isObjectProperty(Ceiling.Material.quasiNonCombustibility)=TRUE)
	(isObjectProperty(CeilingCovering.Material.nonCombustibility)=TRUE
	OR isObjectProperty(CeilingCovering.Material.quasiNonCombustibility)=TRUE)
	isInstalled(mySprinklerSystem, Ceiling)=TRUE
	isInstalled(mySprinklerSystem, CeilingCovering)=TRUE
} 




Python Code 변환 예정



2
건축물의 설비기준 등에 관한 규칙 제 9조 3호

3. 높이 31미터를 넘는 층수가 4개층이하로서 당해 각층의 바닥면적의 합계 200제곱미터(벽 및 반자가 실내에 접하는 부분의 마감을 불연재료로 한 경우에는 500제곱미터)이내마다 방화구획으로 구획한 건축물





//건축물의 설비기준 등에 관한 규칙 9조 (비상용승강기를 설치하지 아니할 수 있는 건축물) 3호

Check(RFB_9_0_3){

    KS

}



KS{

    getBuildingHeight()>31 m

    getBuildingStoriesCount()<=4

    IF isObjectProperty(Wall.InteriorFinish.Material.nonCombustibility)=TRUE

       isObjectProperty(CeilingCovering.InteriorFinish.Material.nonCombustibility)=TRUE

    THEN isFirePartition(Floor, a,500)=TRUE 

    ELSE THEN isFirePartition(Floor, a,200)=TRUE 

    END IF

} 




Python Code 변환 예정



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

라. 벽 및 반자가 실내에 접하는 부분의 마감재료(마감을 위한 바탕을 포함한다)는 불연재료로 할 것





//건축물의 설비기준 등에 관한 규칙 10조 (비상용승강기의 승강장 및 승강로의 구조) 2호 라목
Check(RFB_10_0_2_라){
	KS
}

KS{
	Elevator myElevator{
		isObjectProperty(Elevator.isEmergency)=TRUE
	}
	isObjectProperty(myElevator.Platform.Wall.InteriorFinish.Material.nonCombustibility) = TRUE
	isObjectProperty(myElevator.Platform.CeilingCovering.InteriorFinish.Material.nonCombustibility) = TRUE
} 




Python Code 변환 예정



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

1. 영 제46조제1항의 규정에 의하여 건축물에 방화구획이 설치된 경우에는 그 구획마다 1개소 이상의 배연창을 설치하되, 배연창의 상변과 천장 또는 반자로부터 수직거리가 0.9미터 이내일 것. 다만, 반자높이가 바닥으로부터 3미터 이상인 경우에는 배연창의 하변이 바닥으로부터 2.1미터 이상의 위치에 놓이도록 설치하여야 한다.





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

Check(RFB_14_1_1){

	IF (CS) THEN KS1 AND KS2

}



Zone myZone{

		isObjectProperty(Zone.isFirePartition) = TRUE

	}





CS{

	isObjectProperty(Building.isFirePartition) = TRUE

}



KS1{

	

	hasSpace(myZone, SmokeVentilator) = TRUE

	

	getObjectVerticalDistance(SmokeVentilator, Ceiling) < 0.9 m

	OR getObjectVerticalDistance(SmokeVentilator, CeilingCovering) < 0.9 m

}



KS2{	

	IF{

		getSpaceHeight(myZone, b) >= 3 m

	}



	THEN{

		getObjectVerticalDistance(SmokeVentilator, FloorSlab) >= 2.1 m 

	}

} 




Python Code 변환 예정



5
건축물의 에너지절약설계기준 제 5조 10호 아 목

아. "심야전기를 이용한 축열·축냉시스템”이라 함은 심야시간에 전기를 이용하여 열을 저장하였다가 이를 난방, 온수, 냉방 등의 용도로 이용하는 설비로서 한국전력공사에서 심야전력기기로 인정한 것을 말한다.





//	비상경보설비의 화재안전기준(NFSC 201) 5조 (단독경보형감지기) 2호

Check(NFSC201_5_0_2){

	KS

}



KS{

	Ceiling myCeiling{

		hasSpace(Building.TopFloor.Stair.Space, Ceiling) = TRUE

	}
Sensor mySensor{
isObjectProperty(Sensor.isSelfcontainedTypeFireAlarmDevice) = TRUE
}


	isInstalled(myCeiling, mySensor) = TRUE

} 




Python Code 변환 예정



6
건축물의 에너지절약설계기준 제 5조 12호 가 목

가. "신·재생에너지”라 함은「신에너지 및 재생에너지 개발·이용·보급촉진법」에서 규정하는 것을 말한다.





//  옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 2항 3호
Check(NFSC102_6_2_3){
	KS
}
KS{	
	SprinklerSystem mySprinklerSystem{
	isObjectProperty(SprinklerSystem.type) = "WetPipeSprinklerSystem"
	}
	(isObjectProperty(Ceiling.Material.nonCombustibility)=TRUE
	OR isObjectProperty(Ceiling.Material.quasiNonCombustibility)=TRUE)
	(isObjectProperty(CeilingCovering.Material.nonCombustibility)=TRUE
	OR isObjectProperty(CeilingCovering.Material.quasiNonCombustibility)=TRUE)
	isInstalled(mySprinklerSystem, Ceiling)=TRUE
	isInstalled(mySprinklerSystem, CeilingCovering)=TRUE
}

 




Python Code 변환 예정



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

가. 바닥난방 부위에 설치되는 단열재는 바닥난방의 열이 슬래브 하부 및 측벽으로 손실되는 것을 막을 수 있도록 온수배관(전기난방인 경우는 발열선) 하부와 슬래브 사이에 설치하고, 온수배관(전기난방인 경우는 발열선) 하부와 슬래브 사이에 설치되는 구성 재료의 열저항의 합계는 층간 바닥인 경우에는 해당 바닥에 요구되는 총열관류저항(별표1에서 제시되는 열관류율의 역수)의 60% 이상, 최하층 바닥인 경우에는 70% 이상이 되어야 한다. 다만, 바닥난방을 하는





//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 1항



Check(NFSC_10_1){

KS2 AND IF CS THEN KS1





KS2{

Space mySpace1{

천장과반자사이

}

hasElement(SpecificFireFightingBuilding.Ceiling,SprinklerHead)= TRUE

hasElement(SpecificFireFightingBuilding.CeilingCovering,SprinklerHead)= TRUE

hasElement(SpecificFireFightingBuilding.mySpace1,SprinklerHead)= TRUE

hasElement(SpecificFireFightingBuilding.Duct,SprinklerHead)= TRUE

hasElement(SpecificFireFightingBuilding.Shelf,SprinklerHead)= TRUE

}



CS{

Space mySpace2{

isExternal(Space)= FALSE 

}

getSpaceWidth(Building.mySpace)<= 9m

}



KS1{

Wall myWall{

Wall.isSideWall=TRUE

}

hasElement(myWall,SprinklerSystem.Head)=TRUE

hasElement(myWall,SprinklerSystem.Head)=FALSE

} 




Python Code 변환 예정



8
건축물의 에너지절약설계기준 제 6조 4호 나 목

나. 방습층 및 단열재가 이어지는 부위 및 단부는 이음 및 단부를 통한 투습을 방지할 수 있도록 다음과 같이 조치하여야 한다.





//스프링클러설비의 화재안전기준(NFSC 103) 10조 3항 1호



check(NFSC103_10_3_1){

IF CS THEN KS

}



Space mySpace1{

Space.usage="StagePart"

OR isObjectProperty(Space.hasSpecialCombustible)=TRUE

}

CS{

isExist(PlenumSpace)=TRUE

}

KS{

getHorizontalDistance(Ceiling | CeilingCovering | mySpace2 | Duct | Shelf,SprinklerSystem.Head)<=1.7m

} 




Python Code 변환 예정



9
건축물의 에너지절약설계기준 제 6조 4호 나 1) 목

1) 단열재의 이음부는 최대한 밀착하여 시공하거나, 2장을 엇갈리게 시공하여 이음부를 통한 단열성능 저하가 최소화될 수 있도록 조치할 것





//스프링클러설비의 화재안전기준(NFSC 103) 10조 3항 2호



check(NFSC103_10_3_2){

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

}



Space mySpace1{

Space.usage="RackWarehouse"

Space mySpace2{

Space.usage="RackWarehouse"

isObjectProperty(Space.hasSpecialCombustible)=TRUE

}

CS1{

isExist(mySpace1)=TRUE

}

KS1{

getHorizontalDistance(Ceiling|CeilingCovering|PlenumSpace|Duct|Shelf,SprinklerHead)<=2.5m

}

CS2{

isExist(mySpace2)=TRUE

}

KS2{

getHorizontalDistance(Ceiling|CeilingCovering|PlenumSpace|Duct|Shelf,SprinklerHead)<=1.7m

} 




Python Code 변환 예정



10
건축물의 에너지절약설계기준 제 6조 4호 나 2) 목

2) 방습층으로 알루미늄박 또는 플라스틱계 필름 등을 사용할 경우의 이음부는 100 ㎜ 이상 중첩하고 내습성 테이프, 접착제 등으로 기밀하게 마감할 것





//스프링클러설비의 화재안전기준(NFSC 103) 10조 3항 3호

check(NFSC103_10_3_3){

	IF (CS) THEN KS ENDIF

}



CS{

	getBuildingUsage() = "MultiUnitHouse"

}



KS{

	Space mySpace = getObject(Room)

			

	getObjectVerticalDistance(mySpace.Ceiling, SprinklerHead) <= 3.2m

	getObjectVerticalDistance(mySpace.CeilingCover, SprinklerHead) <= 3.2m

	getObjectVerticalDistance(mySpace.Duct, SprinklerHead) <= 3.2m

	getObjectVerticalDistance(mySpace.Shelf, SprinklerHead) <= 3.2m

} 




Python Code 변환 예정



11
건축물의 에너지절약설계기준 제 6조 4호 나 3) 목

3) 단열부위가 만나는 모서리 부위는 방습층 및 단열재가 이어짐이 없이 시공하거나 이어질 경우 이음부를 통한 단열성능 저하가 최소화되도록 하며, 알루미늄박 또는 플라스틱계 필름 등을 사용할 경우의 모서리 이음부는 150㎜이상 중첩되게 시공하고 내습성 테이프, 접착제 등으로 기밀하게 마감할 것





//스프링클러설비의 화재안전기준(NFSC 103) 10조 3항 4호
check(NFSC103_10_3_4){
	IF CS1 THEN IF (CS2) THEN KS ELSE KS2 ENDIF ENDIF
}

CS1{
	Space mySpace = getObject(특정소방대상물)
	getResult(_1) = False
	getResult(_2) = False
	getResult(_3) = False
}

CS2{
	isFireResistanceStructure(mySpace) = TRUE
}

KS1{
	getObjectVerticalDistance(mySpace.Ceiling, SprinklerHead) <= 2,3m
	getObjectVerticalDistance(mySpace.CeilingCover, SprinklerHead) <= 2.3m
	getObjectVerticalDistance(mySpace.Duct, SprinklerHead) <= 2.3m
	getObjectVerticalDistance(mySpace.Shelf, SprinklerHead) <= 2.3m
}

KS2{
	getObjectVerticalDistance(mySpace.Ceiling, SprinklerHead) <= 2,1m
	getObjectVerticalDistance(mySpace.CeilingCover, SprinklerHead) <= 2.1m
	getObjectVerticalDistance(mySpace.Duct, SprinklerHead) <= 2.1m
	getObjectVerticalDistance(mySpace.Shelf, SprinklerHead) <= 2.1m
} 




Python Code 변환 예정



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

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





Check(NFCS103){
KS}


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




Python Code 변환 예정



13
건축물의 에너지절약설계기준 제 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 변환 예정



14
건축물의 에너지절약설계기준 제 6조 4호 바 목

바. 건축물의 거실의 창이 외기에 직접 면하는 부위인 경우에는 제5조제9호자목에 따른 기밀성 창을 설치하여야 한다.





//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 7항5호
Check(NFSC103_10_7_5){
    IF CS THEN KS    
}

CS{
  getObjectProperty(Ceiling.gradient)>1/10  
}


KS{
  isParallel(BranchPipe, Ceiling.Top)=TRUE
  
  getResult(NFSC103_10_7_5_1)=TRUE
  OR getResult(NFSC103_10_7_5_2)=TRUE
} 




Python Code 변환 예정



15
건축물의 에너지절약설계기준 제 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 변환 예정



16
건축물의 에너지절약설계기준 제 7조 5호 나 목

나. 공동주택의 지하주차장은 300㎡ 이내마다 1개소 이상의 외기와 직접 면하는 2㎡ 이상의 개폐가 가능한 천창 또는 측창을 설치하여 자연환기 및 자연채광을 유도한다. 다만, 지하2층 이하는 그러하지 아니한다.





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

CS{
	isObjectProperty(Ceiling.Material.nonCombustibility) = TRUE
	isObjectProperty(CeilingCovering.Material.nonCombustibility) = TRUE
}

KS{
	getResult(NFSC103_15_1_5_1) = TRUE
	OR getResult(NFSC103_15_1_5_2) = TRUE
} 




Python Code 변환 예정



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

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





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

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




Python Code 변환 예정



18
건축물의 에너지절약설계기준 제 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 변환 예정



19
건축물의 에너지절약설계기준 제 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 변환 예정



20
건축물의 에너지절약설계기준 제 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 변환 예정



21
건축물의 에너지절약설계기준 제 8조 2호 다 목

다. 기기배관 및 덕트는 국토교통부에서 정하는 「건축기계설비공사표준시방서」의 보온두께 이상 또는 그 이상의 열저항을 갖도록 단열조치를 하여야 한다. 다만, 건축물내의 벽체 또는 바닥에 매립되는 배관 등은 그러하지 아니할 수 있다.





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

KS{
	(getBuildingUsage() = "Indoor.TennisCourts"
	OR getBuildingUsage() = "Indoor.게이트볼장"
	OR getBuildingUsage() = "Indoor.정구장")

	(getObjectProperty(Floor.InteriorFinish.Material.nonCombustibility) = TRUE
	OR getObjectProperty(Floor.InteriorFinish.Material.quasiNonCombustibility) TRUE)

	(getObjectProperty(Wall.InteriorFinish.Material.nonCombustibility) = TRUE
	OR getObjectProperty(Wall.InteriorFinish.Material.quasiNonCombustibility) TRUE)

	(getObjectProperty(Ceiling.InteriorFinish.Material.nonCombustibility) = TRUE
	OR getObjectProperty(Ceiling.InteriorFinish.Material.quasiNonCombustibility) TRUE)

	isObjectProperty(Space.hasCombustible) = FALSE
	hasSpace(Auditorium, SportsFacility) = FALSE
	getObjectProperty(Floor.number) > 0
} 




Python Code 변환 예정



22
건축물의 에너지절약설계기준 제 11조 4호 나 목

나. 팬코일유닛이 설치되는 경우에는 전원의 방위별, 실의 용도별 통합제어가 가능하도록 한다.





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

Check(NFSC503A_8_9_2){
	IF !CS THEN KS
}
CS{
	getResult(NFSC503A_8_9_2_가) = TRUE
}
KS{
	Pipe myPipe{
	isObjectProperty(Pipe.isBranchLines) = TRUE
	}
	Head myHead{
	isIntalled(SimpleSprinkler.Head, myPipe.One) = TRUE
	getObjectVerticalLocation(CeilingCovering, SimpleSprinkler.Head) < 0
	}
	getObjectCount(myHead) <= 8  
} 




Python Code 변환 예정



23
건축물의 에너지절약설계기준 제 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 변환 예정



24
건축물의 에너지절약설계기준 제 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 변환 예정



25
건축물의 에너지절약설계기준 제 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 변환 예정



26
건축물의 에너지절약설계기준 제 23조 4 항

④ 기숙사, 오피스텔은 별표1 및 별표3의 공동주택 외의 단열기준을 준수할 수 있으며, 별지 제1호서식의 에너지성능지표 작성 시, 기본배점에서 비주거를 적용한다.





//	간이스프링클러설비의 화재안전기준(NFSC 103A) 별표1 (간이헤드 수별 급수관의 구경) 1항

Check(NFSC103A_*_1){

	getResult(NFSC103A_*_1_1) = TRUE

	getResult(NFSC103A_*_1_2) = TRUE

	getResult(NFSC103A_*_1_3) = TRUE

	getResult(NFSC103A_*_1_4) = TRUE

}

	

	Pipe myPipe{

	getObjectProperty(Pipe.usage) = "WaterSupplyPipe"

	}

	Pipe myPipe2{

	isObjectProperty(Pipe.isBranchLines) = TRUE

	}

	PD = getObjectProperty(Pipe.diameter)

	SSHN = getObjectCount(SimpleSprinkler.Head.)



Check(NFSC103A_*_1_2){

	IF CS THEN KS

}

CS{

	Head myHead{

	getObjectProperty(SimpleSprinkler.Head.openAndCloseType) = "EnclosedType"

	}

	isInstalled(myHead) = TRUE

}

KS{

	IF PD = 25 THEN SSHN = 2

	OR IF PD = 32 THEN SSHN = 3

	OR IF PD = 40 THEN SSHN = 5

	OR IF PD = 50 THEN SSHN = 10

	OR IF PD = 65 THEN SSHN = 30

	OR IF PD = 80 THEN SSHN = 60

	OR IF PD = 100 THEN SSHN = 100

	OR IF PD = 125 THEN SSHN = 160

	OR IF PD = 150 THEN SSHN >= 161

}

Check(NFSC103A_*_1_3){

	IF CS THEN KS

}

CS{

	Head myHead1{

	getObjectProperty(SimpleSprinkler.Head.openAndCloseType) = "EnclosedType"

	}

	isInstalled(myHead1) = TRUE

	Head myHead2{

	getObjectVerticalLocation(Head, CeilingCovering, )  <  0
	}

	Head myHead3{

	isInstalled(Head, CeilingCovering.Inside) = TRUE

	}

	isInstalled(myHead2, myPipe2) = TRUE

	isInstalled(myHead3, myPipe2) = TRUE

}

KS{

	IF PD = 25 THEN SSHN = 2

	OR IF PD = 32 THEN SSHN = 4

	OR IF PD = 40 THEN SSHN = 7

	OR IF PD = 50 THEN SSHN = 15

	OR IF PD = 65 THEN SSHN = 30

	OR IF PD = 80 THEN SSHN = 60

	OR IF PD = 100 THEN SSHN = 100

	OR IF PD = 125 THEN SSHN = 160

	OR IF PD = 150 THEN SSHN >= 161

} 




Python Code 변환 예정



27
건축물의 에너지절약설계기준 제 28조 1 항 3호

3. 제로에너지빌딩 평가, 모니터링 및 분석에 관한 업무





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

KS{
	Ceiling myCeiling{
		15m <= getObjectHeight(Ceiling) < 20m
	}

	CeilingCovering myCeilingCovering{
		15m <= getObjectHeight(CeilingCovering) < 20m
	}
	
	isExist(myCeiling) = TRUE
	OR isExist(myCeilingCovering) = TRUE

	isInstalled(SmokeSensor) = TRUE
}
 




Python Code 변환 예정



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

② 국토교통부장관은 제1항 업무의 효율적 수행을 위하여 제로에너지빌딩 지원센터로 하여금 시행세칙을 제정하여 운영토록 할 수 있다.





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 2항 1호
Check(NFSC503_6_2_1){
	KS
}

KS{
	Ceiling myCeiling{
		isAdjacent(Ceiling, Indoors) = TRUE
	}

	CeilingCovering myCeilingCovering{
		isAdjacent(CeilingCovering, Indoors) = TRUE
	}

	isInstalled(myCeiling, Sensor) = TRUE
	OR isInstalled(myCeilingCovering, Sensor) = TRUE
} 




Python Code 변환 예정



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



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



31
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 24조 2 항

②영 제61조제1항 각 호의 건축물 중 다음 각 호의 어느 하나에 해당하는 거실의 벽 및 반자의 실내에 접하는 부분의 마감은 제1항에도 불구하고 불연재료 또는 준불연재료로 하여야 한다. <개정 2003.1.6, 2005.7.22, 2006.6.29, 2010.4.7, 2010.12.30>





//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조 (건축물의 마감재료) 2항



check(REFB_24_2){

     IF CS THEN KS

}





CS{

    getResult(REFB_24_2_1)=TRUE

    OR getResult(REFB_24_2_2)=TRUE

}



KS{

  (isObjectProperty(CeilingCovering.InteriorFinish.Material.nonCombustibility)=TRUE

OR isObjectProperty(CeilingCovering.InteriorFinish.Material.quasiNonCombustibility)=TRUE )


(isObjectProperty(Room.Wall.InteriorFinish.Material.nonCombustibility)=TRUE

 OR isObjectProperty(Room.Wall.InteriorFinish.Material.quasiNonCombustibility)=TRUE

)

} 




Python Code 변환 예정



32
건축법 시행령 제 37조

제37조 (지하층과 피난층 사이의 개방공간 설치) 바닥면적의 합계가 3천 제곱미터 이상인 공연장·집회장·관람장 또는 전시장을 지하층에 설치하는 경우에는 각 실에 있는 자가 지하층 각 층에서 건축물 밖으로 피난하여 옥외 계단 또는 경사로 등을 이용하여 피난층으로 대피할 수 있도록 천장이 개방된 외부 공간을 설치하여야 한다.





Check(EDBA_37){

  IF (CS) THEN KS END IF

  Space mySpace{

        Space.Floor.area > 3000 M2;

        Space.usage="PerformanceHall"

        OR Space.usage="AssemblyHall"

        OR Space.usage="Auditorium"

        OR Space.usage="ExhibitionHall"

  }

}



CS{

    

    mySpace.Floor.number< 0 

    

}



KS{

Stair myStair{
Stair.isOutdoor = TRUE
}
Floor myFloor{
Floor.isEscape = TRUE
}
Space mySpace{
hasObject(Space, Ceiling) != TRUE
}
     (isGoThrough(mySpace, myStair, myFloor)=True

     OR isGoThrough(mySpace, Ramp, myFloor)=True)

     AND isExternal(mySpace)=True

    

} 








std_area = 3000
std_area_label = '기준 바닥면적 합계'

def Check():
    for building in SELECT('building'):
        bldg_use = building.SELECT('building type').STRING()
        sub_use = building.SELECT('prop', '세부용도').STRING()
        if not (bldg_use == '문화 및 집회시설' and sub_use in ['공연장', '집회장', '관람장', '전시장']):
            continue

        base_storey_exist = False
        under_stories = []

        for storey in building.SELECT('storey'):
            if storey.SELECT('prop', '기준 지상층').BOOL():
                base_storey_exist = True
                break
            under_stories.append(storey)

        if base_storey_exist == False:
            building.ERROR('지상층이 존재하지 않습니다.')
            continue

        if len(under_stories) == 0:
            continue

        area_sum = 0.0
        ex_spaces = []

        for storey in under_stories:
            for space in storey.SELECT('space'):
                area_sum += space.SELECT('area').UNIT('m2').NUMBER()
                if space.SELECT('is external').BOOL():
                    ex_spaces.append(space)

        if area_sum < std_area:
            building.SUCCESS('지하공간 바닥면적 합: ' + str(area_sum) + ' < ' + str(std_area))
            continue

        if len(ex_spaces) == 0:
            building.ERROR('지하에 천장이 개방된 외부 공간이 없습니다.')
            continue

        for space in ex_spaces:
            for stair in space.SELECT('stair'):
                if stair.SELECT('is direct').BOOL():
                    space.SUCCESS('피난층으로 대피할 수 있는 외부 공간이 존재합니다.')
                    return

        ex_spaces[0].ERROR('피난층으로 대피할 수 없습니다.') 





33
건축법 시행령 제 119조 1 항 7호

7. 반자높이: 방의 바닥면으로부터 반자까지의 높이로 한다. 다만, 한 방에서 반자높이가 다른 부분이 있는 경우에는 그 각 부분의 반자면적에 따라 가중평균한 높이로 한다.





//

check() {

getobjectproperty(CeilingCovering.height)

} 








def Check():
    for building in SELECT('building'):
        for space in building.SELECT('space'):
            dist = space.SELECT('ceiling height')
            height = dist.UNIT('m').NUMBER()
            return height 





34
소화기구 및 자동소화장치의 화재안전기준(NFSC 101) 제 4조 8호 나 목

나. 화재감지기는 방호구역내의 천장 또는 옥내에 면하는 부분에 설치하되 「자동화재탐지설비의 화재안전기준(NFSC 203)」 제7조에 적합하도록 설치할 것





//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 8호 나목
Check(NFSC101_4_1_8_나){
	KS
}
KS{
	Zone myZone{
		isObjectProperty(Zone.isProtectionZone)=TRUE
	}
	{hasObject(myZone.Ceiling, FireDetector) = TRUE
	OR isExternal(FireDetector) = FALSE}
	getResult(NFSC203_7) = TRUE

} 




Python Code 변환 예정



35
스프링클러설비의 화재안전기준(NFSC 103) 제 10조 7 항 5호 나 목

나. 천장의 최상부를 중심으로 가지관을 서로 마주보게 설치하는 경우에는 최상부의 가지관 상호간의 거리가 가지관상의 스프링클러헤드 상호간의 거리의 2분의 1이하(최소 1m 이상이 되어야 한다)가 되게 스프링클러헤드를 설치하고, 가지관의 최상부에 설치하는 스프링클러헤드는 천장의 최상부로부터의 수직거리가 90㎝ 이하가 되도록 할 것. 톱날지붕, 둥근지붕 기타 이와 유사한 지붕의 경우에도 이에 준한다.





//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 7항5호 나목



Check(NFSC103_10_7_5_2){

    IF CS THEN KS

}



CS{

   isInstalled(Celling,BranchPipe,b)=TRUE

}



KS{

   BD=getElementDistance(BranchPipe, c)

   SD=getElementDistance(SprinklerHead, c)

   SD/BD>=2

   BD>=1 m

  

   IF isInstalled(BranchPipe, SprinklerHead, a )=TRUE

   THEN getVerticalDistance(SprinklerHead,Ceiling.UppermostPart)<=90 cm

   END IF

} 




Python Code 변환 예정



36
연결살수설비의 화재안전기준(NFSC 503) 제 5조 1 항 3호

3. 천장(상층이 있는 경우에는 상층바닥의 하단을 포함한다. 이하 같다)과 반자를 불연재료 또는 준불연재료로 설치하고 그 내부에 습식으로 배관을 설치하는 경우





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



Check(NFSC503_5_1_3){

	KS

}

KS{

	(isObjectProperty(Ceiling.Material.nonCombustibility)=TRUE

	OR isObjectProperty(Ceiling.Material.quasiNonCombustibility)=TRUE)

	(isObjectProperty(CeilingCovering.Material.nonCombustibility)=TRUE

	OR isObjectProperty(CeilingCovering.Material.quasiNonCombustibility)=TRUE)

	SprinklerSystem mySprinklerSystem{
SprinklerSystem.type = "WetPipeSprinklerSystem"
}

	isInstalled(mySprinklerSystem, Ceiling)=TRUE

	isInstalled(mySprinklerSystem, CeilingCovering)=TRUE

} 




Python Code 변환 예정



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

1. 천장 또는 반자의 실내에 면하는 부분에 설치할 것





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 2항 1호
Check(NFSC503_6_2_1){
	KS
}

KS{
	SprinklerHead mySprinklerHead{
		isInstalled(SprinklerHead, HookingUpSprinklerSystem) = TRUE
	}

	isAdjacent(mySprinklerHead.Head.AttachingToSurface, Indoors) = TRUE
	(isAdjacent(mySprinklerHead.Head.AttachingToSurface, Ceiling) = TRUE
	OR isAdjacent(mySprinklerHead.Head.AttachingToSurface, CeilingCovering) = TRUE)
} 




Python Code 변환 예정



38
연결살수설비의 화재안전기준(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 변환 예정



39
연결살수설비의 화재안전기준(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 변환 예정



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

6. 천장의 기울기가 10분의 1을 초과하는 경우에는 가지관을 천장의 마루와 평행하게 설치하고, 스프링클러헤드는 다음 각 목의 어느 하나의 기준에 적합하게 설치할 것





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

Check(NFSC503_6_3_6){

	IF CS THEN (KS1 AND KS2)

}



CS{

	getObjectProperty(Ceiling.gradient) > 0.1

}



KS1{
isObjectProperty(Pipe.isBranchLines) = TRUE
	isParallel(Pipe, Ceiling.Top.) = TRUE

}



KS2{

	getResult(NFSC503_6_3_6_1) = TRUE

	getResult(NFSC503_6_3_6_2) = TRUE

} 




Python Code 변환 예정



41
연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 6호 가 목

가. 천장의 최상부에 스프링클러헤드를 설치하는 경우에는 최상부에 설치하는 스프링클러헤드의 반사판을 수평으로 설치할 것





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

Check(NFSC503_6_3_6_1){

	IF CS THEN KS

}



CS{

	hasObject(Celing, SprinklerSystem.Head) = TRUE

}



KS{

	isParallel(Ceiling, SprinklerSystem.Head.Deflector) = TRUE

} 




Python Code 변환 예정



42
연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 6호 나 목

나. 천장의 최상부를 중심으로 가지관을 서로 마주보게 설치하는 경우에는 최상부의 가지관 상호간의 거리가 가지관상의 스프링클러헤드 상호간의 거리의 2분의 1이하(최소 1m 이상이 되어야 한다)가 되게 스프링클러헤드를 설치하고, 가지관의 최상부에 설치하는 스프링클러헤드는 천장의 최상부로부터의 수직거리가 90㎝ 이하가 되도록 할 것. 톱날지붕, 둥근지붕 기타 이와 유사한 지붕의 경우에도 이에 준한다.





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

Check(NFSC503_6_3_6_2){

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

}



CS1{

	hasObject(Ceiling, SprinklerHead.Deflector) = TRUE

	getObjectWidth(SprinklerHead, c) = SH

	getObjectWidth(SprinklerHead.Deflector) = SHD

	SH*0.5 < 1m

}



KS1{

	getObjectWidth(SprinklerHead.Deflector) = 1m

	getVerticalObjectDistance(SprinklerHead, Ceiling) <= 90cm

}



CS2{

	hasObject(Ceiling, SprinklerSystemHead.Deflector) = TRUE

	getObjectWidth(SprinklerSystemHead, c) = SH

	getObjectWidth(SprinklerSystemHead.Deflector) = SHD

	SH*0.5 >= 1m

}



KS2{

	getObjectWidth(SprinklerSystemHead.Deflector) = SHD

	SHD <= SH*0.5

	getVerticalObjectDistance(SprinklerSystemHead, Ceiling) <= 90cm

} 




Python Code 변환 예정



43
연결송수관설비의 화재안전기준(NFSC 502) 제 5조 3 항 3호

3. 천장(상층이 있는 경우에는 상층바닥의 하단을 포함한다. 이하 같다)과 반자를 불연재료 또는 준불연재료로 설치하고 소화배관 내부에 항상 소화수가 채워진 상태로 설치하는 경우





//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 3항 3호

Check(NFSC502_5_3_3){
     KS
}

KS{
   
    (  isObjectProperty(Ceiling.Material.quasiNonCombustibility)=True
      OR isObjectProperty(Ceiling.Material.nonCombustibility)=True
    )

    (
       isObjectProperty(CeilingCovering.Material.quasiNonCombustibility)=True
       OR isObjectProperty(CeilingCovering.Material.nonCombustibility)=True
     )


}
 




Python Code 변환 예정



44
연소방지설비의 화재안전기준(NFSC 506) 제 5조 1호

1. 천장 또는 벽면에 설치할 것





//	연소방지설비의 화재안전기준(nfsc 506) 5조 (방수헤드) 1호

Check(NFSC506_5_0_1){

	KS

}



KS{

	Head myHead{

		isObjectProperty(Head.isDischargeHead) = TRUE

	}



	isInstalled(myHead, Ceiling.Structure) = TRUE

	OR isInstalled(myHead, Wall.Structure.) = TRUE	

} 




Python Code 변환 예정



45
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 13호 라 목

라. 감지기를 천장에 설치하는 경우에는 감지기는 바닥을 향하여 설치할 것






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

Check(NFSC203_7_3_13_라){
	IF CS THEN KS
}
CS{
	isInstalled(Sensor, Ceiling) = TRUE
}
KS{
	객체설치방향(Sensor, FloorSlab) = TRUE
} 




Python Code 변환 예정



46
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 5 항 1호

1. 천장 또는 반자의 높이가 20m 이상인 장소. 다만, 제1항 단서 각호의 감지기로서 부착높이에 따라 적응성이 있는 장소는 제외한다.





자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 5항 1호

Check(NFSC203_7_5_1){
	IF CS THEN KS
}
CS{
	getObjectVerticalDistance(FloorSlab, Ceiling) >= 20m
	OR getObjectVerticalDistance(FloorSlab, CeilingCovering) >= 20m
}
KS{
	isInstalled(Sensor) = FALSE
}
 




Python Code 변환 예정



    1