1
9637
유도등 및 유도표지의 화재안전기준(nfsc 303) 제 8조의2조 2 항 3호
3. 피난유도 표시부는 50㎝이내의 간격으로 연속되도록 설치하되 실내장식물 등으로 설치가 곤란할 경우 1m 이내로 설치할 것
// 유도등 및 유도표지의 화재안전기준(nfsc 303) 8조의2 (피난유도선 설치기준) 2항 3호
Check(NFSC303_8-2_2_3){
KS
}
KS{
getObjectInterval( LeadingSignPart) < 50cm
}
Modify
2
10881
건축물의 구조기준 등에 관한 규칙 제 35조 1 항 2호
2. 하나의 층에 있어서의 개구부와 그 바로 윗층에 있는 개구부와의 수직거리는 600밀리미터 이상으로 하여야 한다. 같은 층의 벽에 상하의 개구부가 분리되어 있는 경우 그 개구부 사이의 거리도 또한 같다.
//건축물의 구조기준 등에 관한 규칙 35조 (개구부) 1항 2호
Check(RSSB_35_1_2){
KS2 AND IF CS THEN KS1
}
KS2{
Opening myOpening1{
isInstalled(Opening, Floor.One) = TRUE
}
Opening myOpening2{
isInstalled(Opening, myOpening1.Floor.UpperFloor) = TRUE
}
getObjectVerticalDistance(myOpening1, myOpening2) >= 600mm
}
CS{
Opening myOpening3{
isInstalled(Opening, Floor.One.Wall.One) = TRUE
}
getObjectInterval( myOpening3,,a) >= 600mm
}
Modify
3
10882
건축물의 구조기준 등에 관한 규칙 제 35조 2 항
②조적식구조인 벽에 설치하는 개구부에 있어서는 각층마다 그 개구부 상호간 또는 개구부와 대린벽의 중심과의 수평거리는 그 벽의 두께의 2배 이상으로 하여야 한다. 다만, 개구부의 상부가 아치구조인 경우에는 그러하지 아니하다.
//건축물의 구조기준 등에 관한 규칙 35조 (개구부) 2항
Check(RSSB_35_2){
getResult(RSSB_28_2) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF (!CS1 AND CS2) THEN KS
}
Wall myWall1{
isObjectProperty(myWall.Structure.isMansoryStructure) = TRUE
}
CS1{
isObjectProperty(Opening.UpperSideShape) = "Arc"
}
CS2{
isInstalled(Opening, myWall1) = TRUE
}
KS{
Wall myWall2{
isObejctProperty(Wall.isRightAngleCrossingWall) = TRUE
isInstalled(Wall, myWall1.Floor) = TRUE
}
WD = getObjectProperty(myWall1.depth)
getObject(Floor.One.Opening)
(getObjectInterval( Opening, ) >= 2* WD
OR getObjectDistance(Opening, myWall2.Center) >= 2* WD
}
Modify
4
10969
연소방지설비의 화재안전기준(nfsc 506) 제 4조 7 항 1호
1. 가지배관에는 헤드의 설치지점 사이마다 1개 이상의 행가를 설치하되, 헤드간의 거리가 3.5m을 초과하는 경우에는 3.5m 이내마다 1개 이상 설치할 것. 이 경우 상향식헤드와 행가 사이에는 8㎝ 이상의 간격을 두어야 한다.
// 연소방지설비의 화재안전기준(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
}
Modify
5
10970
연소방지설비의 화재안전기준(nfsc 506) 제 4조 7 항 2호
2. 교차배관에는 가지배관과 가지배관 사이마다 1개 이상의 행가를 설치하되, 가지배관 사이의 거리가 4.5m을 초과하는 경우에는 4.5m 이내마다 1개 이상 설치할 것
// 연소방지설비의 화재안전기준(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
}
Modify
6
10971
연소방지설비의 화재안전기준(nfsc 506) 제 4조 7 항 3호
3. 제1호와 제2호의 수평주행배관에는 4.5m 이내마다 1개 이상 설치할 것<개정 2012.8.20>
//연소방지설비의 화재안전기준(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
}
Modify
7
10977
연소방지설비의 화재안전기준(nfsc 506) 제 5조 2호
2. 방수헤드간의 수평거리는 연소방지설비 전용헤드의 경우에는 2m 이하, 스프링클러헤드의 경우에는 1.5m 이하로 할 것
// 연소방지설비의 화재안전기준(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
}
Modify
8
10978
연소방지설비의 화재안전기준(nfsc 506) 제 5조 3호
3. 살수구역은 환기구 등을 기준으로 지하구의 길이방향으로 350 m 이내마다 1개 이상 설치하되, 하나의 살수구역의 길이는 3m 이상으로 할 것
//연소방지설비의 화재안전기준(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
}
Modify
9
14663
스프링클러설비의 화재안전기준(NFSC 103) 제 10조 2 항
② 랙크식창고의 경우로서「소방기본법시행령」별표 2의 특수가연물을 저장 또는 취급하는 것에 있어서는 랙크높이 4m 이하마다, 그 밖의 것을 취급하는 것에 있어서는 랙크높이 6m 이하마다 스프링클러헤드를 설치하여야 한다. 다만, 랙크식창고의 천장높이가 13.7m 이하로서 「화재조기진압용 스프링클러설비의 화재안전기준(NFSC 103B)」에 따라 설치하는 경우에는 천장에만 스프링클러헤드를 설치할 수 있다.<개정 2013.6.10>
// 스프링클러설비의 화재안전기준(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
}
Modify
10
14929
간이스프링클러설비의 화재안전기준(NFSC 103A) 제 8조 13 항 1호
1. 가지배관에는 간이헤드의 설치지점 사이마다 1개 이상의 행가를 설치하되, 간이헤드간의 거리가 3.5m를 초과하는 경우에는 3.5m 이내마다 1개 이상 설치할 것. 이 경우 상향식간이헤드와 행가 사이에는 8㎝ 이상의 간격을 두어야 한다.
// 간이스프링클러설비의 화재안전기준(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
}
Modify
11
14930
간이스프링클러설비의 화재안전기준(NFSC 103A) 제 8조 13 항 2호
2. 교차배관에는 가지배관과 가지배관 사이마다 1개 이상의 행가를 설치하되, 가지배관 사이의 거리가 4.5m를 초과하는 경우에는 4.5m이내마다 1개 이상 설치할 것
//간이스프링클러설비의 화재안전기준(NFSC 103A) 8조 (배관 및 밸브) 13조 2
Check(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) = TRUE
getObjectCountInInterval(Hanger, myPipe2) >= 1
}
Modify
12
14958
간이스프링클러설비의 화재안전기준(NFSC 103A) 제 9조 6호
6. 제4호의 규정에도 불구하고 소방대상물의 보와 가장 가까운 간이헤드는 다음 표의 기준에 따라 설치할 것. 다만, 천장면에서 보의 하단까지의 길이가 55㎝를 초과하고 보의 하단 측면 끝부분으로부터 간이헤드까지의 거리가 간이헤드 상호간 거리의 2분의 1 이하가 되는 경우에는 간이헤드와 그 부착면과의 거리를 55㎝ 이하로 할 수 있다.<개정 2013.6.10>
(표)
/ 간이스프링클러설비의 화재안전기준(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
}
Modify
13
15374
자동화재탐지설비의 화재안전기준(NFSC 203) 제 7조 3 항 7호 나 목
나. 공기관과 감지구역의 각 변과의 수평거리는 1.5m 이하가 되도록 하고, 공기관 상호간의 거리는 6m(주요 구조부를 내화구조로 한 특정소방대상물 또는 그 부분에 있어서는 9m) 이하가 되도록 할 것
자동화재탐지설비의 화재안전기준(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
}
Modify
14
15389
자동화재탐지설비의 화재안전기준(NFSC 203) 제 7조 3 항 10호 나 목
나. 감지기는 복도 및 통로에 있어서는 보행거리 30m(3종에 있어서는 20m)마다, 계단 및 경사로에 있어서는 수직거리 15m(3종에 있어서는 10m)마다 1개 이상으로 할 것
// 자동화재탐지설비의 화재안전기준(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
}
Modify