//다중이용업소의 안전관리에 관한 특별법 시행령 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 } }//다중이용업소의 안전관리에 관한 특별법 시행령 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"}
// 소방시설 설치ㆍ유지 및 안전관리에 관한 법률 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(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}
// 장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행령 3조 (대상시설)Check(EDCDAPA_3){KS}KS{getResult(EDCDAPA_*_1)=TRUE}
// 장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행령 4조 (편의시설의 종류)Check(EDCDAPA_4){KS}KS{getResult(EDCDAPA_*_2)=TRUE}
// 장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행령 별표1 편의시설 설치 대상시설(제3조 관련)Check(EDCDAPA_*_1_2_가_1){getBuildingUsage()=“RetailStore”Floor myFloor{ getFloorUsage(Floor)=”RetailStore”}getTotalFloorArea(myFloor)>=300 m2getTotalFloorArea(myFloor)<1000 m2}Check(EDCDAPA_*_1_2_가_2){Building myBuilding {getBuildingUsage()=“Barbershop”OR getBuildingUsage()=“BeautyShop”OR getBuildingUsage()=“Bathhouse”}Floor myFloor{ getFloorUsage(Floor)= myBuilding.usage}getTotalFloorArea(myFloor)>=500 m2}Check(EDCDAPA_*_1_2_가_3){Building myBuilding{getBuildingUsage()=“CommunityCenter”OR getBuildingUsage()=“PoliceBox”OR getBuildingUsage()=“PoliceSubstation”OR getBuildingUsage()=“PostOffice”OR getBuildingUsage()=“HealthCenter”OR getBuildingUsage()=“PublicLibrary”OR getBuildingUsage()=“NationalHealthInsuranceService_NationalPensionService_Korea EmploymentAgencyForTheDisabled_KoreaWorkersCompensationAndWelfareServiceOffice”}Floor myFloor{ getFloorUsage(Floor)= myBuilding.usage}getTotalFloorArea(myFloor)<1000 m2}Check(EDCDAPA_*_1_2_가_4){getBuildingUsage()=“Shelter”}Check(EDCDAPA_*_1_2_가_5){getBuildingUsage()=“PublicToilet”}Check(EDCDAPA_*_1_2_가_6){Building myBuilding{getBuildingUsage()=“Clinic_ DentalClinic_OrientalMedicalClinic_MaternityClinic”}Floor myFloor{ getFloorUsage(Floor)= myBuilding.usage}getTotalFloorArea(myFloor)>=500 m2}Check(EDCDAPA_*_1_2_가_7){getBuildingUsage()=“CommunityChildCenter”Floor myFloor{ getFloorUsage(Floor)= “CommunityChildCenter”}getTotalFloorArea(myFloor)>=300 m2}Check(EDCDAPA_*_1_2_나_1){getBuildingUsage()=“Restaurant”Floor myFloor{ getFloorUsage(Floor)= “CommunityChildCenter”}getTotalFloorArea(myFloor)>=300 m2}Check(EDCDAPA_*_1_2_나_2){Building myBuilding {(getBuildingUsage()=“RestingRestaurant”OR getBuildingUsage()=“Bakery”)getBuildingUsage() !=”ClassINeighborhoodLivingFacility”}Floor myFloor{ getFloorUsage(Floor)= myBuilding.usage}getTotalFloorArea(myFloor)>=300 m2}Check(EDCDAPA_*_1_2_나_2){getBuildingUsage()=“MassageParlor”Floor myFloor{ getFloorUsage(Floor)= “MassageParlor”}getTotalFloorArea(myFloor)>=500 m2}Check(EDCDAPA_*_1_2_카_1){getBuildingUsage()=“PublicOfficeBuilding. OfficeBuildingOfLocalGovernment ”getBuildingUsage() !=”ClassINeighborhoodLivingFacility”}Check(EDCDAPA_*_1_2_카_2){Building myBuilding{getBuildingUsage()=“GeneralBusinessFacility.FinanceBusiness”OR getBuildingUsage()=“GeneralBusinessFacility.Office”OR getBuildingUsage()=“GeneralBusinessFacility.NewspaperOffice”OR getBuildingUsage()=“GeneralBusinessFacility. Officetel”}Floor myFloor { getFloorUsage()=myBuilding.usage}getTotalFloorArea(myFloor)>=500 m2}Check(EDCDAPA_*_1_2_카_3){Building myBuilding{getBuildingUsage()=“GeneralBusinessFacility.NationalHealthInsuranceService_NationalPensionService_Korea EmploymentAgencyForTheDisabled_KoreaWorkersCompensationAndWelfareServiceOffice”}Floor myFloor { getFloorUsage()=myBuilding.usage}getTotalFloorArea(myFloor)>=1000 m2}
// 장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행령 별표2 대상시설별 편의시설의 종류 및 설치기준(제4조관련)Check(EDCDAPA_*_2_3_가_2_가){IF CS1 AND CS2 THEN KS}ParkingLot myParkingLot{isObjectProperty(ParkingLot.isAttachedParking) = TRUE}CS1 {isExist(myParkingLot) = TRUE}CS2 {getObjectProperty(myParkingLot.numberOfParkingUnit) >= 10}KS1 {Area myArea{isObjectProperty(ParkingLotArea.isHandicapParking)=TRUE}hasSpace(myParkingLot, myArea) = TRUEgetResult(EDPA_*_1) = TRUE}Check(EDCDAPA_*_2_3_가_4_가){KS1 IF CS1 THEN KS2}Door myDoor1{ isObjectProperty(Door.isEntrance)=TRUE isObjectProperty(myDoor1.isHandicapAccessible)=TRUE}Door myDoor2{Door.Space.usage = “Office”isObjectProperty(myDoo2.isHandicapAccessible)=TRUE}KS1 {isExist(myDoor1) = TRUEisExist(myDoor2) = TRUE}CS1{Building.usage = “BusinessFacility.GovernmentOfficeBuilding”Building.usage != “ClassINeighborhoodLivingFacility”}KS2 {isObjectProperty(myDoor1.isAutomatic)=TRUEisObjectProperty(myDoo2.isAutomatic)=TRUE}ParkingLot myParkingLot{isObjectProperty(ParkingLotArea.isHandicapParking)=TRUE}Building myBuilding1_1{ Building.usage = “ClassINeighborhoodLivingFacility.RetailStore” Building.usage = “ClassINeighborhoodLivingFacility.Barbershop” Building.usage = “ClassINeighborhoodLivingFacility.BeautyShop” Building.usage = “ClassINeighborhoodLivingFacility.Bathhouse”}Building myBuilding1_2{ Building.usage = “ClassINeighborhoodLivingFacility.CommunityCenter” Building.usage = “ClassINeighborhoodLivingFacility.PoliceBox” Building.usage = “ClassINeighborhoodLivingFacility.PoliceSubstation” Building.usage = “ClassINeighborhoodLivingFacility.PostOffice”Building.usage = “ClassINeighborhoodLivingFacility.HealthCenter” Building.usage = “ClassINeighborhoodLivingFacility.PublicLibrary” Building.usage = “ClassINeighborhoodLivingFacility.NationalHealthInsuranceService_NationalPensionService_Korea EmploymentAgencyForTheDisabled_KoreaWorkersCompensationAndWelfareServiceOffice”}Building myBuilding1_3{ Building.usage = “ClassINeighborhoodLivingFacility.Clinic_ DentalClinic_OrientalMedicalClinic_MaternityClinic”}Building myBuilding1_4{ Building.usage = “ClassINeighborhoodLivingFacility.CommunityChildCenter” Building.facilityArea >= 300 m2}Building myBuilding1_5{ Building.usage = “ClassINeighborhoodLivingFacility.Shelter”}Building myBuilding1_6{ Building.usage = “ClassINeighborhoodLivingFacility.PublicToilet”}Building myBuilding2_1{ Building.usage = “ClassIINeighborhoodLivingFacility.Restaurant” Building.usage = “ClassIINeighborhoodLivingFacility.RestingRestaurant” Building.usage = “ClassIINeighborhoodLivingFacility.Bakery” Building.usage != “ClassINeighborhoodLivingFacility”Building.facilityArea >= 300 m2}Building myBuilding2_2{ Building.usage = “ClassIINeighborhoodLivingFacility.MassageParlor”}Building myBuilding3_1{ Building.usage = “CulturalAndAssemblyFacility.PerformanceHall”Building.usage = “CulturalAndAssemblyFacility.Auditorium”}Building myBuilding3_2{ Building.usage = “CulturalAndAssemblyFacility.AssemblyHall”}Building myBuilding3_3{ Building.usage = “CulturalAndAssemblyFacility.ExhibitionHall”Building.usage = “CulturalAndAssemblyFacility.ZoologicalAndBotanicalGarden”}Building myBuilding4_1{ Building.usage = “ReligiousFacility.ReligiousAssemblyFacility” Building.facilityArea >= 500 m2}Building myBuilding5_1{ Building.usage = “CommercialFacility.WholesaleMarket” Building.usage = “CommercialFacility.RetailMarket” Building.usage = “CommercialFacility.Shop” Building.facilityArea >= 1000 m2}Building myBuilding6_1{ Building.usage = “MedicalFacility.Hospital” Building.usage = “MedicalFacility.DetentionHospital”}Building myBuilding7_1{ Building.usage = “EducationAndResearchFacility.School” Building.usage = “EducationAndResearchFacility.SpecialSchool” Building.usage != “EducationAndResearchFacility.Kindergarten”}Building myBuilding7_2{ Building.usage = “EducationAndResearchFacility.Kindergarten”}Building myBuilding7_3{ Building.usage = “EducationAndResearchFacility.TrainingInstitute” Building.usage = “EducationAndResearchFacility.VocationalTrainingCenter” Building.usage != “EducationAndResearchFacility.EducationalInstitute”Building.facilityArea >= 500 m2}Building myBuilding8_1{ Building.usage = “FacilitiesForTheAgedAndChildren.ChildrenRelatedFacility”Building.usage = “FacilitiesForTheAgedAndChildren.WelfareFacilityForTheAged”Building.usage = “FacilitiesForTheAgedAndChildren.SocialWelfareFacility”Building.usage = “경로당”Building.usage = “ResidentialFacilityForTheDisabled”Building.facilityArea >= 500 m2}Building myBuilding9_1{ Building.usage = “Trainingfacility.TrainingFacilityInLivingZone” Building.usage = “Trainingfacility.TrainingFacilityInNatureZone”}Building myBuilding10_1{ Building.usage = “SportsFacility”Building.facilityArea >= 500 m2}Building myBuilding11_1{ Building.usage = “BusinessFacility.GovernmentOfficeBuilding”Building.facilityArea >= 500 m2}Building myBuilding11_2{ Building.usage = “BusinessFacility.FinanceBusiness” Building.usage = “BusinessFacility.Office” Building.usage = “BusinessFacility.NewspaperOffice” Building.usage = “BusinessFacility.Officetel”Building.facilityArea >= 500 m2}Building myBuilding12_1{ Building.usage = “LodgingFacility.GeneralLodgingFacility”}Building myBuilding12_2{ Building.usage = “LodgingFacility.TouristAccommodation”}Building myBuilding13_1{ Building.usage = “Factory”}Building myBuilding14_1{ Building.usage = “FacilityForMotorVehicle.ParkingLot”Building.usage = “FacilityForMotorVehicle.DrivingSchool”}Building myBuilding15_1{ Building.usage = “FacilityForBroadcastingAndTelecommunication.BroadcastingStation”Building.facilityArea >= 1000 m2}Building myBuilding15_2{ Building.usage = “FacilityForBroadcastingAndTelecommunication.TelegraphAndTelephoneStation”Building.facilityArea >= 1000 m2}Building myBuilding16_1{ Building.usage = “CorrectionalFacilityAndMilitaryInstallation.Prison”Building.usage = “CorrectionalFacilityAndMilitaryInstallation.DetentionCenter”}Building myBuilding17_1{ Building.usage = “CemeteryAndRelatedFacility.CremationFacility” Building.usage = “CemeteryAndRelatedFacility.CharnelHouse” Building.usage != “ReligiousFacility”}Building myBuilding18_1{ Building.usage = “FacilityForTourismAndRelaxation.BandStand” Building.usage = “FacilityForTourismAndRelaxation.OutdoorTheater” Building.usage = “FacilityForTourismAndRelaxation.ChildrenCenter”}Building myBuilding18_2{ Building.usage = “FacilityForTourismAndRelaxation.RestArea”}Building myBuilding19_1{ Building.usage = “FuneralParlor”}Check(EDCDAPA_*_2_3_나){IF (CS1 THEN KS1) OR (CS2 THEN KS2)}CS1{Building myBuilding20_1 {getObject(myBuilding1_1 | myBuilding12_2)}KS1{hasSpace(myBuilding20_1, myParkingLot) = TRUE OR hasSpace(myBuilding20_1, myParkingLot) = FALSE}CS2{ Building myBuilding20_2 {getObject(myBuilding1_2 | myBuilding1_3 | myBuilding1_4 | myBuilding2_1 | myBuilding2_2 | myBuilding3_1 | myBuilding3_2 | myBuilding3_3 | myBuilding4_1 | myBuilding5_1 | Building myBuilding6_1 | Building myBuilding7_1 | myBuilding7_2 | myBuilding7_3 | myBuilding8_1 | myBuilding9_1 | myBuilding10_1 | myBuilding11_1 | myBuilding11_2 | myBuilding12_1 | myBuilding13_1 | myBuilding14_1 | myBuilding15_1 | myBuilding15_2 | myBuilding16_1 | myBuilding17_1 | myBuilding18_1 | myBuilding18_2 | myBuilding19_1) }KS2{hasSpace(Building20_2, myParkingLot) = TRUE}Check(EDCDAPA_*_2_3_나){IF CS THEN KSCS{Building myBuilding20_3{getObject(myBuilding1_1 | myBuilding1_2 | myBuilding1_3 | myBuilding1_4 | myBuilding1_5 | myBuilding1_6 | myBuilding2_1 | myBuilding2_2 | myBuilding3_1 | myBuilding3_2 | myBuilding3_3 | myBuilding4_1 | myBuilding5_1 | Building myBuilding6_1 | Building myBuilding7_1 | myBuilding7_2 | myBuilding7_3 | myBuilding8_1 | myBuilding9_1 | myBuilding10_1 | myBuilding11_1 | myBuilding11_2 | myBuilding12_1 | myBuilding13_1 | myBuilding14_1 | myBuilding15_1 | myBuilding15_2 | myBuilding16_1 | myBuilding17_1 | myBuilding18_1 | myBuilding18_2 | myBuilding19_1) }KS{isObjectProperty(myBuilding20_3.Door.isSillFree) = TRUE}
// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 2호Check(CDAPA_7_0_2){ KS}KS{ getBuildingUsage() = "Park"}// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 3호Check(CDAPA_7_0_3){ KS}KS{ getBuildingUsage() = "PublicFacilities"}// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 4호Check(CDAPA_7_0_4){ KS}KS{ getBuildingUsage() = "MultiUnitHouse"}// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 6호Check(CDAPA_7_0_6){ KS}KS{ getBuildingUsage() = "CommunicationFacility"}// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) Check(CDAPA_7){ IF CS THEN KS } CS{ getResult(CDAPA_7_0_1) = TRUE OR getResult(CDAOA_7_0_2) = TRUE OR getResult(CDAOA_7_0_3) = TRUE OR getResult(CDAOA_7_0_4) = TRUE } KS{ isInstalled(ConvenientFacility) = TRUE }// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 1호Check(CDAPA_7_0_1){ KS}KS{ getBuildingUsage() = "Park"}// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 2호Check(CDAPA_7_0_2){ KS}KS{ getBuildingUsage() = "PublicFacility"}// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 3호Check(CDAPA_7_0_3){ KS}KS{ getBuildingUsage() = "MultiUnitHouse"}// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 4호Check(CDAPA_7_0_4){ KS}KS{ getBuildingUsage() = "CommunicationFacility"}
// 장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 8조 (편의시설의 설치기준) 1항Check(CDAPA_8_1){ KS}KS{ getResult(EDCDAPA_4) = TRUE}
// 주차장법 12조의2 (다른 법률과의 관계)Check(PLA_12-2){ IF CS THEN KS}CS{ isObjectProperty(Building.isExclusiveUseOfParkingLot)=True}KS{ getResult(PLA_12-2_0_1)=True getResult(PLA_12-2_0_2)=True getResult(PLA_12-2_0_3)=True}//주차장법 12조의2 (다른 법률과의 관계) 1호Check(PLA_12-2_0_1){ KS}KS{getBuildingToLandRatio() <90/100}//주차장법 12조의2 (다른 법률과의 관계)2호Check(PLA_12-2_0_2){ KS}KS{ getFloorAreaRatio()<1500%}//주차장법 12조의2 (다른 법률과의 관계) 3호Check(PLA_12-2_0_3){ KS}KS{ getSiteArea()>45 m2}
//주차장법 19조 (부설주차장의 설치) 1항 Check(PLA_19_1){ IF CS THEN KS } CS{ getSiteUsage()="UrbanArea" OR getSiteUsage()="DistrictUnitPlanningZone" OR getSiteUsage()="ControlArea" } KS{ ParkingLot myParkingLot{ isObjectProperty(ParkingLot.isAttachedParking)=True } isInstalled(myParkingLot, Facility)=True isInstalled(myParkingLot, Site)=True }
//주차장법 19조의5 (기계식주차장의 설치기준)Check(PLA_19-5){ IF CS THEN KS}CS{ getSpaceUsage()="MechanicalParking"}KS{ getResult(ERPA_16-2_0_1)=True}
//주차장법 6조 (주차장설비기준 등) 1항Check(PLA_6_1){ KS}KS{ getResult(ERPA_2)=TRUE getResult(ERPA_3)=TRUE getResult(ERPA_4)=TRUE getResult(ERPA_6)=TRUE getResult(ERPA_11)=TRUE}
//주차장법 시행규칙 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항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항 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항 5호Check(ERPA_11_5_5){ KS}KS{ getObjectWidth(ParkingLot.Opening) >= 3m}
//주차장법 시행규칙 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)="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 (기계식주차장의 설치기준) 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)="MiddleSize" } KS{ myParking.length>=5.05 m myParking.width>1.85 m }//주차장법 시행규칙 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 }
// 주차장법 시행규칙 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항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}//주차장법 시행규칙 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}
//주차장법 시행규칙 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항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항 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 }//주차장법 시행규칙 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조 (노외주차장의 구조·설비기준) 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항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항 3호Check(ERPA_6_4_3){ KS}KS{ getSpaceUsage(ParkingLotSubsidiaryFacility) = "GasStation"}//주차장법 시행규칙 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 }
//주차장법 시행령 4조 (경형자동차 전용주차구획의 설치비율)ParkingLot myParkingLot{ isObjectProperty(ParkingLot.isOffStreetParking )=True }Rate EDPA_4_rate= myParkingLot.numberOfPakingUnit*0.05
//주차장법 시행령 6조 (부설주차장의 설치) 1항Check(ERPA_6_1){IF !CS THEN KS}CS{getResult(ERPA_6_1_1)=TRUEOR getResult(ERPA_6_1_2)=TRUEOR getResult(ERPA_6_1_3)=TRUEOR getResult(ERPA_6_1_4)=TRUEOR getResult(ERPA_6_1_5)=TRUEOR getResult(ERPA_6_1_6)=TRUE}KS{ getResult(ERPA_*_1)=TRUE}//주차장법 시행령 6조 (부설주차장의 설치) 1항 6호Check(EDPA_6_1_6){KS}KS{ getBuildingUsage()= "Factory" getObjectProperty(Building.facilityArea)>= 10000m2}
//주차장법 시행령 별표1 부설주차장의 설치대상 시설물 종류 및 설치기준 Check(EDPA_*_1_1){ IF CS THEN KS } Space mySpace1{ getBuildingUsage()=” AmusementFacility” myTotalFloorArea = getTotalFloorArea(mySpace1) CS{ isExist(mySpace1)=TRUE } KS{ ParkingLot.numberOfParkingUnit<=myTotalFloorArea/100 } Check(EDPA_*_1_2){ IF CS THEN KS } Space mySpace2{ (getBuildingUsage()= “CulturalAndAssemblyFacility” AND getBuildingUsage() !=” Auditorium”) OR (getBuildingUsage() = “ReligiousFacility | CommercialFacility | TransportationFacilit” OR getBuildingUsage() = ”MedicalFacility” AND getBuildingUsage() != “MentalHospital | ConvalescentHospital | DetentionHoispital”) OR (getBuildingUsage() = “SportsFacility” AND getBuildingUsage() != “GolfCourse | GolfDrivingRange | OurdoorSwimmingPool”) OR (getBuildingUsage()= “BusinessFacility” AND getBuildingUsage() != “ForeignOfficialResidence | Officetels” ) } myTotalFloorArea2 = getTotalFloorArea(mySpace2) } CS{ isExist(mySpace2)=TRUE } KS{ ParkingLot.numberOfParkingUnit<=myTotalFloorArea2/150 } Check(EDPA_*_1_3){ IF CS THEN KS } Space mySpace3{ ((getBuildingUsage ()=” ClassINeighborhoodLivingFacility” AND getSpaceUsage != “PublicToilet | Shelter | CommunityChildCenter”) OR getBuildingUsage ()=”ClassIINeighborhoodLivingFacility” OR getBuildingUsage ()=”LodgingFacility”) } myTotalFloorArea3 = getTotalFloorArea(mySpace3) } CS{ isExist(mySpace3)=TRUE } KS{ ParkingLot.numberOfParkingUnit<=myTotalFloorArea3/200 } Check(EDPA_*_1_4){ IF CS1 THEN KS1 OR CS2 THEN KS2 } Space mySpace1{ getBuildingUsage ()=” DetachedHouse” } myTotalFloorArea = getTotalFloorArea(mySpace1) } CS1{ myTotalFloorArea>50 AND myTotalFloorArea<=150 } KS1{ isObjectProperty(parkingLot.numberofParkingUnit)=1 } CS2{ myTotalFloorArea>150 } KS2{ (myTotalFloorArea-150)/100+1=ParkingLot.numberofParkingUnit } Check(EDPA_*_1_7){ IF CS THEN KS } Space mySpace7{ getBuildingUsage ()=”Trainingfacility” getBuildingUsage ()=”Factory” getBuildingUsage () != ”AptartmentTypeFactory” } myTotalFloorArea7 = getTotalFloorArea(myspace7) CS{ isExist(mySpace7)=TRUE } KS{ ParkingLot.numberOfParkingUnit<=myTotalFloorArea7/400 } Check(EDPA_*_1_8){ IF CS THEN KS } Space mySpace8{ getBuildingUsage ()= “Warehouse” } myTotalFloorArea8 = getTotalFloorArea(mySpace8) } CS{ isExist(mySpace8)=TRUE } KS{ ParkingLot.numberOfParkingUnit<=myTotalFloorArea8/400 } Check(EDPA_*_1_9){ IF CS THEN KS } Space mySpace9{ getBuildingUsage ()= “DormitoryForStudents” } myTotalFloorArea9 = getTotalFloorArea(myspace9) CS{ isExist(mySpace9)=TRUE } KS{ ParkingLot.numberOfParkingUnit<=myTotalFloorArea9/400 } Check(EDPA_*_1_10){ IF CS THEN KS } Space mySpace10 { getObject(Space) != myspace1 | myspace2 | myspace3 | myspace4 | myspace5 | myspace6 | myspace7 | myspace8 | myspace9 | } myTotalFloorArea10 = getTotalFloorArea(mySpace10) } CS{ isExist(mySpace9)=TRUE } KS{ ParkingLot.numberOfParkingUnit<=myTotalFloorArea10/300 } Check(EDPA_*_1_0_1){ IF CS THEN KS } CS{ getResult(EDPA_*_1_0_1_가)= TRUE OR getResult(EDPA_*_1_0_1_나)= TRUE OR getResult(EDPA_*_1_0_1_다)= TRUE OR getResult(EDPA_*_1_0_1_라)= TRUE OR getResult(EDPA_*_1_0_1_마)= TRUE OR getResult(EDPA_*_1_0_1_바)= TRUE OR getResult(EDPA_*_1_0_1_사)= TRUE } KS{ isExist(ParkingLot.isAttachedParking)=FALSE } Check(EDPA_*_1_0_1_가){ KS } isExist(ClassINeighborhoodLivingFacility.Substation)=TRUE OR isExist(ClassINeighborhoodLivingFacility.PumpingStation)=TRUE OR isExist(ClassINeighborhoodLivingFacility.PurificationPlant)=TRUE OR isExist(ClassINeighborhoodLivingFacility.Shelter)=TRUE OR isExist(ClassINeighborhoodLivingFacility.PublicToilet)=TRUE Check(EDPA_*_1_0_1_나){ KS } isExist(ReligiousFacility.Monastery)=TRUE OR isExist(ReligiousFacility.Convent)=TRUE OR isExist(ReligiousFacility.Chapel)=TRUE OR isExist(ReligiousFacility.Shrine)=TRUE Check(EDPA_*_1_0_1_다){ KS } isExist(getBuildingUsage()=”FacilityForAnimalAndPlant”)=TRUE AND isExist(getBuildingUsage()=”SlaughterHouse”)=FALSE AND isExist(getBuildingUsage()=”ChickenSlaughterHouse”)=FALSE Check(EDPA_*_1_0_1_라){ KS } isExist(FacilityForBroadcastingAndTelecommunication.TransmitAndReceptionAndTransitFacility)=TRUE Check(EDPA_*_1_0_1_마){ KS } getObjectProperty(Building.isExclusiveUseOfParkingLot) = FALSE (getBuildingUsage() != "CommercialFacility.DepartmentStore" OR "CommercialFacility.ShoppingCenter" OR "LargeStore" OR getBuildingUsage() != "CulturalAndAssemblyFacility.MovieTheater" OR "CulturalAndAssemblyFacility.ExhibitionHall" OR "CulturalAndAssemblyFacility.WeddingHall" Check(EDPA_*_1_0_1_바){ KS } getBuildingUsage()= “Station” Check(EDPA_*_1_0_1_사){ KS } getResult(EDBA_6_1_4)=TRUE Check(EDPA_*_1_0_4){ KS } Space mySpace{ getBuildingUsage()= “DetachedHouse” getBuildingUsage() !=”Multi-familyHouses” } getTotalArea(mySpace)<=50m2 getTotalArea(mySpace)/100 = ParkingLot.numberOfParkingUnit
//주택건설기준 등에 관한 규정 11조 (지하층의 활용) Check(RHC_11){ IF CS THEN KS}CS{ getBuildingUsage()=" MultiUnitHouse" getFloorNumber(Space)<0}KS{ getResult(BA_53)=True}
//주택건설기준 등에 관한 규정 15조 (승강기등) 1항Check(RHC_15_1){ getResult(RHC_15_5) = TRUE AND IF (CS1 AND !CS2) THEN KS}CS1{ getBuildingUsage() = "MultiUnitHouse" getBuildingStoriesCount() >= 6}CS2{ getBuildingStoriesCount = 6 Stair myStair{ isObjectProperty(Stair.isDirect) = TRUE } getFloorArea() = FA FA / 300 = FA2 getIntegeralNumber(FA2) = FA3 getObjectCount(myStair) >= FA3}KS{ Elevator myElevator{ getObjectProperty(Elevator.occupancy) >= 6 } isExist(myElevator) = TRUE}//주택건설기준 등에 관한 규정 15조 (승강기등) 2항Check(RHC_15_2){ IF CS THEN KS}CS{ getBuildingUsage() = "MultiUnitHouse" getBuildingStoriesCount() >= 10}KS{ Elevator myElevator{ getObjectProperty(Elevator.cooupancy) >= 6 isObjectProperty(Elevator.isEmergency) = TRUE } isExist(myElevator) = TRUE}//주택건설기준 등에 관한 규정 15조 (승강기등) 3항Check(RHC_15_3){ getResult(RHC_15_5) = TRUE AND IF CS THEN KS}CS{ getBuildingUsage() = "MultiUnitHouse" getBuildingStoriesCount() >= 7}KS{ getResult(RHC_15_3_1) = TRUE getResult(RHC_15_3_2) = TRUE getResult(RHC_15_3_3) = TRUE getResult(RHC_15_3_4) = TRUE}// 주택건설기준 등에 관한 규정 15조 (승강기등) 3항 1호Check(RHC_15_3_1){ KS}KS{ getObjectProperty(Elevator.loadingCapacity) >= 0.9}//주택건설기준 등에 관한 규정 15조 (승강기등) 3항 2호Check(RHC_15_3_2){ KS}KS{ Elevator myElevator{ getObjectProperty(Elevator.usage) = "FreightElevator" } (getObjectWidth(myElevator) >= 1.35m getObjectDepth(myElevator) >= 1.6m) OR(getObjectWidth(myElevator) >= 1.6m getObjectDepth(myElevator) >= 1.35m)}//주택건설기준 등에 관한 규정 15조 (승강기등) 3항 3호Check(RHC_15_3_3){ IF CS THEN KS}CS{ }KS{ Elevator myElevator{ getObjectProperty(Elevator.usage) = "FreightElevator" } isInstalled(myElevator, Stair.Space) = TRUE}//주택건설기준 등에 관한 규정 15조 (승강기등) 3항 4호Check(RHC_15_3_4){ IF CS THEN KS}CS{ }KS{ Elevator myElevator{ getObjectProperty(Elevator.usage) = "FreightElevator" } getObjectCount(myElevator) = ELV 100*n <= getObjectProperty(Building.numberOfHousehold) <100*(n+1) n <= ELV}//주택건설기준 등에 관한 규정 15조 (승강기등) 4항Check(RHC_15_4){ IF CS THEN KS}CS{ Elevator myElevator{ isObjectProperty(Elevator.isEmergency) = TRUE OR getObjectProperty(Elevator.usage) = "PassengerElevator" } getResult(RHC_15_1) = TRUE getResult(RHC_15_2) = TRUE getResult(RHC_15_3_1) = TRUE getResult(RHC_15_3_2) = TRUE getResult(RHC_15_3_3) = TRUE getResult(RHC_15_3_4) = TRUE}KS{ Elevator myElevator{ isObjectProperty(Elevator.isEmergency) = TRUE OR getObjectProperty(Elevator.usage) = "PassengerElevator" } Elevator myElevator2{ getObjectProperty(Elevator.usage) = "FreightElevator" } isReplaced(myElevator2, myElevator) = TRUE}//주택건설기준 등에 관한 규정 15조 (승강기등) 5항Check(RHC_15_5){ KS}KS{ getResult(RHC_15_1) = TRUE getResult(RHC_15_2) = TRUE getResult(RHC_15_3) = TRUE}
//주택법 시행령 47조 (행위허가 등의 기준 등) 5항Check(NFSC506_47_5){ IF !CS THEN KS}CS{ getBuildingUsage() = "MultiUnitHouse" getObjectProperty(Floor.number) < 0}KS{ Floor myFloor{ getObjectProperty(Floor.number) < 0 } getFloorUsage(myFloor) != "ResidentsCommonSpace"}
//소화기구 및 자동 소화장치의 화재안전기준(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 }
// 연결살수설비의 화재안전기준(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 }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) 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}
// 연결살수설비의 화재안전기준(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항 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조 (배관 등) 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조 (배관 등) 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 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항 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) 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) 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조 (방수구) 2호 나목Check(NFSC502_6_0_2_가){ KS}KS{ getElementDistance(FireDepartmentConnectionSystem.OutLet, Wall )<=50 m getElementDistance(FireDepartmentConnectionSystem.OutLet, Column )<=50 m}//연결송수관설비의 화재안전기준(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) 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 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{ isInstalled("구부러진 모퉁이", LeadingLightForCorridor)=True // 20m마다 설치 , 함수 필요 }//유도등 및 유도표지의 화재안전기준(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{ isInstalled("구부러진 모퉁이", LeadingLightForCorridor)=True // 20m마다 설치 , 함수 필요 }//유도등 및 유도표지의 화재안전기준(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) 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 }
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(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 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조 (송수구) 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) 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) 8조 (방화벽의 설치기준)Check(NFSC506_8){ KS}KS{ getResult(NFSC506_8_0_1) getResult(NFSC506_8_0_2) getResult(NFSC506_8_0_3)}// 연소방지설비의 화재안전기준(nfsc 506) 8조 (방화벽의 설치기준) 1호Check(NFSC506_8_0_1){ KS}KS{ Wall myWall{ isObjectProperty(Wall.isFireProofStructure) = TRUE } isObjectProperty(myWall.isfireResistantStructure) = TRUE}// 연소방지설비의 화재안전기준(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 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 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 102) 6조 (배관 등) 1항Check(NFSC102_6_1){ KS}KS{ getResult(NFSC102_6_1_1) = TRUE getResult(NFSC102_6_1_2) = TRUE}// 옥내소화전설비의 화재안전기준(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조 (배관 등) 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조 (배관 등) 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조 (배관 등) 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조 (배관 등) 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조 (배관 등) 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 103) 10조 (헤드) 1항 Check(NFSC_10_1){ KS2 AND IF CS THEN KS1 KS2{ Space mySpace1{ 천장과반자사이 } hasElement(SpecificFireFightingBuilding.Ceiling,SprinklerHead)= TRUE hasElement(SpecificFireFightingBuilding.CeilingCovering,SprinklerHead)= TRUE hasElement(SpecificFireFightingBuilding.mySpace1,SprinklerHead)= TRUE hasElement(SpecificFireFightingBuilding.Duct,SprinklerHead)= TRUE hasElement(SpecificFireFightingBuilding.Shelf,SprinklerHead)= TRUE } CS{ Space mySpace2{ isExternal(Space)= FALSE } getSpaceWidth(Building.mySpace)<= 9m } KS1{ Wall myWall{ Wall.isSideWall=TRUE } hasElement(myWall,SprinklerSystem.Head)=TRUE hasElement(myWall,SprinklerSystem.Head)=FALSE }// 스프링클러설비의 화재안전기준(NFSC 103) 10조 (음향장치 및 기동장치) 2항 Check(NFSC103_10_2){ IF (CS1 THEN KS1) OR (CS2 THEN KS2) } CS1{ Space.usage = "RackWarehouse" isObjectProperty(Space.hasSpecialCombustible) = TRUE } KS1{ getObjectHeight(Rack) / 4 = RH (RH-1) <= getObjectCount(SprinklerHead) < RH getObjectInterval(SprinklerHead) = 4m } CS2{ Space.usage = "RackWarehouse" isObjectProperty(Space.hasSpecialCombustible) != TRUE } KS2{ getObjectHeight(Rack) / 6 = RH (RH-1) <= getObjectCount(SprinklerHead) < RH getObjectInterval(SprinklerHead) = 6m }//스프링클러설비의 화재안전기준(NFSC 103) 10조 3항 check(NFSC103_10_3){ getResult(NFSC103_10_3_1) = TRUE getResult(NFSC103_10_3_2) = TRUE getResult(NFSC103_10_3_3) = TRUE getResult(NFSC103_10_3_4) = TRUE}//스프링클러설비의 화재안전기준(NFSC 103) 10조 3항 1호 check(NFSC103_10_3_1){ IF CS THEN KS } Space mySpace1{ Space.usage="StagePart" OR isObjectProperty(Space.hasSpecialCombustible)=TRUE } CS{ isExist(PlenumSpace)=TRUE } KS{ getHorizontalDistance(Ceiling | CeilingCovering | mySpace2 | Duct | Shelf,SprinklerSystem.Head)<=1.7m }//스프링클러설비의 화재안전기준(NFSC 103) 10조 3항 2호 check(NFSC103_10_3_2){ IF (CS1 THEN KS1) OR (CS2 THEN KS2) } Space mySpace1{ Space.usage="RackWarehouse" Space mySpace2{ Space.usage="RackWarehouse" isObjectProperty(Space.hasSpecialCombustible)=TRUE } CS1{ isExist(mySpace1)=TRUE } KS1{ getHorizontalDistance(Ceiling|CeilingCovering|PlenumSpace|Duct|Shelf,SprinklerHead)<=2.5m } CS2{ isExist(mySpace2)=TRUE } KS2{ getHorizontalDistance(Ceiling|CeilingCovering|PlenumSpace|Duct|Shelf,SprinklerHead)<=1.7m }//스프링클러설비의 화재안전기준(NFSC 103) 10조 3항 3호 check(NFSC103_10_3_3){ IF (CS) THEN KS ENDIF } CS{ getBuildingUsage() = "MultiUnitHouse" } KS{ Space mySpace = getObject(Room) getObjectVerticalDistance(mySpace.Ceiling, SprinklerHead) <= 3.2m getObjectVerticalDistance(mySpace.CeilingCover, SprinklerHead) <= 3.2m getObjectVerticalDistance(mySpace.Duct, SprinklerHead) <= 3.2m getObjectVerticalDistance(mySpace.Shelf, SprinklerHead) <= 3.2m }//스프링클러설비의 화재안전기준(NFSC 103) 10조 3항 4호check(NFSC103_10_3_4){ IF CS1 THEN IF (CS2) THEN KS ELSE KS2 ENDIF ENDIF}CS1{ Space mySpace = getObject(특정소방대상물) getResult(_1) = False getResult(_2) = False getResult(_3) = False}CS2{ isFireResistanceStructure(mySpace) = TRUE}KS1{ getObjectVerticalDistance(mySpace.Ceiling, SprinklerHead) <= 2,3m getObjectVerticalDistance(mySpace.CeilingCover, SprinklerHead) <= 2.3m getObjectVerticalDistance(mySpace.Duct, SprinklerHead) <= 2.3m getObjectVerticalDistance(mySpace.Shelf, SprinklerHead) <= 2.3m}KS2{ getObjectVerticalDistance(mySpace.Ceiling, SprinklerHead) <= 2,1m getObjectVerticalDistance(mySpace.CeilingCover, SprinklerHead) <= 2.1m getObjectVerticalDistance(mySpace.Duct, SprinklerHead) <= 2.1m getObjectVerticalDistance(mySpace.Shelf, SprinklerHead) <= 2.1m}Check(NFCS103_10_5){ IF CS THEN KS } CS{ getResult(NFCS103_10_5_1) OR getResult(NFCS103_10_5_2) } KS{ Head myHead{ getObjectProperty(SprinklerSystem.Head.responseType)=QuickResponseType } isInstalled(myHead) = TRUE }Check(NFCS103_10_5_1_1){KS}KS{getSpaceUsage()= "MultiUnitHouse.LivingRoom"OR getSpaceUsage()="FacilitiesForTheAgedAndChildren.LivingRoom"}Check(NFCS103){KS}KS{getSpaceUsage()="Officetels.BedRoom"OR getSpaceUsage()="LodgingFacility.BedRoom"OR getSpaceUsage()="Hospital.HospitalRoom"}//스프링클러설비의 화재안전기준(NFSC 103) 10조 7호check(NFSC103_10_7){ getResult(NFSC103_10_7_1) = TRUE getResult(NFSC103_10_7_2) = TRUE getResult(NFSC103_10_7_3) = TRUE getResult(NFSC103_10_7_4) = TRUE getResult(NFSC103_10_7_5) = TRUE getResult(NFSC103_10_7_6) = TRUE getResult(NFSC103_10_7_7) = TRUE getResult(NFSC103_10_7_8) = TRUE}//스프링클러설비의 화재안전기준(NFSC 103) 10조 7호 1항check(NFSC103_10_7_1){ KS}KS{ getObjectDistance(Wall, SprinklerHead) >= 10cm isVacant(SprinklerHead,a, 60) = TRUE}Check(NFCS103){KS}KS{getObjectDistance(SprinklerHead,Ceiling,a)<=30CM}Check(NFCS103_10_7_3){ IF !CS THEN KS } objectDistance myObjectDistance1{ getObjectDistance(SprinklerHead,Obstacle,a) } objectDistance myObjectDistance2{ getObjectDistance(SprinklerHead,Ceiling,a) } CS{ getObjectWidth(Obstacle)<="myObjectDistance" KS{ getObjectDistance(Pipe,Ceiling,a)<"myObjectDistance" OR getObjectDistance(Pipe,Hanger,a)<"myObjectDistance" OR getObjectDistance(Pipe,LightingFixture,a)<"myObjectDistance" }//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 7항4호Check(NFSC103_10_7_4){ IF !CS THEN KS }CS{ getObjectProperty(SprinklerHead.shapeType)="SideWallType"OR getResult(NFSC203_10_7_6)=TRUE }KS{ isParallel(SprinklerHead.Deflector,Deflector.AttachingToSurface)=TRUE}//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 7항5호Check(NFSC103_10_7_5){ IF CS THEN KS }CS{ getObjectProperty(Ceiling.gradient)>1/10 }KS{ isParallel(BranchPipe, Ceiling.Top)=TRUE getResult(NFSC103_10_7_5_1)=TRUE OR getResult(NFSC103_10_7_5_2)=TRUE}//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 7항5호Check(NFSC103_10_7_5_1){ IF CS THEN KS}CS{ isInstalled(SprinklerHead, a)=TRUE}KS{ isHorizontal(SprinklerHead.Deflector)=TRUE}//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 7항5호 나목 Check(NFSC103_10_7_5_2){ IF CS THEN KS } CS{ isInstalled(Celling,BranchPipe,b)=TRUE } KS{ BD=getElementDistance(BranchPipe, c) SD=getElementDistance(SprinklerHead, c) SD/BD>=2 BD>=1 m IF isInstalled(BranchPipe, SprinklerHead, a )=TRUE THEN getVerticalDistance(SprinklerHead,Ceiling.UppermostPart)<=90 cm END IF }//스프링클러설비의 화재안전기준(nfsc 103) 10조 (헤드) 7항 6호Check(NFSC103_10_7_6){ IF (CS1 THEN KS1) or (CS2 THEN KS2)}CS1{ isObjectProperty(Opening.isFireSpreading)=TRUE getObjectWidth(Opening, a) > 2.5m}KS2{ isInstalled(Opening, Sprinkler.Head, 2.5m) = TRUE getElementDistance(Opening.InsideSurface, Sprinkler.Head) <= 15cm}CS2{ isObjectProperty(Opening.isFireSpreading)=TRUE getObjectWidth(Opening, Sprinkler.Head, a) <= 2.5m}KS2{ isInstalled(Opening, Sprinkler.Head, center) = TRUE getElementDistance(Opening.InsideSurface, Sprinkler.Head) <= 15cm}//스프링클러설비의 화재안전기준(NFSC 103) 10조 7항 7호 check(NFSC103_10_7_7){ IF !CS THEN KS } CS{ getResult(NFSC103_10_7_7_가)=TRUE OR getResult(NFSC103_10_7_7_나)=TRUE } KS{ SprinklerHead mySprinklerHead{ SprinklerHead.installationDirectionType="BottomUpType" } SprinklerSystem mySprinklerSystem1{ SprinklerSystem.type = "VacuumSprinklerExtinguishingSystem" } SprinklerSystem mySprinklerSystem2{ SprinklerSystem.type = "WetPipeSprinklerSystem" } hasElement(mySprinklerSystem1, mySprinklerHead)=TRUE hasElement(mySprinklerSystem2, mySprinklerHead)=TRUE }//스프링클러설비의 화재안전기준(NFSC 103) 10조 7항 7호 가목check(NFSC103_10_7_7_가){KS}KS{SprinklerHead mySprinklerHead{isObjectProperty(SprinklerHead.isDryPendent)=TRUE}SprinklerSystem mySprinklerSystem{getObject(WetPipeSprinklerSystem)getObject(VacuumSprinklerExtinguishingSystem)}SprinklerSystem mySprinklerSystem1{getObject(SprinklerSystem)!= mySprinklerSystem}hasElement(mySprinklerSystem1, mySprinklerHead)=TRUE}//스프링클러설비의 화재안전기준(NFSC 103) 10조 7항 7호 다목check(NFSC103_10_7_7_다){KS}KS{SprinklerHead mySprinklerHead{isObjectProperty(SprinklerHead.openAndCloseType)="OpenType"}SprinklerSystem mySprinklerSystem{getObject(WetPipeSprinklerSystem)getObject(VacuumSprinklerExtinguishingSystem)}SprinklerSystem mySprinklerSystem1{getObject(SprinklerSystem)!= mySprinklerSystem}hasElement(mySprinklerSystem1, mySprinklerHead)=TRUE}//스프링클러설비의 화재안전기준 10조 (헤드) 7항 8호check(NFSC103_10_7_8){ IF CS THEN KS}SprinklerHead mySprinklerHead{ getObjectProperty(SprinklerHead.shapeType) = "SideWallType"}CS{ isExist(mySprinklerHead) = TRUE}KS{ isInstalled(mySprinklerHead, c) = TRUE}//스프링클러설비의 화재안전기준 10조 (헤드) 8항check(NFSC103_10_8){ (IF !(CS1) THEN KS1) or (IF CS1 THEN KS2)}KS1{ Beam myBeam{ hasObject(SpecificFireFightingBuilding, Beam) = TRUE } getElementDistance(myBeam, SprinklerHead, 1) = TRUE //Table getElementDistance(SprinklerHead.Deflector, Beam, a) + getObjectWidth(SprinklerHead.Deflector)*0.5 = SBD getObjectVerticalDistance(SprinklerHead.Deflector, Beam.BottomSurface, a) = SHD IF SBD < 0.75 m THEN SHD < getObjectHeight(Beam.BottomSurface) IF 0.75 m <= SBD < 1 m THEN SHD < 0.1 m IF 1 m <= SBD < 1.5 m THEN SHD < 0.15 m IF SBD >= 1.5 m THEN SHD < 0.3 m }CS1{ getObjectDistance(Ceiling.Surface, Beam.BottomSurface) > 55 cm getObjectDistance(Beam.BottomSideSurface, SprinklerHead) = OD OD <= getElementDistance(SprinklerHead, c)*0.5}KS2{ getObjectDistance(SprinklerHead, SprinklerHead.AttachingToSurface) <= 55 cm}
//스프링클러설비의 화재안전기준 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 }
// 간이스프링클러설비의 화재안전기준(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항Check(NFSC503A_8_1){ getResult(NFSC503A_8_1_1)=TRUE getResult(NFSC503A_8_1_2)=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조 (배관 및 밸브) 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조 (배관 및 밸브) 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 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 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조 (배관 및 밸브) 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 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 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}