//스프링클러설비의 화재안전기준(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
}
// 스프링클러설비의 화재안전기준(NFSC 103) 10조 (음향장치 및 기동장치) 2항
Check(NFSC103_10_2){
IF (CS1 THEN KS1) OR (CS2 THEN KS2)
}
CS1{
Space.usage = "RackWarehouse"
isObjectProperty(Space.hasSpecialCombustible) = TRUE
}
KS1{
getObjectHeight(Rack) / 4 = RH
(RH-1) <= getObjectCount(SprinklerHead) < RH
getObjectInterval(SprinklerHead) = 4m
}
CS2{
Space.usage = "RackWarehouse"
isObjectProperty(Space.hasSpecialCombustible) != TRUE
}
KS2{
getObjectHeight(Rack) / 6 = RH
(RH-1) <= getObjectCount(SprinklerHead) < RH
getObjectInterval(SprinklerHead) = 6m
}
//스프링클러설비의 화재안전기준(NFSC 103) 10조 3항 check(NFSC103_10_3){ getResult(NFSC103_10_3_1) = TRUE getResult(NFSC103_10_3_2) = TRUE getResult(NFSC103_10_3_3) = TRUE getResult(NFSC103_10_3_4) = TRUE }
//스프링클러설비의 화재안전기준(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
}
//스프링클러설비의 화재안전기준(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
}
//스프링클러설비의 화재안전기준(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
}
//스프링클러설비의 화재안전기준(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 }
Check(NFCS103_10_5){
IF CS THEN KS
}
CS{
getResult(NFCS103_10_5_1)
OR getResult(NFCS103_10_5_2)
}
KS{
Head myHead{
getObjectProperty(SprinklerSystem.Head.responseType)=QuickResponseType
}
isInstalled(myHead) = TRUE
}
Check(NFCS103_10_5_1_1){ KS }
KS{ getSpaceUsage()= "MultiUnitHouse.LivingRoom" OR getSpaceUsage()="FacilitiesForTheAgedAndChildren.LivingRoom" }
Check(NFCS103){ KS }
KS{ getSpaceUsage()="Officetels.BedRoom" OR getSpaceUsage()="LodgingFacility.BedRoom" OR getSpaceUsage()="Hospital.HospitalRoom" }
//스프링클러설비의 화재안전기준(NFSC 103) 10조 7호 check(NFSC103_10_7){ getResult(NFSC103_10_7_1) = TRUE getResult(NFSC103_10_7_2) = TRUE getResult(NFSC103_10_7_3) = TRUE getResult(NFSC103_10_7_4) = TRUE getResult(NFSC103_10_7_5) = TRUE getResult(NFSC103_10_7_6) = TRUE getResult(NFSC103_10_7_7) = TRUE getResult(NFSC103_10_7_8) = TRUE }
//스프링클러설비의 화재안전기준(NFSC 103) 10조 7호 1항
check(NFSC103_10_7_1){ KS }
KS{ getObjectDistance(Wall, SprinklerHead) >= 10cm isVacant(SprinklerHead,a, 60) = TRUE }
Check(NFCS103){ KS}
KS{ getObjectDistance(SprinklerHead,Ceiling,a)<=30CM }
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"
}
//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 7항4호
Check(NFSC103_10_7_4){ IF !CS THEN KS }
CS{
getObjectProperty(SprinklerHead.shapeType)="SideWallType" OR getResult(NFSC203_10_7_6)=TRUE }
KS{ isParallel(SprinklerHead.Deflector,Deflector.AttachingToSurface)=TRUE
}
//스프링클러설비의 화재안전기준(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 }
//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 7항5호
Check(NFSC103_10_7_5_1){ IF CS THEN KS }
CS{ isInstalled(SprinklerHead, a)=TRUE }
KS{ isHorizontal(SprinklerHead.Deflector)=TRUE }
//스프링클러설비의 화재안전기준(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
}
//스프링클러설비의 화재안전기준(nfsc 103) 10조 (헤드) 7항 6호
Check(NFSC103_10_7_6){ IF (CS1 THEN KS1) or (CS2 THEN KS2) } CS1{ isObjectProperty(Opening.isFireSpreading)=TRUE getObjectWidth(Opening, a) > 2.5m } KS2{ isInstalled(Opening, Sprinkler.Head, 2.5m) = TRUE getElementDistance(Opening.InsideSurface, Sprinkler.Head) <= 15cm }
CS2{ isObjectProperty(Opening.isFireSpreading)=TRUE getObjectWidth(Opening, Sprinkler.Head, a) <= 2.5m } KS2{ isInstalled(Opening, Sprinkler.Head, center) = TRUE getElementDistance(Opening.InsideSurface, Sprinkler.Head) <= 15cm }
//스프링클러설비의 화재안전기준(NFSC 103) 10조 7항 7호
check(NFSC103_10_7_7){
IF !CS THEN KS
}
CS{
getResult(NFSC103_10_7_7_가)=TRUE
OR getResult(NFSC103_10_7_7_나)=TRUE
}
KS{
SprinklerHead mySprinklerHead{
SprinklerHead.installationDirectionType="BottomUpType"
}
SprinklerSystem mySprinklerSystem1{
SprinklerSystem.type = "VacuumSprinklerExtinguishingSystem"
}
SprinklerSystem mySprinklerSystem2{
SprinklerSystem.type = "WetPipeSprinklerSystem"
}
hasElement(mySprinklerSystem1, mySprinklerHead)=TRUE
hasElement(mySprinklerSystem2, mySprinklerHead)=TRUE
}
//스프링클러설비의 화재안전기준(NFSC 103) 10조 7항 7호 가목 check(NFSC103_10_7_7_가){ KS }
KS{ SprinklerHead mySprinklerHead{ isObjectProperty(SprinklerHead.isDryPendent)=TRUE }
SprinklerSystem mySprinklerSystem{ getObject(WetPipeSprinklerSystem) getObject(VacuumSprinklerExtinguishingSystem) } SprinklerSystem mySprinklerSystem1{ getObject(SprinklerSystem)!= mySprinklerSystem }
hasElement(mySprinklerSystem1, mySprinklerHead)=TRUE }
//스프링클러설비의 화재안전기준(NFSC 103) 10조 7항 7호 다목 check(NFSC103_10_7_7_다){ KS }
KS{ SprinklerHead mySprinklerHead{ isObjectProperty(SprinklerHead.openAndCloseType)="OpenType" }
SprinklerSystem mySprinklerSystem{ getObject(WetPipeSprinklerSystem) getObject(VacuumSprinklerExtinguishingSystem) } SprinklerSystem mySprinklerSystem1{ getObject(SprinklerSystem)!= mySprinklerSystem }
hasElement(mySprinklerSystem1, mySprinklerHead)=TRUE }
//스프링클러설비의 화재안전기준 10조 (헤드) 7항 8호 check(NFSC103_10_7_8){ IF CS THEN KS }
SprinklerHead mySprinklerHead{ getObjectProperty(SprinklerHead.shapeType) = "SideWallType" }
CS{ isExist(mySprinklerHead) = TRUE }
KS{ isInstalled(mySprinklerHead, c) = TRUE }
//스프링클러설비의 화재안전기준 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 }
|