Open BIM based Technological Environment for Building Design Quality Enhancement
1-2. 설계품질검증 자동화를 위한 각종 법규 및 제기준의 체계화된 논리규칙 데이터베이스 구축
- 건축물 설계품질 혁신을 위한 개방형 BIM 기술 환경 구축 | 국토교통부
//주택건설기준 등에 관한 규정 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
}
4. 복도형인 공동주택의 경우에는 100세대까지 1대를 설치하되, 100세대를 넘는 경우에는 100세대마다 1대를 추가로 설치할 것
//주택건설기준 등에 관한 규정 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
}
//주차장법 시행규칙 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
}
다. 경사로의 차로 너비는 직선형인 경우에는 3.3미터 이상(2차로의 경우에는 6미터 이상)으로 하고, 곡선형인 경우에는 3.6미터 이상(2차로의 경우에는 6.5미터 이상)으로 하며, 경사로의 양쪽 벽면으로부터 30센티미터 이상의 지점에 높이 10센티미터 이상 15센티미터 미만의 연석(沿石)을 설치하여야 한다. 이 경우 연석 부분은 차로의 너비에 포함되는 것으로 본다.
6. 자동차용 승강기로 운반된 자동차가 주차구획까지 자주식으로 들어가는 노외주차장의 경우에는 주차대수 30대마다 1대의 자동차용 승강기를 설치하여야 한다. 이 경우 제16조의2제1호 및 제3호를 준용하되, 자동차용 승강기의 출구와 입구가 따로 설치되어 있거나 주차장의 내부에서 자동차가 방향전환을 할 수 있을 때에는 제16조의2제3호에 따른 진입로를 설치하고 제16조의2제1호에 따른 전면공지 또는 방향전환장치를 설치하지 아니할 수 있다.
//주차장법 시행규칙 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
}
1. 차로의 너비는 2.5미터 이상으로 한다. 다만, 주차단위구획과 접하여 있는 차로의 너비는 주차형식에 따라 다음 표에 따른 기준 이상으로 하여야 한다.
(표)
//주차장법 시행규칙 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
}
가. 중형 기계식주차장(길이 5.05미터 이하, 너비 1.85미터 이하, 높이 1.55미터 이하, 무게 1,850킬로그램 이하인 자동차를 주차할 수 있는 기계식주차장을 말한다. 이하 같다): 너비 8.1미터 이상, 길이 9.5미터 이상의 전면공지 또는 지름 4미터 이상의 방향전환장치와 그 방향전환장치에 접한 너비 1미터 이상의 여유 공지
//주차장법 시행규칙 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
}
나. 대형 기계식주차장(길이 5.75미터 이하, 너비 2.15미터 이하, 높이 1.85미터 이하, 무게 2,200킬로그램 이하인 자동차를 주차할 수 있는 기계식주차장을 말한다. 이하 같다): 너비 10미터 이상, 길이 11미터 이상의 전면공지 또는 지름 4.5미터 이상의 방향전환장치와 그 방향전환장치에 접한 너비 1미터 이상의 여유 공지
//주차장법 시행규칙 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
}
2. 지하층을 제외한 층수가 7층 이상으로서 연면적이 2,000㎡ 이상이거나 지하층의 바닥면적의 합계가 3,000㎡ 이상인 특정소방대상물의 비상콘센트설비에는 자가발전설비 또는 비상전원수전설비를 비상전원으로 설치할 것. 다만, 둘 이상의 변전소에서 전력을 동시에 공급받을 수 있거나 하나의 변전소로부터 전력의 공급이 중단되는 때에는 자동으로 다른 변전소로부터 전력을 공급받은 수 있도록 상용전원을 설치한 경우에는 비상전원을 설치하지 아니할 수 있다.<개정 2012.8.20, 2013.9.3.>
⑥ 펌프의 토출 측 주배관의 구경은 유속이 4㎧ 이하가 될 수 있는 크기 이상으로 하여야 하고, 옥내소화전방수구와 연결되는 가지배관의 구경은 40㎜(호스릴옥내소화전설비의 경우에는 25㎜) 이상으로 하여야 하며, 주배관중 수직배관의 구경은 50㎜(호스릴옥내소화전설비의 경우에는 32㎜) 이상으로 하여야 한다.<개정 2008.12.15.>
// 옥내소화전설비의 화재안전기준(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
}
4. 유수검지장치를 실내에 설치하거나 보호용 철망 등으로 구획하여 바닥으로부터 0.8m 이상 1.5m 이하의 위치에 설치하되, 그 실 등에는 가로 0.5m 이상 세로 1m 이상의 출입문을 설치하고 그 출입문 상단에 "유수검지장치실" 이라고 표시한 표지를 설치할 것. 다만, 유수검지장치를 기계실(공조용기계실을 포함한다)안에 설치하는 경우에는 별도의 실 또는 보호용 철망을 설치하지 아니하고 기계실 출입문 상단에 "유수검지장치실"이라고 표시한 표지를 설치할 수 있다.<개정 2008.12.15>
⑤ 다음 각 호의 어느 하나에 해당하는 장소에는 조기반응형 스프링클러헤드를 설치하여야 한다.
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
}
② 스프링클러설비에는 자가발전설비 또는 축전지설비에 따른 비상전원을 설치하여야 한다. 다만, 차고·주차장으로서 스프링클러설비가 설치된 부분의 바닥면적(「포소화설비의 화재안전기준(NFSC 105)」제13조제2항제2호에 따른 차고·주차장의 바닥면적을 포함한다)의 합계가 1,000㎡ 미만인 경우에는 비상전원수전설비로 설치할 수 있으며, 2이상의 변전소(「전기사업법」제67조에 따른 변전소를 말한다. 이하 같다)에서 전력을 동시에 공급받을 수 있거나 하나의 변전소로부터 전력의 공급이 중단되는 때에는 자동으로 다른 변전소로부터 전력을 공급받을 수 있도록 상용전원을 설치한 경우와 가압수조방식에는 비상전원을 설치하지 아니할 수 있다.<개정 2008.12.15, 2013.6.10>
③ 제2항에 따른 비상전원 중 자가발전설비 또는 축전지설비(내연기관에 따른 펌프를 설치한 경우에는 내연기관의 기동 및 제어용축전지를 말한다)는 다음 각 호의 기준을, 비상전원수전설비는 「소방시설용비상전원수전설비의 화재안전기준(NFSC 602)」에 따라 설치하여야 한다.<개정 2013.6.10>
// 스프링클러설비의 화재안전기준(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
}
1. 계단실(특별피난계단의 부속실을 포함한다)·경사로·승강기의 승강로·비상용승강기의 승강장·파이프덕트 및 덕트피트(파이프·덕트를 통과시키기 위한 구획된 구멍에 한한다)·목욕실·수영장(관람석부분을 제외한다)·화장실·직접 외기에 개방되어 있는 복도·기타 이와 유사한 장소<개정 2008.12.15, 2011.11.24>
// 스프링클러설비의 화재안전기준(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"
}
② 스프링클러설비의 가압송수장치로 사용하는 펌프를 옥내소화전설비·간이스프링클러설비·화재조기진압용 스프링클러설비·물분무소화설비·포소화설비 및 옥외소화전설비의 가압송수장치와 겸용하여 설치하는 경우의 펌프의 토출량은 각 소화설비에 해당하는 토출량을 합한 양 이상이 되도록 하여야 한다. 다만, 이들 소화설비 중 고정식 소화설비가 2 이상 설치되어 있고, 그 소화설비가 설치된 부분이 방화벽과 방화문으로 구획되어 있으며 각 소화설비에 지장이 없는 경우에는 펌프의 토출량 중 최대의 것 이상으로 할 수 있다.
4. 유수검지장치는 실내에 설치하거나 보호용 철망 등으로 구획하여 바닥으로부터 0.8m 이상 1.5m 이하의 위치에 설치하되, 그 실 등에는 가로 0.5m 이상 세로 1m 이상의 출입문을 설치하고 그 출입문 상단에 "유수검지장치실"이라고 표시한 표지를 설치할 것. 다만, 유수검지장치를 기계실(공조용기계실을 포함한다)안에 설치하는 경우에는 별도의 실 또는 보호용 철망을 설치하지 아니하고 기계실 출입문 상단에 "유수검지장치실"이라고 표시한 표지를 설치할 수 있다. <개정 2008.12.15, 2013.6.10>
7. 간이스프링클러설비가 설치되는 특정소방대상물에 부설된 주차장부분(영 별표 5 제1호마목에 해당하지 아니하는 부분에 한한다)에는 습식 외의 방식으로 하여야 한다. 다만, 동결의 우려가 없거나 동결을 방지할 수 있는 구조 또는 장치가 된 곳은 그러하지 아니하다.<신설 2013.6.10>
1. 전용으로 할 것. 다만, 상수도직결형의 경우에는 수도배관 호칭지름 32㎜ 이상의 배관이어야 하고, 간이헤드가 개방될 경우에는 유수신호 작동과 동시에 다른 용도로 사용하는 배관의 송수를 자동 차단할 수 있도록 하여야 하며, 배관과 연결되는 이음쇠 등의 부속품은 물이 고이는 현상을 방지하는 조치를 하여야 한다. <개정 2011.11.24>
// 간이스프링클러설비의 화재안전기준(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
}
제7조(감지기) ① 자동화재탐지설비의 감지기는 부착높이에 따라 다음 표에 따른 감지기를 설치하여야 한다. 다만, 지하층·무창층 등으로서 환기가 잘되지 아니하거나 실내면적이 40㎡ 미만인 장소, 감지기의 부착면과 실내바닥과의 거리가 2.3m 이하인 곳으로서 일시적으로 발생한 열·연기 또는 먼지 등으로 인하여 화재신호를 발신할 우려가 있는 장소(제5조제2항 본문에 따른 수신기를 설치한 장소를 제외한다)에는 다음 각 호에서 정한 감지기중 적응성 있는 감지기를 설치하여야 한다.
자동화재탐지설비의 화재안전기준(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
}
가. 감지부는 그 부착높이 및 특정소방대상물에 따라 다음 표에 따른 바닥면적마다 1개 이상으로 할 것. 다만, 바닥면적이 다음 표에 따른 면적의 2배 이하인 경우에는 2개(부착높이가 8m 미만이고, 바닥면적이 다음 표에 따른 면적 이하인 경우에는 1개) 이상으로 하여야 한다.
자동화재탐지설비의 화재안전기준(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 = 65
isInstalled(mySensor1, FloorSlab.Space, C, FA) = TRUE)
OR
(FA = 36
isInstalled(mySensor2, FloorSlab.Space, C, FA) = TRUE)
IF getObjectArea(Sensor.FloorSlab) <= FA
THEN getObjectCount(Sensor) = 1
ELSE IF getObjectArea(Sensor.FloorSlab) <= 2*FA
THEN getObjectCount(Sensor) >= 2
}
ELSE IF
{isFireResistantStructure(SpecificFireFightingBuilding) = TRUE)
AND
{isInstalled(Sensor, FloorSlab) = TRUE
AND
getObjectVerticalDistance(FloorSlab, Sensor) >= 8m
AND
getObjectVerticalDistance(FloorSlab, Sensor) < 15m
THEN
{(FA = 50
isInstalled(mySensor1, FloorSlab.Space, C, FA) = TRUE)
OR
(FA = 36
isInstalled(mySensor2, FloorSlab.Space, C, FA) = TRUE)
IF getObjectArea(Sensor.FloorSlab) <= 2*FA
THEN getObjectCount(Sensor) >= 2
}
ELSE IF
{isFireResistantStructure(SpecificFireFightingBuilding) != TRUE)
AND
{isInstalled(Sensor, FloorSlab) = TRUE
getObjectVerticalLocation(FloorSlab, Sensor) < 8m
}
THEN
{(FA = 40
isInstalled(mySensor1, FloorSlab.Space, C, FA) = TRUE)
OR
(FA = 23
isInstalled(mySensor2, FloorSlab.Space, C, FA) = TRUE)
IF getObjectArea(Sensor.FloorSlab) <= FA
THEN getObjectCount(Sensor) = 1
ELSE IF getObjectArea(Sensor.FloorSlab) <= 2*FA
THEN getObjectCount(Sensor) >= 2
}
ELSE IF
{isFireResistantStructure(SpecificFireFightingBuilding) != TRUE)
AND
getObjectVerticalDistance(FloorSlab, Sensor) >= 8m
AND
getObjectVerticalDistance(FloorSlab, Sensor) < 15m
}
THEN
{(FA = 30
isInstalled(mySensor1, FloorSlab.Space, C, FA) = TRUE)
OR
(FA = 23
isInstalled(mySensor2, FloorSlab.Space, C, FA) = TRUE)
IF getObjectArea(Sensor.FloorSlab) <= 2*FA
THEN getObjectCount(Sensor) >= 2
}
//연결송수관설비의 화재안전기준(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{
// 송수구·자동배수밸브·체크밸브·자동배수밸브의 순으로 설치할 것
}
1. 배관 내 사용압력이 1.2 ㎫ 미만일 경우에는 다음 각 목의 어느 하나에 해당하는 것 또는 동등 이상의 강도·내식성 및 내열성을 가진 것
//연결송수관설비의 화재안전기준(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
}