//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 21조 (방화벽의 구조) 1항Check(REFB_21_1){ KS }KS{ getResult(REFB_21_1_1)=True getResult(REFB_21_1_2)=True getResult(REFB_21_1_3)=True}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 21조 (방화벽의 구조) 1항 1호Check(REFB_21_1_1){ KS}KS{ Wall myWall{ isObjectProperty(Wall.isFireProofWall)=True } isObjectProperty(myWall.isfireResistantStructure)=True}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 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}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 21조 (방화벽의 구조) 1항 3호Check(REFB_21_1_3){ KS}KS{ Door myDoor{ isObjectProperty(Door.isEntrance)=True isInstalled(Door, myWall)=True } getObjectWidth(myDoor)<=2.5 m getObjectHeight(myDoor)<=2.5 m isObjectProperty(myDoor.isStrictFireproofDoor)=True }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 21조 (방화벽의 구조) 2항Check(REFB_21_2){ KS}KS{ getResult(REFB_14_1) = TRUE getResult(REFB_14_2) = TRUE}
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 23조 (방화지구안의 지붕ㆍ방화문 및 외벽등) 1항 Check(REFB_23_1){ IF CS THEN KS } CS{ Building myBuilding{ getObjectProperty(Building.SpecialPurposeDistrict.type) = "FirePreventionDistrict" } Roof myRoof{ hasObject(myBuilding, Roof) = TRUE } isObjectProperty(myRoof.isFireResistantStructure) != TRUE } KS{ isObjectProperty(myRoof.Material.nonCombustibility) = TRUE }
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)}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 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 ) }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조 (건축물의 마감재료) 2항1호check(REFB_24_2_1){ KS}KS{ Building myBuilding{ getResult(EDBA_61_1_1)=TRUE OR getResult(EDBA_61_1_2)=TRUE OR getResult(EDBA_61_1_3)=TRUE OR getResult(EDBA_61_1_4)=TRUE OR getResult(EDBA_61_1_5)=TRUE OR getResult(EDBA_61_1_6)=TRUE OR getResult(EDBA_61_1_7)=TRUE } Room myRoom{ getSpace(myBuilding.Room) } getFloorNumber(myRoom)<0 }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조 (건축물의 마감재료) 2항2호check(REFB_24_2_2){ KS}KS{ Building myBuilding{ getResult(EDBA_61_1_1)=TRUE } str= myBuilding.usage getSpaceUsage(Room)=str}check(REFB_24_3){ KS}KS{ }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조 (건축물의 마감재료) 4항Check(REFB_24_4){IF CS THEN KS}Building myBuilding{getResult(EDBA_61_1_2)=TRUE}CS{isExist(myBuilding)=TRUE}KS{isObjectProperty(myBuilding.Material.isEmittingPollutant)=FALSE}
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조의2Check(REFB_24-2_3_2){ KS}KS{ getResult(REFB_24-2_3_2_가)= True OR getResult(REFB_24-2_3_2_나)= True OR getResult(REFB_24-2_3_2_다)= True}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조의2 (소규모 공장용도 건축물의 마감재료) 3항 2호 가목 Check(REFB_24-2_3_2_1){ KS } KS{ getObjectMaterial(Heartwood) = "FiringPolystyreneInsulation" }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조의2 (소규모 공장용도 건축물의 마감재료) 3항 2호 나목 Check(REFB_24-2_3_2_2){ KS } KS{ getObjectMaterial(Heartwood) = "ChangePolyurethanFormInsulation" }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조의2 (소규모 공장용도 건축물의 마감재료) 3항 2호 다목Check(REFB_24-2_3_2_3){ IF CS THEN KS}CS{ getResult(REFB_24-2_3_2_1) = FALSE getResult(REFB_24-2_3_2_2) = FALSE}KS{ getObjectProperty(Heartwood.Material.flameResistance) = TRUE OR getObjectProperty(Heartwood.Material.nonCombustibility) = TRUE OR getObjectProperty(Heartwood.Material.quasiNonCombustibility) = TRUE}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조의2 (소규모 공장용도 건축물의 마감재료) 1항 check(REFB_24-2_1){ KS } KS{ getResult(REFB_*_3) = TRUE (getBuildingUsage() != "Dormitory" OR getBuildingUsage() != "Cafeteria" OR getSpaceUsage() != "Dormitory" OR getSpaceUsage() != "Cafeteria") }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 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}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조의2 (소규모 공장용도 건축물의 마감재료) 3항Check(REFB_24-2_3){ KS}KS{ getResult(REFB_24-2_3_2)=True}
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 1항 1호 check(REFB_25_1_1){ IF !(CS) THEN KS } KS{ Floor myFloor1{ hasSpace(Floor,Room) = TRUE getTotalArea(Room) >= 50 m2 } Floor myFloor2{ isObjectProperty(Floor.isEscape) = TRUE } Door myDoor{ isObjectProperty(Door.functionType) = "Emergency" (isDirectlyAccessible(Door, myFloor2) = TRUE OR isDirectlyAccessible(Door, Ground) = TRUE) } hasSpace(myFloor1, myDoor) OR (hasSpace(myFloor1, VentilatorPipe) = TRUE (isDirectlyAccessible(VentilatorPipe, myFloor2) = TRUE OR isDirectlyAccessible(VentilatorPipe, Ground) = TRUE)) } CS{ Floor myFloor1{ hasSpace(Floor,Room) = TRUE getTotalArea(Room) >= 50 m2 } Stair myStair{ isObjectProperty(Stair.isDirect) = TRUE hasSpace(myFloor1, Stair) = TRUE } getObjectCount(myStair) >= 2 }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 1항 1의2호check(REFB_25_1_1-2){ IF CS THEN KS}CS{ (getBuildingUsage() = "ClassIINeighborhoodLivingFacility.PerformanceHall" OR getBuildingUsage() = "ClassIINeighborhoodLivingFacility.Pubs" OR getBuildingUsage() = "ClassIINeighborhoodLivingFacility.BilliardRoom" OR getBuildingUsage() = "ClassIINeighborhoodLivingFacility.Karaoke" OR getBuildingUsage() = "CulturalAndAssemblyFacility.WeddingHall" OR getBuildingUsage() = "CulturalAndAssemblyFacility.PerformanceHall" OR getBuildingUsage() = "TrainingFacility.TrainingFacilityInLivingZone" OR getBuildingUsage() = "TrainingFacility.??LivingZone" OR getBuildingUsage() = "LodgingFacility.Inn" OR getBuildingUsage() = "AmusementFacility.Pubs" OR getBuildingUsage() = "AmusementFacility.Tavern" OR getResult(ERSASP_2) = TRUE) getTotalFloorArea(Room) >= 50 m2}KS{ Stair myStair{ isObjectProperty(Stair.isDirect) = TRUE } getObjectCount(myStair) >= 2}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 1항 2호 check(REFB_25_1_2){ IF CS THEN KS } CS{ getTotalFloorArea(Floor) >= 1000 m2 } KS{ Floor myFloor{ isObjectProperty(Floor.isEscape) = TRUE } Stair myStair{ isObjectProperty(Stair.isDirect) = TRUE (isDirectlyAccessible(Stair, Ground) = TRUE OR isDirectlyAccessible(Stair, myFloor) = TRUE) (isObjectProperty(Stair.isEscape) = TRUE OR isObjectProperty(Stair.isSpecialEscape) = TRUE) } Zone myZone{ isObjectProperty(Zone.isFirePartition) = TRUE } hasSpace(myZone, myStair) = TRUE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 1항 3호check(REFB_25_1_3){ getTotalFloorArea(Room) >= 1000 m2 isExist(VentilationSystem) = TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 1항 4호 check(REFB_25_1_4){ Floor myFloor{ Floor.number < 0 } getTotalFloorArea(myFloor) >= 300 m2 getObjectCount(Hydrant) >= 1 }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항check(REFB_25_2){ IF !(CS) THEN KS}CS{ getBuildingUsage() = "House"}KS{ getResult(REFB_25_2_1) = TRUE getResult(REFB_25_2_2) = TRUE getResult(REFB_25_2_3) = TRUE getResult(REFB_25_2_4) = TRUE getResult(REFB_25_2_5) = TRUE getResult(REFB_25_2_7) = TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 1호check(REFB_25_2_1){Door myDoor{Door.functionType = "Emergency"Door.Floor.number < 0} getObjectWidth(myDoor, a) >= 0.75 m getObjectHeight(myDoor) >= 1.5 m}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 2호 Check(REFB_25_2_2){ Door myDoor{ Door.functionType = "Emergency" < 0 } isEgressDirection(myDoor) = TRUE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 3호 check(REFB_25_2_3){ Door myDoor{ Door.functionType = "Emergency" Door.Floor.number < 0 } getSpaceDistance(myDoor, Door) >= 3 m }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 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 }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 5호 check(REFB_25_2_5){ Floor myFloor( isObjectProperty(Floor.isEscape) = TRUE ) Stair myStair{ isObjectProperty(Stair.isDirect) = TRUE (isDirectlyAccessible(Stair, Ground) = TRUE OR isDirectlyAccessible(Stair, myFloor) = TRUE) } Corridor myCorridor{ isDirectlyAccessible(Corridor, myFloor) = TRUE OR isDirectlyAccessible(Corridor, Ground) = TRUE } Door myDoor{ Door.functionType = "Emergency" Door.Floor.number < 0 } (isDirectlyAccessible(myDoor, myStair) = TRUE OR isDirectlyAccessible(myDoor, myCorridor) = TRUE OR isGoThrough(myDoor, Corridor, myStair) = TRUE OR isGoThrough(myDoor, Corridor, myCorridor) = TRUE) Passage myPassage{ isObjectProperty(Passage.isEscape) = TRUE } getSpaceWidth(myPassage) >= 0.75 m isObjectProperty(myPassage.InteriorFinish.Material.nonCombustibility) = TRUE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 7호 check(REFB_25_2_7){ Door myDoor{ Door.functionType = "Emergency" Door.Floor.number < 0 } Light myLight{ isObjectProperty(Light.isEmergency) = TRUE } Passage myPassage{ isObjectProperty(Passage.isEscape) = TRUE } hasElement(myDoor, LeadingLight) = TRUE hasElement(myPassage, myLight) = TRUE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 1항check(REFB_25_1){KS}KS{ getResult(REFB_25_1_1) = TRUE AND getResult(REFB_25_1_1-2) = TRUE AND getResult(REFB_25_1_2) = TRUE AND getResult(REFB_25_1_3) = TRUE AND getResult(REFB_25_1_4) = TRUE}
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 29조 (피난용승강기의 설치 및 구조) 1항 Check(REFB_29_1){ IF (!CS1 AND CS2)THEN KS } CS1{ Building myBuilding{ isObjectProperty(Building.isQuasiHighriseBuilding )=True } getBuildingUsage()="myBuilding.MultiUnitHouse" } CS2{ isObjectProperty(Building.isHighBuilding) = TRUE } KS{ getResult(REFB_30)=True getResult(REFB_29_2)=True }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 29조 (피난용승강기의 설치 및 구조) 2항 Check(REFB_29_2){ KS}KS{ getResult(Unimplemented_EFSMA) }
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 1호Check (REFB_3_0_1){ IF CS THEN KS}CS{ isInstalled(Wall) = TRUE}KS{ getResult(REFB_3_0_1_가)=TRUE getResult(REFB_3_0_1_나)=TRUE getResult(REFB_3_0_1_다)=TRUE getResult(REFB_3_0_1_라)=TRUE getResult(REFB_3_0_1_마)=TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 1호 나목Check (REFB_3_0_1_나){ KS}KS{ getObjectProperty(Wall.Structure.materialType) = "SteelFrame" (isInstalled(WireMeshMortar, Wall.DoubleSide) = TRUE getObjectWidth(WireMeshMortar) >= 4cm) (isInstalled(ConcreteBlock, Wall.DoubleSide) = TRUE OR (getObjectWidth(ConcreteBlock) >= 5cm ) (isInstalled(Brick, Wall.DoubleSide) = TRUE OR getObjectWidth(Brick) >= 5cm ) (isInstalled(Stone, Wall.DoubleSide) = TRUE OR getObjectWidth(Stone) >= 5cm)}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 1호 다목Check (REFB_3_0_1_다){ IF CS THEN KS}CS{getObjectProperty(Wall.Structure.materialType) = "ConcreteBlock" OR "Brick" OR "Stone"isObjectProperty(Structure.isReinforcedSteelStructure) = TRUE}KS{getObjectThickness(Wall.Structure) >= 5cm} //건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 1호 라목Check (REFB_3_0_1_라){ KS}KS{ getObjectProperty(Wall.Structure.materialType) = "Brick" getObjectThickness(Wall.Structure) >= 19cm}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 1호 마목Check (REFB_3_0_1_마){ KS}KS{ getObjectProperty(Wall.Structure.materialType) = "AeratedConcretePanel" OR "AeratedConcreteBlock" getObjectThickness(Wall.Structure) >= 10cm}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 4호Check (REFB_3_0_4){ IF CS THEN KS}CS{ isInstalled(FloorSlab) = TRUE}KS{ getResult(REFB_3_0_4_가)=TRUE getResult(REFB_3_0_4_나)=TRUE getResult(REFB_3_0_4_다)=TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 1호 다목Check (REFB_3_0_4_나){ IF CS THEN KS}CS{getObjectProperty(FloorSlab.Structure.materialType) = "ConcreteBlock" OR "Brick" OR "Stone"isObjectProperty(Structure.isReinforcedSteelStructure) = TRUE}KS{getObjectThickness(FloorSlab.Structure) >= 5cm} //건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 4호 다목Check (REFB_3_0_4_다){ KS}KS{ (isInstalled(WireMeshMortar, Steel.DoubleSide) = TRUE getObjectWidth(WireMeshMortar) >= 5cm) OR (isInstalled(ConcreteBlock, Wall.DoubleSide) = TRUE getObjectWidth(ConcreteBlock) >= 5cm)}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 6호Check (REFB_3_0_6){ IF CS THEN KS}CS{ isInstalled(Roof) = TRUE}KS{ getResult(REFB_3_0_6_가)=TRUE getResult(REFB_3_0_6_나)=TRUE getResult(REFB_3_0_6_다)=TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 6호 나목Check (REFB_3_0_6_나){ IF CS THEN KS}CS{getObjectProperty(Roof.Structure.materialType) = "ConcreteBlock" OR "Brick" OR "Stone"isObjectProperty(Structure.isReinforcedSteelStructure) = TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 6호 다목Check (REFB_3_0_6_다){ IF CS THEN KS}CS{getObjectProperty(Roof.Structure.materialType) = "GlassBlock" OR "WiredSheetGlass"isObjectProperty(Structure.isReinforcedSteelStructure) = TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 7호Check (REFB_3_0_7){ IF CS THEN KS}CS{ isInstalled(Stair) = TRUE}KS{ getResult(REFB_3_0_7_가)=TRUE getResult(REFB_3_0_7_나)=TRUE getResult(REFB_3_0_7_다)=TRUE getResult(REFB_3_0_7_라)=TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 7호 나목Check (REFB_3_0_7_나){ KS}KS{ getObjectProperty(Stair.Structure.materialType) = "PlainConcrete" OR "ConcreteBlock" OR "Brick" OR "Stone"}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 7호 다목Check (REFB_3_0_7_다){ IF CS THEN KS}CS{getObjectProperty(Stair.Structure.materialType) = "ConcreteBlock" OR "Brick" OR "Stone"isObjectProperty(Structure.isReinforcedSteelStructure) = TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 7호 라목Check (REFB_3_0_7_라){ KS}KS{getObjectProperty(Stair.Structure.materialType) = "SteelFrame"}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조)Check (REFB_3){ getResult(REFB_3_1)=TRUE getResult(REFB_3_4)=TRUE getResult(REFB_3_6)=TRUE getResult(REFB_3_7)=TRUE getResult(REFB_3_8)=TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 1호 가목Check (REFB_3_0_1_가){ KS}KS{ getObjectProperty(Wall.Structure.materialType) = "ReinforcedConcrete" OR "SteelFramedReinforcedConcrete" getWallThickness(Wall) >= 10cm}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 4호 가목Check (REFB_3_0_4_가){ KS}KS{ getObjectProperty(Wall.Structure.materialType) = "ReinforcedConcrete" OR "SteelFramedReinforcedConcrete" getObjectThickness(FloorSlab.Structure) >= 10cm}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 6호 가목Check (REFB_3_0_6_가){ KS}KS{ getObjectProperty(Roof.Structure.materialType) = "ReinforcedConcrete" OR "SteelFramedReinforcedConcrete"}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 7호 가목Check (REFB_3_0_7_가){ KS}KS{ getObjectProperty(Stair.Structure.materialType) = "ReinforcedConcrete" OR "SteelFramedReinforcedConcrete"}
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 1호check(REFB_30_0_1){ KS}KS{ getResult(REFB_30_0_1_가) = TRUE getResult(REFB_30_0_1_나) = TRUE getResult(REFB_30_0_1_다) = TRUE}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 1호 가목 check(REFB_30_0_1_가){ KS } KS{ FloorSlab myFloorSlab{ isFireResistantStructure(FloorSlab) = TRUE } Wall myWall{ isFireResistantStructure(Wall) = TRUE } Object myElement{ getObject(Platform.Object) - getObject(Opening) } isPartitioned(myElement, , myFloorSlab) = TRUE isPartitioned(myElement, , myWall) = TRUE }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 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}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 1호 다목 check(REFB_30_0_1_다){ KS } KS{ isObjectProperty(Space.InteriorFinish.Material.nonCombustibility)=TRUE }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 1호 마목Check(REFB_30_0_1_마){ KS}KS{ EC= getObjectCount(myElevator) getFloorArea(myElevator.Platform)>=6*EC m2}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 1호 아목 Check(REFB_30_0_1_아){ IF !CS THEN KS } CS{ isExist(SmokeExhaustionSystem)=True getResult(Unimplemented_EDIMSFA_*5_0_5_가)=True } KS{ getResult(RFB_14_1)=True getResult(RFB_14_2)=True }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 2호check(REFB_30_0_2){ KS}KS{ getResult(REFB_30_0_2_가) = TRUE getResult(REFB_30_0_2_나) = TRUE getResult(REFB_30_0_2_다) = TRUE}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 2호 가목 Check(REFB_30_0_2_가){ KS } KS{ isFireResistantStructure(ElevatorShaft) =True }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 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 }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 2호 다목check(REFB_30_0_2_다){ KS}KS{ isInstalled(Opening.TopSurface, SmokeExhaustionSystem) getResult(RFB_14) = TRUE}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 3호check(REFB_30_0_3){ KS}KS{ getResult(REFB_30_0_3_가) = TRUE getResult(REFB_30_0_3_나) = TRUE}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 3호 가목 check(REFB_30_0_3_가){ KS } KS{ FloorSlab myFloorSlab{ isFireResistantStructure(FloorSlab) = TRUE } Wall myWall{ isFireResistantStructure(Wall) = TRUE } Door myDoor{ isObjectProperty(Door.isEntrance) = TRUE } Object myElement{ getObject(Space.Object) - getObject(myDoor) } isPartitioned(myElement, , myFloorSlab) = TRUE isPartitioned(myElement, , myWall) = TRUE }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 3호 나목check(REFB_30_0_3_나){ KS}KS{ Door myDoor{ isObjectProperty(Door.isEntrance) = TRUE } isObjectProperty(myDoor.isStrictFireproofDoor) = TRUE}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준)check(REFB_30){ IF CS THEN KS}CS{ getResult(REFB_29_1) = TRUE}KS{ getResult(REFB_30_0_1) = TRUE getResult(REFB_30_0_2) = TRUE getResult(REFB_30_0_3) = TRUE}
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 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 }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조 (직통계단의 설치기준) 2항 Check(REFB_8_2){ getObjectProperty(Building.usage)=“Factory.SemiconductorAndDisplayPanelManufacturingFactory" }
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (피난안전구역의 설치기준) 2항 Check(REFB_8-2_2){ Zone myZone{ isObjectProperty(Zone.isEgressSafetyZone)=TRUE } Stair myStair{ isObjectProperty(Stair.isSpecialEscape)=TRUE isAccessible(myZone, Stair)=TRUE } Floor myFloor{ Floor.number>getFloorNumber(myZone) OR Floor.number// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (직통계단의 설치기준) 3항2호check(REFB_8-2_3_2){ Zone myZone{ isObjectProperty(Zone.isEgressSafetyZone)=TRUE } isObjectProperty(myZone.InteriorFinish.nonCombustibility)=TRUE}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (직통계단의 설치기준) 3항3호check(REFB_8-2_3_3){ Stair myStair{ isExternal(Stair)=FALSE isAccessible(myZone, Stair)=TRUE } isObjectProperty(Stair.isSpecialEscape)=TRUE }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (직통계단의 설치기준) 3항4호check(REFB_8-2_3_4){ Elevator myElevator{ isObjectProperty(Elevator.isEmergency)=TRUE } isDirectlyAccessible(myZone, myElevator)=TRUE}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (직통계단의 설치기준) 3항5호check(REFB_8-2_3_5){ hasObject(myZone,Hydrant)=True hasObject(myZone,LightingSystem)=TRUE}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (직통계단의 설치기준) 3항6호check(REFB_8-2_3_6){hasObject(myZone, WarningAndCommunicationFacility)=TRUE}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (피난안전구역의 설치기준) 1항check(REFB_8-2_1){ KS1 AND IF CS THEN KS2} Zone myZone{ isObjectProperty(Zone.isEgressSafetyZone) = TRUE } Space mySpace{ hasSpace(Space, FacilitiesOfABuilding) } Structure myStructure{ isObjectProperty(Space.isfireResistantStructure) = TRUE }KS1{ BSC = getBuildingStoriesCount() getFloorNumber(myZone) <= BSC}CS{ getFloorNumber(mySpace) = getFloorNumber(myZone)}KS2{ isPartitioned(myZone, myStructure, mySpace) = TRUE}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (직통계단의 설치기준) 3항7호check(REFB_8-2_3_7){ getResult(REFB_*_1-2)=TRUE}// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (직통계단의 설치기준) 3항8호check(REFB_8-2_3_8){ Zone myZone { geObjectProperty(Zone.isEgressSafetyZone) = TRUE } getSpaceHeight(myZone)>=2.1 m }// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (직통계단의 설치기준) 3항9호check(REFB_8-2_3_9){ isExist(SmokeExhaustionSystem)=TRUE getResult(RFB_14_2)=TRUE getResult(RFB_14_2_1)=TRUE getResult(RFB_14_2_4)=TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (피난안전구역의 설치기준) 3항Check(REFB_8-2_3){ getResult(REFB_8-2_3_2)=TRUE getResult(REFB_8-2_3_3)=TRUE getResult(REFB_8-2_3_4)=TRUE getResult(REFB_8-2_3_5)=TRUE getResult(REFB_8-2_3_6)=TRUE getResult(REFB_8-2_3_7)=TRUE getResult(REFB_8-2_3_8)=TRUE getResult(REFB_8-2_3_9)=TRUE}
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 1항Check(REFB_9_1){ IF (CS1) THEN KS1 ELSE IF (CS2) THEN KS2CS1{ Floor myFloor1 { Floor.number > 5 OR Floor.number <= -2 } Stair myStair1 { isObjectProperty(Stair.isDirect) = TRUE } Floor myFloor2 { isObjectProperty(Floor.isEscape)= TRUE } isGoThrough(myFloor1, myStair1, myFloor2)= TRUE OR isGoThrough(myFloor1, myStair1, Ground) = TRUE}CS2{ Floor myFloor3 { Floor.number >= 5 } Stair myStair3 { isObjectProperty(Stair.isDirect) = TRUE (isGoThrough(myFloor3, myFloor2, Stair) = TRUE OR isGoThrough(myFloor3, Ground, Stair) = TRUE) } Stair myStair2 { Stair.Floor.number = -1 } isDirectlyAccessible(myStair2, myStair3)=TRUE KS1 { (isObjectProperty(myStair1.isEscape) = TRUE OR isObjectProperty(myStair1.isSpecialEscape) = TRUE) }KS2{ (isObjectProperty(myStair2.isEscape) = TRUE OR isObjectProperty(myStair2.isSpecialEscape) = TRUE) (isObjectProperty(myStair3.isEscape) = TRUE OR isObjectProperty(myStair3.isSpecialEscape) = TRUE)}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호check(REFB_9_2_1){ KS}KS{getResult(REFB_9_2_1_1) = TRUEgetResult(REFB_9_2_1_2) = TRUEgetResult(REFB_9_2_1_4) = TRUEgetResult(REFB_9_2_1_5) = TRUEgetResult(REFB_9_2_1_6) = TRUE getResult(REFB_9_2_1_7) = TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 가목check(REFB_9_2_1_1){ KS}KS{Wall myWall{ hasElement(Stair.Space, Wall) = TRUE hasElement(Wall, Window) = FALSE hasElement(Wall, Door) = FALSE hasElement(Wall, Opening) = FALSE}Stair myStair{ isObjectProperty(Stair.isEscape)= TRUE}isFireResistantStructure(myWall)= TRUEisPartitioned (myStair, 0, myWall) = TRUE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 나목 check(REFB_9_2_1_2){ KS } KS{ isObjectProperty(Stair.Space.InteriorFinish.Material.nonCombustibility) = TRUE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 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; } }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 마목check(REFB_9_2_1_5){ KS}KS{Opening myOpening3{ getObject(Opening)!= Door isConnectedToExternal(Opening) = FALSE hasElement(Stair.Space, Opening) = TRUE} getObjectProperty(myOpening3.material)= “WireContainedGlass” getObjectProperty(myOpening3.type)= “FixedSashWindow” getObjectProperty(myOpening3.area)=< 1㎡ } //건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 바목 Check(REFB_9_2_1_6){ KS } KS { Door myDoor{ isConnectedToExternal(Opening) = FALSE } Space mySpace{ isExternal(Space)=FALSE } isGoThrough(mySpace,myDoor,Stair.Space.) = TRUE isObjectProperty(Door.effectiveWidth) >= 0.9m isEgressDirection(Door) = TRUE; }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 사목Check(REFB_9_2_1_7){KS}KS {Floor myFloor { isObjectProperty(Floor.isEscape) = TRUE}isFireResistantStructure(Stair) = TRUE(isDirectlyAccessible(Stair,myFloor)= TRUE OR isDirectlyAccessible(Stair,Ground) = TRUE) }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 2호 Check(REFB_9_2_2){ IF (CS) THEN KS } CS{ isExternal(Stair) = TRUE isObjectProperty(Stair.isEscape) = TRUE } KS{ getResult(REFB_9_2_2_1)=TRUE getResult(REFB_9_2_2_2)=TRUE getResult(REFB_9_2_2_3)=TRUE getResult(REFB_9_2_2_4)=TRUE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 2호 가목 check(REFB_9_2_2_1){ IF (CS) THEN KS } CS { Opening myOpening1{ getObjectProperty(Opening.material)= “WireContainedGlass” getObjectProperty(Window.panelOperationType)= “FixedSashWindow” getObjectProperty(Opening.area)=< 1㎡ } Door myDoor { isAccessible(Stair, Door)=TRUE } Opening myOpening2{ getObject(Opening) != myOpening1 getObject(Opening) != myDoor } isExist(myOpening2) = TRUE } KS{ getElementDistance(Stair, myOpening2, a)>=2m; }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 2호 나목check(REFB_9_2_2_2){ IF (CS) THEN KS }CS { Space mySpace{ isExternal(Space)=FALSE} Door myDoor{ isGoThrough(mySpace,Door,Stair) = TRUE}isExist(myDoor) = TRUE}KS { isObjectProperty(myDoor.strictFireproofDoor) = TRUE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 2호 다목check(REFB_9_2_3){ KS }KS { getObjectProperty(Stair.effectiveWidth)>= 0.9m}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 2호 라목 check(REFB_9_2_2_4){ KS } KS { isObjectProperty(Stair.isFireResistantStructure) = TRUE isAccessible(Stair, Ground)= TRUE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호check (REFB_9_2_3){IF (CS) THEN KS }CS{isObjectProperty(Stair.isSpecialEscape) = TRUE}KS{ getResult(REFB_9_2_3_1)=TRUE getResult(REFB_9_2_3_2)=TRUE getResult(REFB_9_2_3_3)=TRUE getResult(REFB_9_2_3_5)=TRUE getResult(REFB_9_2_3_6)=TRUE getResult(REFB_9_2_3_7)=TRUE getResult(REFB_9_2_3_8)=TRUE getResult(REFB_9_2_3_9)=TRUE getResult(REFB_9_2_3_10)=TRUE getResult(REFB_9_2_3_11)=TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 나목check (REFB_9_2_3_2){IF (CS) TEHN KS}CS{ Space mySpace { getSpace(Stair.Space) getSpace(“Balcony”) getSpace(“AncillaryRoom”)}isExist(mySpace)=TRUE}KS{ Wall myWall {getObjectProperty(Wall.isFireResistantStructure = TRUE} isPartitioned(mySpace, 0, myWall)= TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 다목check (REFB_9_2_3_3){CS TEHN KS}CS{ Space mySpace { getSpace(Stair.Space) getSpace(“AncillaryRoom”)}isExist(mySpace)=TRUE}KS{ }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 마목 check (REFB_9_2_3_5){ CS TEHN KS } CS{ Space mySpace { getSpace(Stair.Space) getSpace(“Balcony”) getSpace(“AncillaryRoom”) } Opening myOpening1 { hasElement(mySpace,Opening)=TRUE isConnectedToExternal(Opening) = TRUE Opening myOpening2 { getObjectProperty(Opening.material)= “WireContainedGlass” getObjectProperty(Window.panelOperationType)= “FixedSashWindow” getObjectProperty(Opening.area)=< 1㎡ } Opening myOpening3{ getObject(myOpening1)-getObject(myOpening2) } isExist(myOpening3)=TRUE KS{ Opening myOpening4{ getObject(Opening)-getObject(myOpening3) } getElementDistance(myOpening3, myOpening4, a)>=2m }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 바목 check (REFB_9_2_3_6){ CS TEHN KS } CS{ isExist(Stair.Space)=TRUE KS{ Space mySpace1{ getSpace(“Balcony”) getSpace(“AncillaryRoom”) hasObject(Stair.Space, Space)=TRUE } Space mySpace2{ isExternal(Space)=FALSE } Opening myOpening { getObject(Stair.Space.Opening) + getObject(mySpace2.Opening) + getObject(mySpace1.Opening) } hasSpace(Stair.Space, myOpening) = TRUE//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 사목 check (REFB_9_2_3_7){ CS TEHN KS } CS{ Space mySpace { getSpace(“Balcony”) getSpace(“AncillaryRoom”) hasObject(Stair.Space,Space)=TRUE } Opening myOpening { getObject(mySpace.Opening) } isExist(myOpening)=TRUE } KS{ getObjectProperty(myOpening.material)= “WireContainedGlass” getObjectProperty(Window.panelOperationType)= “FixedSashWindow” getObjectProperty(myOpening.area)=< 1㎡ }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 아목 check (REFB_9_2_3_8){ IF (CS) TEHN KS } CS{ Space mySpace1 { getSpace(“Balcony”) getSpace(“AncillaryRoom”) } isExist(mySpace1)=TRUE } KS{ Space mySpace2{ isExternal(Space)=FALSE } Opening myOpening { getObject(mySpace2.Opening) getObject(Stair.Space.Opening) } hasSpace(mySpace1,myOpening)= FALSE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 차목 check (REFB_9_2_3_10){ KS } KS{ Floor myFloor { isObjectProperty(Floor.isEscape) =TRUE isObjectProperty(Stair.isFireResistantStructure) = TRUE isAccessible(Stair,myFloor)=TRUE OR isAccessible(Stair,Ground)=TRUE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 카목check (REFB_9_2_3_카){ KS}KS{getObjectProperty(Door.effectiveWidth) >= 0.9misObjectProperty(Door.isEscapeDirection)=TRUE}//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 3항 Check(REFB_9_3) { KS } KS { Stair myStair1{ isObjectProperty(Stair.isEscape)=TRUE OR isObjectProperty(Stair.isSpecialEscape)=TRUE } Space mySpace{ getObjectProperty(Space.usage) = “RooftopPlaza” } hasObject(Rooftop, mySpace)=TRUE } Stair myStair2{ hasObject(mySpace.Building,myStair1)=TRUE } getObjectProperty(myStair.type)!= “WindingStair” isAccessible(myStair2,mySpace)=TRUE isEgressDirection(mySpace.Door) = TRUE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 4항Check(REFB_9_4) { KS} Building myBuilding{ Building.usage = “SideCorridorTypeMultiUnitHouse”} Space mySpace = getSpace(“Corridor”) isConnectedToExternal(mySpace)=TRUE//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항check (REFB_9_2){ getResult(REFB_9_2_1) = TRUE getResult(REFB_9_2_2) = TRUE getResult(REFB_9_2_3) = TRUE }//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 가목 check (REFB_9_2_3_1){ CS THEN KS } CS { isExist(Stair.Space) = TRUE } KS { Window myWindow { getObjectProperty(Window.area)>= 1 m2 isObjectProperty(Window.isExternalDirection) = TRUE getElementDistance(Window, FloorSlab, a)>=1m } SmokeExhaustionSystem mySmokeExhaustionSystem { getElement(SmokeExhaustionSystem) getResult(RFB_14)=TRUE } Space mySpace1{ getSpace(“Balcony”) } Space mySpace2{ isExternal(Space)=FALSE } Space mySpace3{ getSpace(“AncillaryRoom”) getFloorArea(Space.Floor, ) >= 3㎡ hasElement(Space,mySmokeExhaustionSystem) = TRUE hasElement(Space,myWindow) = TRUE } isGoThrough(mySpace2,Stair.Space, ,mySpace1) OR isGoThrough(mySpace2,Stair.Space, ,mySpace3)//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 자목 check (REFB_9_2_3_9){ IF(CS1) THEN KS1 OR (CS2) TEHN KS2 } Space mySpace1 { isExternal(Space)=FALSE } Space mySpace2 = getSpace(“Balcony”) + getSpace(“AncillaryRoom”) CS1{ isGoThrough(mySpace1,Door,mySpace2) = TRUE } KS1 { isObjectProperty(Door.isStrictFireproofDoor)= TRUE } CS2{ isGoThrough(mySpace2,Door,Stair.Space) = TRUE } KS2{ isObjectProperty(Door.isFireproofDoor)= TRUE }
// 장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행규칙 2조 (편의시설의 세부기준) 1항Check(ERCDAPA_2_1){KS}KS{getResult(ERCDAPA_*_1)=TRUE}
//장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행규칙 별표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}
//주차장법 시행규칙 11조 (부설주차장의 구조·설비기준) 2항Check(ERPA_11_2){ getResult(ERPA_6_1_9) = TRUE getResult(ERPA_6_1_11) = TRUE}//주차장법 시행규칙 11조 (부설주차장의 구조·설비기준) 2항 1조Check(ERPA_11_2_1){ KS}KS{ Building myBuilding{ getBuildingUsage() = "CommercialFacility" OR "LodgingFacility", "AmusementFacility", "CulturalAndAssemblyFacility", "ReligiousFacility","BusinessFacility" } isObjectProperty(myBuilding.ParkingLot.isAttachedParking) = TRUE getObjectProperty(ParkingLot.numberOfParkingUnit) > 30 getObjectProperty(ParkingLot.operationType) = "DriveInParking" OR "MechanicalParking"}//주차장법 시행규칙 11조 (부설주차장의 구조·설비기준) 4항Check(ERPA_11_4){ IF CS THEN KS}CS{ ParkingLot myParkingLot{ isObjectProperty(ParkingLot.isAttachedParking) = TRUE getObjectProperty(ParkingLot.numberOfParkingUnit) >= 50 } ParkingUnit myParkingUnit{ getObjectProperty(ParkingUnit) = "ExtensionType" } hasSpace(myParkingLot, myParkingUnit) = TRUE}KS{ getResult(ERPA_6_1_14) = TRUE}//주차장법 시행규칙 11조 (부설주차장의 구조·설비기준) 5항 1호 Check(ERPA_11_5_1){ KS } KS{ IF isAdjacent(ParkingUnit, ParkingLot.Driveway)=True THEN IF getObjectProperty(ParkingUnit.parkingType)="ParallelParking" THEN ParkingLot.Driveway.width>=3.0 m ELSE IF getObjectProperty(ParkingUnit.parkingType)="RightAngleParking" THEN ParkingLot.Driveway.width>=6.0 m ELSE IF getObjectProperty(ParkingUnit.parkingType)="60AngleParking" THEN ParkingLot.Driveway.width>=4.0 m ELSE IF getObjectProperty(ParkingUnit.parkingType)="45AngleParking" THEN ParkingLot.Driveway.width>=3.5 m ELSE IF getObjectProperty(ParkingUnit.parkingType)="CrossParking" THEN ParkingLot.Driveway.width>=3.5 m END IF ELSE THEN ParkingLot.Driveway.width>=2.5 m END IF }//주차장법 시행규칙 11조 (부설주차장의 구조·설비기준) 5항Check(ERPA_11_5){ IF CS THEN KS}CS{ ParkingLot myParkingLot{ isObjectProperty(ParkingLot.isAttachedParking) = TRUE isObjectProperty(ParkingLot.operationType) = "DriveInParking" } getObjectProperty(myParkingLot.numberOfParkingUnit) >= 8}KS{ getResult(ERPA_11_5_1) = TRUE getResult(ERPA_11_5_2) = TRUE getResult(ERPA_11_5_3) = TRUE}// 주차장법 시행규칙 11조 (부설주차장의 구조·설비기준) 5항 5호Check(ERPA_11_5_5){ KS}KS{ getObjectWidth(ParkingLot.Opening) >= 3m}
//주차장법 시행규칙 16조의2 (기계식주차장의 설치기준) 1호 가목 Check(ERPA_16-2_0_1_가){ IF CS THEN KS } CS{ ParkingLot myParkingLot{ ParkingLot.operationType = "MechanicalParking" } getObjectProperty(myParkingLot.scale)="MiddleSize" } KS{ Space mySpace{ getSpaceUsage()="FrontageSpace" Space.width>=8.1 m Space.length>9.5 m } isExist(mySpace)=True OR isExist(DirectionSwitchingEquipment)=True getObjectDiameter(DirectionSwitchingEquipment)>=4 m isExist(Space)=True isAdjacent(DirectionSwitchingEquipment, Space)=True Space.width>=1 m }//주차장법 시행규칙 16조의2 (기계식주차장의 설치기준) 3호 가목 Check(ERPA_16-2_0_3_가){ IF CS THEN KS } CS{ ParkingLot myParkingLot{ ParkingLot.operationType = "MechanicalParking" } getObjectProperty(myParkingLot.scale)="MiddleSize" } KS{ myParking.length>=5.05 m myParking.width>1.85 m }//주차장법 시행규칙 16조의2 (기계식주차장의 설치기준) 1호 Check(ERPA_16-2_0_1){ KS } KS{ isExist(FrontageSpace, MechanicalParkingEquipment.Opening.FrontSurface)=True isExist(DirectionSwitchingEquipment, MechanicalParkingEquipment.Opening.FrontSurface)=True getResult(ERPA_16-2_0_1_가)=True getResult(ERPA_16-2_0_1_나)=True }//주차장법 시행규칙 16조의2 (기계식주차장의 설치기준) 1호 나목 Check(ERPA_16-2_0_1_나){ IF CS THEN KS } CS{ ParkingLot myParkingLot{ ParkingLot.operationType = "MechanicalParking" } getObjectProperty(myParkingLot.scale)="LargeSize" } KS{ Space mySpace{ getSpaceUsage()="FrontageSpace" Space.width>=10 m Space.length>11 m } isExist(mySpace)=True OR isExist(DirectionSwitchingEquipment)=True getObjectDiameter(DirectionSwitchingEquipment)>=4.5 m isExist(Space)=True isAdjacent(DirectionSwitchingEquipment, Space)=True Space.width>=1 m }//주차장법 시행규칙 16조의2 (기계식주차장의 설치기준) 2호Check(ERPA_16-2_0_2){ IF CS THEN KS }CS{ hasObject(MechanicalParkingEquipment,DirectionSwitchingEquipment)=True OR //2츠이상으로 주차구획이 배치되어 있고 // 출입구가 있는 층의 모든 주차구획을 기계식주차장치 출입구로 사용할 수 있는 getSpaceUsage()="MechanicalParking"}KS{ getResult(ERPA_6_1_3)=True OR getResult(ERPA_11_5_2)=True}//주차장법 시행규칙 16조의2 (기계식주차장의 설치기준) 3호Check(ERPA_16-2_0_3){ IF CS THEN KS }CS{ getSpaceUsage()="MechanicalParking"}KS{ Space mySpace{ isAdjacent(FrontageSpace,Space)=True } isExist(ApproachRoad)=True isExist(mySpace)=True IF(// 주차장의 출구와 입구가 따로 설치되어 있거나 OR "진입로".width>6 m) THEN //종단경사도가 6퍼센트 이하인 진입로의 길이 6미터마다 한 대분의 정류장을 확보한 것으로 본다. ELSE THEN //주차대수 20대를 초과하는 20대마다 한 대분의 정류장을 확보하여야 하며 getResult(ERPA_16-2_0_3_가)=True getResult(ERPA_16-2_0_3_나)=True END IF}//주차장법 시행규칙 16조의2 (기계식주차장의 설치기준) 3호 나목 Check(ERPA_16-2_0_3_나){ IF CS THEN KS } CS{ ParkingLot myParkingLot{ ParkingLot.operationType = "MechanicalParking" } getObjectProperty(myParkingLot.scale)="LargeSize" } KS{ myParking.length>5.3 m myParking.width>2.15 m }
Check(ERPA_16 – 5_1_2) { IF (CS1 then KS1) OR (CS2 then KS2) }CS1 { ParkingLot myParkingLot { myParkingLot.operationType = "MechanicalParking" } getObjectProperty(myParkingLot.scale) = "MiddleSize" MechanicalParkingEquipment myMechanicalParkingEquipment { isExist(myMechanicalParkingEquipment, myParkingLot) = true } }KS1{ Opening myOpening1 { isExist(myOpening1, myMechanicalParkingEquipment) = true WD1 = getObjectWidth(myOpening1, a) >= 2.3m H1 = getObjectHeight(myOpening1, a) >= 1.6m } }CS2 { ParkingLot myParkingLot { myParkingLot.operationType = "MechanicalParking" } getObjectProperty(myParkingLot.scale) = "LargeSize" MechanicalParkingEquipment myMechanicalParkingEquipment { isExist(myMechanicalParkingEquipment, myParkingLot) = true } }KS2 { Opening myOpening2 { isExist(myOpening2, myMechanicalParkingEquipment) = true WD2 = getObjectWidth(myOpening2, a) >= 2.4m H2 = getObjectHeight(myOpening2, a) >= 1.9m } }
// 주차장법 시행규칙 3조 (주차장의 주차구획) 1항Check(ERPA_3_1){ KS}KS{ getResult(ERPA_3_1_1) = TRUE getResult(ERPA_3_1_2) = TRUE}// 주차장법 시행규칙 3조 (주차장의 주차구획) 1항 1호Check(ERPA_3_1_1){ KS}KS{ getObjectProperty(ParkingUnit.parkingType) = "ParallelParking"}// 주차장법 시행규칙 3조 (주차장의 주차구획) 1항 2호Check(ERPA_3_1_2){ KS}KS{ getObjectProperty(ParkingUnit.parkingType) != "ParallelParking"}
//주차장법 시행규칙 4조 (노상주차장의 구조·설비기준) 1항 8호 가목Check(ERPA_4_1_8_가){ IF CS THEN KS}CS{ getObjectCount(ParkingLot.ParkingUnit)>=20 getObjectCount(ParkingLot.numberOfParkingUnit)<50}KS{Area myArea{ isObjectProperty(ParkingLotArea.isHandicapParking)=True} getObjectCount(myArea)>=1}//주차장법 시행규칙 4조 (노상주차장의 구조·설비기준) 1항 8호 나목Check(ERPA_4_1_8_나){ IF CS THEN KS}CS{ getObjectCount(ParkingLot.ParkingUnit)>=50}KS{ Area myArea{ isObjectProperty(ParkingLotArea.isHandicapParking)=True } PLC=getObjectProperty(ParkingLot.numberOfParkingUnit) getObjectCount(myArea)>=PLC*2% getObjectCount(myArea)<=PLC*4% getResult(Unimplemented_LGMO)=True}//주차장법 시행규칙 4조 (노상주차장의 구조·설비기준) 1항Check(ERPA_4_1){ KS}KS{ getResult(ERPA_4_1_8)=True}//주차장법 시행규칙 4조 (노상주차장의 구조·설비기준) 1항8호Check(ERPA_4_1_8){ IF CS THEN KS}CS{ isObjectProperty(ParkingLot.isOffStreetParking)=True}Area myArea{ isObjectProperty(ParkingLotArea.isHandicapParking)=True}KS{ isExist(myArea)=True getResult(ERPA_4_1_8_가)=True}
//주차장법 시행규칙 5조 (노외주차장의 설치에 대한 계획기준) 7항 Check(ERPA_5_7){ IF (!CS1 AND CS2) THEN KS } CS2{ ParkingLot myParkingLot{ isObjectProperty(ParkingLot.isOffStreetParking)=TRUE } getObjectProperty(ParkingLot.numberOfParkingUnit) > 400 } Opening myOpening1{ isObjectProperty(myParkingLot.Oepning.isEntrance)=TRUE } Opening myOpening2{ isObjectProperty(myParkingLot.Oepning.isExit)=TRUE } myOpening1 != myOpening2 CS1{ getObjectProperty(myOpening1.width) = W1 getObjectProperty(myOpening2.width) = W2 W1 + W2 >= 5.5m } KS2{ isExist(myOpening1) = TRUE isExist(myOpening2) = TRUE }//주차장법 시행규칙 5조 (노상주차장의 구조·설비기준) 8호 Check(ERPA_5_0_8){ IF CS THEN KS}CS{ ParkingLot myParkingLot{ isObjectProperty(ParkingLot.isOffStreetParking)=True } getObjectCount(myParkingLot.ParkingUnit)>=50}KS{ Area myArea{ isObjectProperty(myParkingLotArea.isHandicapParking)=True } PLC=getObjectCount(myParkingLot.ParkingUnit) getObjectCount(myArea)>=PLC*2% getObjectCount(myArea)<=PLC*4% getResult(Unimplemented_LGMO)=True}
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 12호 나목Check(ERPA_6_1_12_2){ KS}KS{ isExist(CrashBarrier) = TRUE getObjectProperty(CrashBarrier) = "FallPreventionSafetyFacility"}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 14호Check(ERPA_6_1_14){ KS}KS{ ParkingLot myParkingLot{ isObjectProperty(ParkingLot.isOffStreetParking) = TRUE } ParkingUnit myParkingUnit{ getResult(ERPA_3_1_2) = TRUE getObjectProperty(ParkingUnit.parkingUseType) = "ExtensionType" } ParkingUnit myParkingUnit2{ getResult(ERPA_3_1_2) = TRUE getObjectProperty(ParkingUnit.parkingType) = "ParallelParking" } hasSpace(myParkingLot, myParkingUnit) = TRUE (getObjectProperty(ParkingUnit.numberOf)*0.3 - getObjectNumber(myParkingUnit2)) <= getObjectNumber(myParkingUnit)}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 4항 3호Check(ERPA_6_4_3){ KS}KS{ getSpaceUsage(ParkingLotSubsidiaryFacility) = "GasStation"}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항Check(ERPA_6_1){ KS}KS{ getResult(ERPA_6_1_2)=True getResult(ERPA_6_1_3)=True getResult(ERPA_6_1_4)=True getResult(ERPA_6_1_5)=True getResult(ERPA_6_1_6)=True getResult(ERPA_6_1_7)=True getResult(ERPA_6_1_12)=True getResult(ERPA_6_1_14)=True}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 3호 Check(ERPA_6_1_3){ IF CS THEN KS } CS{ isObjectProperty(ParkingLot.isOffStreetParking)=True } KS{ isExist(ParkingLot.Driveway)=True getResult(ERPA_6_1_3_가)=True getResult(ERPA_6_1_3_나)=True }//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 3호 가목Check(ERPA_6_1_3_가){ KS}KS{ isAdjacent(ParkingLotAreaMark.Edge, ParkingLot.Driveway)=True}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 3호 나목Check(ERPA_6_1_3_나){ KS}KS{ getResult(ERPA_6_1_3_나_1)=True getResult(ERPA_6_1_3_나_2)=True}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 4호 Check(ERPA_6_1_4){ KS1 AND IF CS THEN KS2 } KS1{ ParkingLot myParkingLot{ isObjectProperty(ParkingLot.isOffStreetParking)=TRUE } getObjectProperty(myParkingLot.Opening.width) >= 3.5m } CS{ getObjectProperty(ParkingLot.numberOfParkingUnit) >= 50 } KS2{ Opening myOpening1{ isObjectProperty(Opening.isExit)=TRUE } Opening myOpening2{ isObjectProperty(Opening.isEntrance)=TRUE } myOpening1 != myOpening2 isExist(myOpening1)=TRUE isExist(myOpening2)=TRUE OR getObjectProperty(Opening.width) >= 5.5m }//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호Check(ERPA_6_1_5){ KS}KS{ getResult(ERPA_6_1_3)=TRUE getResult(ERPA_6_1_5_가)=TRUE getResult(ERPA_6_1_5_나)=TRUE getResult(ERPA_6_1_5_다)=TRUE getResult(ERPA_6_1_5_라)=TRUE getResult(ERPA_6_1_5_바)=TRUE}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호 가목Check(ERPA_6_1_5_가){ KS}KS{ getObjectHeight(ParkingLot.Driveway) >= 2.3m}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호 나목Check(ERPA_6_1_5_나){ KS1 AND IF CS THEN KS2}KS1{ }CS{}KS2{}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호 다목Check(ERPA_6_1_5_다){ KS AND IF (CS1 THEN KS1 ELSE KS2) OR (CS2 THEN KS3 ELSE KS4)}KS{ Wall myWall{ hasObject(Ramp,Wall)=TRUE } hasObject(Ramp, ParkingLot.Driveway)=TRUE getElementDistance(myWall.Surface, Curb, a) >= 30cm 10cm =< getObjectProperty(Curb.height) < 15cm}CS1{ getObjectProperty(ParkingLot.Driveway.shapeType) = "LinearType" getObjectProperty(ParkingLot.Driveway.numberOfLane) >= 2}KS1{ getOjbectProperty(ParkingLot.Driveway.width) >= 6m}KS2{ getOjbectProperty(ParkingLot.Driveway.width) >= 3.3m}CS2{ getObjectProperty(ParkingLot.Driveway.shapeType) = "CurvedType" getObjectProperty(ParkingLot.Driveway.numberOfLane) >= 2}KS1{ getOjbectProperty(ParkingLot.Driveway.width) >= 6.5m}KS2{ getOjbectProperty(ParkingLot.Driveway.width) >= 3.6m}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호 라목Check(ERPA_6_1_5_라){ IF (CS1 THEN KS1) OR (CS2 THEN KS2)}CS1{ getObjectProperty(ParkingLot.Driveway.shapeType) = "LinearType"}KS1{ getObjectProperty(ParkingLot.Driveway.gradient) < 17%}CS2{ getObjectProperty(ParkingLot.Driveway.shapeType) = "CurvedType"}KS2{ getObjectProperty(ParkingLot.Driveway.gradient) < 14%}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호 바목 Check(ERPA_6_1_5_바){ IF CS THEN (KS1 OR KS2) } CS{ getObjectProperty(ParkingLot.numberOfParkingUnit) >= 50 hasObject(Ramp, ParkingLot.Driveway.)=TRUE } KS1{ getObjectProperty(ParkingLot.Driveway.width) >= 6m getObjectProperty(ParkingLot.Driveway.numberOfLane) >= 2 } KS2{ Opening myOpening1{ isObjectProperty(Opening.isExit)=TRUE } Opening myOpening2{ isObjectProperty(Opening.isEntrance)=TRUE } myOpening1 != myOpening2 hasObject(ParkingLot.Driveway., myOpening1)=TRUE hasObject(ParkingLot.Driveway., myOpening2)=TRUE }//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 6호Check(ERPA_6_1_6){ IF (!CS1 AND CS2) THEN (KS1 AND KS2)}CS1{ Elevator myElevator{ getObjectProperty(Elevator.usage) = "AutomobileElevator" } Opening myOpening1{ isObjectProperty(Elevator.Opening.isEntrance)=TRUE } Opening myOpening2{ isObjectProperty(Elevator.Opening.isExit)=TRUE } myOpening1 != myOpening2 isExist(myOpening1)=TRUE isExist(myOpening2)=TRUE}CS2{ getObjectProperty(ParkingLot.operationType) = "DriveInParking" isObjectProperty(ParkingLot.isOffStreetParking)=TRUE}KS1{ }KS2{ getResult(ERPA_16-2_1)=TRUE getResult(ERPA_16-2_3)=TRUE}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 7호Check(ERPA_6_1_7){ KS}KS{ isObjectProperty(ParkingLot.isOffStreetParking)=TRUE getObjectHeight(ParkingLotArea.Space) >= 2.1m}// 주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 10호Check(ERPA_6_1_10){ KS}KS{ ParkingLot myParkingLot{ isObjectProperty(ParkingLot.isOffStreetParking) = TRUE } isInstalled(AlarmSystem, myParkingLot) = TRUE}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 12호Check(ERPA_6_1_12){ IF CS THEN KS}CS{ getObjectProperty(ParkingLot.buildingType)="BuildingType" getObjectProperty(ParkingLot.Floor.numberOf) >= 2}KS{ getResult(ERPA_6_1_12_나)=TRUE}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 4항Check(ERPA_6_4){ IF !CS THEN KS}CS{ TFA = getFloorArea(ParkingLot) getTotalObjectArea( ParkingLotSubsidiaryFacility) > TFA*0.2}KS{ ParkingLot myParkingLot{ isObjectProperty(ParkingLot.isOffStreetParking) = TRUE } SubsidiaryFacility mySubsidiaryFacility{ getResult(ERPA_4_1) = TRUE OR getResult(ERPA_4_2) = TRUE OR getResult(ERPA_4_3) = TRUE } hasSpace(myParkingLot, mySubsidiaryFacility) = TRUE}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 4항 1호Check(ERPA_6_4_1){ KS}KS{ getSpaceUsage(ParkingLotSubsidiaryFacility) = "ControlOffice" OR getSpaceUsage(ParkingLotSubsidiaryFacility) = "RestArea" OR getSpaceUsage(ParkingLotSubsidiaryFacility) = "PublicToilet"}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 4항 2호Check(ERPA_6_4_2){ KS}KS{ getSpaceUsage(ParkingLotSubsidiaryFacility) = "SnackBar" OR getSpaceUsage(ParkingLotSubsidiaryFacility) = "CarOrnamentationShop" OR getSpaceUsage(ParkingLotSubsidiaryFacility) = "ElectricVehicleChargingStation"}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 4항 4호Check(ERPA_6_4_4){ KS}KS{ getResult(Unimplemented_LGMO)}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 5항Check(ERPA_6_5){ IF CS THEN KS}CS{ ParkingLot myParkingLot{ isObjectProperty(ParkingLot.isOffStreetParking) = TRUE getResult(PLA_20_2) = TRUE OR getResult(PLA_20_3) = TRUE } hasSpace(myParkingLot,SubsidiaryFacility) = TRUE getTotalFloorArea(myParkingLot.facilityArea)}KS{ getFloorArea(ParkingLotSubsidiaryFacility) <= getTotalObjectArea(ParkingLot)*0.4}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 6항 Check(ERPA_6_6){ IF CS THEN KS } ParkingLot myParkingLot{ isObjectProperty(ParkingLot.isOffStreetParking) = TRUE } Building myBuilding{ Building.usage = "UrbanGunPlanningFacility" getResult(LPUA_2_0_7) = TRUE hasSpace(myParkingLot, Building) = TRUE getSpaceUsage(Building) = getSpaceUsage(SubsidiaryFacility) } Building myBuilding1{ Building.usage = "UrbanGunPlanningFacility" } CS{ getObjectNumber(myBuilding) >= 2 } KS{ (getFloorArea(myBuilding1)- getFloorArea(myBuilding)) <= (getTotalObjectArea(ParkingLot) + getTotalObjectArea(SubsidiaryFacility))*0.4 }//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 3호 나목Check(ERPA_6_1_3_나){ IF CS THEN KS}CS{ getSpaceUsage()="ParkingLot" getObjectProperty(ParkingLot.parkingUseType)="TwowheeledVehicle"}KS{ IF getObjectProperty(ParkingUnit.parkingType)="ParallelParking" IF getObjectCount(Opening)>=2 THEN ParkingLot.Driveway.width>=2.25 m ELSE IF getObjectCount(Opening)=1 THEN ParkingLot.Driveway.width>=3.5 m END IF ELSE IF getObjectProperty(ParkingUnit.parkingType)="RightAngleParking" IF getObjectCount(Opening)>=2 THEN ParkingLot.Driveway.width>=4.0 m ELSE IF getObjectCount(Opening)=1 THEN ParkingLot.Driveway.width>=4.0 m END IF ELSE IF getObjectProperty(ParkingUnit.parkingType)="45AngleParking" IF getObjectCount(Opening)>=2 THEN ParkingLot.Driveway.width>=2.3 m ELSE IF getObjectCount(Opening)=1 THEN ParkingLot.Driveway.width>=3.5 m END IF END IF}//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 3호 나목 Check(ERPA_6_1_3_나){ IF CS THEN KS } CS{ getSpaceUsage()="ParkingLot" isObjectProperty(ParkingLot.isOffStreetParking)=True getObjectProperty(ParkingLot.parkingUseType)!="TwowheeledVehicle" } KS{ IF getObjectProperty(ParkingUnit.parkingType)="ParallelParking" IF getObjectCount(Opening)>=2 THEN ParkingLot.Driveway.width>=3.3 m ELSE IF getObjectCount(Opening)=1 THEN ParkingLot.Driveway.width>=5.0 m END IF ELSE IF getObjectProperty(ParkingUnit.parkingType)="RightAngleParking" IF getObjectCount(Opening)>=2 THEN ParkingLot.Driveway.width>=6.0 m ELSE IF getObjectCount(Opening)=1 THEN ParkingLot.Driveway.width>=6.0 m END IF ELSE IF getObjectProperty(ParkingUnit.parkingType)="60AngleParking" IF getObjectCount(Opening)>=2 THEN ParkingLot.Driveway.width>=4.5 m ELSE IF getObjectCount(Opening)=1 THEN ParkingLot.Driveway.width>=5.5 m END IF ELSE IF getObjectProperty(ParkingUnit.parkingType)="45AngleParking" IF getObjectCount(Opening)>=2 THEN ParkingLot.Driveway.width>=3.5 m ELSE IF getObjectCount(Opening)=1 THEN ParkingLot.Driveway.width>=5.0 m END IF getObjectProperty(ParkingUnit.parkingType)="CrossParking" IF getObjectCount(Opening)>=2 THEN ParkingLot.Driveway.width>=3.5 m ELSE IF getObjectCount(Opening)=1 THEN ParkingLot.Driveway.width>=5.0 m END IF END IF }
// 국토의 계획 및 이용에 관한 법률 37조 (용도지구의 지정) 1항 9호Check(LPUA_37_1_5){ KS}KS{ getSiteUsage() = "DisasterPreventionDistrict"}// 국토의 계획 및 이용에 관한 법률 37조 (용도지구의 지정) 1항 8호Check(LPUA_37_1_8){ KS}KS{ getSiteUsage() = "SettlementDistrict"}// 국토의 계획 및 이용에 관한 법률 37조 (용도지구의 지정) 1항 9호Check(LPUA_37_1_9){ KS}KS{ getSiteUsage() = "DevelopmentPromotionDistrict"}
//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호 가목Check(LPUA_77_1_1_1){ IF CS THEN KS} CS{ getObjectProperty(SpecialPurposeArea.type) = "ResidentialArea"}KS{ getObjectProperty(Building.buildingToLandRatio) = BTL BTL <= 70}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호 나목Check(LPUA_77_1_1_2){ IF CS THEN KS} CS{ getObjectProperty(SpecialPurposeArea.type) = "CommercialArea"}KS{ getObjectProperty(Building.buildingToLandRatio) = BTL BTL <= 90}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호 다목Check(LPUA_77_1_1_3){ IF CS THEN KS} CS{ getObjectProperty(SpecialPurposeArea.type) = "IndustrialArea"}KS{ getObjectProperty(Building.buildingToLandRatio) = BTL BTL <= 70}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호 라목Check(LPUA_77_1_1_4){ IF CS THEN KS} CS{ getObjectProperty(SpecialPurposeArea.type) = "GreenArea"}KS{ getObjectProperty(Building.buildingToLandRatio) = BTL BTL <= 20}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 2호 가목Check(LPUA_77_1_2_1){ IF CS THEN KS} CS{ getObjectProperty(SpecialPurposeArea.type) = "ConservationManagementArea"}KS{ getObjectProperty(Building.buildingToLandRatio) = BTL BTL <= 20}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 2호 나목Check(LPUA_77_1_2_2){ IF CS THEN KS} CS{ getObjectProperty(SpecialPurposeArea.type) = "ProductionManagementArea"}KS{ getObjectProperty(Building.buildingToLandRatio) = BTL BTL <= 20}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 2호 다목Check(LPUA_77_1_2_3){ IF CS THEN KS} CS{ getObjectProperty(SpecialPurposeArea.type) = "PlanningManagementArea"}KS{ getObjectProperty(Building.buildingToLandRatio) = BTL BTL <= 40}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 3호Check(LPUA_77_1_3){ IF CS THEN KS} CS{ getObjectProperty(SpecialPurposeArea.type) = "AgriculturalAndForestryArea"}KS{ getObjectProperty(Building.buildingToLandRatio) = BTL BTL <= 20}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 4호Check(LPUA_77_1_4){ IF CS THEN KS} CS{ getObjectProperty(SpecialPurposeArea.type) = "NaturalEnvironmentConservationArea"}KS{ getObjectProperty(Building.buildingToLandRatio) = BTL BTL <= 20}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 2항Check(LPUA_77_1){ KS}KS{ getResult(LPUA_36_2) = TRUE}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 3호Check(LPUA_77_3_3){ KS}KS{ getResult(LPUA_40) = TRUE getObjectProperty(SpecialPurposeZone.type) = "FisheryResourcesProtectionZone"}// 국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 4호 Check(LPUA_77_3_4){ KS}KS{getObjectProperty(SpecialPurposeZone.type) = "NaturalPark"}// 국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 5호Check(LPUA_J77_3_5){ KS}KS{ getObjectProperty(SpecialPurposeZone.type) = "AgriculturalAndIndustrialComplexes" } //국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 6호 Check(LPUA_77_3_6){ KS}KS{ getObjectProperty(SpecialPurposeZone.type) = "NationalIndustrialComplexes" OR getObjectProperty(SpecialPurposeZone.type) = "GeneralIndustrialComplexes" OR getObjectProperty(SpecialPurposeZone.type) = "UrbanHighTechIndustrialComplexes" OR getObjectProperty(SpecialPurposeZone.type) = "SemiIndustrialComplex"}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항Check(LPUA_77_1){ KS}KS{ getResult(LPUA_77_1_1) = TRUE OR getResult(LPUA_77_1_2) = TRUE OR getResult(LPUA_77_1_3) = TRUE OR getResult(LPUA_77_1_4) = TRUE}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항Check(LPUA_77_3){ IF CS THEN KS} CS{ getResult(LPUA_77_3_1) = TRUE OR getResult(LPUA_77_3_2) = TRUE OR getResult(LPUA_77_3_3) = TRUE OR getResult(LPUA_77_3_4) = TRUE OR getResult(LPUA_77_3_5) = TRUE OR getResult(LPUA_77_3_6) = TRUE}KS{ getObjectProperty(Building.buildingToLandRatio) = BTL BTL <= 80}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 1호Check(LPUA_77_3_1){ KS}KS{ getResult(LPUA_37_1_8) = TRUE getObjectProperty(SpecialPurposeDistrict.type) = "SettlementDistrict"}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 3항 2호Check(LPUA_77_3_2){ KS}KS{ getResult(LPUA_37_1_9) = TRUE getObjectProperty(SpecialPurposeDistrict.type) = "DevelopmentPromotionDistrict" getObjectProperty(SpecialPurposeArea.type) != "UrbanArea"}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호Check(LPUA_77_1_1){ KS}KS{ getObjectProperty(SpecialPurposeArea.type) = "UrbanArea"}//국토의 계획 및 이용에 관한 법률 77조 (용도지역의 건폐율) 1항 1호Check(LPUA_77_1_2){ KS}KS{ getObjectProperty(SpecialPurposeArea.type) = "ControlArea"}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항Check(LPUA_78_1){KS}KS{getResult(LPUA_78_1_1)=TRUEgetResult(LPUA_78_1_2)=TRUEgetResult(LPUA_78_1_3)=TRUEgetResult(LPUA_78_1_4)=TRUE}// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호Check(LPUA_78_1_1){IF CS THEN KS}CS{getObjectProperty(Building.SpecialPurposeArea.type) = "UrbanArea"}KS{getResult(LPUA_78_1_1_가)=TRUEOR getResult(LPUA_78_1_1_나)=TRUEOR getResult(LPUA_78_1_1_다)=TRUEOR getResult(LPUA_78_1_1_라)=TRUE}// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 가목Check(LPUA_78_1_1_가){IF CS THEN KS}CS{getObjectProperty(Building.SpecialPurposeArea.type) = "ResidentialArea"}KS{getFloorAreaRatio() <= 500%}// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 나목Check(LPUA_78_1_1_나){IF CS THEN KS}CS{getObjectProperty(Building.SpecialPurposeArea.type) = "CommercialArea"}KS{getFloorAreaRatio() <= 1500%}// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 다목Check(LPUA_78_1_1_다){IF CS THEN KS}CS{getObjectProperty(Building.SpecialPurposeArea.type) = "IndustrialArea"}KS{getFloorAreaRatio() <= 400%}// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 라목Check(LPUA_78_1_1_라){IF CS THEN KS}CS{getObjectProperty(Building.SpecialPurposeArea.type) = "GreenArea"}KS{getFloorAreaRatio() <= 100%}// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호Check(LPUA_78_1_2){IF CS THEN KS}CS{getObjectProperty(Building.SpecialPurposeArea.type) = "ControlArea"}KS{getResult(LPUA_78_1_2_가)=TRUEOR getResult(LPUA_78_1_2_나)=TRUEOR getResult(LPUA_78_1_2_다)=TRUE}// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호 가목Check(LPUA_78_1_2_가){IF CS THEN KS}CS{getObjectProperty(Building.SpecialPurposeArea.type) = "ConservationManagementArea"}KS{getFloorAreaRatio() <= 80%}// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호 나목Check(LPUA_78_1_2_나){IF CS THEN KS}CS{getObjectProperty(Building.SpecialPurposeArea.type) = "ProductionManagementArea"}KS{getFloorAreaRatio() <= 80%}// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호 다목Check(LPUA_78_1_2_다){IF CS THEN KS}CS{getObjectProperty(Building.SpecialPurposeArea.type) = "PlanningManagementArea"}KS{getFloorAreaRatio() <=100%}// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 3호Check(LPUA_78_1_3){IF CS THEN KS}CS{getObjectProperty(Building.SpecialPurposeArea.type) = "AgriculturalAndForestryArea"}KS{getFloorAreaRatio() <= 80%}// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 4호Check(LPUA_78_1_4){IF CS THEN KS}CS{getObjectProperty(Building.SpecialPurposeArea.type) = "NaturalEnvironmentConservationArea"}KS{getFloorAreaRatio() <= 80%}//국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 2항 Check(LPUA_78_2){ IF CS THEN KS}CS{ getResult(LPUA_36_2)=True}KS{ getResult(LPUA_78_1)=True}// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 3항Check(LPUA_78_3){IF CS THEN KS}CS{ getResult(LPUA_77_3_2) = TRUE getResult(LPUA_77_3_3) = TRUE getResult(LPUA_77_3_4) = TRUE getResult(LPUA_77_3_5) = TRUE}KS{ BFA = getObjectProperty(Building.floorAreaRatio) BFA <= 200 getResult(Unimplemented_LGMO) = TRUE
//국토의 계획 및 이용에 관한 법률 시행령 46조 (도시지역 내 지구단위계획구역에서의 건폐율 등의 완화적용) 10항Check(EDLPUA_46_10){ IF CS THEN KS}CS{ getResult(EDLPUA_46_1)=TRUE OR getResult(EDLPUA_46_2)=TRUE OR getResult(EDLPUA_46_3)=TRUE OR getResult(EDLPUA_46_4)=TRUE OR getResult(EDLPUA_46_7)=TRUE}KS{ BBTR = getObjectProperty(Building.buildingToLandRatio) BFAR = getObjectProperty(Building.floorAreaRatio) (BBTR < 1.5*getObjectProperty(Building.SpecialPurposeArea.buildingToLandRatio) OR BBTR < 1.5*getObjectProperty(Building.SpecialPurposeZone.buildingToLandRatio)) (BFAR < 2*getObjectProperty(Building.SpecialPurposeArea.floorAreaRatio) OR BFAR < 2*getObjectProperty(Building.SpecialPurposeZone.floorAreaRatio))}//국토의 계획 및 이용에 관한 법률 시행령 46조 (도시지역 내 지구단위계획구역에서의 건폐율 등의 완화적용) 4항Check(EDLPUA_46_4){ IF CS THEN KS}CS{ getObjectUsage(Zone)="DistrictUnitPlanningZones"}KS{ getResult(EDLPUA_84_1)=True getResult(EDLPUA_84_1)=True getResult(EDLPUA_84_8)=True}
//EDLPUA 47조 1항 Check(EDLPUA_47_1){ IF CS THEN KS } CS{ getObjectUsage(Zone)="DistrictUnitPlanningZones" } KS{ SpecialPurposeArea mySpecialPurposeArea{ getObjectProperty(Building.SpecialPurposeArea.type) = "DevelopmentPromotionDistrict" } BLR= getObjectProperty(Building.SpecialPurposeArea.buildingToLandRatio) OR getObjectProperty(mySpecialPurposeArea.buildingToLandRatio) FAR= getObjectProperty(Building.SpecialPurposeArea.floorAreaRatio) OR getObjectProperty(mySpecialPurposeArea.floorAreaRatio) getBuildingToLandRatio()<=BLR*150% getFloorAreaRatio(FAR)<=200% }
//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 2호Check(EDLPUA_84_3_2){ IF CS THEN KS}CS{ getObjectProperty(Building.SpecialPurposeDistrict.type)="DevelopmentPromotionDistrict"}KS{ getBuildingToLandRatio()<=40%}//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 8항 Check(EDLPUA_84_8){ KS}KS{ IF getObjectProperty(GreenNaturalArea.UrbanAndGunPlanningFacility.type)="AmusementPark" THEN getBuildingToLandRatio() <30 getResult(Unimplemented_UPMO) ELSE IF getObjectProperty(GreenNaturalArea.UrbanAndGunPlanningFacility.type)="Park" THEN getBuildingToLandRatio() <30 getResult(Unimplemented_UPMO) END IF } // 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 용적률) 1항 Check(EDLPUA_84_1){ KS}KS{ getResult(EDLPUA_84_1_1) = TRUE OR getResult(EDLPUA_84_1_2) = TRUE OR getResult(EDLPUA_84_1_3) = TRUE OR getResult(EDLPUA_84_1_4) = TRUE OR getResult(EDLPUA_84_1_5) = TRUE OR getResult(EDLPUA_84_1_6) = TRUE OR getResult(EDLPUA_84_1_7) = TRUE OR getResult(EDLPUA_84_1_8) = TRUE OR getResult(EDLPUA_84_1_9) = TRUE OR getResult(EDLPUA_84_1_10) = TRUE OR getResult(EDLPUA_84_1_11) = TRUE OR getResult(EDLPUA_84_1_12) = TRUE OR getResult(EDLPUA_84_1_13) = TRUE OR getResult(EDLPUA_84_1_14) = TRUE OR getResult(EDLPUA_84_1_15) = TRUE OR getResult(EDLPUA_84_1_16) = TRUE OR getResult(EDLPUA_84_1_17) = TRUE OR getResult(EDLPUA_84_1_18) = TRUE OR getResult(EDLPUA_84_1_19) = TRUE OR getResult(EDLPUA_84_1_20) = TRUE OR getResult(EDLPUA_84_1_21) = TRUE}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 1호Check(EDLPUA_84_1_1){ IF CS THEN KS}CS{ getBuildingUsage() = "ClassIExclusiveResidentialArea"}KS{ getBuildingToLandRatio() <= 50}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 2호Check(EDLPUA_84_1_2){ IF CS THEN KS}CS{ getBuildingUsage() = "ClassIIExclusiveResidentialArea"}KS{ getBuildingToLandRatio() <= 50}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 3호Check(EDLPUA_84_1_3){ IF CS THEN KS}CS{ getBuildingUsage() = "ClassIGeneralResidentialArea"}KS{ getBuildingToLandRatio() <= 60}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 4호Check(EDLPUA_84_1_4){ IF CS THEN KS}CS{ getBuildingUsage() = "ClassIIGeneralResidentialArea"}KS{ getBuildingToLandRatio() <= 60}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 5호Check(EDLPUA_84_1_5){ IF CS THEN KS}CS{ getBuildingUsage() = "ClassIIIGeneralResidentialArea"}KS{ getBuildingToLandRatio() <= 50}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 6호Check(EDLPUA_84_1_6){ IF CS THEN KS}CS{ getBuildingUsage() = "QuasiResidentialArea"}KS{ getBuildingToLandRatio() <= 70}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 7호Check(EDLPUA_84_1_7){ IF CS THEN KS}CS{ getBuildingUsage() = "CentralCommercialArea"}KS{ getBuildingToLandRatio() <= 90}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 8호Check(EDLPUA_84_1_8){ IF CS THEN KS}CS{ getBuildingUsage() = "GeneralCommercialArea"}KS{ getBuildingToLandRatio() <= 80}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 9호Check(EDLPUA_84_1_9){ IF CS THEN KS}CS{ getBuildingUsage() = "NeighboringCommercialArea"}KS{ getBuildingToLandRatio() <= 70}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 10호Check(EDLPUA_84_1_10){ IF CS THEN KS}CS{ getBuildingUsage() = "CirculationBusinessArea"}KS{ getBuildingToLandRatio() <= 80}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 11호Check(EDLPUA_84_1_11){ IF CS THEN KS}CS{ getBuildingUsage() = "ExclusiveIndustrialArea"}KS{ getBuildingToLandRatio() <= 70}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 12호Check(EDLPUA_84_1_12){ IF CS THEN KS}CS{ getBuildingUsage() = "GeneralIndustrialArea"}KS{ getBuildingToLandRatio() <= 70}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 13호Check(EDLPUA_84_1_13){ IF CS THEN KS}CS{ getBuildingUsage() = "QuasiIndustrialArea"}KS{ getBuildingToLandRatio() <= 70}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 14호Check(EDLPUA_84_1_14){ IF CS THEN KS}CS{ getBuildingUsage() = "GreenConservationArea"}KS{ getBuildingToLandRatio() <= 20}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 15호Check(EDLPUA_84_1_15){ IF CS THEN KS}CS{ getBuildingUsage() = "GreenProductionArea"}KS{ getBuildingToLandRatio() <= 20}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 16호Check(EDLPUA_84_1_16){ IF CS THEN KS}CS{ getBuildingUsage() = "GreenNaturalArea"}KS{ getBuildingToLandRatio() <= 20}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 17호Check(EDLPUA_84_1_17){ IF CS THEN KS}CS{ getBuildingUsage() = "ConservationManagementArea"}KS{ getBuildingToLandRatio() <= 20}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 18호Check(EDLPUA_84_1_18){ IF CS THEN KS}CS{ getBuildingUsage() = "ProductionManagementArea"}KS{ getBuildingToLandRatio() <= 20}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 19호Check(EDLPUA_84_1_19){ IF CS THEN KS}CS{ getBuildingUsage() = "PlanningManagementArea"}KS{ getBuildingToLandRatio() <= 40}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 20호Check(EDLPUA_84_1_20){ IF CS THEN KS}CS{ getBuildingUsage() = "AgriculturalAndForestryArea"}KS{ getBuildingToLandRatio() <= 20}// 국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 1항 21호Check(EDLPUA_84_1_21){ IF CS THEN KS}CS{ getBuildingUsage() = "NaturalEnvironmentConservationArea"}KS{ getBuildingToLandRatio() <= 20}용적률) 3항 Check(EDLPUA_84_3){ IF CS THEN KS}CS{ getResult(EDLPUA_84_3_1) = TRUE getResult(EDLPUA_84_3_2) = TRUE getResult(EDLPUA_84_3_3) = TRUE getResult(EDLPUA_84_3_4) = TRUE getResult(EDLPUA_84_3_5) = TRUE getResult(EDLPUA_84_3_6) = TRUE}KS{ getResult(Unimplemented_UPMO) = TRUE}//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 1호Check(EDLPUA_84_3_1){ IF CS THEN KS}CS{ getObjectProperty(Building.SpecialPurposeDistrict.type)="SettlementDistrict"}KS{ getBuildingToLandRatio()<=60%}//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 3호Check(EDLPUA_84_3_3){ IF CS THEN KS}CS{ getObjectProperty(Building.SpecialPurposeDistrict.type)="FisheryResourcesProtectionZone"}KS{ getBuildingToLandRatio()<=40%}//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 4호Check(EDLPUA_84_3_4){ IF CS THEN KS}CS{ getObjectProperty(Building.SpecialPurposeDistrict.type)="ParkProtectionZone"}KS{ getBuildingToLandRatio()<=60%}//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 5호Check(EDLPUA_84_3_5){ IF CS THEN KS}CS{ getObjectProperty(Building.SpecialPurposeDistrict.type)="AgriculturalIndustrialComplex"}KS{ getBuildingToLandRatio()<=70%}//국토의 계획 및 이용에 관한 법률 시행령 84조 (용도지역안에서의 건폐율) 3항 6호Check(EDLPUA_84_3_6){ IF CS THEN KS}CS{ getObjectProperty(IndustrialComplex.type)="NationalIndustrialComplex" OR getObjectProperty(IndustrialComplex.type)="GeneralIndustrialComplex" OR getObjectProperty(IndustrialComplex.type)="UrbanHighTechIndustrialComplex" OR getObjectProperty(IndustrialComplex.type)="Semi-IndustrialComplex"}KS{ getBuildingToLandRatio()<=70%}
// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항Check(EDLPUA_85_1){ KS}KS{ getResult(EDLPUA_85_1_1) = TRUE OR getResult(EDLPUA_85_1_2) = TRUE OR getResult(EDLPUA_85_1_3) = TRUE OR getResult(EDLPUA_85_1_4) = TRUE OR getResult(EDLPUA_85_1_5) = TRUE OR getResult(EDLPUA_85_1_6) = TRUE OR getResult(EDLPUA_85_1_7) = TRUE OR getResult(EDLPUA_85_1_8) = TRUE OR getResult(EDLPUA_85_1_9) = TRUE OR getResult(EDLPUA_85_1_10) = TRUE OR getResult(EDLPUA_85_1_11) = TRUE OR getResult(EDLPUA_85_1_12) = TRUE OR getResult(EDLPUA_85_1_13) = TRUE OR getResult(EDLPUA_85_1_14) = TRUE OR getResult(EDLPUA_85_1_15) = TRUE OR getResult(EDLPUA_85_1_16) = TRUE OR getResult(EDLPUA_85_1_17) = TRUE OR getResult(EDLPUA_85_1_18) = TRUE OR getResult(EDLPUA_85_1_19) = TRUE OR getResult(EDLPUA_85_1_20) = TRUE OR getResult(EDLPUA_85_1_21) = TRUE}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 1호Check(EDLPUA_85_1_1){ IF CS THEN KS}CS{ getBuildingUsage() = "ClassIExclusiveResidentialArea"}KS{ getFloorAreaRatio() >= 50 getFloorAreaRatio() <= 100}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 2호Check(EDLPUA_85_1_2){ IF CS THEN KS}CS{ getBuildingUsage() = "ClassIIExclusiveResidentialArea"}KS{ getFloorAreaRatio() >= 100 getFloorAreaRatio() <= 150}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 3호Check(EDLPUA_85_1_3){ IF CS THEN KS}CS{ getBuildingUsage() = "ClassIGeneralResidentialArea"}KS{ getFloorAreaRatio() >= 100 getFloorAreaRatio() <= 200}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 4호Check(EDLPUA_85_1_4){ IF CS THEN KS}CS{ getBuildingUsage() = "ClassIIGeneralResidentialArea"}KS{ getFloorAreaRatio() >= 150 getFloorAreaRatio() <= 250}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 5호Check(EDLPUA_85_1_5){ IF CS THEN KS}CS{ getBuildingUsage() = "ClassIIIGeneralResidentialArea"}KS{ getFloorAreaRatio() >= 200 getFloorAreaRatio() <= 300}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 6호Check(EDLPUA_85_1_6){ IF CS THEN KS}CS{ getBuildingUsage() = "QuasiResidentialArea"}KS{ getFloorAreaRatio() >= 200 getFloorAreaRatio() <= 500}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 7호Check(EDLPUA_85_1_7){ IF CS THEN KS}CS{ getBuildingUsage() = "CentralCommercialArea"}KS{ getFloorAreaRatio() >= 400 getFloorAreaRatio() <= 1500}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 8호Check(EDLPUA_85_1_8){ IF CS THEN KS}CS{ getBuildingUsage() = "GeneralCommercialArea"}KS{ getFloorAreaRatio() >= 300 getFloorAreaRatio() <= 1300}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 9호Check(EDLPUA_85_1_9){ IF CS THEN KS}CS{ getBuildingUsage() = "NeighboringCommercialArea"}KS{ getFloorAreaRatio() >= 200 getFloorAreaRatio() <= 900}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 10호Check(EDLPUA_85_1_10){ IF CS THEN KS}CS{ getBuildingUsage() = "CirculationBusinessArea"}KS{ getFloorAreaRatio() >= 200 getFloorAreaRatio() <= 1100}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 11호Check(EDLPUA_85_1_11){ IF CS THEN KS}CS{ getBuildingUsage() = "ExclusiveIndustrialArea"}KS{ getFloorAreaRatio() >= 150 getFloorAreaRatio() <= 300}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 12호Check(EDLPUA_85_1_12){ IF CS THEN KS}CS{ getBuildingUsage() = "GeneralIndustrialArea"}KS{ getFloorAreaRatio() >= 200 getFloorAreaRatio() <= 350}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 13호Check(EDLPUA_85_1_13){ IF CS THEN KS}CS{ getBuildingUsage() = "QuasiIndustrialArea"}KS{ getFloorAreaRatio() >= 200 getFloorAreaRatio() <= 400}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 14호Check(EDLPUA_85_1_14){ IF CS THEN KS}CS{ getBuildingUsage() = "GreenConservationArea"}KS{ getFloorAreaRatio() >= 50 getFloorAreaRatio() <= 80}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 15호Check(EDLPUA_85_1_15){ IF CS THEN KS}CS{ getBuildingUsage() = "GreenProductionArea"}KS{ getFloorAreaRatio() >= 50 getFloorAreaRatio() <= 100}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 16호Check(EDLPUA_85_1_16){ IF CS THEN KS}CS{ getBuildingUsage() = "GreenNaturalArea"}KS{ getFloorAreaRatio() >= 50 getFloorAreaRatio() <= 100}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 17호Check(EDLPUA_85_1_17){ IF CS THEN KS}CS{ getBuildingUsage() = "ConservationManagementArea"}KS{ getFloorAreaRatio() >= 50 getFloorAreaRatio() <= 80}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 18호Check(EDLPUA_85_1_18){ IF CS THEN KS}CS{ getBuildingUsage() = "ProductionManagementArea"}KS{ getFloorAreaRatio() >= 50 getFloorAreaRatio() <= 80}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 19호Check(EDLPUA_85_1_19){ IF CS THEN KS}CS{ getBuildingUsage() = "PlanningManagementArea"}KS{ getFloorAreaRatio() >= 50 getFloorAreaRatio() <= 100}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 20호Check(EDLPUA_85_1_20){ IF CS THEN KS}CS{ getBuildingUsage() = "AgriculturalAndForestryArea"}KS{ getFloorAreaRatio() >= 50 getFloorAreaRatio() <= 80}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 21호Check(EDLPUA_85_1_21){ IF CS THEN KS}CS{ getBuildingUsage() = "NaturalEnvironmentConservationArea"}KS{ getFloorAreaRatio() >= 50 getFloorAreaRatio() <= 80}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항 Check(EDLPUA_85_6){ KS}KS{ getResult(EDLPUA_85_6_1) = TRUE OR getResult(EDLPUA_85_6_2) = TRUE OR getResult(EDLPUA_85_6_3) = TRUE OR getResult(EDLPUA_85_6_4) = TRUE}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항 1호Check(EDLPUA_85_6_1){ IF CS THEN KS}CS{ getBuildingUsage() != "UrbanArea" getBuildingUsage() = "DevelopmentPromotionDistrict"}KS{ getFloorAreaRatio() <= 100}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항 2호Check(EDLPUA_85_6_2){ IF CS THEN KS}CS{ getBuildingUsage() = "FisheryResourcesProtectionZone"}KS{ getFloorAreaRatio() <= 80}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항 3호Check(EDLPUA_85_6_3){ IF CS THEN KS}CS{ getBuildingUsage() = "ParkProtectionZone"}KS{ getFloorAreaRatio() <= 100}// 국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항 4호Check(EDLPUA_85_6_4){ IF CS THEN KS}CS{ getObjectProperty(IndustrialComplex.type) = "AgriculturalIndustrialComplex"}KS{ getFloorAreaRatio() <= 150%}
// 소방시설 설치ㆍ유지 및 안전관리에 관한 법률 11조 (소방시설기준 적용의 특례) 4항Check(IMSFA_11_4){ IF CS THEN KS}CS{ getResult(IMSFA_11_4_4) = TRUE}KS{ isInstalled(FireFightingFacility) = TRUE OR FALSE}// 소방시설 설치ㆍ유지 및 안전관리에 관한 법률 11조 (소방시설기준 적용의 특례) 4항 4호Check(IMSFA_11_4_4){ KS}KS{ getResult(SCHSA_19) = true isInstalled(FireBrigade, SpecificFireFithtingBuilding) = TRUE}
// 소방시설 설치ㆍ유지 및 안전관리에 관한 법률 8조 (주택에 설치하는 소방시설) 1항 Check(IMSFA_8_1){ IF CS THEN KS } CS{ getResult(IMSFA_8_1_1) = TRUE OR getResult(IMSFA_8_1_2) = TRUE } KS{ Sensor mySensor{ Sensor.isSelfcontainedTypeFireAlarmDevice = TRUE } isExist(mySensor) = TRUE OR isExist(FireExtinguisher) = TRUE }// 소방시설 설치ㆍ유지 및 안전관리에 관한 법률 8조 (주택에 설치하는 소방시설) 1항 1호Check(IMSFA_8_1_1){ KS}KS{ getBuildingUsage() = "DetachedHouse"}// 소방시설 설치ㆍ유지 및 안전관리에 관한 법률 8조 (주택에 설치하는 소방시설) 1항 2호Check(IMSFA_8_1_2){ KS}KS{ getBuildingUsage() = "MultiUnitHouse" getBuildingUsage() != "ApartmentHouse" getBuildingUsage() != "Dormitory"}
//소방시설 설치ㆍ유지 및 안전관리에 관한 법률 시행령 16조 (유사한 소방시설의 설치 면제의 기준)Check(EDIMSFA_16){ KS}KS{ getResult(EDIMSFA_*_6) = TRUE}
//소방시설 설치ㆍ유지 및 안전관리에 관한 법률 시행령 18조 (소방시설을 설치하지 아니하는 특정소방대상물의 범위) 2항Check(EDIMSFA_18_2){ KS}KS{ getResult(EDIMSFA_11_4) = TRUE getResult(EDIMSFA_*_7) = TRUE}
//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 1호Check(ERSASP_2_0_1){IF CS THEN KS}CS{getObjectProperty(Building.business) = "EDFA_21_0_8"}KS{getResult(ERSASP_2_0_1_1)= TRUEOR getResult(ERSASP_2_0_1_2)= TRUE}//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 2호Check(ERSASP_2_0_2){KS}KS{getObjectProperty(Building.business)= "PMVA_2_0_10"OR getObjectProperty(Building.business)= "PMVA_2_0_16_1"OR getObjectProperty(Building.business)= "PMVA_2_0_16_2"OR getObjectProperty(Building.business)= "PMVA_2_0_16_4"}//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 3호Check(ERSASP_2_0_3){IF CS THEN KS}CS{getObjectProperty(Building.business)= "AEOPE_2_0_1_"}KS{getResult(ERSASP_2_0_3_가)= TRUEOR getResult(ERSASP_2_0_3_나)= TRUE}Check(ERSASP_2_0_3_나3){IF CS THEN KS}CS{getObjectProperty(Building.business)= "AEOPE_2_0_1"}KS{getResult(ERSASP_2_0_1)= TRUEOR getResult(ERSASP_2_0_2)= TRUEOR getResult(ERSASP_2_0_4)= TRUEOR getResult(ERSASP_2_0_5)= TRUEOR getResult(ERSASP_2_0_6)= TRUEOR getResult(ERSASP_2_0_7)= TRUEOR getResult(ERSASP_2_0_7-2)= TRUEOR getResult(ERSASP_2_0_7-3)= TRUEOR getResult(ERSASP_2_0_7-4)= TRUEOR getResult(ERSASP_2_0_7-5)= TRUEOR getResult(ERSASP_2_0_8)= TRUE}//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 5호Check(ERSASP_2_0_5){KS1 AND IF CS THEN !KS2}KS1{getObjectProperty(Building.business)= "GIPA_2_0_6"OR getObjectProperty(Building.business)= "GIPA_2_0_6-2"OR getObjectProperty(Building.business)= "GIPA_2_0_7"OR getObjectProperty(Building.business)= "GIPA_2_0_8"}CS{getObjectProperty(Building.business)= "GIPA_2_0_6"OR getObjectProperty(Building.business)= "GIPA_2_0_7"}KS2{Space mySpace{Space.usage = "GIPA_2_0_6"OR Space.usage = "GIPA_2_0_7"}Floor myFloor{hasObject(Floor,mySpace)=TRUE}Door myDoor{isObjectProperty(mySpace.Door.isEntrance)=TRUE}(getObjectProperty(myFloor.number)=1OR isDirectlyAccessible(myFloor, Ground)=TRUE)isConnectedToExternal(myDoor)=TRUE}//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 6호Check(ERSASP_2_0_6){KS}KS{getObjectProperty(Building.business)= "MIPA_2_0_13"}//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 7호Check(ERSASP_2_0_7){KS}KS{getObjectProperty(Building.business)= "MCHA_2_0_11"}//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업)7-2호Check(ERSASP_2_0_7-2){KS}KS{getObjectProperty(Building.business)= "AccommodationForExaminers"}//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 7의3호Check(ERSASP_2_0_7-3){KS}KS{getObjectProperty(Building.business)= "GunShootingRange"}//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 7-4호Check(ERSASP_2_0_7-4){KS}KS{getObjectProperty(Building.business)="IUSA_10_1_2_9"}//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 7-5호Check(ERSASP_2_0_7-5){KS}KS{getObjectProperty(Building.business)="MassageParlor"}//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) Check(ERSASP_2){ KS } KS{ Building myBuilding{ getResult(ERSASP_2_1)= TRUE OR getResult(ERSASP_2_2)= TRUE OR getResult(ERSASP_2_3)= TRUE OR getResult(ERSASP_2_5)= TRUE OR getResult(ERSASP_2_6)= TRUE OR getResult(ERSASP_2_7)= TRUE OR getResult(ERSASP_2_7-2)= TRUE OR getResult(ERSASP_2_7-3)= TRUE OR getResult(ERSASP_2_7-4)= TRUE OR getResult(ERSASP_2_7-5)= TRUE } }
//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항Check(NFSC101_4_1){ getResult(NFSC101_4_1_2)=TRUE getResult(NFSC101_4_1_8)=TRUE getResult(NFSC101_4_1_9)=TRUE}//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 1호Check(NFSC101_4_1_1){ getResult(NFSC101_*_1) = TRUE}//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 2호Check(NFSC101_4_1_2){ getResult(NFSC101_*_3)=TRUE}//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 4호Check(NFSC101_4_1_4){ KS}KS{ getResult(NFSC101_4_1_4_가)=True getResult(NFSC101_4_1_4_나)=True }//소화기구 및 자동 소화장치의 화재안전기준(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 }//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 3호 나목Check(NFSC101_4_1_3_나){ IF CS THEN KS}CS{ isFirePartitioned(Floor.One, Room.Two, SpecificFireFightingBuilding)=True}KS{ Room myRoom{ isFirePartion(Room, a, 33)=True } isInstalled(FireExtinguishingEquipment, myRoom)=True}//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 7호Check(NFSC101_4_1_7){ IF CS THEN KS}CS{ Space mySpace{ getSpaceUsage() = "Kitchen" }}KS{ AutomaticFireExtinguishingEquipment myAutomaticFireExtinguishingEquipment{ isObjectProperty(AutomaticFireExtinguishingEquipment.isKitchenType) = TRUE } hasSpace(mySpace,myAutomaticFireExtinguishingEquipment) = TRUE getResult(NFSC101_4_1_7_3)=TRUE}//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 7호 다목Check(NFSC101_4_1_7_다){ KS}KS{ ShutdownEquipment myShutdownEquipment{ isObjectProperty(ShutdownEquipment.type)="GAS" } Space mySpace{ isObjectProperty(Space.usage) = "Kitchen" } Pipe myPipe{ isInstalled(Pipe, mySpace) = TRUE } Valve myValve{ isObjectProperty(Valve.isShutoffValve) = TRUE isInstalled(Valve, myPipe) = TRUE } isElementDistance(myShutdownEquipment, myValve) <= 2m}//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 8호Check(NFSC101_4_1_8){ getResult(NFSC101_4_1_8_가)=TRUE getResult(NFSC101_4_1_8_나)=TRUE getResult(NFSC101_4_1_8_마)=TRUE}//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 8호 가목Check(NFSC101_4_1_8_가){ KS}Zone myZone{ isObjectProperty(Zone.isProtectionZone)=TRUE}02.m <= getObjectVerticalDistance(myZone.FloorSlab, AutomaticFireExtinguishingEquipment.Head, a) <= 3.7m //소화기구 및 자동 소화장치의 화재안전기준(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}//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 2항 Check(NFSC101_4_2){ KS } KS{ FireExtinguisher myFireExtinguisher{ getObjectProperty(FireExtinguishingEquipment.extinguishingAgentType) = "GasType" } Space mySpace{ (getFloorNumber(Space) = -1 OR hasSpace(Space, Window) = FALSE OR isObjectProperty(Room.isEnclosed)=TRUE) getObjectProperty(Space.FloorSlab) < 20 m2 } getSpace(mySpace, myFireExtinguisher) = FALSE }
// 간이스프링클러설비의 화재안전기준(NFSC103A) 4조 (수원) 1항Check(NFSC103A_4_1){ KS}KS{ getResult(NFSC103A_4_1_2) = TRUE}// 간이스프링클러설비의 화재안전기준(NFSC 103A) 4조 (수원) 1항 2호 Check(NFSC103A_4_1_2){ IF CS THEN KS } CS{ WaterSource myWaterSource{ isObjectProperty(Tank.isWaterSource) = TRUE } isInstalled(myWaterSource) = TRUE } KS{ getObjectCount(AutomaticWaterSupplyEquipment) >= 1 }// 간이스프링클러설비의 화재안전기준(NFSC103a) 4조 (수원) 2항 Check(NFSC503A_4_2){ IF !CS1 AND CS2 THEN KS } CS1{ getResult(NFSC503A_4_2_1) = TRUE OR getResult(NFSC503A_4_2_2) = TRUE } CS2{ isObjectProperty(SimpleSprinklerSystem.Tank.isWaterSource) = TRUE } KS{ isObjectProperty(Tank.isShared) = FALSE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 4조 (수원) 2항 1호 Check(NFSC503A_4_2_1){ KS } KS{ Valve myValve1{ isObjectProperty(Valve.isFootValve) = TRUE isObjectProperty(Valve.systemType) = "SimpleSprinklerSystem" } Port myPort1{ getObjectProperty(Port.typeForWater) = "Obsorption" isObjectProperty(Valve.systemType) = "SimpleSprinklerSystem" } Valve myValve2{ isObjectProperty(Valve.isFootValve) = TRUE isObjectProperty(Valve.systemType) != "SimpleSprinklerSystem" } Port myPort2{ getObjectProperty(Port.typeForWater) = "Obsorption" isObjectProperty(Valve.systemType) != "SimpleSprinklerSystem" } getObjectVerticalLocation(myValve1|myValve1, myValve2|myPort2) < 0 }// 간이스프링클러설비의 화재안전기준(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 }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 4조 (수원) Check(NFSC503A_4){ getResult(NFSC503A_4_4) = TRUE getResult(NFSC503A_4_5) = TRUE getResult(NFSC503A_4_6) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 4조 (수원) 4항 3호Check(NFSC503A_4_4_3){ KS}KS{ isInstalled(Tank.SideSurface, WaterLevelGauge) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 4조 (수원) 4항 3호Check(NFSC503A_4_4_3){ IF CS THEN KS}CS{ getObjectVerticalLocation(Tank.TopSurface, FloorSlab) = TRUE}KS{ isInstalled(Ladder, Tank.SideSurface) = TRUE isObjectProperty(Ladder.isFixed) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 4조 5호(수원)Check(NFSC503A_4_5){ IF CS THEN KS}CS{ Space mySpace{ isExternal(Space) = FALSE } hasSpace(mySpace,Tank) = TRUEKS{ hasSpace(mySpace,LightingSystem) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 4조 (수원) 4항 6호Check(NFSC503A_4_2_6){ KS}KS{ Valve myValve{ isObjectProperty(Valve.isDeliveryValveForCleaning) = TRUE } Pipe myPipe{ isObjectProperty(Pipe.usage) = "WaterDrainPipe" } isInstalled(Tank.BottomSurface, myValve) = TRUE OR isInstalled(Tank.BottomSurface, myPipe) = TRUE}
// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치) 2항Check(NFSC503A_5_2){ IF CS THEN KS}CS{ getObjectProperty(PressurizedWaterSupplySystem.supplyType)="PumpType"}KS{ getResult(NFSC503A_5_2_3) = TRUE getResult(NFSC503A_5_2_4) = TRUE getResult(NFSC503A_5_2_5) = TRUE getResult(NFSC503A_5_2_6) = TRUE getResult(NFSC503A_5_2_7) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치)2항 3호Check(NFSC503A_5_2_3){ KS}KS{isObjectProperty(Pump.isShared) = FALSE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (수원) 2항 4호 Check(NFSC503A_5_2_4){ IF !CS THEN KS } CS{ getObjectVerticalLocation(WaterSource, Pump) > 0 OR isObjectProperty(Pump.isVerticalPump) = TRUE } KS{ Valve myValve{ isObjectProperty(Valve.isCheckValve) = TRUE } isInstalled(Pump.Outlet, myValve) = TRUE isInstalledInOrder(PressureGauge, myValve) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치)2항 5호 Check(NFSC503A_5_2_5){ KS } KS{ Pipe myPipe{ isObjectProperty(Pipe.isForTest) = TRUE } isInstalled(PressurizedWaterSupplySystem,myPipe) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치)2항 6호Check(NFSC503A_5_2_6){ KS}KS{ Pipe myPipe{ isObjectProperty(Pipe.isCirculationPipe) = TRUE } isInstalled(PressurizedWaterSupplySystem,myPipe) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치) 2항 7호Check(NFSC503A_5_2_7){ IF !CS THEN KS1 AND KS2}CS{ isObjectProperty(SimpleSprinklerSystem.isCabinetType)=TRUE}KS1{ isExist(PressurizedWaterSupplySystem) = TRUE}KS2{ getResult(NFSC503A_5_2_7_가) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치) 2항 7호 가목 Check(NFSC103A_5_2_7_1){ KS } KS{ getObjectProperty(Pump.dischargePressure) = PDP getObjectProperty(Sprinkler.dischargePressure) = SDP getObjectProperty(PressurizedWaterSupplySystem.ratedDischargePressure) = PWSDP (SDP + 0.2 <= PDP) OR(PDP = PWSDP) }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치) 2항 8호 Check(NFSC503A_5_2_8){ IF (!CS1 AND CS2) THEN KS } CS1{ isObjectProperty(SimpleSprinklerSystem.isCabinetType) = TRUE } CS2{ getObjectVerticalLocation(Pump, WaterSource,) < 0 } KS{ isInstalled(PressurizedWaterSupplySystem, WaterLiftingDevice) = TRUE getResult(NFSC503A_5_2_가) = TRUE getResult(NFSC503A_5_2_나) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치) 2항 8호 가Check(NFSC503A_5_2_8_가){ KS}KS{ isInstalled(WaterLiftingDevice, Tank)=TRUE isObjectProperty(Tank.isShared) = FALSE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치) 2항 8호 나목Check(NFSC503A_5_2_8_나){ KS}KS{ isObjectProperty(Tank.amountOfEffectiveWater) >= 10L}/ 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치) 3항Check(NFSC503A_5_3){ IF CS THEN KS}CS{ isObjectProperty(PressurizedWaterSupplySystem.supplyType) = "ElevatedWaterTankType"}KS{ getResult(NFSC503A_5_3_1)=TRUE getResult(NFSC503A_5_3_2)=TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치) 3항 1호 Check(NFSC503A_5_3_1){ KS } KS{ Tank myTank{ isObjectProperty(Tank.operationType) = "ElevatedWaterTank" } Head myHead{ hasSpace(TopFloor,Head) = TRUE } getObjectVerticalDistance(myTank.BottomSurface,myHead) >= Pipe.frictionHeadLossH + 10m }//간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치) 3항 2호Check(NFSC503A_5_3_2){ KS}KS{ Tank myTank{ isObjectProperty(Tank.operationType) = "ElevatedWaterTank" } Pipe myPipe1{ isObjectProperty(Pipe.isOverflowPipe) = TRUE } Pipe myPipe2{ getObjectProperty(Pipe.usage) = "WaterDrainPipe" } Pipe myPipe3{ getObjectProperty(Pipe.usage) = "WaterSupplyPipe" } isInstalled(myTank,WaterLevelGauge) = TRUE isInstalled(myTank,myPipe2) = TRUE isInstalled(myTank,myPipe3) = TRUE isInstalled(myTank,myPipe1) = TRUE isInstalled(myTank,Manshole) = TRUE}/ 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치) 4항 Check(NFSC503A_5_4){ IF CS THEN KS } CS{ getObjectProperty(PressurizedWaterSupplySystem.supplyType) = "HydropneumaticTankType" } KS{ getResult(NFSC503A_5_4_1)=TRUE getResult(NFSC503A_5_4_2)=TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치) 4항 2호 Check(NFSC503A_5_4_2){ KS } KS{ Tank myTank{ isObjectProperty(Tank.operationType) = "HydropneumaticTank" } Pipe myPipe{ isObjectProperty(Pipe.usage)="WaterSupplyPipe" OR isObjectProperty(Pipe.usage)="WaterDrainPipe" OR isObjectProperty(Pipe.usage)="AirSupplyPipe" } AirCompressor myAirCompressor{ isObjectProperty(AirCompressor.isAutomatic) = TRUE } isInstalled(WaterLevelGauge, myTank) = TRUE isInstalled(myPipe, myTank) = TRUE isInstalled(Manshole, myTank) = TRUE isInstalled(PressureGauge, myTank) = TRUE isInstalled(SafetyDevice, myTank) = TRUE isInstalled(AirCompressor, myTank) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 5조 (가압송수장치) 7항Check(NFSC503A_5_7){ IF CS THEN KS}CS{ SpecificFireFightingBuilding mySpecificFireFightingBuilding{ getResult(_*_5_1_마_1)) = TRUE getResult(_*_5_1_마_6)) = TRUE getResult(_*_5_1_마_7)) = TRUE }}KS{ SimpleSprinklerSystem mySimpleSprinklerSystem{ isObjectProperty(SimpleSprinklerSystem.isDirectCoupledType) != TRUE isObjectProperty(SimpleSprinklerSystem.isCabinetType) != TRUE } isInstalled(PressurizedWaterSupplySystem, mySpecificFireFightingBuilding) = TRUE isInstalled(mySimpleSprinklerSystem, mySpecificFireFightingBuilding) != TRUE}
//간이스프링클러설비의 화재안전기준(nfsc 103a) 6조 (간이스프링클러설비의 방호구역·유수검지장치)Check(NFSC503A_6){ KS2 AND IF CS THEN KS1KS2{ getResult(NFSC503A_6_1)=TRUE getResult(NFSC503A_6_2)=TRUE getResult(NFSC503A_6_3)=TRUE getResult(NFSC503A_6_4)=TRUE}CS{ isObjectProperty(SimpleSprinklerSystem.isCabinetType) = TRUE}KS1{ getResult(NFSC503A_6_3)=TRUE}//간이스프링클러설비의 화재안전기준(nfsc 103a) 6조 (간이스프링클러설비의 방호구역·유수검지장치) 1호Check(NFSC503A_6_0_1){ KS}KS{ Zone myZon{ isObjectProperty(Zone.isProtectionZone) = TRUE } isObjectProperty(myZone.FloorSlab.area) < 1000 m2}//간이스프링클러설비의 화재안전기준(nfsc 103a) 6조 (간이스프링클러설비의 방호구역·유수검지장치) 2호Check(NFSC503A_6_0_2){ KS}KS{ Zone myZone{ isObjectProperty(Zone.isProtectionZone) = TRUE } isInstalled(myZone,WaterflowIndicator) = TRUE}//간이스프링클러설비의 화재안전기준(nfsc 103a) 6조 (간이스프링클러설비의 방호구역·유수검지장치) 3호 Check(NFSC503A_6_0_3){ IF (CS1 THEN KS1) OR (CS2 THEN KS2) } Zone myZone{ isObjectProperty(Zone.isProtectionZone) = TRUE } CS1{ getObjectCount(Floor.One.SimpleSprinklerHead) > 10 } KS1{ getObjectCount(Zone.One.Floor) < 2 } CS2{ getObjectCount(Floor.One.SimpleSprinklerHead) <= 10 } KS2{ getObjectCount(myZone.One.Floor) <= 3 }//간이스프링클러설비의 화재안전기준(nfsc 103a) 6조 (간이스프링클러설비의 방호구역·유수검지장치) 4호 Check(NFSC503A_6_0_4){ KS } KS{ (isExternal(WaterflowIndicator)=FALSE OR isPartitioned(WaterflowIndicator, ProtectiveWireMesh) = TRUE) 0.8m <= getObjectVerticalDistance(FloorSlab, WaterflowIndicator, a) <= 1.5m Door myDoor{ getObjectProperty(Door.width) >= 0.5m getObjectProperty(Door.height) >= 1m } hasObject(WaterflowIndicator.Space,myDoor)=TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 6조 (간이스프링클러설비의 방호구역·유수검지장치)Check(NFSC503A_6){ IF CS THEN KS} ParkingLot myParkingLot{ hasSpace(SpecificFireFightingBuilding, ParkingLot) = TRUE }CS{ isInstalled(SimpleSprinklerSystem, SpecificFireFightingBuilding) = TRUE}KS{ getObjectProperty(SprinklerSystem.type) != "WetPipeSprinklerSystem"}
//간이스프링클러설비의 화재안전기준(nfsc 103a) 7조 ( 제어반 ) Check(NFSC503A_7){ IF !CS THEN KS}CS{ isObjectProperty(SimpleSprinklerSystem.isCabinetType) = TRUE}KS{ hasObject(SimpleSprinklerSystem, ControlPanel)=TRUE getResult(NFSC503A_7_2)=TRUE}//간이스프링클러설비의 화재안전기준(nfsc 103a) 7조 ( 제어반 ) 2호Check(NFSC503A_7_0_2){ IF CS THEN KS}CS{ isObjectProperty(SimpleSprinklerSystem.isDirectCoupledType) = TRUE}KS{ getResult(NFSC103_13)=TRUE}
//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 1항 1호Check(NFSC503A_8_1_1){ IF CS THEN KS}CS{ isObjectProperty(Pipe.workingPressure) < 1.2}KS{ getResult(NFSC503A_8_1_1_가)=TRUE getResult(NFSC503A_8_1_1_나)=TRUE getResult(NFSC503A_8_1_1_다)=TRUE}//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 1항 1호 Check(NFSC503A_8_1_1_가){ KS } KS{ getObjectProperty(Pipe.Material) = "KS_D_3507" }//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 1항 1호Check(NFSC503A_8_1_1_나){ IF CS THEN KS}CS{ isObjectProperty(Pipe.systemType) = "WetPipeSprinklerSystem"}KS{ getObjectProperty(Pipe.Material) = "KS_D_5301"}//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 1항 1호Check(NFSC503A_8_1_1_다){ KS}KS{ getObjectProperty(Pipe.Material) = "KS_D_3595"}//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 1항 2호Check(NFSC503A_8_1_2){ IF CS THEN KS}CS{ isObjectProperty(Pipe.workingPressure) >= 1.2}KS{ getObjectProperty(Pipe.Material) = "KS D 3562"}//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 2항Check(NFSC503A_8_2){ IF CS THEN KS1 OR KS2}CS{ getResult(NFSC503A_8_2_2) = TRUE OR getResult(NFSC503A_8_2_3) = TRUE}KS1{ getResult(NFSC503A_8_1) = TRUE}KS2{ isObjectProperty(Pipe.isSyntheticResinForfirefighting) = TRUE}Check(NFSC103A_8_2_2){ KS}KS{ Duct myDcut{ isFireResistantStructure(Duct) = TRUE } isInstalled(Pipe, Duct) = TRUE OR isInstalled(Pipe, Pit.Inside) = TRUE}//간이스프링클러설비의 화재안전기준(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}//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 4항 1호Check(NFSC503A_8_4_1){ KS}KS{ Pipe myPipe{ isInstalled(Pump.Inlet, Pipe) = TRUE } isInstalled(myPipe,Filter) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 4항 2호Check(NFSC103A_8_4_2){ IF CS THEN KS}CS{ getObjectVerticalLocation(Pump, Tank) < 0 }KS{ Pipe myPipe{ isInstalled(Pump.Inlet, Pipe) = TRUE } isInstalled(myPipe, Pump.One) = TRUE}// 옥내소화전설비의 화재안전기준(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 }// 간이스프링클러설비의 화재안전기준(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 }//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 1항Check(NFSC503A_8_1){ getResult(NFSC503A_8_1_1)=TRUE getResult(NFSC503A_8_1_2)=TRUE}//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 3항Check(NFSC503A_8_3){ getResult(NFSC503A_8_3_2)=TRUE getResult(NFSC503A_8_3_3)=TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 3항 1호Check(NFSC103A_8_3_1){ IF (CS1 THEN KS1) OR (CS2 THEN KS2)} Pipe myPipe{ getObjectProperty(Pipe.usage) = "WaterSupplyType" isObjectProperty(myPipe.isDirectCoupledType) != TRUE } Pipe myPipe2{ getObjectProperty(Pipe.usage) = "WaterSupplyType" isObjectProperty(myPipe.isDirectCoupledType) = TRUE }CS1{ isExist(myPipe) = TRUE}KS1{ isObjectProperty(myPipe.isShared) = FALSE}CS2{ isExist(myPipe2) = TRUE}KS2{ isObjectProperty(myPipe.isShared) = FALSE getObjectProperty(Pipe.diameter) >= 32mm}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 3항 2호Check(NFSC503A_8_3_2){ KS2 AND IF CS THEN KS1}KS2{ Valve myValve{ isObjectProperty(Valve.isShutoffValve)=TRUE } isObjectProperty(myValve.isIndicatingValve) = TRUE}CS{ Pipe myPipe{ isInstalled(Pipe, Pump.Inlet) = TRUE } isInstalled(myValve, myPipe) = TRUE}KS1{ isObjectProperty(myValve.isIndicatingValve) = TRUE isObjectProperty(myValve.isButterflyValve) = TRUE}//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 3항 3호Check(NFSC503A_8_3_3){ getResult(NFSC503A_*_1) = TRUE}//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 4항Check(NFSC503A_8_4){ IF CS THEN KS }CS{ isInstalled(Pump.Inlet, Pipe) = TRUE}KS{ getResult(NFSC503A_8_4_1) = TRUE getResult(NFSC503A_8_4_2) = TRUE}//간이스프링클러설비의 화재안전기준(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}//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 6항 Check(NFSC503A_8_6){ getResult(NFSC503A_8_6_1) = TRUE getResult(NFSC503A_8_6_2) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 7항 Check(NFSC503A_8_7){ KS } KS{ Valve myValve1{ isObjectProperty(Valve.isCheckValve) = TRUE } PP = isObjectProperty(Pump.shutoffPressure) Valve myValve2{ isObjectProperty(Valve.isReliefValve) = TRUE isObjectProperty(Valve.reliefPressure) < PP } isInstalledInOrder(myValve1, Pipe, Pump) = TRUE isObjectProperty(Pipe.diameter) >= 20mm isInstalled(myValve2, Pipe) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 9항Check(NFSC503A_8_9){ KS}KS{ getResult(NFSC503A_8_9_1) = TRUE getResult(NFSC503A_8_9_2) = TRUE getResult(NFSC503A_8_9_3) = TRUE}}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 9항 1호Check(NFSC103A_8_9_1){ KS}KS{ isObjectProperty(Pipe.isBranchLines) = TRUE isObjectProperty(Pipe.hasTournamentArragement) = FALSE}// 간이스프링클러설비의 화재안전기준(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 }9항 3호Check(NFSC503A_8_9_3){ IF CS THEN KS} Pipe myPipe1{ isObjectProperty(Pipe.isBranchLines) = TRUE } Pipe myPipe2{ isObjectProperty(Pipe.isFlexibleTube) = TRUE }CS{ isInstalledInOrder(myPipe1, myPipe2, Head) = TRUE}KS{ getResult(NFSC503_10_3) = TRUE}// 간이스프링클러설비의 화재안전기준(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 }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 11항Check(NFSC503A_8_11_1){ IF (CS1 AND CS2) THEN KS}CS{ isObjectProperty(WaterflowIndicator.type) = "PreactionWaterflowIndicator" isObjectProperty(WaterflowIndicator.systemType) = "SimpleSprinklerSystem" }KS{ getResult(NFSC503A_8_11_1) = TRUE getResult(NFSC503A_8_11_2) = TRUE}11항 1호 Check(NFSC503A_8_11_1){ KS } KS{ Valve myValve{ isObjectProperty(Valve.isIndicatingValve) = TRUE } Pipe myPipe{ isObjectProperty(Pipe.isSecondaryPipe) = TRUE } isInstalled(myValve, myPipe) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 11항 2호Check(NFSC503A_8_11_2){ IF CS THEN KS}CS{ Valve myValve{ isObjectProperty(Valve.isIndicatingValve) = TRUE } WaterflowIndicator myWaterflowIndicator{isObjectProperty(WaterflowIndicator.type) = "PreactionWaterflowIndicator" } isInstalledInOrder(myValve, Pipe, myWaterflowIndicator) = TRUE}KS{ getResult(NFSC503A_8_11_2_가) = TRUE getResult(NFSC503A_8_11_2_나) = TRUE}// 간이스프링클러설비의 화재안전기준(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}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 11항 2호 나목Check(NFSC503A_8_11_2_나){ KS}KS{ isInstalled(AutomaticDrainSystem, Pipe) = TRUE isInstalled(PressureSwitch, Pipe) = TRUE} // 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 12항 Check(NFSC503A_8_12){ IF !CS THEN KS } CS{ WaterflowIndicator myWaterflowIndicator{ isObjectProperty(WaterflowIndicator.type) = "PreactionWaterflowIndicator" } isInstalled(myWaterflowIndicator, SimpleSprinklerSystem) = TRUE } KS{ getResult(NFSC503A_8_12_1) = TRUE getResult(NFSC503A_8_12_2) = TRUE getResult(NFSC503A_8_12_3) = TRUE }// 간이스프링클러설비의 화재안전기준(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 }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 12항 2호 Check(NFSC503A_8_12_2){ KS } KS{ Pipe myPipe{ isObjectProperty(Pipe.isForTest) = TRUE } Head myHead{ isObjectProperty(Head.openAndCloseType) = "OpenType" getObjectProperty(Head.systemType) = "SimpleSprinklerSystem" } BD = getObjectDiameter(NFSC503A_8_12_1.myPipe) getObjectDiameter(myPipe, a) = BD isInstalled(myHead, myPipe.End) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 12항 3호Check(NFSC503A_8_12_3){ KS}KS{ Pipe myPipe1{ isObjectProperty(Pipe.isForTest) = TRUE } Pipe myPipe2{ isObjectProperty(Pipe.usage) = "WaterDrainPipe" } isInstalled(myPipe2, myPipe1.End) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 13항Check(NFSC503A_8_13){ KS}KS{ getResult(NFSC503A_8_13_1) = TRUE getResult(NFSC503A_8_13_2) = TRUE getResult(NFSC503A_8_13_3) = TRUE}// 간이스프링클러설비의 화재안전기준(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 }//간이스프링클러설비의 화재안전기준(NFSC 103A) 8조 (배관 및 밸브) 13조 2Check(NFSC103A_8_13_2){ IF(CS1 THEN KS1) OR (CS2 THEN KS2)}Pipe myPipe1{ isObjectProperty(Pipe.isCrossMains) = TRUE}Pipe myPipe2{ isObjectProperty(Pipe.isBranchLines) = TRUE}CS1{ getObjectInterval(myPipe2) <= 4.5m}KS1{ getObjectCountInInterval(Hanger, myPipe2) >= 1 isInstalled(Hanger, myPipe1) = TRUE}CS2{ getObjectInterval(myPipe2) > 4.5m}KS2{ isInstalled(Hanger, myPipe1, b, 4.5) = TRUEgetObjectCountInInterval(Hanger, myPipe2) >= 1}//간이스프링클러설비의 화재안전기준(NFSC 103A) 8조 (배관 및 밸브) 13조 3호Check(NFSC103A_8_13_3){ KS}KS{ Pipe myPipe{ isObjectProperty(Pipe.isFeedMains) = TRUE } isInstalled(Hanger, myPipe, b, 4.5) = TRUE getObjectCountInInterval(Hanger, myPipe) >= 1}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 15항Check(NFSC503A_8_15){ KS}KS{ getResult(NFSC503A_8_15_1) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 15항 1호Check(NFSC503A_8_15_1){ KS}KS{ Pipe myPipe{ isObjectProperty(Pipe.usage) = "WaterDrainPipe" } isParallel(FloorSlab, myPipe) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 16항Check(NFSC503A_8_16){ KS}KS{ getResult(NFSC503A_8_16_1) = TRUE getResult(NFSC503A_8_16_2) = TRUE getResult(NFSC503A_8_16_3) = TRUE getResult(NFSC503A_8_16_4) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 16항 1호Check(NFSC503A_8_16_1){ IF CS THEN KS}CS{ isObjectProperty(SimpleSprinklerSystem.isDirectCoupledType) = TRUE}KS{ getResult(NFSC503A_8_16_1_가) = TRUE getResult(NFSC503A_8_16_1_나) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 16항 1호 가복 Check(NFSC503A_8_16_1_가){ KS } KS{ ShutdownEquipment myShutdownEquipment{ isObjectProperty(ShutdownEquipment.type) = "Water" } Valve myValve1{ isObjectProperty(Valve.isIndicatingValve) = TRUE } Valve myValve2{ isObjectProperty(Valve.isCheckValve) = TRUE } Valve myValve3{ isObjectProperty(Valve.isTestValve) = TRUE getObjectCount(Valve) = 2 } isInstalledInOrder(WaterGauge, myShutdownEquipment, myValve1, myValve2, PressureGauge, WaterflowIndicator, myValve3) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 16항 1호 나목Check(NFSC503A_8_16_1_나){ KS}KS{ ShutdownEquipment myShutdownEquipment{ isObjectProperty(ShutdownEquipment.type) = "Water" } Pipe myPipe{ isObjectProperty(Pipe.systemType) != "SimpleSprinklerSystem" } isInstalled(myShutdownEquipment, myPipe) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 16항 2호 Check(NFSC503A_8_16_2){ IF (!CS1 AND CS2) THEN KS } CS1{ getObjectVerticalLocation(WaterSource, Pump) > 0 } CS2{ PressurizedWaterSupplySystem myPressurizedWaterSupplySystem{ isObjectProperty(PressurizedWaterSupplySystem.supplyType) != "DirectCoupledType" OR "PressurizedTankType" } isInstalled(Pipe, myPressurizedWaterSupplySystem) = TRUE OR isInstalled(Valve, myPressurizedWaterSupplySystem) = TRUE } KS{ Tank myTank{ isObjectProperty(Tank.operationType) = "HydropneumaticTank" } Valve myValve1{ isObjectProperty(Valve.isCheckValve) = TRUE } Valve myValve2{ isObjectProperty(Valve.isIndicatingValve) = TRUE } Valve myValve3{ isObjectProperty(Valve.isTestValve) = TRUE } Pipe myPipe{ isObjectProperty(Pipe.isForTest) = TRUE } isInstalledInOrder(WaterSource, CompoundGauge | VacuumGauge, Pump | myTank, PressureGauge, myValve1, myPipe, myValve2, WaterflowIndicator, myValve3) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 16항 3호 Check(NFSC503A_8_16_3){ IF CS THEN KS } CS{ PressurizedWaterSupplySystem myPressurizedWaterSupplySystem{ isObjectProperty(PressurizedWaterSupplySystem.supplyType) = "PressurizedTankType" } isInstalled(Pipe, myPressurizedWaterSupplySystem) = TRUE OR isInstalled(Valve, myPressurizedWaterSupplySystem) = TRUE } KS{ Tank myTank{ isObjectProperty(Tank.operationType) = "PressurizedTank" } Valve myValve1{ isObjectProperty(Valve.isCheckValve) = TRUE } Valve myValve2{ isObjectProperty(Valve.isIndicatingValve) = TRUE } Valve myValve3{ isObjectProperty(Valve.isTestValve) = TRUE getObjectCount(Valve) = 2 } Pipe myPipe{ isObjectProperty(Pipe.isForTest) = TRUE } isInstalledInOrder(WaterSource, myTank, PressureGauge, myValve1, myPipe, myValve2, WaterflowIndicator, myValve3) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 16항 4호 Check(NFSC503A_8_16_4){ IF (!CS1 AND CS2) THEN KS } CS1{ getObjectVerticalLocation(WaterSource, Pump) > 0 } CS2{ SimpleSprinklerSystem mySimpleSprinklerSystem{ isObjectProperty(SimpleSprinklerSystem.isCabinetType) = TRUE } isInstalled(Pipe, mySimpleSprinklerSystem.PressurizedWaterSupplySystem) = TRUE OR isInstalled(Valve, mySimpleSprinklerSystem.PressurizedWaterSupplySystem) = TRUE } KS{ Tank myTank{ isObjectProperty(Tank.operationType) = "HydropneumaticTank" } Valve myValve1{ isObjectProperty(Valve.isCheckValve) = TRUE } Valve myValve2{ isObjectProperty(Valve.isIndicatingValve) = TRUE } Valve myValve3{ isObjectProperty(Valve.isTestValve) = TRUE getObjectCount(Valve) = 2 } isInstalledInOrder(WaterSource, CompoundGauge | VacuumGauge, Pump | myTank, PressureGauge, myValve1, myPipe, myValve2, myValve3) = TRUE }
// 간이스프링클러설비의 화재안전기준(nfsc 103a) 9조 (간이헤드) Check(NFSC503A_9){ IF CS THEN KS } CS{ isInstalled(SimpleSprinkler.Head, Building) = TRUE } KS{ getResult(NFSC503A_9_1) = TRUE getResult(NFSC503A_9_3) = TRUE getResult(NFSC503A_9_4) = TRUE getResult(NFSC503A_9_6) = TRUE getResult(NFSC503A_9_8) = TRUE getResult(NFSC503A_9_9) = TRUE }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 9조 (간이헤드) 1항Check(NFSC503A_9_1){ KS}KS{ isObjectProperty(SimpleSprinkler.Head.openAndCloseType) = "EnclosedType"}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 9조 (간이헤드) 3호 Check(NFSC503A_9_0_3){ KS } KS{ getObjectDistance(SimpleSprinkler.Head, Ceiling | CeilingCovering | PlenumSpace | Duct | Shelf) <= 2.3m }// 간이스프링클러설비의 화재안전기준(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 }/ 간이스프링클러설비의 화재안전기준(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 }// 간이스프링클러설비의 화재안전기준(nfsc 103a) 9조 (간이헤드) 8호Check(NFSC503A_9_0_8){ IF CS THEN KS}CS{ isInstalled(SimpleSprinklerSystem, SpecificFireFightingBuilding) = TRUE}KS{ getResult(NFSC503_15_1) = TRUE}// 간이스프링클러설비의 화재안전기준(nfsc 103a) 9조 (간이헤드) 9호Check(NFSC503A_9_0_9){ IF CS THEN KS}CS{ isExist(NFSC503A_6_0_7.mySpace) = TRUE}KS{ Head myHead{ isObjectProperty(Head.responseType) = "StandardResponseType" } isInstalled(myHead, NFSC503A_6_0_7.mySpace) = TRUE getResult(NFSC503_10) = TRUE}
// 간이스프링클러설비의 화재안전기준(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 }
// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 1항 1호Check(NFSC102_6_1_1){ IF CS THEN KS}CS{ isObjectProperty(Pipe.workingPressure) < 1.2}KS{ getResult(NFSC102_6_1_1_가)=TRUE getResult(NFSC102_6_1_1_나)=TRUE getResult(NFSC102_6_1_1_다)=TRUE}// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 1항 1호 가목Check(NFSC102_6_1_1_가){ KS}KS{ getObjectProperty(Pipe.Material) = "KS_D_3507"}// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 1항 1호 나목Check(NFSC102_6_1_1_나){ IF CS THEN KS}CS{ isObjectProperty(Pipe.systemType) = "WetPipeSprinklerSystem"}KS{ getObjectProperty(Pipe.Material) = "KS_D_5301"}// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 1항 1호 다목Check(NFSC102_6_1_1_다){ KS}KS{ getObjectProperty(Pipe.Material) = "KS_D_3576" OR getObjectProperty(Pipe.Material) = "KS_D_3595"}// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 1항 2호Check(NFSC102_6_1_2){ IF CS THEN KS}CS{ isObjectProperty(Pipe.workingPressure) >= 1.2}KS{ getObjectProperty(Pipe.Material) = "KS D 3562"}// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 2항 Check(NFSC102_6_2){ IF CS THEN KS1 OR KS2}CS{ getResult(NFSC102_6_2_2) = TRUE OR getResult(NFSC102_6_2_3) = TRUE}KS1{ getResult(NFSC102_6_1) = TRUE}KS2{ isObjectProperty(Pipe.isSyntheticResinForfirefighting) = TRUE}Check(NFSC102_6_2_2){ KS}KS{ Duct myDcut{ isFireResistantStructure(Duct) = TRUE } isInstalled(Pipe, Duct) = TRUE OR isInstalled(Pipe, Pit.Inside) = TRUE}// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 5항 1호Check(NFSC102_6_5_1){ KS}KS{ Pipe myPipe{ isInstalled(Pump.Inlet, Pipe) = TRUE } isInstalled(myPipe,Filter) = TRUE}// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 5항 2호Check(NFSC102_6_5_2){ IF CS THEN KS}CS{ getObjectVerticalLocation(Pump, Tank) < 0 }KS{ Pipe myPipe{ isInstalled(Pump.Inlet, Pipe) = TRUE } isInstalled(myPipe, Pump.One) = TRUE}// 옥내소화전설비의 화재안전기준(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}// 옥내소화전설비의 화재안전기준(NFSC 102) 6조 (배관 등) 8항 2호Check(NFSC102_6_8_2){ KS}KS{ Pipe myPipe{ isObjectProperty(Pipe.isForPerformanceTest) = TRUE } isInstalled(DischargeMeasuringEquipment, myPipe) = TRUE}// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 1항Check(NFSC102_6_1){ KS}KS{ getResult(NFSC102_6_1_1) = TRUE getResult(NFSC102_6_1_2) = TRUE}// 옥내소화전설비의 화재안전기준(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}// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 2항 3호Check(NFSC102_6_2_3){ KS}KS{ Pipe myPipe{ isObjectProperty(Pipe.usage) = "WaterSupplyPipe" } isObjectProperty(Pipe.isShared) = FALSE}// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 5항Check(NFSC102_6_5){ IF CS THEN KS }CS{ isInstalled(Pump.Inlet, Pipe) = TRUE}KS{ getResult(NFSC503A_8_4_1) = TRUE getResult(NFSC503A_8_4_2) = TRUE}// 옥내소화전설비의 화재안전기준(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 }// 옥내소화전설비의 화재안전기준(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 }// 옥내소화전설비의 화재안전기준(NFSC 102) 6조 (배관 등) 8항Check(NFSC102_6_8){ KS}KS{ getResult(NFSC102_6_8_1) = TRUE OR getResult(NFSC102_6_8_2) = TRUE}// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 9항Check(NFSC503A_6_9){ KS}KS{ Valve myValve1{ isObjectProperty(Valve.isCheckValve) = TRUE } PP = getObjectProperty(Pump.shutoffPressure) Valve myValve2{ isObjectProperty(Valve.isReliefVavle) = TRUE isObjectProperty(Valve.reliefPressure) < PP } isInstalledInOrder(myValve1, Pipe, Pump) = TRUE isObjectProperty(Pipe.diameter) >= 20mm isInstalled(myValve2, Pipe) = TRUE}// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 11항Check(NFSC503A_6_11){ IF CS THEN KS} Pipe myPipe{ isObjectProperty(Pipe.usage) = "WaterSupplyPipe" } Valve myValve1{ isObjectProperty(Valve.isShutoffValve) = TRUE }S{ isInstalled(myValve1,myPipe) = TRUE isInstalled(myValve1,myPort) = FALSE}KS{ isObjectProperty(myValve1.isIndicatingValve) = TRUE Valve myValve2{ isInstalled(Valve, Pump.Inlet) = TRUE } isObjectProperty(myValve2.isIndicatingValve) = TRUE isObjectProperty(myValve2.isButterflyValve) = FALSE }// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 13항Check(NFSC503A_6_13){ KS}KS{ getResult(NFSC503A_8_13_2) = TRUE getResult(NFSC503A_8_13_3) = TRUE getResult(NFSC503A_8_13_4) = TRUE}// 옥내소화전설비의 화재안전기준(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 }// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 13항 3호 Check(NFSC503A_6_13_3){ KS } KS{ Port myPort{ getObjectProperty(IndoorFireHydrantSystem.Port.typeForWater) = "FireDepartmentConnection" } getObjectVerticalDistance(Ground, myPort) >= 0.5m getObjectVerticalDistance(Ground, myPort) <= 1m }// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 13항 4호Check(NFSC503A_6_13_4){KS{ Port myPort{ isObjectProperty(Port.typeForWater) = "FireDepartmentConnection" } (isObjectProperty(myPort.shapeType)="DoubleType" isObjectProperty(myPort.diameter) = 65mm) OR isObjectProperty(myPort.shapeType) = "SingleType"}
// 옥내소화전설비의 화재안전기준(nfsc 102) 7조 (함 및 방수구 등) 2항Check(NFSC503A_7_2){ getResult(NFSC503A_7_2_1) = TRUE getResult(NFSC503A_7_2_2) = TRUE getResult(NFSC503A_7_2_3) = TRUE}// 옥내소화전설비의 화재안전기준(nfsc 102) 7조 (함 및 방수구 등) 2항 1호 Check(NFSC503A_7_2_1){ KS2 AND IF CS THEN KS1 } KS2{ isInstalled(옥내소화전방수구, SpecificFireFightingBuilding.Floor.One) = TRUE getElementDistance(SpecificFireFightingBuilding.Wall|SpecificFireFightingBuilding.Column, 옥내소화전방수구.One) <= 25m } CS{ getBuildingUsage() = "MultiUnitHouse" } KS2{ Door myDoor{ isObjectProperty(Door.isEntrance) = TRUE } Floor myFloor{ isInstalled(myDoor, Floor) = TRUE } Port myPort{ Port.typeForWater="IndoorFireHydrantDischarge" } isInstalled(myPort, myFloor.One) = TRUE }// 옥내소화전설비의 화재안전기준(nfsc 102) 7조 (함 및 방수구 등) 2항 2호 Check(NFSC503A_7_2_2){ KS } KS{ Port myPort{ Port.typeForWater="IndoorFireHydrantDischarge" } getObjectVerticalLocation(myPort, FloorSlab) > 0 getObjectVerticalDistance(FloorSlab, myPort) <= 1.5m }// 옥내소화전설비의 화재안전기준(nfsc 102) 7조 (함 및 방수구 등) 2항 3호 Check(NFSC503A_7_2_3){ IF (CS1 THEN KS1) OR (CS2 THEN KS2) } CS1{ ! HoseReelIndoorFireHydrantSystem } KS2{ isObjectPropertyt(Hose.diameter) >= 40mm } CS1{ HoseReelIndoorFireHydrantSystem } KS2{ isObjectPropertyt(Hose.diameter) >= 25mm }// 옥내소화전설비의 화재안전기준(nfsc 102) 7조 (함 및 방수구 등) 3항Check(NFSC503A_7_3){ getResult(NFSC503A_7_3_1) = TRUE}// 옥내소화전설비의 화재안전기준(nfsc 102) 7조 (함 및 방수구 등) 3항 1호 Check(NFSC503A_7_3_1){ KS } KS{ IndicatingLamp myIndicatingLamp{ isObjectProerpty(IndicatingLamp.systemType) = "IndoorFireHydrantSystem" } isInstalled(myIndicatingLamp, IndoorFireHydrantSystemCabinet.TopSurface) = TRUE }// 옥내소화전설비의 화재안전기준(NFSC 102) 7조 (함 및 방수구 등) 3항 2호 Check(NFSC102_7_3_2){ KS } KS{ isInstalled(IndicatingLamp, IndoorFireHydrantSystemCabinet, a, Top) = TRUE }
// 비상콘센트설비의 화재안전기준(nfsc 504) 4조 (전원 및 콘센트 등) 1항Check(NFSC504_4_1){ KS}KS{ getResult(NFSC504_4_1_2) = TRUE getResult(NFSC504_4_1_3) = TRUE}// 비상콘센트설비의 화재안전기준(nfsc 504) 4조 (전원 및 콘센트 등) 1항 2호Check(NFSC504_4_1_2){ IF CS THEN KS} Floor myFloor{ getFloorNumber < 0 hasSpace(Floor, SpecificFireFightingBuilding) = TRUE } Floor myFloor2{ getFloorNumber >= 0 hasSpace(Floor, SpecificFireFightingBuilding) = TRUE }CS{ (getBuildingStoriesCount() >= 7 getGrossFloorArea(myFloor2) >= 2000m2) OR getTotalFloorArea(myFloor) >= 3000m2}KS{ isInstalled(EmergencyPower, EmergencyPowerOutletSystem) = TRUE getObjectProperty(EmergencyPowerReceivingSystem.type) = "InhousePowerGenerationSystem" OR getObjectProperty(EmergencyPowerReceivingSystem.type) = "EmergencyPowerReceivingSystem"}// 비상콘센트설비의 화재안전기준(nfsc 504) 4조 (전원 및 콘센트 등) 1항 3호 Check(NFSC504_4_1_3){ IF (CS1 THEN KS1) OR (CS2 THEN KS2) } CS1{ getObjectProperty(EmergencyPowerReceivingSystem.type) = "InhousePowerGenerationSystem" } KS1{ getResult(NFSC504_4_1_3_4) = TRUE } CS2{ getObjectProperty(EmergencyPowerReceivingSystem.type) = "EmergencyPowerReceivingSystem" } KS2{ getResult(Unimplemented_NFSC_602) = TRUE }// 비상콘센트설비의 화재안전기준(nfsc 504) 4조 (전원 및 콘센트 등) 1항 3호 라목 Check(NFSC504_4_1_3_4){ KS } KS{ Room myRoom{ isInstalled(EmergencyPower, Room) = TRUE } isFirePartitioned(myRoom) = TRUE }// 비상콘센트설비의 화재안전기준(nfsc 504) 4조 (전원 및 콘센트 등) 5항Check(NFSC504_4_5){ KS}KS{ getResult(NFSC504_4_5_2) = TRUE getResult(NFSC504_4_5_3) = TRUE}// 비상콘센트설비의 화재안전기준(nfsc 504) 4조 (전원 및 콘센트 등) 5항 2호Check(NFSC504_4_5_2){ KS}KS{ getObjectVerticalLocation(FloorSlab, EmergencyPowerOutlet) >= 0.8m getObjectVerticalLocation(FloorSlab, EmergencyPowerOutlet) <= 1.5m}// 비상콘센트설비의 화재안전기준(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}// 비상콘센트설비의 화재안전기준(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}// 비상콘센트설비의 화재안전기준(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}
// 비상콘센트설비의 화재안전기준(nfsc 504) 5조 (보호함)Check(NFSC504_5){ KS}KS{ getResult(NFSC504_5_0_1) = TRUE getResult(NFSC504_5_0_3) = TRUE}// 비상콘센트설비의 화재안전기준(nfsc 504) 5조 (보호함) 1호 Check(NFSC504_5_0_1){ KS } KS{ isInstalled(Door, EmergencyPowerOutletProtectiveBox) = TRUE }// 비상콘센트설비의 화재안전기준(nfsc 504) 5조 (보호함) 3호 Check(NFSC504_5_0_3){ KS } KS{ isInstalled(IndicatingLamp, EmergencyPowerOutletProtectiveBox, a, Top) = TRUE }
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 14조 (수직풍도에 따른 배출) 1호 Check(NFSC501A_14_0_1){ KS } KS{ Duct myDuct{ isObjectProperty(Duct.isVerticalDuct)=TRUE } isFireResistantStructure(myDuct)=True getResult(REFB_3_0_1)=True OR getResult(REFB_3_0_2)=True }//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 14조 (수직풍도에 따른 배출) 3호 Check(NFSC501A_14_0_3){ KS } KS{ Duct myDuct{ isObjectProperty(Duct.isVerticalDuct)=TRUE isExternal(Duct)=False } isInstalled(Damper, myDuct.PenetrationPart)=True getResult(NFSC501A_14_0_3_가)=True getResult(NFSC501A_14_0_3_사)=True getResult(NFSC501A_14_0_3_아)=True }//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 14조 (수직풍도에 따른 배출) 3호 가목Check(NFSC501A_14_0_1_가){ KS}KS{ Damper myDamper{ getObjectProperty(Damper.functionType)="배출댐퍼" } Material myMaterial{ } getObjectProperty(myDamper.Material.name)="SteelPlate" getObjectProperty(myDamper.Material.depth)>=1.5 mm}//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 14조 (수직풍도에 따른 배출) 3호 사목 Check(NFSC501A_14_0_1_사){ KS } KS{ Duct myDuct{ isObjectProperty(Duct.isVerticalDuct)=TRUE } DOA= getObjectArea(myDuct.Opening) DISA=getObjectSectionArea(myDuct) DOA==DISA }//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 14조 (수직풍도에 따른 배출) 3호 아목 Check(NFSC501A_14_0_1_아){ KS } KS{ Duct myDuct{ isObjectProperty(Duct.isVerticalDuct)=TRUE } hasObject(myDuct, Damper)=False }
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 15조 (배출구에 따른 배출)Check(NFSC_15){ KS}KS{ getResult(NFSC_15_0_1)=True getResult(NFSC_15_0_2)=True}//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 15조 (배출구에 따른 배출) 1호Check(NFSC_15_0_1){ KS}KS{ getResult(NFSC_15_0_1_다)=True}//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 15조 (배출구에 따른 배출) 1호 다목Check(NFSC501A_15_0_1_다){ KS}KS{ getResult(NFSC501A_14_0_3_가)=True getResult(NFSC501A_14_0_3_사)=True}//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 15조 (배출구에 따른 배출) 2호 Check(NFSC501A_15_0_2){ KS } KS{ getObjectProperty(Opener.Opening.area)> Qn/2.5 }
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 17조 (급기구) Check(NFSC_17){ IF CS THEN KS}CS{ isObjectProperty(Zone.isSmokeControlZone)=True }KS{ getResult(NFSC17_3)=True}//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 17조 (급기구) 3호Check(NFSC_17_0_3){ KS}KS{ getResult(NFSC_17_0_3_자)=True}//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 17조 (급기구) 3호 자목Check(NFSC_17_0_3_자){ KS}KS{ getResult(NFSC_14_0_3_가)=True getResult(NFSC_14_0_3_아)=True}
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 18조 (급기풍도)Check(NFSC_18){ IF CS THEN KS}CS{ getObjectProperty(Duct.functionType)="급기"}KS{ getResult(NFSC_18_0_1)=True}//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 18조 (급기풍도) 1호Check(NFSC501A_18_0_1){ IF CS THEN KS}CS{ getObjectProperty(Duct.type)="Verticle"}KS{ getResult(NFSC501A_14_0_1)=True}
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 19조 (급기송풍기) Check(NFSC501A_19){ KS } KS{ getResult(NFSC501A_19_2)=True getResult(NFSC501A_19_6)=True }//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 19조 (급기송풍기) 2호 Check(NFSC501A_19_0_2){ KS } KS{ isInstalled(AirVolumeControlDevice, AirBlower)=True }// 특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 19조 (급기송풍기) 6호 Check(NFSC 501A){ IF CS THEN KS } CS{ isConnectedTo(AirBlower, Canvas) = TRUE } KS{ Canvas.Material.thermalResistance = TRUE getObjectMaterial(Canvas) != "asbestos" }
// 비상경보설비의 화재안전기준 (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// 비상경보설비의 화재안전기준(NFSC 201) 4조 (전원 및 콘센트 등 ) 5항Check(NFSC201_4_5){ IF !CS THEN KS}CS{ getObjectProperty(Floor.number) < 0}KS{ getResult(NFSC201_4_5_1) = TRUE getResult(NFSC201_4_5_2) = TRUE}// 비상경보설비의 화재안전기준(NFSC 201) 4조 (비상벨설비 또는 자동식사이렌설비) 5항 1호 Check(NFSC201_4_5_1){ KS } KS{ Switch mySwitch{ isObjectProperty(Switch.ControlSwitch) = TRUE isInstalled(Transmitter, Switch) = TRUE } getObjectVerticalLocation(FloorSlab, mySwitch) <= 1.5m getObjectVerticalLocation(FloorSlab, mySwitch) >= 0.8m }// // 스프링클러설비의 화재안전기준(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 }
// 비상경보설비의 화재안전기준(NFSC 201) 5조 (단독경보형감지기)Check(NFSC201_5){ KS}KS{ getResult(NFSC201_5_1) = TRUE getResult(NFSC201_5_2) = TRUE getResult(NFSC201_5_4) = TRUE}// 비상경보설비의 화재안전기준(NFSC 201) 5조 (단독경보형감지기) 1호Check(NFSC201_5_0_1){ IF (CS1 THEN KS1) OR (CS2 THEN KS2)}CS1{ Room myRoom{ getFloorArea(Room) <= 150m2 } Room myRoom2{ isAdjacent(myRoom, Room) = TRUE } getFloorArea(myRoom2) <= 30m2}KS1{ Room myRoom{ getFloorArea(Room) <= 150m2 } Room myRoom2{ isAdjacent(myRoom, Room) = TRUE } SelfcontainedTypeFireAlarmDevice mySelfcontainedTypeFireAlarmDevice{ hasSpace(myRoom, SelfcontainedTypeFireAlarmDevice) = TRUE } isExist(mySelfcontainedTypeFireAlarmDevice) = TRUE}CS2{ Room myRoom{ getFloorArea(Room) > 150m2 } Room myRoom2{ isAdjacent(myRoom, Room) = TRUE } getFloorArea(myRoom2) <= 30m2}KS2{ Room myRoom{ getFloorArea(Room) > 150m2 } Room myRoom2{ isAdjacent(myRoom, Room) = TRUE }Sensor mySensor{isObjectProperty(Sensor.isSelfcontainedTypeFireAlarmDevice) = TRUE hasSpace(myRoom, Sensor ) = TRUE} isInstalled(myRoom, mySelfcontainedTypeFireAlarmDevice, c, 150m2) = TRUE}// 비상경보설비의 화재안전기준(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}
자동화재탐지설비의 화재안전기준(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 }// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 10호Check(NFSC203_7_3_10){ KS}KS{ getResult(NFSC203_7_3_10_1) = TRUE getResult(NFSC203_7_3_10_2) = TRUE getResult(NFSC203_7_3_10_5) = TRUE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 10호 가목 Check(NFSC203_7_3_10_가){ IF (CS1 THEN KS1) OR (CS2 THEN KS2) } Sensor mySensor1{ getObjectProperty(Sensor.type) = "Type1" OR getObjectProperty(Sensor.type) = "Type2" } Sensor mySensor2{ isObjectProperty(Sensor.type) = "Type3" } CS1{ getObjectVerticalDistance(FloorSlab, Sensor) < 4m } KS1{ isInstalled(mySensor1, FloorSlab.Space, C, 150) = TRUE) OR isInstalled(mySensor2, FloorSlab.Space, C, 50) = TRUE) } CS2{ getObjectVerticalDistance(FloorSlab, Sensor) >= 4m getObjectVerticalDistance(FloorSlab, Sensor) < 20m } KS2{ isInstalled(mySensor1, FloorSlab.Space, C, 75) = TRUE) }// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 10호 나목Check(NFSC203_7_3_10_2){ IF (CS1 THEN KS1) OR (CS2 THEN KS2)}CS1{ hasSpace(Corridor, SmokeSensor) = TRUE OR hasSpace(Passage, SmokeSensor) = TRUE}KS1{ getObjectInterval(SmokeSensor) <= 30m}CS2{ hasSpace(Stair, SmokeSensor) = TRUE OR hasSpace(Ramp, SmokeSensor) = TRUE}KS2{ getObjectInterval(SmokeSensor) <= 15m}// 자동화재탐지설비의 화재안전기준(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}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 11호 Check(NFSC203_7_3_11){ IF (CS1 THEN KS1) OR (CS2 THEN KS2) OR (CS3 THEN KS3) } CS1{ getObjectProperty(Sensor.isIntegratedType) = "HeatIntegratedType" } KS1{ getResult(NFSC203_7_3_3) = TRUE OR getResult(NFSC203_7_3_9) = TRUE } CS2{ getObjectProperty(Sensor.isIntegratedType) = "SmokeIntegratedType" } KS2{ getResult(NFSC203_7_3_10) = TRUE } CS3{ getObjectProperty(Sensor.isIntegratedType) = "HeatAndSmokeIntegratedType" } KS3{ getResult(NFSC203_7_3_5) = TRUE OR (getResult(NFSC203_7_3_10_나) = TRUE OR getResult(NFSC203_7_3_10_마) = TRUE) }// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 12호Check(NFSC203_7_3_12){ KS}KS{ getResult(NFSC203_7_3_12_2) = TRUE getResult(NFSC203_7_3_12_3) = TRUE getResult(NFSC203_7_3_12_4) = TRUE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 12호 라목 Check(NFSC203_7_3_12_라){ IF (CS1 THEN KS1 AND KS2) OR (!CS1 THEN KS3 AND KS4) } Zone myZone{ isObjectProperty(Zone.isDetectionZone) = TRUE } Sensor mySensor1{ getObjectProperty(Sensor.type) = "Type1" } Sensor mySensor2{ getObjectProperty(Sensor.type) = "Type2" } CS1{ isFireResistantStructure(myZone.Wall) = TRUE isFireResistantStructure(myZone.Column) = TRUE } KS1{ getElementDistance(mySensor1, myZone.Wall) <= 4.5m getElementDistance(mySensor1, myZone.Column) <= 4.5m } KS2{ getElementDistance(mySensor2, myZone.Wall) <= 3m getElementDistance(mySensor2, myZone.Column) <= 3m } KS3{ getElementDistance(mySensor1, myZone.Wall) <= 3m getElementDistance(mySensor1, myZone.Column) <= 3m } KS4{ getElementDistance(mySensor2, myZone.Wall) <= 1m getElementDistance(mySensor2, myZone.Column) <= 1m }// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 13호Check(NFSC203_7_3_13){ KS}KS{ getResult(NFSC203_7_3_13_4) = TRUE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 13호 라목Check(NFSC203_7_3_13_라){ IF CS THEN KS}CS{ isInstalled(Sensor, Ceiling) = TRUE}KS{ 객체설치방향(Sensor, FloorSlab) = TRUE}// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 15호Check(NFSC203_7_3_15){ KS}KS{ getResult(NFSC203_7_3_15_1) = TRUE getResult(NFSC203_7_3_15_2) = TRUE getResult(NFSC203_7_3_15_3) = TRUE getResult(NFSC203_7_3_15_4) = TRUE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 15호 다목Check(NFSC203_7_3_15_다){ KS}KS{ Wall myWall{ isInstalled(Sensor.LightReceivingElement, Wall) = TRUE isInstalled(Sensor.LightSendingElement , Wall) = TRUE } getElementDistance(Sensor, myWall) <= 1m}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 4항Check(NFSC203_7_4){ IF CS THEN KS}CS{ getResult(NFSC203_7_4_1) = TRUE OR getResult(NFSC203_7_4_2) = TRUE}KS{ Sensor mySensor1{ getObjectProperty(Sensor.sensingMode) = "PhotoelectricType" getObjectProperty(Sensor.sensingRange) = "SeparateType" } Sensor mySensor2{ getObjectProperty(Sensor.sensingMode) = "PhotoelectricType" getObjectProperty(Sensor.sensingRange) = "AspiratingType" } isInstalled(mySensor1) = TRUE OR isInstalled(mySensor2) = TRUE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 4항 1호Check(NFSC203_7_4_1){ IF CS THEN KS}CS{ getBuildingUsage() = "ChemistryFactory" OR getBuildingUsage() = "Hangar" OR getBuildingUsage() = "Smelter"}KS{ Sensor mySensor1{ getObjectProperty(Sensor.sensingMode) = "PhotoelectricType" getObjectProperty(Sensor.sensingRange) = "SeparateType" } isInstalled(mySensor1) = TRUE OR isInstalled(FlameSensor) = TRUE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 4항 2호Check(NFSC203_7_4_2){ IF CS THEN KS}CS{ getSpaceUsage() = "ComputerRoom" OR getBuildingUsage() = "SemiconductorFactory"}KS{ Sensor mySensor1{ getObjectProperty(Sensor.sensingMode) = "PhotoelectricType" getObjectProperty(Sensor.sensingRange) = "AspiratingType" } isInstalled(mySensor1) = TRUE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 5항Check(NFSC203_7_5){ KS}KS{ getResult(NFSC203_7_5_1) = TRUE OR getResult(NFSC203_7_5_2) = TRUE OR getResult(NFSC203_7_5_5) = TRUE OR getResult(NFSC203_7_5_6) = TRUE OR getResult(NFSC203_7_5_8) = TRUE OR getResult(NFSC203_7_5_9) = TRUE}자동화재탐지설비의 화재안전기준(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}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 5항 5호Check(NFSC203_7_5_5){ IF CS THEN KS}CS{ Space mySpace1{ getSpaceUsage() = "Toliet" } Space mySpace2{ getSpaceUsage() = "Bathoroom" } isInstalled(mySpace1, mySpace2) = TRUE KS{ isInstalled(Sensor) = FALSE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 5항 6호Check(NFSC203_7_5_6){ IF CS THEN KS}CS{ Duct myDuct{ isObjectProperty(Duct.isPipeDuct) = TRUE } isFirePartition(myDuct, 2층) = TRUE OR isObjectProperty(Duct.horizontalSectionalArea) <= 5m2KS{ isInstalled(Sensor) = FALSE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 5항 8호Check(NFSC203_7_5_6){ IF CS THEN KS}CS{ Space mySpace{ isExternal(Space) = FALSE } (mySpace.volume) <= 20m3}KS{ isInstalled(Sensor) = FALSE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 6항 Check(NFSC203_7_6){ IF CS THEN KS}CS{ isInstalled(Sensor, Underground) = TRUE}KS{ getResult(NFSC203_7_1_1) = TRUE OR getResult(NFSC203_7_1_2) = TRUE OR getResult(NFSC203_7_1_3) = TRUE OR getResult(NFSC203_7_1_4) = TRUE OR getResult(NFSC203_7_1_5) = TRUE OR getResult(NFSC203_7_1_6) = TRUE OR getResult(NFSC203_7_1_7) = TRUE OR getResult(NFSC203_7_1_8) = TRUE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 1항 Check(NFSC203_7_1){ IF (CS1 THEN KS1) OR (CS2 THEN KS2) OR (CS3 THEN KS3) OR (CS4 THEN KS4) OR (CS5 THEN KS5)} Sensor mySensor1{ getObjectProperty(Sensor.sensingMode) = "DifferentialTemperatureType" getObjectProperty(Sensor.sensingRange) = "LineType" } Sensor mySensor2{ getObjectProperty(Sensor.sensingMode) = "CompensationType" getObjectProperty(Sensor.sensingRange) = "SpotType" } Sensor mySensor3{ getObjectProperty(Sensor.sensingMode) = "ConstantTemperatureType" (getObjectProperty(Sensor.sensingRange) = "SpotType" OR getObjectProperty(Sensor.lineTypeEnum) = "LineType") } Sensor mySensor4{ getObjectProperty(Sensor.sensingMode) = "ionizationType" } Sensor mySensor5{ getObjectProperty(Sensor.sensingMode) = "PhotoelectricType" (getObjectProperty(Sensor.sensingRange) = "SpotType" OR getObjectProperty(Sensor.sensingRange) = "SeparateType" OR getObjectProperty(Sensor.sensingRange) = "AspiratingType") } Sensor mySensor6{ getObjectProperty(Sensor.integratedType) = "HeatIntegratedType" } Sensor mySensor7{ getObjectProperty(Sensor.integratedType) = "SmokeIntegratedType" } Sensor mySensor8{ getObjectProperty(Sensor.integratedType) = "HeatAndSmokeIntegratedType" } } CS1{ getObjectVerticalDistance(FloorSlab, Sensor) < 4m}KS1{ (isObjectProperty(mySensor1.sensingRange) = "SpotType" isInstalled(mySensor1) = TRUE) OR isInstalled(mySensor2) = TRUE OR isInstalled(mySensor3) = TRUE OR isInstalled(mySensor4) = TRUE OR isInstalled(mySensor5) = TRUE OR isInstalled(mySensor6) = TRUE OR isInstalled(mySensor7) = TRUE OR isInstalled(mySensor8) = TRUE OR isInstalled(FlameSensor) = TRUE}CS2{ getObjectVerticalDistance(FloorSlab, Sensor) >= 4m getObjectVerticalDistance(FloorSlab, Sensor) < 8m}KS2{ (isObjectProperty(mySensor1.sensingRange) = "SpotType" isInstalled(mySensor1) = TRUE) OR isInstalled(mySensor2) = TRUE OR ((getObjectProperty(Sensor.type) = "SpecialType" OR getObjectProperty(Sensor.type) = "Type1") isInstalled(mySensor3) = TRUE) OR ((getObjectProperty(Sensor.type) = "Type1" OR getObjectProperty(Sensor.type) = "Type2")isInstalled(mySensor4) = TRUE) OR ((getObjectProperty(Sensor.type) = "Type1" OR getObjectProperty(Sensor.type) = "Type2") isInstalled(mySensor5) = TRUE) OR isInstalled(mySensor6) = TRUE OR isInstalled(mySensor7) = TRUE OR isInstalled(mySensor8) = TRUE OR isInstalled(FlameSensor) = TRUE}CS3{ getObjectVerticalDistance(FloorSlab, Sensor) >= 8m getObjectVerticalDistance(FloorSlab, Sensor) < 15m}KS3{ isInstalled(mySensor1) = TRUE OR ((getObjectProperty(Sensor.type) = "Type1" OR getObjectProperty(Sensor.type) = "Type2")isInstalled(mySensor4) = TRUE) OR ((getObjectProperty(Sensor.type) = "Type1" OR getObjectProperty(Sensor.type) = "Type2") isInstalled(mySensor5) = TRUE) OR isInstalled(mySensor7) = TRUE OR isInstalled(FlameSensor) = TRUE}CS4{ getObjectVerticalDistance(FloorSlab, Sensor) >= 15m getObjectVerticalDistance(FloorSlab, Sensor) < 20m}KS4{ ((getObjectProperty(Sensor.type) = "Type1" isInstalled(mySensor4) = TRUE) OR (getObjectProperty(Sensor.type) = "Type1" isInstalled(mySensor5) = TRUE) OR isInstalled(mySensor7) = TRUE OR isInstalled(FlameSensor) = TRUE}CS5{ getObjectVerticalDistance(FloorSlab, Sensor) >= 20m}KS5{ Sensor mySensor9{ getObjectProperty(Sensor.sensingMode) = "PhotoelectricType" (getObjectProperty(Sensor.sensingRange) = "SeparateType" OR getObjectProperty(Sensor.sensingRange) = "AspiratingType") getObjectProperty(Sensor.operationMode) = "Analog"isInstalled(mySensor5) = TRUE } isInstalled(mySensor9) = TRUE OR isInstalled(FlameSensor) = TRUE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 1항 1호Check(NFSC203_7_1_1){ KS}KS{ getObject(FlameSensor)}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 1항 2호 Check(NFSC203_7_1_2){ KS } KS{ Sensor mySensor{ getObjectProperty(Sensor.sensingMode) = "ConstantTemperatureType" getObjectProperty(Sensor.sensingRange) = "LineType" } getObject(mySensor) }자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 1항 3호 Check(NFSC203_7_1_3){ KS } KS{ Sensor mySensor{ getObjectProperty(Sensor.sensingRange) = "LineType" } getObject(mySensor) }자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 1항 4호 Check(NFSC203_7_1_4){ KS } KS{ Sensor mySensor{ isObjectProperty(Sensor.isIntegratedType) = TRUE } }자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 1항 5호 Check(NFSC203_7_1_5){ KS } KS{ Sensor mySensor{ getObjectProperty(Sensor.sensingMode) = "PhotoelectricType" getObjectProperty(Sensor.sensingRange) = "SeparateType" } getObject(mySensor) }자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 1항 6호 Check(NFSC203_7_3_6){ KS } KS{ Sensor mySensor{ getObjectProperty(Sensor.OperationMode.) = "Analog" } getObject(mySensor) = TRUE자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 1항 7호 Check(NFSC203_7_1_7){ KS } KS{ Sensor mySensor{ getObjectProperty(Sensor.OperationMode.) = "MultiSignal" } getObject(mySensor) = TRUE자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 1항 8호 Check(NFSC203_7_1_8){ KS } KS{ Sensor mySensor{ getObjectProperty(Sensor.operationMode) = "Accumulation" } getObject(mySensor) = TRUE// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 2항Check(NFSC203_7_2){ IF CS THEN KS} Sensor mySensor{ getResult(NFSC203_7_1_1) = TRUE OR getResult(NFSC203_7_1_2) = TRUE OR getResult(NFSC203_7_1_3) = TRUE OR getResult(NFSC203_7_1_4) = TRUE OR getResult(NFSC203_7_1_5) = TRUE OR getResult(NFSC203_7_1_6) = TRUE OR getResult(NFSC203_7_1_7) = TRUE OR getResult(NFSC203_7_1_8) = TRUE }CS{ isInstalled(mySensor) = FALSE getResult(NFSC203_7_2_1) = TRUE OR getResult(NFSC203_7_2_2) = TRUE OR getResult(NFSC203_7_2_3) = TRUE}KS{ isInstalled(SmokeSensor) = TRUE}// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 2항 1호Check(NFSC203_7_2_1){ KS}KS{ Ramp myRamp{ getObjectProperty(Ramp.length) >= 15m } isInstalled(SmokeSensor, Stair) = TRUE isInstalled(SmokeSensor, myRamp) = TRUE}// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 2항 2호Check(NFSC203_7_2_2){ KS}KS{ Corridor myCorridor{ getObjectProperty(Corridor.length) >= 30m } isInstalled(SmokeSensor, myCorridor) = TRUE}// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 2항 2호Check(NFSC203_7_2_3){ IF CS THEN KS}CS{ Pipe myPipe{ isObjectProperty(Pit.isPipePit) = TRUE } Space mySace{ getSpaceUsage(Space) = "ElevatorTractionMachineRoom" OR isInstalled(LinenChute,Space) = TRUE OR isInstalled(myPipe,Space) = TRUE OR isInstalled(Duct,Space) = TRUE }}KS{ isInstalled(SmokeSensor,mySpace) = TRUE}// 자동화재탐지설비의 화재안전기준(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}// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항Check(NFSC203_7_3){ KS}KS{ getResult(NFSC203_7_3_1) = TRUE getResult(NFSC203_7_3_2) = TRUE getResult(NFSC203_7_3_5) = TRUE getResult(NFSC203_7_3_6) = TRUE getResult(NFSC203_7_3_7) = TRUE getResult(NFSC203_7_3_8) = TRUE getResult(NFSC203_7_3_9) = TRUE getResult(NFSC203_7_3_10) = TRUE getResult(NFSC203_7_3_11) = TRUE getResult(NFSC203_7_3_12) = TRUE getResult(NFSC203_7_3_13) = TRUE getResult(NFSC203_7_3_15) = TRUE}// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 1호Check(NFSC203_7_3_1){ KS}KS{ getObjectDistance(Sensor, ) >= 1.5m}//연결살수설비의 화재안전기준(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}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 5호 Check(NFSC203_7_3_5){ IF CS1 AND CS2 THEN KS } Sensor mySensor1{ getObjectProperty(Sensor.sensingMode) = "DifferentialTemperatureType" getObjectProperty(Sensor.sensingRange) = "SpotType" } Sensor mySensor2{ getObjectProperty(Sensor.sensingMode) = "CompensationType" getObjectProperty(Sensor.sensingRange) = "SpotType" } Sensor mySensor3{ getObjectProperty(Sensor.sensingMode) = "ConstantTemperatureType" getObjectProperty(Sensor.sensingRange) = "SpotType" } CS1{ getElementDistance(FloorSlab, Sensor) < 4m } CS2{ isFireResistantStructure(SpecificFireFightingBuilding.MainStructuralPart) = TRUE } CS3{ getElementDistance(FloorSlab, Sensor) < 8m getElementDistance(FloorSlab, Sensor) >= 4m } KS{ isObjectProperty(mySensor1.type) = "Type1" isInstalled(mySensor1, FloorSlab, 90) = TRUE }자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 6호 Check(NFSC203_7_3_6){ KS } KS{ Sensor mySensor{ getObjectProperty(Sensor.sensingRange) = "SpotType" } getObjectGradient(FloorSlab, mySensor) < 45 }자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 6호 Check(NFSC203_7_3_7){ IF CS THEN KS } CS{ Sensor mySensor{ getObjectProperty(Sensor.lineTypeEnum) = "ThermopneumaticTube" getObjectProperty(Sensor.sensingMode) = "DifferentialTemperatureType" getObjectProperty(Sensor.sensingRange) = "SpotType" } isInstalled(mySensor) = TRUE } KS{ getResult(NFSC_7_3_7_1) = TRUE getResult(NFSC_7_3_7_2) = TRUE getResult(NFSC_7_3_7_3) = TRUE getResult(NFSC_7_3_7_4) = TRUE getResult(NFSC_7_3_7_5) = TRUE getResult(NFSC_7_3_7_6) = TRUE }자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 7호 가목Check(NFSC203_7_3_7_가){ KS}KS{ Pipe myPipe{ isObjectProperty(Pipe.isForAir) = TRUE } Zone myZone{ isObjectProperty(Zone.isDetectionZone) = TRUE } hasObject(myZone, myPipe) = TRUE getObjectLength(myZone.One.myPipe) >= 20m}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 7호 가목Check(NFSC203_7_3_7_가){ KS3 AND IF !CS THEN KS1 ELSE KS2} Pipe myPipe{ isObjectProperty(Pipe.isForAir) = TRUE } Zone myZone{ isObjectProperty(Zone.isDetectionZone) = TRUE }KS3{ getElementDistance(myPipe, myZone.Wall) <= 1.5m getElementDistance(myPipe, myZone.Column) <= 1.5m}CS{ isFireResistantStructure(SpecificFireFightingBuilding.MainStructuralPart) = TRUE }KS1{ getObjectInterval(myPipe) <= 6m}KS2{ getObjectInterval(myPipe) <= 6m}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 7호 다목 Check(NFSC203_7_3_7_다){ KS } Pipe myPipe{ isObjectProperty(Pipe.isForAir) = TRUE } isObjectProperty(myPipe.isDiverged) = FALSE자동화재탐지설비의 화재안전기준(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}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 7호 마목Check(NFSC203_7_3_7_마){ KS}KS{ isInstalled(DetectingElement, Wall) = TRUE getObjectGradient(Wall, DetectingElement) < 5}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 7호 바목Check(NFSC203_7_3_7_바){ KS}KS{ getObjectVerticalDistance(FloorSlab, DetectingElement) >= 0.8m getObjectVerticalDistance(FloorSlab, DetectingElement) <= 1.5m}}// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 8호Check(NFSC203_7_3_8){ KS}KS{ getResult(NFSC203_7_3_8_1) = TRUE getResult(NFSC203_7_3_8_2) = TRUE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 8호 가목Check(NFSC203_7_3_8_가){ IF !CS THEN KS1 AND K2 ELSE THEN KS3 AND KS4} Zone myZone{ isObjectProperty(Zone.isDetectionZone) = TRUE }CS1{ isFireResistantStructure(SpecificFireFightingBuilding.MainStructuralPart) = TRUE) KS1{ isInstalled(ThermocoupleElement , myZone.Floor, c, 18) = TRUE}KS2{ isObjectProperty(SpecificFireFightingBuilding.myZone.Floor.area) <= 72m2 getObjectCount(myZone) >= 4}KS3{ isInstalled(ThermocoupleElement , myZone.Floor, c, 22) = TRUE}KS4{ isObjectProperty(SpecificFireFightingBuilding.myZone.Floor.area) <= 88m2 getObjectCount(myZone) >= 4}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 8호 나목Check(NFSC203_7_3_8_나){ KS}KS{ isConnectedTo(ThermocoupleElement, DetectingElement.One) = TRUE getObjectCount(ThermocoupleElement) <= 20}// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 9호Check(NFSC203_7_3_9){ KS}KS{ getResult(NFSC203_7_3_9_1) = TRUE getResult(NFSC203_7_3_9_2) = TRUE}자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 5호Check(NFSC203_7_3_5){ Sensor mySensor1{ getObjectProperty(Sensor.type) = "Type1" } Sensor mySensor2{ isObjectProperty(Sensor.type) = "Type2" }IF {isFireResistantStructure(SpecificFireFightingBuilding) = TRUE)AND {isInstalled(Sensor, FloorSlab) = TRUE getObjectVerticalDistance(FloorSlab, Sensor) < 8m}THEN{(FA = 65isInstalled(mySensor1, FloorSlab.Space, C, FA) = TRUE)OR (FA = 36 isInstalled(mySensor2, FloorSlab.Space, C, FA) = TRUE)IF getObjectArea(Sensor.FloorSlab) <= FATHEN getObjectCount(Sensor) = 1ELSE IF getObjectArea(Sensor.FloorSlab) <= 2*FATHEN getObjectCount(Sensor) >= 2}ELSE IF{isFireResistantStructure(SpecificFireFightingBuilding) = TRUE)AND {isInstalled(Sensor, FloorSlab) = TRUEANDgetObjectVerticalDistance(FloorSlab, Sensor) >= 8mANDgetObjectVerticalDistance(FloorSlab, Sensor) < 15mTHEN{(FA = 50isInstalled(mySensor1, FloorSlab.Space, C, FA) = TRUE)OR (FA = 36 isInstalled(mySensor2, FloorSlab.Space, C, FA) = TRUE)IF getObjectArea(Sensor.FloorSlab) <= 2*FATHEN getObjectCount(Sensor) >= 2}ELSE IF{isFireResistantStructure(SpecificFireFightingBuilding) != TRUE)AND {isInstalled(Sensor, FloorSlab) = TRUE getObjectVerticalLocation(FloorSlab, Sensor) < 8m}THEN{(FA = 40isInstalled(mySensor1, FloorSlab.Space, C, FA) = TRUE)OR (FA = 23 isInstalled(mySensor2, FloorSlab.Space, C, FA) = TRUE)IF getObjectArea(Sensor.FloorSlab) <= FATHEN getObjectCount(Sensor) = 1ELSE IF getObjectArea(Sensor.FloorSlab) <= 2*FATHEN getObjectCount(Sensor) >= 2}ELSE IF{isFireResistantStructure(SpecificFireFightingBuilding) != TRUE)AND getObjectVerticalDistance(FloorSlab, Sensor) >= 8mANDgetObjectVerticalDistance(FloorSlab, Sensor) < 15m}THEN{(FA = 30isInstalled(mySensor1, FloorSlab.Space, C, FA) = TRUE)OR (FA = 23 isInstalled(mySensor2, FloorSlab.Space, C, FA) = TRUE)IF getObjectArea(Sensor.FloorSlab) <= 2*FATHEN getObjectCount(Sensor) >= 2}
//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구)Check(NFSC502_4){ KS}KS{ getResult(NFSC502_4_0_2)=True getResult(NFSC502_4_0_4)=True getResult(NFSC502_4_0_5)=True getResult(NFSC502_4_0_7)=True getResult(NFSC502_4_0_8)=True}//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 2호Check(NFSC502_4_0_2){ KS}KS{ getObjectVerticalDistance(Ground, FireDepartmentConnection)>=0.5 m getObjectVerticalDistance(Ground, FireDepartmentConnection)<=1 m}//연결송수관설비의 화재안전기준(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" }//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 5호 Check(NFSC502_4_0_5){ KS } KS{ Port myPort{ getObjectProperty( Port.typeForWater)="FireDepartmentConnection " getObjectProperty(Port.shapeType)="DoubleType" } getObjectDiameter(myFireDepartmentConnection)= 65 mm }//연결송수관설비의 화재안전기준(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 }//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 8호Check(NFSC502_4_0_8){ KS}KS{ getResult(NFSC502_4_0_8_가)=True getResult(NFSC502_4_0_8_나)=True}//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 8호 가목 Check(){ IF CS THEN KS } CS{ getObjectProperty(FireDepartmentConnectionSystem.dryWetType)="WetFireDepartmentConnectionSystem" } KS{ // 송수구·자동배수밸브·체크밸브의 순으로 설치할 것 }//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 8호 나목 Check(NFSC502_4_0_8_나){ IF CS THEN KS } CS{ getObjectProperty(FireDepartmentConnectionSystem.dryWetType)="DryFireDepartmentConnectionSystem" } KS{ // 송수구·자동배수밸브·체크밸브·자동배수밸브의 순으로 설치할 것 }
//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 1항Check(NFSC502_5_1){ KS}KS{ getResult(NFSC502_5_1_1)=True getResult(NFSC502_5_1_2)=True}//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 1항 1호 Check(NFSC502_5_1_1){ KS } KS{ Pipe myPipe{ Pipe.isRiser = TRUE Pipe.systemType = "FireDepartmentConnectionSystem" } getObjectDiameter(myPipe)>=100 mm }//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 1항 2호Check(NFSC502_5_1_2){ IF CS THEN KS }CS{ ( getBuildingHeight()>=31 m OR getBuildingStoriesCount()>=11 ) getBuildingUsage()="SpecificFireFightingBuilding" }KS{ getObjectProperty(FireDepartmentConnectionSystem.dryWetType)="WetFireDepartmentConnectionSystem" }//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 2항Check(NFSC502_5_2){ KS}KS{ getResult(NFSC502_5_2_1)=True OR getResult(NFSC502_5_2_2)=True}//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 2항 1호Check(NFSC502_5_2_1){ IF CS THEN KS}CS{ getObjectProperty(Pipe.workingPressure)<1.2 MPa }KS{ getResult(NFSC502_5_2_1_가)=True OR getResult(NFSC502_5_2_1_나)=True OR getResult(NFSC502_5_2_1_다)=True}//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 2항 1호 가목Check(NFSC502_5_2_1_가){ KS}KS{ getObjectMaterial(Pipe)="KSD3507"}//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 2항 1호 나목 Check(NFSC502_5_2_1_나){ IF CS THEN KS}CS{ getObjectProperty(Pipe.type)="WetPipe"}KS{ getObjectMaterial(Pipe)="KSD5301"}//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 2항 1호 다목Check(NFSC502_5_2_1){ KS}KS{ getObjectMaterial(Pipe)="KSD3576" OR getObjectMateral(Pipe)="KSD3595"}//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 2항 2호Check(NFSC502_5_2_2){ IF CS THEN KS }CS{ getObjectProperty(Pipe.workingPressure)>=1.2 MPa }KS{ getObjectMaterial(Pipe)="KSD3562" }//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 3항Check(NFSC502_5_3){ IF CS THEN KS}CS{ getResult(NFSC502_5_3_2)=True OR getResult(NFSC502_5_3_3)=True}KS{isObejctProperty(Pipe.isSyntheticResinForfirefighting)=True}//연결송수관설비의 화재안전기준(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 )}//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 4항Check(NFSC502_5_4){ IF CS THEN KS}CS2{ isObjectProperty(Pipe.systemType) = "FireDepartmentConnectionSystem"}KS{ Pipe myPipe1{ isObjectProperty(Pipe.isRiser) = TRUE getObjectProperty(Pipe.diameter) >= 100mm isObjectProperty(Pipe.systemType) = "IndoorFireHydrantSystem" } Pipe myPipe2{ isObjectProperty(Pipe.isRiser) = TRUE getObjectProperty(Pipe.diameter) >= 100mm isObjectProperty(Pipe.systemType) = "WaterSprayExtingushingSystem" } isShared(Pipe,myPipe1) = TRUE OR isShared(Pipe,myPipe2) = TRUE OR isShared(Pipe,myPipe1) != TRUE OR isShared(Pipe,myPipe2) != TRUE}//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 3항 2호Check(NFSC502_5_3_2){ KS}KS{ Duct myDuct{ isFireResistantStructure(Duct)=True } Pit myPit{ isFireResistantStructure(Pit)=True } isInstalled(Pipe, myDuct)=True OR isInstalled(Pipe, myPit)=True }
//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) Check(NFSC502_6){ KS } KS{ getResult(NFSC502_6_1)=True getResult(NFSC502_6_2)=True getResult(NFSC502_6_3)=True getResult(NFSC502_6_4)=True getResult(NFSC502_6_5)=True getResult(NFSC502_6_6)=True getResult(NFSC502_6_7)=True }연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 1호 Check(NFSC502_6_0_1){ IF !CS THEN KS } CS{ getResult(NFSC502_6_0_1_가)=True getResult(NFSC502_6_0_1_나)=True } KS{ Port myPort{ Port.typeForWater = "Delivery" } isInstalled(myPort,SpecificFireFightingBuilding)=True }//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 1호 가목Check(NFSC502_6_0_1_가){ KS}KS{ getBuildigUsage()="ApartmentHouse" getFloorNumber()=1 OR getFloorNumber()=2}//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 1호 다목 Check(NFSC502_6_0_1_다목){ KS } KS{ getBuildingUsage()!="AssemblyHall" getBuildingUsage()!="Auditorium" getBuildingUsage()!="DepartmentStore" getBuildingUsage()!="WholesaleMarket" getBuildingUsage()!="CommercialFacility" getBuildingUsage()!="Factory" getBuildingUsage()!="Warehouse" getBuildingUsage()!="UndergroundMarket" FireHydrant myFireHydrant{ isExternal(FireHydrant) = FALSE isInstalled(FireDepartmentConnection, FireHydrant)=True } isInstalled(myIndoorFireHydrant,SpecificFireFightingBuilding)=True Floor myFloor{ Floor.number>0 } Floor myFloor2{ Floor.number<0 } ( gerObjectCount(myFloor)<=4 getGrossFloorArea()<6000 m2 Floor.number>0 ) OR ( getObjectCount(myFloor)<=2 Floor.number<0 ) }//연결송수관설비의 화재안전기준(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}//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 2호 가목 Check(NFSC502_6_0_2_가){ IF CS THEN KS1 ELSE KS2 } CS{ Space mySpace{ getSpaceUsage()="UndergroundMarket" OR getFloorNumber()<0 } getFloorArea(mySpace)>3000 m2 } KS1{ getElementDistance(FireDepartmentConnectionSystem.OutLet, Wall )<=25 m getElementDistance(FireDepartmentConnectionSystem.OutLet, Column )<=25 m } KS2{ getResult(NFSC502_6_0_2_나)=True }//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 3호 Check(NFSC502_6_0_3){ IF CS1 THEN KS1 ELSE IF CS2 THEN KS2 } CS1{ Space mySpace{ getFloorNumber(Space)>=11 } isInstalled(FireDepartmentConnectionSystem.Port, mySpace)=True } KS1{ getObjectProperty(FireDepartmentConnectionSystem.Port.shapeType)="DoubleType" } CS2{ getResult(NFSC502_6_0_3_가)=True OR getResult(NFSC502_6_0_3_나)=True } KS2{ getObjectProperty(FireDepartmentConnectionSystem.Port.shapeType)="SingleType" }//연결송수관설비의 화재안전기준(nfsc502) 6조 (방수구) 3호 가목 Check(NFSC502_6_0_3_가){ KS } KS{ getFloorUsage()="ApartmentHouse" }//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 3호 나목 Check(NFSC502_6_0_3_나){ KS } KS{ isExist(SprinklerSystem)=True getObjectCount( FireDepartmentConnectionSystem.Port, Floor.One)>=2 }//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 4호 Check(NFSC502_6_0_4){ KS } KS{ getObjectVerticalDistance(FloorSlab, FireDepartmentConnectionSystem.Port.HosePort) > 0.5m OR getObjectVerticalDistance(FloorSlab, FireDepartmentConnectionSystem.Port.HosePort) <= 1m//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 5호 Check(NFSC502_6_0_5){ KS } KS{ getObjectProperty(FireDepartmentConnectionSystem.Port.isShared)= FALSE OR getObjectProperty(FireDepartmentConnectionSystem.Port.typeForWater)="IndoorFireHydrantDischarge" Port myPort{ Port.typeForWater = "Delivery" } getObjectProperty(myPortt.diameter)=65 mm }//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 7호 Check(NFSC502_6_0_7){ KS}KS{ isObjectProperty(FireDepartmentConnectionSystem.OutLet.is"개폐기능")=True}//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 2호 나목Check(NFSC502_6_0_2_가){ KS}KS{ getElementDistance(FireDepartmentConnectionSystem.OutLet, Wall )<=50 m getElementDistance(FireDepartmentConnectionSystem.OutLet, Column )<=50 m}
//연결송수관설비의 화재안전기준(NFSC 502) 7조 (방수기구함)Check(NFSC502_7){ KS}KS{ getResult(NFSC502_7_1)=True getResult(NFSC502_7_2)=True}//연결송수관설비의 화재안전기준(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.nmber//연결송수관설비의 화재안전기준(NFSC 502) 7조 (방수기구함) 2호Check(NFSC502_7_0_2){ KS}KS{ getResult(NFSC502_7_0_2_나)=True}//연결송수관설비의 화재안전기준(NFSC 502) 7조 (방수기구함) 2호 나목 Check(NFSC502_7_0_2_나){ KS } KS{ IF getObjectPropety(RadialSprayNozzle.Port.shapeType)="SingleType" THEN getObjectCount(RadialSprayNozzle)=1 ELSE IF getObjectPropety(RadialSprayNozzle.Port.shapeType)="DoubleType" getObjectCount(RadialSprayNozzle)=2 END IF }
// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 1항Check(NFSC503_4_1){ getResult(NFSC503_4_1_2)=TRUE getResult(NFSC503_4_1_3)=TRUE getResult(NFSC503_4_1_4)=TRUE getResult(NFSC503_4_1_5)=TRUE}// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 1항 2호 Check(NFSC503_4_1_2){ IF CS THEN KS } CS{ Zone myZone{ isObjectProperty(Zone.isWaterSupplyZone)=TRUE } hasObject(myZone.One,HookingUpSprinklerSystem.Head.)=TRUE getObjectCount(HookingUpSprinklerSystem.Head.) <= 10 } KS{ Port myPort{ getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem" getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" } isObjectProperty(myPort.diameter) = 65mm getObjectProperty(myPort.shapeType) = "DoubleType" }// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 1항 3호 Check(NFSC503_4_1_3){ IF !CS THEN KS } Zone myZone{ isObjectProperty(Zone.isWaterSupplyZone)=TRUE } CS{ Valve myValve{ isObjectProerpty(Valve.isSelectionValve) = TRUE } isInstalled(myValve) = TRUE hasObject(myZone,MainStructuralPart) = TRUE isFireResistantStructure(MainStructuralPart) = TRUE } KS{ Port myPort{ getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem" getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" } Head myHead{ getObjectProperty(Head.openAndCloseType) = "OpenType" } isInstalled(myPort.호스접결구, myZone.One) = TRUE }// 연결살수설비의 화재안전기준(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 }// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 3항 Check(NFSC503_4_3){ KS } KS{ Valve myValve1{ isObjectProperty(Valve.isAutomiaticDeliveryValve) = TRUE } Valve myValve2{ isObjectProperty(Valve.isCheckValve) = TRUE } isInstalled(myValve1, HookingUpSprinklerSystem) = TRUE isInstalled(myValve2, HookingUpSprinklerSystem) = TRUE getResult(NFSC503_4_3_1) = TRUE getResult(NFSC503_4_3_2) = TRUE// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 3항 1호 Check(NFSC503_4_3_1){ IF CS THEN KS } CS{ Head myHead{ getObjectProperty(Head.openAndCloseType) = "EnclosedType" } getObjectProperty(myHead.systemType) = "HookingUpSprinklerSystem" } KS{ Port myPort{ getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem" getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" } Valve myValve1{ isObjectProperty(Valve.isAutomiaticDeliveryValve) = TRUE } Valve myValve2{ isObjectProperty(Valve.isCheckValve) = TRUE } isInstalledInOrder(myPort, myValve1, myValve2) = TRUE }// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 3항 2호 Check(NFSC503_4_3_2){ IF CS THEN KS } CS{ Head myHead{ getObjectProperty(Head.openAndCloseType) = "OpenType" } getObjectProperty(myHead.systemType) = "HookingUpSprinklerSystem" } KS{ Port myPort{ getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem" getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" } Valve myValve1{ isObjectProperty(Valve.isAutomiaticDeliveryValve) = TRUE } isInstalledInOrder(myPort, myValve1) = TRUE }// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 4항Check(NFSC503_4_4){ IF CS THEN KS}CS{ Head myHead{ getObjectProperty(Head.openAndCloseType) = "OpenType" } getObjectProperty(myHead.systemType) = "HookingUpSprinklerSystem"}KS{ Zone myZone{ isObjectProperty(Zone.isWaterSupplyZone) = TRUE } Head myHead{ isInstalled(HookingUpSprinklerSystem.Head, myZone.One) = TRUE } getObjectCount(myHead) <= 10}Check(NFSC503_4_1_4){ KS } KS{ Port myPort{ getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem" getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" } getObjectVerticalDistance(Ground, myPort) >= 0.5m getObjectVerticalDistance(Ground, myPort) <= 1m }
// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 1항Check(NFSC503_5_1){ IF !CS THEN KS}CS{ getResult(NFSC503_5_1_2) = TRUE getResult(NFSC503_5_1_3) = TRUE}KS{ getObjectProperty(Pipe.Material) = "KS D 3507" OR getObjectProperty(Pipe.Material) = "KS D 3562"}// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 1항 2호Check(NFSC503_5_1_2){ KS}KS{ Duct myDcut{ isFireResistantStructure(Duct) = TRUE } isInstalled(Pipe, Duct) = TRUE OR isInstalled(Pipe, Pit.Inside) = TRUE}//연결살수설비의 화재안전기준(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 }// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 2항Check(NFSC503_5_2){ KS}KS{ getResult(NFSC503_5_2_1) = TRUE getResult(NFSC503_5_2_2) = TRUE}// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 2항 1호 Check(NFSC503_5_2_1){ IF CS THEN KS } CS{ getObjectProperty(Head.systemType) = "HookingUpSprinklerSystem" isObjectProperty(Head.isShared) = FALSE } KS{ Head myHead{ isInstalled(Head., Pipe.One) = TRUE } NH = getObjectCount(myHead) IF NH = 1 THEN getObjectDiameter(Pipe) >= 32mm ELSE IF NH = 2 THEN getObjectDiameter(Pipe) >= 40mm ELSE IF NH = 3 THEN getObjectDiameter(Pipe) >= 50mm ELSE IF NH = 4 OR NH = 5 THEN getObjectDiameter(Pipe) >= 65mm ELSE IF NH >= 6 AND HN <= 10 THEN getObjectDiameter(Pipe) >= 80mm }// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 2항 2호 Check(NFSC503_5_2_2){ IF CS THEN KS } CS{ isObjectProperty(SprinklerSystem.Head.systemType) = "HookingUpSprinklerSystem" } KS{ getResult(NFSC103_*_1) = TRUE }// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 2항 1호 Check(NFSC503_5_2_1){ IF CS THEN KS } CS{ getObjectProperty(Head.systemType) = "HookingUpSprinklerSystem" isObjectProperty(Head.isShared) = FALSE } KS{ Head myHead{ isInstalled(HookingUpSprinklerSystem.Head., Pipe.One) = TRUE } NH = getObjectCount(myHead) IF NH = 1 THEN getObjectDiameter(Pipe) >= 32mm ELSE IF NH = 2 THEN getObjectDiameter(Pipe) >= 40mm ELSE IF NH = 3 THEN getObjectDiameter(Pipe) >= 50mm ELSE IF NH = 4 OR NH = 5 THEN getObjectDiameter(Pipe) >= 65mm ELSE IF NH >= 6 AND HN <= 10 THEN getObjectDiameter(Pipe) >= 80mm }// 연결살수설비의 화재안전기준(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) }// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 4항Check(NFSC503_5_4){ IF CS THEN KS}CS{ Head myHead{ isObjectProperty(Head.openAndCloseType) = "EnclosedType" } isObjectProperty(myHead.systemType) = "HookingUpSprinklerSystem"}KS{ isInstalled(myPipe) = TRUE getResult(NFSC503_5_4_1) = TRUE getResult(NFSC503_5_4_2) = TRUE}// 연결살수설비의 화재안전기준(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}// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 4항 2호Check(NFSC503_5_4_2){ KS}KS{ Pipe myPipe1{ isObjectProperty(Pipe.isForTest) = TRUE } Pipe myPipe2{ isObjectProperty(Pipe.isBranchLines) = TRUE isFarthestDistance(myPipe1, Pipe) = TRUE } DP = getObjectDiameter(myPipe1) getObjectDiameter(myPipe2) = DP}// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 5항 Check(NFSC503_5_5){ IF CS THEN KS } CS{ Head myHead{ isObjectProperty(Head.openAndCloseType) = "OpenType" } isInstalled(myHead, HookingUpSprinklerSystem) = TRUE } KS{ Pipe myPipe{ isObjectProperty(Pipe.isFeedMains) = TRUE getObjectProperty(Pipe.systemType) = "HookingUpSprinklerSystem" } 두 객체의 기울기(myPipe, Head) >= 1/100 }// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 6항Check(NFSC503_5_6){ IF CS THEN KS} Pipe myPipe1{ isObjectProperty(Pipe.isBranchLines) = TRUE } Pipe myPipe2{ isObjectProperty(Pipe.isCrossMains) = TRUE } Pipe myPipe3{ isObjectProperty(Pipe.isRiser) = TRUE }CS{ isInstalled(myPipe1) = TRUE OR isInstalled(myPipe2) = TRUE}KS{ Head myHead{ isInstalled(Head, myPipe1.DivergedSide.One) = TRUE } isObjectProperty(myPipe1.tournamentArrangement) = FALSE getObjectCount(myHead) <= 8}// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 8항Check(NFSC503_5_6){ IF CS THEN KS} Pipe myPipe{ isObjectProperty(Pipe.usage) = "WaterSupplyPipe" } Valve myValve1{ isObjectProperty(Valve.isShutoffValve) = TRUE }CS{ isInstalled(myValve1,myPipe) = TRUE}KS{ isObjectProperty(myValve1.isIndicatingValve) = TRUE Valve myValve2{ isInstalled(Valve, Pump.Inlet) = TRUE } isObjectProperty(myValve2.isIndicatingValve) = TRUE isObjectProperty(myValve2.isButterflyValve) = FALSE } // 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 9항Check(NFSC503_5_9){ IF CS THEN KS}CS{ Pipe myPipe1{ isObjectProperty(Pipe.isCrossMains) = TRUE isObjectProperty(Pipe.systemType) = "HookingUpSprinklerSystem") } Pipe myPipe2{ isObjectProperty(Pipe.isBranchLines) = TRUE isObjectProperty(Pipe.systemType) = "HookingUpSprinklerSystem") } CleanOut myCleanOut{ isObjectProperty(CleanOut.systemType) = "HookingUpSprinklerSystem") } isInstalled(myPipe1) = TRUE OR isInstalled(myPipe2.Head) = TRUE OR (isInstalled(myCleanOut) = TRUE }KS{ getResult(NFSC503_5_9_1) = TRUE getResult(NFSC503_5_9_2) = TRUE getResult(NFSC503_5_9_3) = TRUE} // 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 9항 1호Check(NFSC503_5_9_1){ KS}KS{ Pipe myPipe1{ isObjectProperty(Pipe.isCrossMains) = TRUE isObjectProperty(Pipe.systemType) = "HookingUpSprinklerSystem" } Pipe myPipe2{ isObjectProperty(Pipe.isBranchLines) = TRUE isObjectProperty(Pipe.systemType) = "HookingUpSprinklerSystem" } (isParallel(myPipe1, myPipe2) = TRUE OR getObjectVerticalLocation(myPipe1, myPipe2) < 0) getObjectDiameter(myPipe1) >= 40mm getResult(NFSC503_5_2) = TRUE} // 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 9항 2호Check(NFSC503_5_9_2){ IF CS THEN KS}CS{ Head myHead{ isObjectProperty(Head.openAndCloseType)="EnclosedType" } isObjectProperty(myHead.systemType) = "HookingUpSprinklerSystem"}KS{ Pipe myPipe1{ isObjectProperty(Pipe.isRiser) = TRUE } Pipe myPipe2{ isObjectProperty(Pipe.isCrossMains) = TRUE } Valve myValve{ isObjectProperty(Valve.isShutoffValve) = TRUE getObjectLength(Valve) >= 40mm } getObjectProperty(myValve.Type) = "나사식" getObjectProperty(myValve.usage) = "옥내소화전 호스접결용"}// 연결살수설비의 화재안전기준(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}// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 10항Check(NFSC503_5_10){ IF CS THEN KS}CS{ isInstalled(Hanger, Pipe) = TRUE}KS{ getResult(NFSC503_5_10_1) = TRUE getResult(NFSC503_5_10_2) = TRUE getResult(NFSC503_5_10_3) = TRUE}//연결살수설비의 화재안전기준(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}//연결살수설비의 화재안전기준(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}//연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 10항 3호Check(NFSC503_5_10_3){ IF CS THEN KS}CS{ isObjectProperty(Pipe.isFeedMains)=True}Pipe myPipe2{ isObjectProperty(Pipe.isFeedMains)=True}KS{ isInstalled(Hanger, myPipe2,4.5 m)=True }
//연결살수설비의 화재안전기준(nfsc 503) 6조 (배관 등) 1항Check(NFSC503_6_1){ KS}KS{ getObjectProperty(HookingUpSprinklerSystem.Head) = "SprinklerHead"}//연결살수설비의 화재안전기준(nfsc 503) 6조 (배관 등) 2항Check(NFSC503_6_2){ KS}KS{ getResult(NFSC503_6_2_1) = TRUE getResult(NFSC503_6_2_2) = TRUE}//연결살수설비의 화재안전기준(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)}// 연결살수설비의 화재안전기준(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}//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 Check(NFSC503_6_3){ IF CS THEN KS } CS{ Head myHead{ getObjectProperty(SprinklerSystem.Head.openAndCloseType) = "EnclosedType" } isExist(myHead) = TRUE } KS{ getResult(NFSC503_6_3_2) = TRUE getResult(NFSC503_6_3_3) = TRUE getResult(NFSC503_6_3_5) = TRUE getResult(NFSC503_6_3_6) = TRUE }//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 2호Check(NFSC503_6_3_2){ KS}KS{ isVacant(SprinklerHead,a, 60) = TRUE getObjectDistance(Wall, SprinklerHead) >= 10CM}//연결살수설비의 화재안전기준(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}//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 5호 Check(NFSC503_6_3_5){ IF !CS THEN KS } CS{ getObjectProperty(SprinklerSystem.Head.shapeType) = "SideWallType" } KS{ isParallel(SprinklerSystem.Head.Deflector, SprinklerSystem.Head.AttachingToSurface) = TRUE }//연결살수설비의 화재안전기준(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 }//연결살수설비의 화재안전기준(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 }//연결살수설비의 화재안전기준(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 }//연결살수설비의 화재안전기준(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 }//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 8호 Check(NFSC503_6_3_8){ IF CS THEN KS } CS{ isObjectProperty(SprinklerSystem.type) != WetPipeSprinklerSystem (getResult(NFSC503_6_3_8_1) = FALSE OR getResult(NFSC503_6_3_8_2) = FALSE) } KS{ mySprinklerHead{ getObjectProperty(SprinklerSystem.Head.installationDirectionType) = "BottomUpType" } isExist(mySprinklerHead) = TRUE }//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 8호 가목 Check(NFSC503_6_3_8_1){ KS } KS{ Head myHead{ isObjectProperty(SprinklerSystem.Head.isDryPendent) = TRUE } isExist(mySprinklerHead) = TRUE }//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 8호 다목 Check(NFSC503_6_3_8_3){ KS } KS{ Head myHead{ getObjectProperty(SprinklerSystem.Head.openAndCloseType) = "OpenType" } isExist(myHead) = TRUE }//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 9호 Check(NFSC503_6_3_9){ IF (CS1 THEN KS1) or (CS2 THEN KS2) } CS1{ SprinklerHead mySprinklerHead{ getObjectProperty(SprinklerHead.shapeType) = "SideWallType" } isExist(mySprinklerHead) = TRUE getObjectWidth(Room) < 4.5m OR getObjectWidth(Room) > 9m } KS1{ SprinklerHead mySprinklerHead{ getObjectProperty(SprinklerHead.shapeType) = "SideWallType" } getObjectWidth(mySprinklerHead, c) < 3.6m } CS2{ Head myHead{ getObjectProperty(SprinklerSystem.Head.shapeType) = "SideWallType" } isExist(mySprinklerHead) = TRUE getObjectWidth(Room) >= 4.5m OR getObjectWidth(Room) <= 9m } KS2{ Head myHead{ getObjectProperty(SprinklerSystem.Head.shapeType) = "SideWallType" } isParallel(mySprinklerHead, Wall) = TRUE }//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 4항Check(NFSC503_6_4){ IF !(CS) THEN KS}CS{ getFloorElevationHeight(?) = A getSpaceHeight(?) = B A + B <= 0}KS{ hasSpace(?, HookingUpSprinklerSystem.Head) = TRUE getResult(NFSC503_6_4_1) = TRUE getResult(NFSC503_6_4_2) = TRUE}//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 4항 1호Check(NFSC503_6_4_1){ KS}KS{ getObjectProperty(HookingUpSprinklerSystem.Head.openAndCloseType) = "OpenType"}//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 4항 2호Check(NFSC503_6_4_2){ KS}KS{ getObjectWidth(HookingUpSprinklerSystem.Head, c) <= 3.7m}
//연결살수설비의 화재안전기준(nfsc 503) 7조 (헤드의 설치제외) Check(NFSC503_7){ IF CS THEN KS}CS{ getResult(NFSC503_7_0_3) = TRUE OR getResult(NFSC503_7_0_5) = TURE}KS{ isInstalled(HookingUpSprinklerSystem.Head) = TRUE OR isInstalled(HookingUpSprinklerSystem.Head) != TRUE}//연결살수설비의 화재안전기준(nfsc 503) 7조 (헤드의 설치제외) 3호Check(NFSC503_7_0_3){ KS}KS{ getBuildingUsage() = "CommunicationsApparatusRoom" OR getBuildingUsage() = "ElectronicEquipmentRoom"}//연결살수설비의 화재안전기준(nfsc 503) 7조 (헤드의 설치제외) 5호Check(NFSC503_7_0_5){ KS}KS{ getBuildingUsage() = "SurgeryRoom.Hospital" OR getBuildingUsage() = "EmergencyCareRoom.Hospital"}
// 연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 1항Check(NFSC506_4_1){ KS}KS{ getObjectProperty(Pipe.Material)="KSD3507" OR getObjectProperty(Pipe.Material)="KSD3562"}// 연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 2항Check(NFSC506_4_2){ KS}KS{ Pipe myPipe{ getObjectProperty(Pipe.usage) = "WaterSUpplyPipe" } isObjectProperty (myPipe.isShared) = FALSE}//연소방지설비의 화재안전 기준(nfsc 506) 4조 (배관) 3항Check(NFSC506_4_3){ KS}KS{ FeedWaterShutoffValve myFeedWaterShutoffValve{ isObjectProperty(FeedWaterShutoffValve.isIndicatingValve) = TRUE } Pipe myPipe{ isObjectProperty(Pipe.usage) = "WaterSupplyPipe" } hasObject(myPipe, myFeedWaterShutoffValve) = TRUE}//연소방지설비의 화재안전 기준(nfsc 506) 4조 (배관) 4항Check(NFSC506_4_4){ KS}KS{ getResult(NFSC506_4_4_1) = TRUE getResult(NFSC506_4_4_2) = TRUE}//연소방지설비의 화재안전 기준(nfsc 506) 4조 (배관) 4항 1호Check(NFSC506_4_4_1){ IF CS THEN KS}CS{ isInstalled(CombustionProtectionSystem, ?) = TRUE}KS{ Pipe myPipe{ hasObject(CombustionProtectionSystem, Pipe) = TRUE } SprinklerHead mySprinklerHead{ isInstalled(myPipe, SprinklerHead) = TRUE } (getObjectCount(mySprinklerHead) = 1 getObjectProperty(myPipe.Diameter) >= 32mm) OR(getObjectCount(mySprinklerHead) = 2 getObjectProperty(myPipe.Diameter) >= 40mm) OR(getObjectCount(mySprinklerHead) = 3 getObjectProperty(myPipe.Diameter) >= 50mm) OR(getObjectCount(mySprinklerHead) = 4 getObjectProperty(myPipe.Diameter) >= 65mm) OR(getObjectCount(mySprinklerHead) = 5 getObjectProperty(myPipe.Diameter) >= 65mm) OR(getObjectCount(mySprinklerHead) >= 6 getObjectProperty(myPipe.Diameter) >= 80mm)}// 연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 4항 2호Check(NFSC506_4_4_2){ IF CS THEN KS}CS{ isObjectProperty(Sprinkler.Head.systemType) = "HookingUpSprinklerSystem"}KS{ getResult(NFSC103_*_1) = TRUE}// 연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 5항Check(NFSC506_4_5){ KS}KS{ Pipe myPipe{ isObjectProperty(Pipe.isFeedMains) = TRUE } isInstalled(myPipe, CombustionProtectionSystem) = TRUE getObjectProperty(myPipe.diameter) >= 100mm}//연소방지설비의 화재안전 기준(nfsc 506) 4조 (배관) 6항Check(NFSC506_4_6){ KS}KS{ getResult(NFSC506_4_6_3) = TRUE}//연소방지설비의 화재안전 기준(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}//연소방지설비의 화재안전 기준(nfsc 506) 4조 (배관) 7항Check(NFSC506_4_7){ KS}KS{ getResult(NFSC506_4_7_1) = TRUE getResult(NFSC506_4_7_2) = TRUE getResult(NFSC506_4_7_3) = TRUE}// 연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 7항 1호Check(NFSC506_4_7_1){ IF (CS1 THEN KS1) OR (CS2 THEN KS2)}CS1{ Pipe myPipe{ isObjectProperty(Pipe.isBranchLines) = TRUE } Head myHead{ isInstalled(Head, myPipe) = TRUE } getObjectInterval(myHead) <= 3.5m}KS1{ Pipe myPipe{ isObjectProperty(Pipe.isBranchLines) = TRUE } Head myHead{ isInstalled(Head, myPipe) = TRUE } getobjectCountInInterval(Hanger, myHead) >= 1}CS2{ Pipe myPipe{ isObjectProperty(Pipe.isBranchLines) = TRUE } Head myHead{ isInstalled(Head, myPipe) = TRUE } getObjectInterval(myHead) > 3.5m}KS2{ Pipe myPipe{ isObjectProperty(Pipe.isBranchLines) = TRUE } Head myHead{ isInstalled(Head, myPipe) = TRUE } getObjectInterval(myHead) = OIH OIH/3.5 = OIHH (OIHH-1) <= getObjectCountInInterval(Hanger, myHead) < OIHH getObjectInterval(Hanger) = 3.5m Head myHead2{ getObjectProperty(Head.installationDirectionType) = "BottomUpType" } getObjectInterval(myHead2, Hanger) >= 8cm}// 연소방지설비의 화재안전기준(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}//연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 7항 3호 Check(NFSC506_4_7_3){ IF CS THEN KS }CS{Pipe myPipe{ isObjectProperty(Pipe.isBranchLines) = TRUE } isObjectProperty(myPipe.isFeedMains)=True}KS{ isInstalled(Hanger, myPipe)=True getObjectInterval(Hanger)>4.5 m}// 연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 8항Check(NFSC506_4_8){ KS}KS{ getObjectProperty(CombustionProtectionSystem.type) != "WetPipeCombustionProtectionSystem"}
// 연소방지설비의 화재안전기준(nfsc 506) 5조 (방수헤드) Check(NFSC506_5){ KS}KS{ getResult(NFSC506_5_0_1) = TRUE getResult(NFSC506_5_0_2) = TRUE getResult(NFSC506_5_0_3) = TRUE}// 연소방지설비의 화재안전기준(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 }// 연소방지설비의 화재안전기준(nfsc 506) 5조 (방수헤드) 1호 Check(NFSC506_5_0_2){ IF (CS1 THEN KS1) OR (CS2 THEN KS2) } CS1{ Head myHead{ Head.isDischargeHead = TRUE } isObjectProperty(myHead) = TRUE isObjectProperty(Head.isShared) = FALSE isInstalled(Head, CombustionProtectionSystem) = TRUE } KS1{ getObjectInterval(myHead) <= 2m } CS2{ isObjectProperty(myHead) = TRUE isObjectProperty(Sprinkler.Head) = TRUE } KS2{ getObjectInterval(myHead) <= 1.5m }//연소방지설비의 화재안전기준(nfsc 506) 5조 (방수헤드) 3호Check(NFSC506_5_0_3){ KS }KS{ Zone myZone{ isObjectProperty(Zone.isWateringZone)=True } Head myHead{ isObjectProperty(Head.isDischargeHead)=True } isInstalled(myHead,Zone)=True getObjectInterval(myHead)<=350 m getObjectLength(myZone)>=3 m }
// 연소방지설비의 화재안전기준(nfsc 506) 6조 (송수구)Check(NFSC506_6){ KS}KS{ getResult(NFSC506_6_0_2) = TRUE OR getResult(NFSC506_6_0_4) = TRUE OR getResult(NFSC506_6_0_6) = TRUE}// 연소방지설비의 화재안전기준(nfsc 506) 6조 (송수구) 2호Check(NFSC506_6_0_2){ KS}KS{ Port myPort{ getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" } isInstalled(myPort, CombustionProtectionSystem) = TRUE getObjectProperty(myPort.diameter) = 65mm getObjectProperty(myPort.shapeType) = "DoubleType"}// 연소방지설비의 화재안전기준(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}// 연소방지설비의 화재안전기준(nfsc 506) 6조 (송수구) 4호Check(NFSC506_6_0_4){ KS}KS{ Port myPort{ getObjectProperty(Port.typeForWater) = "FireDepartmentConnection" isInstalled(Port, CombustionProtectionSystem) = TRUE } getObjectVerticalLocation(myPort, Ground) >= 0.5m getObjectVerticalLocation(myPort, Ground) <= 1m}
// 연소방지설비의 화재안전기준(nfsc 506) 8조 (방화벽의 설치기준)Check(NFSC506_8){ KS}KS{ getResult(NFSC506_8_0_1) getResult(NFSC506_8_0_2) getResult(NFSC506_8_0_3)}// 연소방지설비의 화재안전기준(nfsc 506) 8조 (방화벽의 설치기준) 2호Check(NFSC506_8_0_2){ IF CS THEN KS} Wall myWall{ isObjectProperty(Wall.isFireProofWall) = TRUE } Door myDoor{ isObjectProperty(Door.isEntrance) = TRUE }CS{ isInstalled(myDoor, myWall) = TRUE}KS{ isObjectProperty(myDoor.isStrictFireproofDoor) = TRUE OR isObjectProperty(myDoor.isFireproofDoor) = TRUE}// 연소방지설비의 화재안전기준(nfsc 506) 8조 (방화벽의 설치기준) 3호 Check(NFSC506_8_0_3){ KS } KS{ Wall myWall{ isObjectProperty(Wall.isFireProofWall)=True } IF isInstalled(Wire, myWall)=True THEN isObjectProperty(Wire.Finish.Material.isFireStop)= TRUE END IF IF isInstalled(Cable, myWall)=True THEN isObjectProperty(Cable.Finish.Material.isFireStop)= TRUE END IF }// 연소방지설비의 화재안전기준(nfsc 506) 8조 (방화벽의 설치기준) 1호Check(NFSC506_8_0_1){ KS}KS{ Wall myWall{ isObjectProperty(Wall.isFireProofStructure) = TRUE } isObjectProperty(myWall.isfireResistantStructure) = 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항 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}//스프링클러설비의 화재안전기준(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항 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 }//스프링클러설비의 화재안전기준 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}
//스프링클러설비의 화재안전기준 11조 (송수구)check(NFSC103_11){ getResult(NFSC103_11_0_2)=TRUE getResult(NFSC103_11_0_3)=TRUE getResult(NFSC103_11_0_5)=TRUE getResult(NFSC103_11_0_6)=TRUE}//스프링클러설비의 화재안전기준(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//스프링클러설비의 화재안전기준 11조 (송수구) 3호check(NFSC103_11_0_3){ KS}KS{ isObjectProperty(Port.typeForWater) = "FireDepartmentConnection" isObjectProperty(Port.shapeType)="DoubleType" isObjectProperty(Port.diameter) = 65mm}//스프링클러설비의 화재안전기준(nfsc 103) 11조 (송수구) 5호Check(NFSC103_11_0_5){ IF CS THEN KS}CS{ isObject(Sprinkler.Head.openAndCloseType) = "EnclosedType"}KS{ Port myPort{ isObjectProperty(Port.typeForWater)="FireDepartmentConnection" } Space mySpace{ isObjectProperty(Space.FloorSlab.area) = 3000m2 } isInstalled(mySpace, myPort) = TRUE getObjectCount(mySpace.One.myPort) >= 1 getObjectCount(myPort) <= 5 }//스프링클러설비의 화재안전기준(nfsc 103) 11조 (송수구) 6호Check(NFSC103_11_0_6){ KS}KS{ Port myPort{ isObjectProperty(Port.typeForWater) = "FireDepartmentConnection" } getObjectVerticalDistance(Ground, myPort, a) >= 0.5m getObjectVerticalDistance(Ground, myPort, a) <= 1m}
// 스프링클러설비의 화재안전기준(nfsc 103) 12조 (전원) 2항Check(NFSC103_12_2){ IF (!CS1 THEN KS1) OR (CS2 THEN KS2)}CS1{ Tank myTank{ getObjectProperty(Tank) = "PressurizedTank" } isInstalled(myTank) = TRUE}CS2{ getBuildingUsage() = "Garage" OR getBuildingUsage() = "ParkingLot" ParkingLot myParkingLot{ getResult(Unimplemented_NFSC105_13_2_2) = TRUE getSpace(ParkingLot) } Floor myFloor{ isInstalled(SprinklerSystem, Floor) = TRUE } getFloorArea(myFloor) + getFloorArea(myFloor2) >= 1000m2}KS1{ EmergencyPower myEmergencyPower{ getObjectProperty(EmergencyPower.systemType) = "InhousePowerGenerationSystem" OR getObjectProperty(EmergencyPower.systemType) = "StorageBatterySystem" } isInstalled(myEmergencyPower, SprinklerSystem) = TRUE}KS2{ EmergencyPower myEmergencyPower{ getObjectProperty(EmergencyPower.systemType) = "InhousePowerGenerationSystem" OR getObjectProperty(EmergencyPower.systemType) = "StorageBatterySystem" OR getObjectProperty(EmergencyPower.systemType) = "EmergencyPowerReceivingSystem" } isInstalled(myEmergencyPower, SprinklerSystem) = TRUE}// 스프링클러설비의 화재안전기준(nfsc 103) 12조 (전원) 3항 Check(NFSC103_12_3){ IF (CS1 OR CS2 THEN KS1) OR (CS3 THEN KS2) } Pump myPump{ getObjectProperty(Pump.systemType) = "InternalCombustionEngines" } CS1{ getResult(Unimplemented_NFSC103_12_2) = TRUE getObjectProperty(EmergencyPower.systemType) = "InhousePowerGenerationSystem" OR getObjectProperty(EmergencyPower.systemType) = "StorageBatterySystem" } CS2{ isInstalled(Pump, InternalCombustionEngines) = TRUE isInstalled(ControlStorageBattery, InternalCombustionEngine) = TRUE } KS1{ getResult(NFSC103_12_3_4) = TRUE OR getResult(NFSC103_12_3_8) = TRUE } CS3{ getResult(Unimplemented_NFSC103_12_2) = TRUE getObjectProperty(EmergencyPower.systemType) = "EmergencyPowerReceivingSystem" } KS2{ getResult(Unimplemented_NFSC602) = TRUE }// 스프링클러설비의 화재안전기준(nfsc 103) 12조 (전원) 3항 4호Check(NFSC103_12_3_4){ KS}KS{ Space mySpace{ isInstalled(EmergencyPower, Space) = TRUE } isFirePartitioned(mySpace) = TRUE}// 스프링클러설비의 화재안전기준(NFSC 103) 12조 (전원) 3항 8호Check(NFSC103_12_3_8){ KS}KS{ InhousePowerGeneratingStation myInhousePowerGeneratingStation{ getResult(NFSC103_12_3_8_1) = TRUE OR getResult(NFSC103_12_3_8_2) = TRUE OR getResult(NFSC103_12_3_8_3) = TRUE } isInstalled(myInhousePowerGeneratingStation) = TRUE}// 스프링클러설비의 화재안전기준(NFSC 103) 12조 (전원) 3항 8호 가목Check(NFSC103_12_3_8_1){ KS}KS{ getObjectProperty() = "DedicatedGeneratorForFireFighting"}// 스프링클러설비의 화재안전기준(NFSC 103) 12조 (전원) 3항 8호 나목Check(NFSC103_12_3_8_2){ KS}KS{ getObjectProperty() = "FireLoadCombinationGenerator"}// 스프링클러설비의 화재안전기준(NFSC 103) 12조 (전원) 3항 8호 다목Check(NFSC103_12_3_8_3){ KS}KS{ getObjectProperty() = "EmergencyPowerSystemForReservedFirefightingPower"}
// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항Check(NFSC103_15_1){ IF !CS THEN KS}CS{ getResult(NFSC103_15_1_1) = TRUE OR getResult(NFSC103_15_1_2) = TRUE OR getResult(NFSC103_15_1_3) = TRUE OR getResult(NFSC103_15_1_4) = TRUE OR getResult(NFSC103_15_1_5) = TRUE OR getResult(NFSC103_15_1_6) = TRUE OR getResult(NFSC103_15_1_7) = TRUE OR getResult(NFSC103_15_1_8) = TRUE OR getResult(NFSC103_15_1_10) = TRUE OR getResult(NFSC103_15_1_11) = TRUE OR getResult(NFSC103_15_1_13) = TRUE OR getResult(NFSC103_15_1_14) = TRUE OR getResult(NFSC103_15_1_15) = TRUE}KS{ isInstalled(SprinklerSystem) = TRUE}// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 1호Check(NFSC103_15_1_1){ KS}KS{ getBuildingUsage() = "Stair.Space" OR getSpaceUsage() = "Ramp" OR getSpaceUsage() = "Elevator.ElevatorShaft" OR getSpaceUsage() = "EmergencyElevatorPlatform" OR getObjectProperty(Duct.isPipeDuct) = TRUE OR getObjectProperty(Pit.isPipePit) = TRUE OR getBuildingUsage() = "BathRoom" OR getBuildingUsage() = "SwimmingPool" OR getBuildingUsage() = "Toilet"}// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 2호Check(NFSC103_15_1_2){ KS}KS{ getBuildingUsage() = "CommunicationsApparatusRoom" OR getBuildingUsage() = "ElectronicEquipmentRoom"}// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 3호 Check(NFSC103_15_1_3){ KS } KS{ getBuildingUsage() = "GeneratorRoom" OR getBuildingUsage() = "TransformerRoom" OR isInstalled( Transformer, Room) = TRUE }// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 4호Check(NFSC103_15_1_4){ KS}KS{ getBuildingUsage() = "Hospital.수술실" OR getBuildingUsage() = "Hospital.응급처치실"}// 스프링클러설비의 화재안전기준(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}// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 5호 가목Check(NFSC103_15_1_5_1){ KS}KS{ getObjectDistance(Ceiling, CeilingCovering) < 2m}// 스프링클러설비의 화재안전기준(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}// 스프링클러설비의 화재안전기준(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}// 스프링클러설비의 화재안전기준(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}// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 8호Check(NFSC103_15_1_8){ KS}KS{ getBuildingUsage() = "펌프실" OR getBuildingUsage() = "물탱크실" OR getBuildingUsage() = "엘리베이터 권상기실"}// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 10호Check(NFSC103_15_1_10){ KS}KS{ getSpaceUsage() = "EntranceHall" OR getSpaceUsage() = "Lobby" getObjectVerticalLocation(Ground, Space) >= 20m}// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 11호Check(NFSC103_15_1_11){ KS}KS{ getSpaceUsage() = "ColdStorage" OR getSpaceUsage() = "RefrigerationRoom"}// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 13호Check(NFSC103_15_1_13){ KS}KS{ getObjectMaterial(SpecificFireFightingBuilding.Material.nonCombustibility) = TRUE (getResult(NFSC103_15_1_13_1) = TRUE OR getResult(NFSC103_15_1_13_2) = TRUE OR getResult(NFSC103_15_1_13_3) = TRUE)}// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 13호 가목Check(NFSC103_15_1_13_1){ KS}KS{ getBuildingUsage() = "PurificationPlant" OR getBuildingUsage() = "오물처리장"}// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 13호 나목Check(NFSC103_15_1_13_2){ KS}KS{ getBuildingUsage() = "PulpMill.WorkPlace" OR getBuildingUsage() = "BeverageFactory.WorkPlace"}// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 13호 다목Check(NFSC103_15_1_13_3){ KS}KS{ getBuildingUsage() = "ProcessingFactory" isObjectProperty(Space.hasCombustible) = FALSE}// 스프링클러설비의 화재안전기준(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}// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 15호Check(NFSC103_15_1_15){ KS}KS{ getResult(EDBA_46_4) = TRUE getBuildingUsage() = "MultiUnitHouse" isObjectProperty(Space.isEscape) = TRUE}
// 스프링클러설비의 화재안전기준(NFSC 103) 16조 (수원 및 가압송수장치의 펌프 등의 겸용) 2항 Check(NFSC103_16_2){ IF CS THEN KS } Pump myPump{ isInstalled(SprinklerSystem, PressurizedWaterSupplySystem) = TRUE getObjectUsage(Pump) = "PressurizedWaterSupplySystem" } Pump myPump2{ isInstalled(IndoorFireHydrantSystem, PressurizedWaterSupplySystem) = TRUE getObjectUsage(Pump) = "PressurizedWaterSupplySystem" } Pump myPump3{ isInstalled(SimpleSprinklerSystem, PressurizedWaterSupplySystem) = TRUE getObjectUsage(Pump) = "PressurizedWaterSupplySystem" } Pump myPump4{ isInstalled(SprinklerSystemForEarlyFireSuppression, PressurizedWaterSupplySystem) = TRUE getObjectUsage(Pump) = "PressurizedWaterSupplySystem" } Pump myPump5{ isInstalled(WaterSprayExtingushingSystem, PressurizedWaterSupplySystem) = TRUE getObjectUsage(Pump) = "PressurizedWaterSupplySystem" } Pump myPump6{ isInstalled(FoamExtinguishingSystem, PressurizedWaterSupplySystem) = TRUE getObjectUsage(Pump) = "PressurizedWaterSupplySystem" } Pump myPump7{ isInstalled(OutdoorFireHydrantSystem, PressurizedWaterSupplySystem) = TRUE getObjectUsage(Pump) = "PressurizedWaterSupplySystem" } CS{ isShared(myPump, myPump2) = TRUE OR isShared(myPump, myPump3) = TRUE OR isShared(myPump, myPump4) = TRUE OR isShared(myPump, myPump5) = TRUE OR isShared(myPump, myPump6) = TRUE OR isShared(myPump, myPump7) = TRUE } KS{ getObjectProperty(myPump.ratedDischargeRate) = PRD getObjectProperty(myPump2.ratedDischargeRate) + getObjectProperty(myPump3.ratedDischargeRate) + getObjectProperty(myPump4.ratedDischargeRate) + getObjectProperty(myPump5.ratedDischargeRate) + getObjectProperty(myPump6.ratedDischargeRate) + getObjectProperty(myPump7.ratedDischargeRate) = TPRD PRD >= TPRD }
// 스프링클러설비의 화재안전기준(nfsc 103) 4조 (수원) 1항Check(NFSC103_4_1){ KS}KS{ getResult(NFSC103_4_1_1) = TRUE getResult(NFSC103_4_1_2) = TRUE}// 스프링클러설비의 화재안전기준(nfsc 103) 4조 (수원) 5항Check(NFSC103_4_5){ IF CS THEN KS}CS{ isObjectProperty(Tank.isWaterSource) = TRUE (getResult(NFSC103_4_5_1) = FALSE OR getResult(NFSC103_4_5_2) = FALSE)}KS{ isObjectProperty(Tank.isShared) = FALSE}// 스프링클러설비의 화재안전기준(nfsc 103) 4조 (수원) 5항 1호Check(NFSC103_4_5_1){ KS}Pump myPump{ isInstalled(Pump, SprinklerSystem) = TRUE}Valve myValve{ isObjectProperty(Valve.isFootValve) = TRUE isInstalled(Valve, myPump) = TRUE}Valve myValve2{ isObjectProperty(Valve.isFootValve) = TRUE Valve != myValve}Pipe myPipe{ isObjectProperty(Pipe.isObsorptionPipe) = TRUE}Obsorption myObsorptionOpening{ isInstalled(ObsorptionOpening, myPipe) = TRUE}Obsorption myObsorptionOpening2{ ObsorptionOpening != myObsorptionOpening}KS{ getObjectVerticalLocation(myValve, myValve2) < 0 OR getObjectVerticalLocation(myObsorptionOpening, myOpsorptionOpening2) < 0}// 스프링클러설비의 화재안전기준(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}// 스프링클러설비의 화재안전기준 (nfsc 103) 4조 (수원) 7항Check(NFSC103A_4_7){ KS}KS{ getResult(NFSC103_4_7_3) = TRUE getResult(NFSC103_4_7_4) = TRUE getResult(NFSC103_4_7_5) = TRUE getResult(NFSC103_4_7_6) = TRUE}
// 스프링클러설비의 화재안전기준(NFSC 103) 6조 (폐쇄형스프링클러설비의 방호구역·유수검지장치) Check(NFSC103_6){ IF CS THEN KS}CS{ getObjectProperty(SprinklerSystem.Head.openAndCloseType)="EnclosedType"}KS{ getResult(NFSC103_6_0_1)=True getResult(NFSC103_6_0_2)=True getResult(NFSC103_6_0_3)=True getResult(NFSC103_6_0_4)=True getResult(NFSC103_6_0_7)=True}//스프링클러설비의 화재안전기준(NFSC 103) 6조 (폐쇄형스프링클러설비의 방호구역·유수검지장치) 1호Check(NFSC103_6_0_1){ KS}KS{ getFloorArea(SprinklerSystme.ProtectionZone.One)<=3000 m2}//스프링클러설비의 화재안전기준(NFSC 103) 6조 (폐쇄형스프링클러설비의 방호구역·유수검지장치) 2호Check(NFSC103_6_0_2){ KS}KS{ getObjectCount(SprinklerSystem.ProtectionZonme.One.WaterflowIndicator)>=1}//스프링클러설비의 화재안전기준(NFSC 103) 6조 (폐쇄형스프링클러설비의 방호구역·유수검지장치) 3호 Check(NFSC103_6_0_3){ IF CS THEN KS1 ELSE KS2 } CS{ Building myBuilding{ Building.usage = "MultiUnitHouse" } getObjectCount(Floor.One, SprinklerHead)<=10 OR isObjectProperty(myBuilding.isDuplexType)=True } KS1{ getObjectCount(SprinklerSystem.ProtectionZone.One.Floor )<=3 } KS2{ getObjectCount(SprinklerSystem.ProtectionZone.One.Floor )<2 }//스프링클러설비의 화재안전기준(NFSC 103) 6조 (폐쇄형스프링클러설비의 방호구역·유수검지장치) 4호 Check(NFSC103_6_4){ KS } KS{ Material myMaterial{ getObjectProperty(Object.Material)="ProtectiveWireMesh" } isExternal(WaterflowIndicator)=FALSE OR isPartitioned(WaterflowIndicator, , myMaterial) = TRUE getObjectVerticalDistance(FloorSlab, WaterflowIndicator, a)0.8m >= getObjectVerticalDistance(FloorSlab, WaterflowIndicator, a)0.8m <= 1.5m Door myDoor{ getObjectProperty(Door.width) >= 0.5m getObjectProperty(Door.height) >= 1m } hasObject(WaterflowIndicator.Space,myDoor)=TRUE }//스프링클러설비의 화재안전기준(NFSC 103) 6조 (폐쇄형스프링클러설비의 방호구역·유수검지장치) 7호 Check(NFSC103_6_0_7){ IF CS THEN KS } CS{ SprinklerHead mySprinklerHead{ getObjectProperty(SprinklerHead.responseType)="QuickResponseType" } isExist(mySprinklerHead)=True } KS{ WaterflowIndicator myWaterflowIndicator{ getObjectProperty(WaterflowIndicator.type)="WetWaterflowIndicator" } SprinklerSystem mySprinklerSystem{ getObjectProperty(SprinklerSystem.type)="VacuumSprinklerExtinguishingSystem" } isExist(myWaterflowIndicator)=True OR isExist(mySprinklerSystem)=True }
//스프링클러설비의 화재안전기준(NFSC 103) 7조 (개방형스프링클러설비의 방수구역 및 일제개방밸브) Check(NFSC103_7){ KS}KS{ getResult(NFSC103_7_0_1)=True getResult(NFSC103_7_0_2)=True getResult(NFSC103_7_0_3)=True getResult(NFSC103_7_0_4)=True}//스프링클러설비의 화재안전기준(NFSC 103) 7조 (개방형스프링클러설비의 방수구역 및 일제개방밸브) 1호Check(NFSC103_7_0_1){ KS}KS{ Zone myZone{ isObjectProperty(Zone.isWaterProofingZone)=True } getObjectCount(myZonme.One.Floor)<2}//스프링클러설비의 화재안전기준(NFSC 103) 7조 (개방형스프링클러설비의 방수구역 및 일제개방밸브) 2호Check(NFSC103_7_0_2){ KS}KS{ Zone myZone{ isObjectProperty(Zone.isWaterProofingZone)=True } Valve myValve{ isObjectProperty(Valve.isDelugeValve)=True} getObjectCount(myValve,myZone)>=1}//스프링클러설비의 화재안전기준(NFSC 103) 7조 (개방형스프링클러설비의 방수구역 및 일제개방밸브) 3호 NFSC103_7_0_3{ IF CS THEN KS1 ELSE KS2 } CS{ getObjectCount(myZone)>=2 } KS1{ getObjectCount(SprinklerSystem.Head, myZone.One)>=25 } KS2{ getObjectCount(SprinklerSystem.Head, myZone.One)<=50 }//스프링클러설비의 화재안전기준(NFSC 103) 7조 (개방형스프링클러설비의 방수구역 및 일제개방밸브) 4호Check(NFSC103_7_0_4){ KS}KS{ getResult(NFSC103_6_0_4)=True}
// 스프링클러설비의 화재안전기준(NFSC 103) 9조 (음향장치 및 기동장치) 1항Check(NFSC103_9_1){ KS}KS{ getResult(NFSC103_9_1_3) = TRUE getResult(NFSC103_9_1_4) = TRUE}// 스프링클러설비의 화재안전기준(NFSC 103) 9조 (음향장치 및 기동장치) 1항 3호Check(NFSC103_9_1_3){ KS}KS{ Zone myZone{ isObjectProperty(Zone.isProtectionZone) = TRUE } isInstalled(AcousticSystem, myZone) = TRUE getElementDistance(myZone.Wall|myZone.Column, AcousticSystem.One) <= 25m}// 스프링클러설비의 화재안전기준(NFSC 103) 9조 (음향장치 및 기동장치) 1항 4호 Check(NFSC103_9_1_4){ KS } KS{ isInstalled(Alarm, SprinklerSystem) = TRUE OR isInstalled(Siren, SprinklerSystem) = TRUE }// 스프링클러설비의 화재안전기준(NFSC 103) 9조 (음향장치 및 기동장치) 1항 5호Check(NFSC103_9_1_5){ KS}KS{ isInstalled(AcousticSystem, Receiver, a, In) = TRUE}// 스프링클러설비의 화재안전기준(NFSC 103) 9조 (음향장치 및 기동장치) 3항Check(NFSC103_9_3){ IF CS THEN KS}CS{ getObjectProperty(WaterflowIndicator.type) = "PreactionWaterflowIndicator" OR isObjectProperty(Valve.isDelugeValve) = TRUE}KS{ getResult(NFSC103_9_0_5) = TRUE}// 스프링클러설비의 화재안전기준(nfsc 103) 9조 (음향장치 및 기동장치) 3항 2호 나목Check(NFSC103_9_3_2_2){ KS}KS{ getResult(NFSC203_7_1_1) = TRUE OR getResult(NFSC203_7_1_2) = TRUE OR getResult(NFSC203_7_1_3) = TRUE OR getResult(NFSC203_7_1_4) = TRUE OR getResult(NFSC203_7_1_5) = TRUE OR getResult(NFSC203_7_1_6) = TRUE OR getResult(NFSC203_7_1_7) = TRUE OR getResult(NFSC203_7_1_8) = TRUE}// 스프링클러설비의 화재안전기준(NFSC 103) 9조 (음향장치 및 기동장치) 3항 5호Check(NFSC103_9_3_5){ IF (!CS1 AND CS2) THEN KS}CS1{ isInstalled(Transmitter, Building) = TRUE isObjectProperty(Transmitter.systemType) = "자동화재탐지설비"}CS2{ isInstalled(Transmitter, FireDetector.Circuit) = TRUE}KS{ getResult(NFSC103_9_3_5_가) = TRUE getResult(NFSC103_9_3_5_나) = TRUE}// 스프링클러설비의 화재안전기준(NFSC 103) 9조 (음향장치 및 기동장치) 3항 5호 가목 Check(NFSC103_9_3_5_가){ KS } KS{ isInstalled(Transmitter, Switch) = TRUE getObjectVerticalDistance(Switch, FloorSlab) >= 0.8m getObjectVerticalDistance(Switch, FloorSlab) <= 1.5m }// 스프링클러설비의 화재안전기준(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 }
// 유도등 및 유도표지의 화재안전기준(nfsc 303) 4조 (유도등 및 유도표지의 종류) Check(NFSC303_4){ KS}KS{ LeadingLight myLeadingLight1{ // isObejctProperty(LeadingLight.isForExit)=True, 대형 } LeadingLight myLeadingLight2{ // isObejctProperty(LeadingLight.isForExit)=True , 중형 } LeadingLight myLeadingLight3{ // isObejctProperty(LeadingLight.isForExit)=True, 소형 } LeadingLight myLeadingLight4{ isObejctProperty(LeadingLight.isForPassage)=True } LeadingLight myLeadingLight5{ isObjectProperty(LeadingLight.isForSeat)=True } LeadingSign myLeadingSign1{ isObjectProperty(LeadingSign.isForExit)=True } LeadingSign myLeadingSign2{ isObjectProperty(LeadingSign.isForPassage)=True } IF getBuildingUsage()="PerformanceHall" OR getBuildingUsage()="AssemblyHall" OR getBuildingUsage()="Auditorium" OR getBuildingUsage()="SportsFacility" OR getBuildingUsage()="Tavern" THEN isExist(myLeadingLight1)=True isExist(myLeadingLight4)=True isExist(myLeadingLight5)=True ELSE IF getBuildingUsage()="AmusementFacility" OR getBuildingUsage()="CommercialFacility" OR getBuildingUsage()="TransportationFacility" OR getBuildingUsage()="TouristAccommodationBusiness" OR getBuildingUsage()="MedicalFacility" OR getBuildingUsage()="FuneralParlor" OR getBuildingUsage()="FacilityForBroadcastingAndTelecommunication" OR getBuildingUsage()="ExhibitionHall" OR getBuildingUsage()="UndergroundShoppingCenter" OR getBuildingUsage()="SubwayStation" THEN isExist(myLeadingLight1)=True isExist(myLeadingLight4)True ELSE IF getBuildingUsage()="LodgingFacility" OR getBuildingUsage()="Officetel" // OR 지하층, 무창층 또는 층수가 11층 이상인 특정소방대상물 THEN isExist(myLeadingLight2)=True isExist(myLeadingLight4)True ELSE IF getBuildingUsage()="ClassINeighborhoodLivingFacility" OR getBuildingUsage()="ClassIINeighborhoodLivingFacility" OR getBuildingUsage()="FacilitiesForTheAgedAndChildren" OR getBuildingUsage()="BusinessFacility" OR getBuildingUsage()="FacilityForPowerGeneration" OR getBuildingUsage()="ReligiousFacility" OR getBuildingUsage()="EducationAndResearchFacility" OR getBuildingUsage()="Trainingfacility" OR getBuildingUsage()="Factory" OR getBuildingUsage()="Warehouse" OR getBuildingUsage()="CorrectionalFacilityAndMilitaryInstallation" OR getBuildingUsage()="Dormitory" OR getBuildingUsage()="AutomobileRepairShop" OR getBuildingUsage()="DrivingSchool" OR getBuildingUsage()="RepairingSchool" OR getBuildingUsage()="PubliclyUsedEstablishment" OR getBuildingUsage()="ComplexBuilding" OR getBuildingUsage()="ApartmentHouse" THEN isExist(myLeadingLight3)=True isExist(myLeadingLight4)True ELSE THEN isExist(myLeadingSign1)=True isExist(myLeadingSign2)True END IF }
//유도등 및 유도표지의 화재안전기준(nfsc 303) 5조 (피난구요도등) 1항Check(NFSC303_5_1){ KS}KS{ getResult(NFSC303_5_1_1)=True getResult(NFSC303_5_1_2)=True getResult(NFSC303_5_1_3)=True}//유도등 및 유도표지의 화재안전기준(nfsc 303) 5조 (피난구유도등) 1항 1호Check(NFSC303_5_1_1){ KS}KS{ Door myDoor { isObjectProperty(Door.isEntrance)=True isDirectlyAccessible(Door, Ground)=True } LeadingLight myLeadingLight{ isObjectProperty(LeadingLight.isForExit)=True } isEnstalled(myLeadingLight,myDoor)=True IF hasObject(AncillaryRoom, myDoor)=True THEN isEnstalled(myLeadingLight, AncillaryRoom )=True}//유도등 및 유도표지의 화재안전기준(nfsc 303) 5조 (피난구유도등) 1항 2호Check(NFSC303_5_1_2){ KS}KS{ Stair myStair { isObjectProperty(Stair.isDirect)=True } Door myDoor{ isObjectProperty(Door.isEntrance)=True OR hasObject( myStair, Door)=True OR hasObject(myStair.Space,Door)=True OR hasObject(myStair.AncillaryRoom,Door)=True } LeadingLight myLight{ isObjectProperty(LeadingLight.isForExit)=True } isEnstalled(myLight,myDoor)=True }//유도등 및 유도표지의 화재안전기준(nfsc 303) 5조(피란구유도등) 1항 3호 Check(NFSC303){ KS} Door myDoor{ isObjectProperty(Door.isEntrance)=True (OR hasObject( myStair, Door)=True OR hasObject(myStair.Space,Door)=True OR hasObject(myStair.AncillaryRoom,Door)=True) OR isDirectlyAccessible(Door, Ground)=True } LeadingLight myLeadingLight{ isObjectProperty(LeadingLight.isForExit)=True } Passage myPassage{ isAccessible(myDoor, Passage)=True } Corridor myCorriodr{ isAccessible(myDoor, Corridor)=True } Door myDoor2{ isObjectProperty(Door.isEntrance)=True isAccessible(myPassage, Door)=True or isAccessible(myCorridor, Door)=True }isInstalled(myLeadingLight, myDoor2)=True}//유도등 및 유도표지의 화재안전기준(nfsc 303) 5조 (피난구유도등) 2항Check(NFSC303_5_2){ KS}KS{Opening myOpening{ isObjectProperty(Opening.isEscape)=True} LeadingLight myLeadingLight{ isObjectProperty(LeadingLight.isForExit)=True } getObjectVerticleDistance(myLeadingLight, myOpening.FloorSlab)>=1.5 m}
//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항Check(NFSC303_6_1){ KS}KS{ Corridor myCorridor{ isGothrough(SpecificFireFightingBuilding.Room, Corridor, Ground)=True } Stair myStair{ isGothrough(SpecificFireFightingBuilding.Room, Stair, Ground)=True } hasObject(myCorridor, LeadingLight.isForPassage)=True hasObject(myStair, LeadingLight.isForPassage)=True getResult(NFSC303_6_1_1)=True getResult(NFSC303_6_1_2)=True getResult(NFSC303_6_1_3)=True}//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항1호Check(NFSC303_6_1_1){ KS}KS{ getResult(NFSC303_6_1_1_가)=True getResult(NFSC303_6_1_1_나)=True getResult(NFSC303_6_1_1_다)=True}//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 1호 가목Check(NFSC303_6_1_1_가){ KS}KS{ isinstalled(Corridor, LeadingLightForCorridors)=True}//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 1호 다목Check(NFSC303_6_1_1_다){ KS}KS{ Floor myFloor{ getFloorNumber()<0 OR hasObject(Floor, Window)=False } IF getFloorUsage(myFloor)="WholesaleMarket" OR getFloorUsage(myFloor)="RetailMarket" OR getFloorUsage(myFloor)="PassengerVehicleTransportTerminal" OR getFloorUsage(myFloor)="UndergroundStation" OR getFloorUsage(myFloor)="UndergroundShoppingCenter" THEN // 복도·통로 중앙부분의 바닥에 설치하여야 한다. ELSE THEN getObjectVerticalDistance(FloorSlab, LeadingLightForCorridors )<= 1 m}//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 2호Check(NFSC303_6_1_2){ KS}KS{ getResult(NFSC303_6_1_2_가)=True getResult(NFSC303_6_1_2_나)=True getResult(NFSC303_6_1_2_다)=True}// 유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 2호 가목Check(NFSC303_6_1_2_가){ KS}KS{ IF // isPartitioned(Room.Passage, c)=True type c: 벽체 등으로 구획 THEN isInstalled(Room.Passage,LeadingLightForCorridors)=True ELSE THEN isInstalled(Room.Passage, LeadingLightForLivingRoom )=True}//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 2호 다목Check(NFSC303_6_1_2_다){ KS}KS{ IF hasObject(Room.Passage, Column)=False THEN getObjectVerticalDistance(FloorSlab,LeadingLightForLivingRoom )>=1.5 }//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 3호Check(NFSC303_6_1_3){ KS}KS{ getResult(NFSC303_6_1_3_가)=True getResult(NFSC303_6_1_3_나)=True}//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 3호 가목 Check (NFSC303_6_1_3_가){ KS}KS{ IF // getObjectCount(RampLanding, "1개층" )>=2 // OR getObjectCount(StairLanding, "1개층" )>=2 THEN // isInstalled(StairLanding, LeadingLightForStairs , "2개마다")=True ELSE THEN isInstalled(RampLanding, LeadingLightForStairs)=True OR isInstalled(StairLanding, LeadingLightForStairs)=True END IF }//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 3호 나목Check(NFSC303_6_1_3_나){ KS}KS{ getObjectVerticalDistance(FloorSlab, LeadingLightForStairs)=<=1 m}//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 1호 나목Check(NFSC303_6_1_1_나){ KS}KS{ isInstalled("구부러진 모퉁이", LeadingLightForCorridor)=True // 20m마다 설치 , 함수 필요 }//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 2호 나목Check(NFSC303_6_1_2_나){ KS}KS{ isInstalled("구부러진 모퉁이", LeadingLightForCorridor)=True // 20m마다 설치 , 함수 필요 }
//유도등 및 유도표지의 화재안전기준(nfsc 303) 7조 (객석유도등 설치기준) 1항Check(NFSC303_7_1){ KS}LeadingLight myLight{ isObjectProperty(LeadingLight.isForSeat)=True}KS{ isInstalled(myLight, Passage)=True ( isInstalled(myLight, FloorSlab)=True OR isInstalled(myLight, Wall)=True )}//유도등 및 유도표지의 화재안전기준(nfsc 303) 7조 (객석유도등 설치기준) 2항 Check(NFSC303_7_2){ IF CS THEN KS } CS{ Space mySpace{ Space.usage = "Auditorium" } isInstalled(Passage, mySpace) = TRUE isObjectProperty(Passage.isFlatWay) = TRUE OR isObjectProperty(Passage.isSlopeWay) = TRUE } KS{ LeadingLight myLeadingLight{ isObjectProperty(LeadingLight.isForSeat)=True } isExist(myLeadingLight)=True //LAP means Length of Auditorium passage LAP= getObjectLength(AuditoriumPassage) getObjectCount(myLeadingLight)>= LAP/4-1 // getSpaceIlluminance(AuditoriumPassage, "통로바닥의 중심선 0.5m 높이에서 측정")>0.2 lx , 측정 기준에 관한 파라미터 추가 필요 }//유도등 및 유도표지의 화재안전기준(nfsc 303) 7조 (객석유도등 설치기준) 3항Check(NFSC303_7_3){ IF CS THEN KS }CS{ isExternal(AuditoriumPassage)=True}KS{ getSpaceIlluminance(AuditoriumPassage, "통로바닥의 중심선 0.5m의 높이에서 측정")>0.2 lx}
//유도등 및 유도표지의 화재안전기준(nfsc 303) 8조 (유도표지 설치기준) 1항 Check(NFSC303_8_1){ IF !CS THEN KS}CS{ getResult(NFSC303_8_2)=True}KS{ getResult(NFSC303_8_1_1)=True getResult(NFSC303_8_1_2)=True}//유도등 및 유도표지의 화재안전기준(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}//유도등 및 유도표지의 화재안전기준(nfsc 303) 8조 (유도표지 설치기준) 1항 2호Check(NFSC303_8_1_2){ KS}KS{ getObjectVerticleDistance(LeadingSign, FloorSlab)<=1 m}//유도등 및 유도표지의 화재안전기준(nfsc 303) 8조 (유도표지 설치기준) 2항 Check(NFSC303_8_2){ KS}KS{ LeadingLight myLeadingLight{ isObjectProperty(LeadingLight.isForPassage)=True } isExist(myLeadingLight)=True}
// 유도등 및 유도표지의 화재안전기준(nfsc 303) 8조의2 (피난유도선 설치기준) 2항 Check(NFSC303_8-2_2){ IF CS THEN KS } CS{ isObjectProperty(LeadingLine.isLuminousTypeLeadingLine) = TRUE } KS{ getResult(NFSC303_8-2_2_1) = TRUE OR getResult(NFSC303_8-2_2_2) = TRUE OR getResult(NFSC303_8-2_2_3) = TRUE OR getResult(NFSC303_8-2_2_7) = TRUE }// 유도등 및 유도표지의 화재안전기준(nfsc 303) 8조의2 (피난유도선 설치기준) 2항 1호 Check(NFSC303_8-2_2_1){ KS } KS{ Door myDoor{ isObjectProperty(Door.isEntrance) = TRUE getObjectProperty(Door.functionType) = "Main" } Door myDoor2{ getObjectProperty(Door.functionType) = "Emergency" } getObjectCountInInterval(LeadingLine, Room, myDOor) >=1 OR getObjectCountInInterval(LeadingLine, Rom, myDoor2) >=1 }// 유도등 및 유도표지의 화재안전기준(nfsc 303) 8조의2 (피난유도선 설치기준) 2항 2호 Check(NFSC303_8-2_2_2){ KS}KS{ getObjectVerticalLocation(피난유도 표시부, Ground) <= 1m OR isInstalled(피난유도 표시부, FloorSurface) = TRUE}// 유도등 및 유도표지의 화재안전기준(nfsc 303) 8조의2 (피난유도선 설치기준) 2항 3호 Check(NFSC303_8-2_2_3){ KS } KS{ getObjectInterval(LeadingSignPart) < 50cm }// 유도등 및 유도표지의 화재안전기준(nfsc 303) 8조의2 (피난유도선 설치기준) 2항 7호 Check(NFSC303_8-2_2_7){ KS } KS{ getObjectVerticalLocation(LeadingControlPart, Ground) >= 0.8m getObjectVerticalLocation(LeadingControlPart, Ground) <= 1.5m }