1
19922
연결살수설비의 화재안전기준(NFSC 503) 제 5조 1 항 3호
3. 천장(상층이 있는 경우에는 상층바닥의 하단을 포함한다. 이하 같다)과 반자를 불연재료 또는 준불연재료로 설치하고 그 내부에 습식으로 배관을 설치하는 경우
//연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
2
19924
연결살수설비의 화재안전기준(NFSC 503) 제 5조 2 항 1호
1. 연결살수설비 전용헤드를 사용하는 경우에는 다음 표에 따른 구경 이상으로 할 것
// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 2항 1호
Check(NFSC503_5_2_1){
IF CS THEN KS
}
CS{
getObjectProperty(Head.systemType) = "HookingUpSprinklerSystem"
isObjectProperty( Head.isShared) = FALSE
}
KS{
Head myHead{
isInstalled(Head., Pipe.One) = TRUE
}
NH = getObjectCount(myHead)
IF NH = 1 THEN getObjectDiameter(Pipe) >= 32mm
ELSE IF NH = 2 THEN getObjectDiameter(Pipe) >= 40mm
ELSE IF NH = 3 THEN getObjectDiameter(Pipe) >= 50mm
ELSE IF NH = 4 OR NH = 5 THEN getObjectDiameter(Pipe) >= 65mm
ELSE IF NH >= 6 AND HN <= 10 THEN getObjectDiameter(Pipe) >= 80mm
}
// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 2항 2호
Check(NFSC503_5_2_2){
IF CS THEN KS
}
CS{
isObjectProperty( SprinklerSystem.Head.systemType) = "HookingUpSprinklerSystem"
}
KS{
getResult(NFSC103_*_1) = TRUE
}
Python Code 변환 예정Python Code 변환 예정
Modify
3
19924
연결살수설비의 화재안전기준(NFSC 503) 제 5조 2 항 1호
1. 연결살수설비 전용헤드를 사용하는 경우에는 다음 표에 따른 구경 이상으로 할 것
// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 2항 1호
Check(NFSC503_5_2_1){
IF CS THEN KS
}
CS{
getObjectProperty(Head.systemType) = "HookingUpSprinklerSystem"
isObjectProperty( Head.isShared) = FALSE
}
KS{
Head myHead{
isInstalled(Head., Pipe.One) = TRUE
}
NH = getObjectCount(myHead)
IF NH = 1 THEN getObjectDiameter(Pipe) >= 32mm
ELSE IF NH = 2 THEN getObjectDiameter(Pipe) >= 40mm
ELSE IF NH = 3 THEN getObjectDiameter(Pipe) >= 50mm
ELSE IF NH = 4 OR NH = 5 THEN getObjectDiameter(Pipe) >= 65mm
ELSE IF NH >= 6 AND HN <= 10 THEN getObjectDiameter(Pipe) >= 80mm
}
// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 2항 2호
Check(NFSC503_5_2_2){
IF CS THEN KS
}
CS{
isObjectProperty( SprinklerSystem.Head.systemType) = "HookingUpSprinklerSystem"
}
KS{
getResult(NFSC103_*_1) = TRUE
}
Python Code 변환 예정Python Code 변환 예정
Modify
4
19926
연결살수설비의 화재안전기준(NFSC 503) 제 5조 2 항 2호
2. 스프링클러헤드를 사용하는 경우에는 「스프링클러설비의 화재안전기준(NFSC 103)」 별표 1의 기준에 따를 것
// 연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
5
19927
연결살수설비의 화재안전기준(NFSC 503) 제 5조 3 항
③폐쇄형헤드를 사용하는 연결살수설비의 주배관은 옥내소화전설비의 주배관(옥내소화전설비가 설치된 경우에 한한다) 및 수도배관(연결살수설비가 설치된 건축물 안에 설치된 수도배관 중 구경이 가장 큰 배관을 말한다) 또는 옥상에 설치된 수조(다른 설비의 수조를 포함한다)에 접속하여야 한다. 이 경우 연결살수설비의 주배관과 옥내소화전설비의 주배관·수도배관·옥상에 설치된 수조의 접속부분에는 체크밸브를 설치하되, 점검하기 쉽게 하여야 한다.
// 연결살수설비의 화재안전기준(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)
}
Python Code 변환 예정
Modify
6
19928
연결살수설비의 화재안전기준(NFSC 503) 제 5조 4 항
④폐쇄형헤드를 사용하는 연결살수설비에는 다음 각 호의 기준에 따른 시험배관을 설치하여야 한다. <개정 2012.8.20>
// 연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
7
19929
연결살수설비의 화재안전기준(NFSC 503) 제 5조 4 항 1호
1. 송수구의 가장 먼 가지배관의 끝으로부터 연결하여 설치할 것
// 연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
8
19930
연결살수설비의 화재안전기준(NFSC 503) 제 5조 4 항 2호
2. 시험장치 배관의 구경은 가장 먼 가지배관의 구경과 동일한 구경으로 하고, 그 끝에는 물받이 통 및 배수관을 설치하여 시험 중 방사된 물이 바닥으로 흘러내리지 아니하도록 할 것. 다만, 목욕실·화장실 또는 그 밖의 배수처리가 쉬운 장소의 경우에는 물받이 통 또는 배수관을 설치하지 아니할 수 있다.
// 연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
9
19931
연결살수설비의 화재안전기준(NFSC 503) 제 5조 5 항
⑤개방형헤드를 사용하는 연결살수설비의 수평주행배관은 헤드를 향하여 상향으로 100분의 1 이상의 기울기로 설치하고 주배관중 낮은 부분에는 자동배수밸브를 제4조제3항제3호의 기준에 따라 설치하여야 한다. <개정 2012.8.20>
// 연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
10
19932
연결살수설비의 화재안전기준(NFSC 503) 제 5조 6 항
⑥가지배관 또는 교차배관을 설치하는 경우에는 가지배관의 배열은 토너멘트방식이 아니어야 하며, 가지배관은 교차배관 또는 주배관에서 분기되는 지점을 기점으로 한 쪽 가지배관에 설치되는 헤드의 개수는 8개 이하로 하여야 한다.
// 연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
11
19933
연결살수설비의 화재안전기준(NFSC 503) 제 5조 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
}
Python Code 변환 예정
Modify
12
19934
연결살수설비의 화재안전기준(NFSC 503) 제 5조 9 항
⑨연결살수설비 교차배관의 위치·청소구 및 가지배관의 헤드설치는 다음 각 호의 기준에 따른다. <개정 2012.8.20>
// 연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
13
19935
연결살수설비의 화재안전기준(NFSC 503) 제 5조 9 항 1호
1. 교차배관은 가지배관과 수평으로 설치하거나 또는 가지배관 밑에 설치하고, 그 구경은 제2항에 따르되, 최소구경이 40㎜ 이상이 되도록 할 것
// 연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
14
19936
연결살수설비의 화재안전기준(NFSC 503) 제 5조 9 항 2호
2. 폐쇄형헤드를 사용하는 연결살수설비의 청소구는 주배관 또는 교차배관(교차배관을 설치하는 경우에 한한다) 끝에 40㎜ 이상 크기의 개폐밸브를 설치하고, 호스접결이 가능한 나사식 또는 고정배수 배관식으로 할 것. 이 경우 나사식의 개폐밸브는 옥내소화전 호스접결용의 것으로 하고, 나사보호용의 캡으로 마감하여야 한다.
// 연결살수설비의 화재안전기준(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) = "옥내소화전 호스접결용"
}
Python Code 변환 예정
Modify
15
19937
연결살수설비의 화재안전기준(NFSC 503) 제 5조 9 항 3호
3. 폐쇄형헤드를 사용하는 연결살수설비에 하향식헤드를 설치하는 경우에는 가지배관으로부터 헤드에 이르는 헤드접속배관은 가지관상부에서 분기할 것. 다만, 소화설비용 수원의 수질이 「먹는물관리법」 제5조에 따라 먹는물의 수질기준에 적합하고 덮개가 있는 저수조로부터 물을 공급받는 경우에는 가지배관의 측면 또는 하부에서 분기할 수 있다.
// 연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
16
19939
연결살수설비의 화재안전기준(NFSC 503) 제 5조 10 항 1호
1. 가지배관에는 헤드의 설치지점 사이마다 1개 이상의 행가를 설치하되, 헤드간의 거리가 3.5 m를 초과하는 경우에는 3.5m 이내마다 1개 이상 설치할 것. 이 경우 상향식헤드와 행가 사이에는 8 ㎝ 이상의 간격을 두어야 한다.
//연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
17
19940
연결살수설비의 화재안전기준(NFSC 503) 제 5조 10 항 2호
2. 교차배관에는 가지배관과 가지배관사이마다 1개 이상의 행가를 설치하되, 가지배관 사이의 거리가 4.5 m를 초과하는 경우에는 4.5 m 이내마다 1개 이상 설치할 것
//연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
18
19941
연결살수설비의 화재안전기준(NFSC 503) 제 5조 10 항 3호
3. 제1호와 제2호의 수평주행배관에는 4.5 m 이내마다 1개 이상 설치할 것
//연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
19
19945
연결살수설비의 화재안전기준(NFSC 503) 제 6조 2 항 2호
2. 천장 또는 반자의 각 부분으로부터 하나의 살수헤드까지의 수평거리가 연결살수설비전용헤드의 경우은 3.7m 이하, 스프링클러헤드의 경우는 2.3m 이하로 할 것. 다만, 살수헤드의 부착면과 바닥과의 높이가 2.1m 이하인 부분은 살수헤드의 살수분포에 따른 거리로 할 수 있다.
// 연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
20
19950
연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 6호
6. 천장의 기울기가 10분의 1을 초과하는 경우에는 가지관을 천장의 마루와 평행하게 설치하고, 스프링클러헤드는 다음 각 목의 어느 하나의 기준에 적합하게 설치할 것
//연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
21
19953
연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 7호
7. 연소할 우려가 있는 개구부에는 그 상하좌우에 2.5m 간격으로(개구부의 폭이 2.5m 이하인 경우에는 그 중앙에) 스프링클러헤드를 설치하되, 스프링클러헤드와 개구부의 내측면으로부터의 직선거리는 15㎝ 이하가 되도록 할 것. 이 경우 사람이 상시 출입하는 개구부로서 통행에 지장이 있는 때에는 개구부의 상부 또는 측면(개구부의 폭이 9m 이하인 경우에 한한다)에 설치하되, 헤드 상호간의 간격은 1.2m 이하로 설치하여야 한다.
//연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
22
19954
연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 8호
8. 습식 연결살수설비외의 설비에는 상향식스프링클러헤드를 설치할 것. 다만, 다음 각 목의 어느 하나에 해당하는 경우에는 그러하지 아니하다.
//연결살수설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
23
19955
연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 8호 가 목
가. 드라이펜던트스프링클러헤드를 사용하는 경우
//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 8호 가목
Check(NFSC503_6_3_8_1){
KS
}
KS{
Head myHead{
isObjectProperty( SprinklerSystem.Head.isDryPendent) = TRUE
}
isExist(mySprinklerHead) = TRUE
}
Python Code 변환 예정
Modify
24
20463
연결송수관설비의 화재안전기준(NFSC 502) 제 4조 4호
4. 송수구로부터 연결송수관설비의 주배관에 이르는 연결배관에 개폐밸브를 설치한 때에는 그 개폐상태를 쉽게 확인 및 조작할 수 있는 옥외 또는 기계실 등의 장소에 설치할 것. 이 경우 개폐밸브에는 그 밸브의 개폐상태를 감시제어반에서 확인할 수 있도록 급수개폐밸브 작동표시 스위치를 다음 각 목의 기준에 따라 설치하여야 한다. <개정 2014.8.18>
//연결송수관설비의 화재안전기준(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"
}
Python Code 변환 예정
Modify
25
20465
연결송수관설비의 화재안전기준(NFSC 502) 제 4조 7호
7. 송수구는 연결송수관의 수직배관마다 1개 이상을 설치할 것. 다만, 하나의 건축물에 설치된 각 수직배관이 중간에 개폐밸브가 설치되지 아니한 배관으로 상호 연결되어 있는 경우에는 건축물마다 1개씩 설치할 수 있다.
//연결송수관설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
26
20480
연결송수관설비의 화재안전기준(NFSC 502) 제 5조 3 항 3호
3. 천장(상층이 있는 경우에는 상층바닥의 하단을 포함한다. 이하 같다)과 반자를 불연재료 또는 준불연재료로 설치하고 소화배관 내부에 항상 소화수가 채워진 상태로 설치하는 경우
//연결송수관설비의 화재안전기준(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
)
}
Python Code 변환 예정
Modify
27
20481
연결송수관설비의 화재안전기준(NFSC 502) 제 5조 4 항
④ 연결송수관설비의 배관은 주배관의 구경이 100㎜ 이상인 옥내소화전설비·스프링클러설비 또는 물분무등소화설비의 배관과 겸용할 수 있다.[종전의 제2항에서 이동 2014.8.18]
//연결송수관설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
28
20494
연결송수관설비의 화재안전기준(NFSC 502) 제 6조 7호
7. 방수구는 개폐기능을 가진 것으로 설치하여야 하며, 평상 시 닫힌 상태를 유지할 것<개정 2008.12.15>
//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 7호
Check(NFSC502_6_0_7){
KS
}
KS{
isObjectProperty( FireDepartmentConnectionSystem.OutLet.is"개폐기능")=True
}
Python Code 변환 예정
Modify
29
20496
연결송수관설비의 화재안전기준(NFSC 502) 제 7조 1호
1. 방수기구함은 피난층과 가장 가까운 층을 기준으로 3개층마다 설치하되, 그 층의 방수구마다 보행거리 5m 이내에 설치할 것 <개정 2014.8.18>
//연결송수관설비의 화재안전기준(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
Python Code 변환 예정
Modify
30
20100
연소방지설비의 화재안전기준(NFSC 506) 제 4조 3 항
③급수배관에 설치되어 급수를 차단할 수 있는 개폐밸브는 개폐표시형으로 하여야 한다.
//연소방지설비의 화재안전 기준(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
}
Python Code 변환 예정
Modify
31
20103
연소방지설비의 화재안전기준(NFSC 506) 제 4조 4 항 2호
2. 스프링클러헤드를 사용하는 경우에는 「스프링클러설비의 화재안전기준(NFSC 103)」별표 1의 기준에 따를 것<개정 2012.8.20>
// 연소방지설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
32
20104
연소방지설비의 화재안전기준(NFSC 506) 제 4조 5 항
⑤연소방지설비에 있어서의 수평주행배관의 구경은 100㎜ 이상의 것으로 하되, 연소방지설비전용헤드 및 스프링클러헤드("방수헤드"라 한다. 이하 같다)를 향하여 상향으로 1,000분의 1 이상의 기울기로 설치하여야 한다.<개정 2012.8.20>
// 연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 5항
Check(NFSC506_4_5){
KS
}
KS{
Pipe myPipe{
isObjectProperty( Pipe.isFeedMains) = TRUE
}
isInstalled(myPipe, CombustionProtectionSystem) = TRUE
getObjectProperty(myPipe.diameter) >= 100mm
}
Python Code 변환 예정
Modify
33
20106
연소방지설비의 화재안전기준(NFSC 506) 제 4조 6 항 3호
3. 하향식헤드를 설치하는 경우에 가지배관으로부터 헤드에 이르는 헤드접속배관은 가지관상부에서 분기할 것
//연소방지설비의 화재안전 기준(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
}
Python Code 변환 예정
Modify
34
20108
연소방지설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
35
20109
연소방지설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
36
20110
연소방지설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
37
20113
연소방지설비의 화재안전기준(NFSC 506) 제 5조 1호
1. 천장 또는 벽면에 설치할 것
// 연소방지설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
38
20114
연소방지설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
39
20115
연소방지설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
40
20119
연소방지설비의 화재안전기준(NFSC 506) 제 6조 6호
6. 송수구로부터 주배관에 이르는 연결배관에는 개폐밸브를 설치하지 아니할 것
// 연소방지설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
41
20122
연소방지설비의 화재안전기준(NFSC 506) 제 8조 2호
2. 방화벽에 출입문을 설치하는 경우에는 방화문으로 할 것
// 연소방지설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
42
20123
연소방지설비의 화재안전기준(NFSC 506) 제 8조 3호
3. 방화벽을 관통하는 케이블·전선 등에는 내화성이 있는 화재차단재로 마감할 것
// 연소방지설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
43
72616
연소방지설비의 화재안전기준(NFSC 506) 제 8조 1호
1. 내화구조로서 홀로 설 수 있는 구조일 것
// 연소방지설비의 화재안전기준(nfsc 506) 8조 (방화벽의 설치기준) 1호
Check(NFSC506_8_0_1){
KS
}
KS{
Wall myWall{
isObjectProperty( Wall.isFireProofStructure) = TRUE
}
isObjectProperty( myWall.isfireResistantStructure) = TRUE
}
Python Code 변환 예정
Modify
44
72578
옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 1 항 1호
1. 배관 내 사용압력이 1.2 ㎫ 미만일 경우에는 다음 각 목의 어느 하나에 해당하는 것 또는 동등 이상의 강도·내식성 및 내열성을 가진 것<신설 2013.6.10>
// 옥내소화전설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
45
72580
옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 1 항 1호 나 목
나. 이음매 없는 구리 및 구리합금관(KS D 5301). 다만, 습식의 배관에 한한다.
// 옥내소화전설비의 화재안전기준(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"
}
Python Code 변환 예정
Modify
46
72582
옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 1 항 2호
2. 배관 내 사용압력이 1.2 ㎫ 이상일 경우에는 압력배관용탄소강관(KS D 3562) 또는 이와 동등 이상의 강도·내식성 및 내열성을 가진 것<신설 2013.6.10>
// 옥내소화전설비의 화재안전기준(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"
}
Python Code 변환 예정
Modify
47
72583
옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 2 항
② 제1항에도 불구하고 다음 각 호의 어느 하나에 해당하는 장소에는 국민안전처장관이 정하여 고시한 「소방용합성수지배관의 성능인증 및 제품검사의 기술기준」에 적합한 소방용 합성수지배관으로 설치할 수 있다.<개정 2013.6.10, 2015.1.23.>
// 옥내소화전설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
48
72587
옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 8 항 1호
1. 성능시험배관은 펌프의 토출측에 설치된 개폐밸브 이전에서 분기하여 설치하고, 유량측정장치를 기준으로 전단 직관부에 개폐밸브를 후단 직관부에는 유량조절밸브를 설치할 것
// 옥내소화전설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
49
72588
옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 8 항 2호
2. 유량측정장치는 성능시험배관의 직관부에 설치하되, 펌프의 정격토출량의 175% 이상 측정할 수 있는 성능이 있을 것
// 옥내소화전설비의 화재안전기준(NFSC 102) 6조 (배관 등) 8항 2호
Check(NFSC102_6_8_2){
KS
}
KS{
Pipe myPipe{
isObjectProperty( Pipe.isForPerformanceTest) = TRUE
}
isInstalled(DischargeMeasuringEquipment, myPipe) = TRUE
}
Python Code 변환 예정
Modify
50
19964
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 4조
제4조(유도등 및 유도표지의 종류) 특정소방대상물의 용도별로 설치하여야 할 유도등 및 유도표지는 다음 표에 따라 그에 적응하는 종류의 것으로 설치하여야 한다.<개정 2008.12.15, 2012.8.20>
// 유도등 및 유도표지의 화재안전기준(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
}
Python Code 변환 예정
Modify
51
19966
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 5조 1 항 1호
1. 옥내로부터 직접 지상으로 통하는 출입구 및 그 부속실의 출입구
//유도등 및 유도표지의 화재안전기준(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
}
Python Code 변환 예정
Modify
52
19967
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 5조 1 항 2호
2. 직통계단·직통계단의 계단실 및 그 부속실의 출입구
//유도등 및 유도표지의 화재안전기준(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
}
Python Code 변환 예정
Modify
53
19968
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 5조 1 항 3호
3. 제1호와 제2호에 따른 출입구에 이르는 복도 또는 통로로 통하는 출입구
//유도등 및 유도표지의 화재안전기준(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
}
Python Code 변환 예정
Modify
54
19969
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 5조 2 항
②피난구유도등은 피난구의 바닥으로부터 높이 1.5m 이상의 곳에 설치하여야 한다.
//유도등 및 유도표지의 화재안전기준(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
}
Python Code 변환 예정
Modify
55
19982
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 7조 1 항
제7조(객석유도등 설치기준) ①객석유도등은 객석의 통로, 바닥 또는 벽에 설치하여야 한다.
//유도등 및 유도표지의 화재안전기준(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
)
}
Python Code 변환 예정
Modify
56
19983
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 7조 2 항
②객석내의 통로가 경사로 또는 수평로로 되어 있는 부분은 다음의 식에 따라 산출한 수(소수점 이하의 수는 1로 본다)의 유도등을 설치하고, 그 조도는 통로바닥의 중심선 0.5m 높이에서 측정하여 0.2㏓ 이상이어야 한다. <개정 2012.8.20>
//유도등 및 유도표지의 화재안전기준(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 , 측정 기준에 관한 파라미터 추가 필요
}
Python Code 변환 예정
Modify
57
19988
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 8조 2 항
②피난방향을 표시하는 통로유도등을 설치한 부분은 유도표지를 설치하지 아니할 수 있다. <개정 2012.8.20>
//유도등 및 유도표지의 화재안전기준(nfsc 303) 8조 (유도표지 설치기준) 2항
Check(NFSC303_8_2){
KS
}
KS{
LeadingLight myLeadingLight{
isObjectProperty( LeadingLight.isForPassage)=True
}
isExist(myLeadingLight)=True
}
Python Code 변환 예정
Modify
58
19989
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 8조의2조 2 항
②광원점등방식의 피난유도선은 다음 각 호의 기준에 따라 설치하여야 한다.
// 유도등 및 유도표지의 화재안전기준(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
}
Python Code 변환 예정
Modify
59
19990
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 8조의2조 2 항 1호
1. 구획된 각 실로부터 주출입구 또는 비상구까지 설치할 것
// 유도등 및 유도표지의 화재안전기준(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
}
Python Code 변환 예정
Modify
60
20442
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 10호 가 목
가. 감지기의 부착높이에 따라 다음 표에 따른 바닥면적마다 1개 이상으로 할 것
자동화재탐지설비의 화재안전기준(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)
}
Python Code 변환 예정
Modify
61
20447
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 12호 라 목
라. 감지기와 감지구역의 각부분과의 수평거리가 내화구조의 경우 1종 4.5m 이하, 2종 3m 이하로 할 것. 기타 구조의 경우 1종 3m 이하, 2종 1m 이하로 할 것
자동화재탐지설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
62
20458
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 5 항 6호
6. 파이프덕트 등 그 밖의 이와 비슷한 것으로서 2개층 마다 방화구획된 것이나 수평단면적이 5㎡ 이하인 것
자동화재탐지설비의 화재안전기준(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) <= 5m2
KS{
isInstalled(Sensor) = FALSE
}
Python Code 변환 예정
Modify
63
19995
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행규칙 제 별표1조
1. 장애인등의 통행이 가능한 접근로
가. 유효폭 및 활동공간
(1) 휠체어사용자가 통행할 수 있도록 접근로의 유효폭은 1.2미터 이상으로 하여야 한다.
(2) 휠체어사용자가 다른 휠체어 또는 유모차 등과 교행할 수 있도록 50미터마다 1.5미터×1.5미터 이상의 교행구역을 설치할 수 있다.
(3) 경사진 접근로가 연속될 경우에는 휠체어사용자가 휴식할 수 있도록 30미터마다 1.5미터×1.5미터 이상의 수평면으로 된 참을 설치할
//장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행규칙 별표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
}
Python Code 변환 예정
Modify
64
19999
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행령 제 별표2조
1. 삭제 <2006.1.19>
2. 공원<표-EDCDAPA_*_2_T1>
(편의시설의 종류
:설치기준)
가. 장애인 등의 출입이 가능한 출입구
:공원 외부에서 내부로 이르는 출입구는 주출입구를 포함하여 적어도 하나 이상을 장애인등의 출입이 가능하도록 유효폭·형태 및 부착물 등을 고려하여 설치하여야 한다.
나. 장애인등의 통행이 가능한 보도
:공원시설(공중이 직접 이용하는 시설에 한한다)에 접근할 수 있는 공원안의 보도중 적어도 하나는 장애인등이 통행할
// 장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행령 별표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) = TRUE
getResult(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) = TRUE
isExist(myDoor2) = TRUE
}
CS1{
Building.usage = “BusinessFacility.GovernmentOfficeBuilding”
Building.usage != “ClassINeighborhoodLivingFacility”
}
KS2 {
isObjectProperty( myDoor1.isAutomatic)=TRUE
isObjectProperty( 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 KS
CS{
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
}
Python Code 변환 예정
Modify
65
60931
주차장법 제 12조의2조
제12조의2 (다른 법률과의 관계) 노외주차장인 주차전용건축물의 건폐율, 용적률, 대지면적의 최소한도 및 높이 제한 등 건축제한에 대하여는 「국토의 계획 및 이용에 관한 법률」 제76조부터 제78조까지, 「건축법」 제57조 및 제60조에도 불구하고 다음 각 호의 기준에 따른다.
// 주차장법 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
}
Python Code 변환 예정
Modify
66
60933
주차장법 제 19조 1 항
①국토의계획및이용에관한법률의 규정에 의한 도시지역·제2종지구단위계획구역 및 지방자치단체의 조례가 정하는 관리지역안에서 건축물·골프연습장 기타 주차수요를 유발하는 시설(이하 "施設物"이라 한다)을 건축 또는 설치하고자 하는 자는 당해 시설물의 내부 또는 그 부지안에 부설주차장(貨物의 荷役 기타 사업수행을 위한 駐車場을 포함한다. 이하 같다)을 설치하여야 한다. <개정 1995.12.29, 2002.2.4>
//주차장법 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
}
Python Code 변환 예정
Modify
67
20145
주차장법 시행규칙 제 4조 1 항 8호 가 목
가. 주차대수 규모가 20대 이상 50대 미만인 경우: 한 면 이상
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
68
20146
주차장법 시행규칙 제 4조 1 항 8호 나 목
나. 주차대수 규모가 50대 이상인 경우: 주차대수의 2퍼센트부터 4퍼센트까지의 범위에서 장애인의 주차수요를 고려하여 해당 지방자치단체의 조례로 정하는 비율 이상
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
69
20147
주차장법 시행규칙 제 5조 7호
7. 주차대수 400대를 초과하는 규모의 노외주차장의 경우에는 노외주차장의 출구와 입구를 각각 따로 설치하여야 한다. 다만, 출입구의 너비의 합이 5.5미터 이상으로서 출구와 입구가 차선 등으로 분리되는 경우에는 함께 설치할 수 있다.
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
70
20148
주차장법 시행규칙 제 5조 8호
8. 특별시장·광역시장, 시장·군수 또는 구청장이 설치하는 노외주차장의 주차대수 규모가 50대 이상인 경우에는 주차대수의 2퍼센트부터 4퍼센트까지의 범위에서 장애인의 주차수요를 고려하여 지방자치단체의 조례로 정하는 비율 이상의 장애인 전용주차구획을 설치하여야 한다.
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
71
61096
주차장법 시행규칙 제 4조 1 항 8호
8. 주차대수 규모가 20대 이상인 경우에는 장애인 전용주차구획을 한 면 이상 설치하여야 한다.
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
72
61162
주차장법 시행규칙 제 11조 2 항 1호
1. 주차대수 30대를 초과하는 지하식 또는 건축물식 형태의 자주식주차장으로서 판매시설, 숙박시설, 운동시설, 위락시설, 문화 및 집회시설, 종교시설 또는 업무시설(이하 이 항에서 "판매시설등"이라 한다)의 용도로 이용되는 건축물의 부설주차장
//주차장법 시행규칙 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"
}
Python Code 변환 예정
Modify
73
61301
주차장법 시행규칙 제 11조 4 항
④ 주차대수 50대 이상의 부설주차장에 설치되는 확장형 주차단위구역에 관하여는 제6조제1항제14호를 준용한다. <신설 2012.7.2>
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
74
61376
주차장법 시행규칙 제 6조 1 항 14호
14. 노외주차장에는 제3조제1항제2호에 따른 확장형 주차단위구획을 주차단위구획 총수(평행주차형식의 주차단위구획 수는 제외한다)의 30퍼센트 이상 설치하여야 한다.
//주차장법 시행규칙 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)
}
Python Code 변환 예정
Modify
75
61395
주차장법 시행규칙 제 11조 5 항
⑤ 부설주차장의 총주차대수 규모가 8대 이하인 자주식주차장(지평식 및 건축물식 중 필로티 구조만 해당한다)의 구조 및 설비기준은 제1항 본문에도 불구하고 다음 각 호에 따른다. <개정 2012.7.2, 2013.1.25>
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
76
61611
주차장법 시행규칙 제 6조 1 항 3호
3. 노외주차장에는 자동차의 안전하고 원활한 통행을 확보하기 위하여 다음 각 목에서 정하는 바에 의하여 차로를 설치하여야 한다.
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
77
61614
주차장법 시행규칙 제 6조 1 항 4호
4. 노외주차장의 출입구의 너비는 3.5미터 이상으로 하여야 하며, 주차대수규모가 50대 이상인 경우에는 출구와 입구를 분리하거나 너비 5.5미터 이상의 출입구를 설치하여 소통이 원활하도록 하여야 한다.
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
78
61621
주차장법 시행규칙 제 6조 1 항 5호 바 목
바. 주차대수규모가 50대 이상인 경우의 경사로는 너비 6미터 이상인 2차선의 차로를 확보하거나 진입차로와 진출차로를 분리하여야 한다.
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
79
61623
주차장법 시행규칙 제 6조 1 항 6호
6. 노외주차장의 주차에 사용되는 부분의 높이는 주차바닥면으로부터 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
}
Python Code 변환 예정
Modify
80
61624
주차장법 시행규칙 제 6조 1 항 7호
7. 노외주차장의 내부공간의 일산화탄소의 농도는 주차장을 이용하는 차량이 가장 빈번한 시각의 전후 8시간의 평균치가 50피피엠 이하(다중이용시설등의실내공기질관리법 제3조제1항제9호의 규정에 의한 실내주차장은 25피피엠 이하)로 유지되어야 한다.
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 7호
Check(ERPA_6_1_7){
KS
}
KS{
isObjectProperty( ParkingLot.isOffStreetParking)=TRUE
getObjectHeight(ParkingLotArea.Space) >= 2.1m
}
Python Code 변환 예정
Modify
81
61627
주차장법 시행규칙 제 6조 1 항 10호
10. 주차대수 30대를 초과하는 규모의 자주식 주차장으로서 지하식 또는 건축물식에 의한 노외주차장에는 관리사무소에서 주차장 내부 전체를 볼 수 있는 폐쇄회로 텔레비전 및 녹화장치를 포함하는 방범설비를 설치ㆍ관리하여야 하되, 다음 각 목의 사항을 준수하여야 한다.
// 주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 10호
Check(ERPA_6_1_10){
KS
}
KS{
ParkingLot myParkingLot{
isObjectProperty( ParkingLot.isOffStreetParking) = TRUE
}
isInstalled(AlarmSystem, myParkingLot) = TRUE
}
Python Code 변환 예정
Modify
82
61639
주차장법 시행규칙 제 6조 4 항
④노외주차장에 설치할 수 있는 부대시설은 다음 각 호와 같다. 다만, 그 설치하는 부대시설의 총면적은 주차장 총시설면적의 20퍼센트를 초과하여서는 아니 된다. <개정 1992.9.5, 1996.6.29, 2009.6.30>
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
83
61644
주차장법 시행규칙 제 6조 5 항
⑤법 제20조제2항 또는 제3항의 규정에 의한 노외주차장에 설치할 수 있는 부대시설의 종류 및 주차장 총시설면적중 부대시설이 차지하는 비율에 대하여는 제4항의 규정에 불구하고 특별시ㆍ광역시ㆍ시ㆍ군 또는 구의 조례로 정할 수 있다. 이 경우 부대시설이 차지하는 면적의 비율은 주차장 총 시설면적의 40퍼센트를 초과할 수 없다. <신설 1996.6.29, 2004.7.1>
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
84
61645
주차장법 시행규칙 제 6조 6 항
⑥시장ㆍ군수 또는 구청장이 노외주차장내에 국토의계획및이용에관한법률 제2조제7호의 도시계획시설을 부대시설로서 중복하여 설치하고자 하는 경우에는 노외주차장외의 용도로 사용하고자 하는 도시계획시설이 차지하는 면적의 비율은 부대시설을 포함하여 주차장 총 시설면적의 40퍼센트를 초과할 수 없다. <신설 2004.7.1>
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
85
72625
주차장법 시행규칙 제 6조 1 항 3호 나 2) 목
2) 1) 외의 노외주차장
(표)
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
86
20003
주차장법 시행령 제 별표1조
부설주차장의 설치대상 시설물 종류 및 설치기준(제6조제1항 관련)
(시설물
:설치기준)
1. 위락시설
:○ 시설면적 100㎡당 1대(시설면적/100㎡)
2. 문화 및 집회시설(관람장은 제외한다), 종교시설, 판매시설, 운수시설, 의료시설(정신병원·요양병원 및 격리병원은 제외한다), 운동시설(골프장·골프연습장 및 옥외수영장은 제외한다), 업무시설(외국공관 및 오피스텔은 제외한다), 방송통신시설 중 방송국, 장례식장
:○ 시설면적 150㎡당 1대(시설면적/
//주차장법 시행령 별표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
Python Code 변환 예정
Modify
87
61908
주차장법 시행령 제 4조
제4조 (경형자동차 전용주차구획의 설치비율) 법 제12조의3제3항에서 "대통령령이 정하는 비율"이란 노외주차장 총주차대수의 5퍼센트를 말한다.
//주차장법 시행령 4조 (경형자동차 전용주차구획의 설치비율)
ParkingLot myParkingLot{
isObjectProperty( ParkingLot.isOffStreetParking )=True
}
Rate EDPA_4_rate= myParkingLot.numberOfPakingUnit*0.05
Python Code 변환 예정
Modify
88
62347
주택건설기준 등에 관한 규정 제 15조 1 항
①6층 이상인 공동주택에는 국토교통부령이 정하는 기준에 따라 대당 6인승 이상인 승용승강기를 설치하여야 한다. 다만, 「건축법 시행령」 제89조의 규정에 해당하는 공동주택의 경우에는 그러하지 아니하다. <개정 1992.5.30, 1994.12.23, 1994.12.30, 1999.9.29, 2005.6.30, 2008.2.29, 2013.3.23>
//주택건설기준 등에 관한 규정 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
}
Python Code 변환 예정
Modify
89
62348
주택건설기준 등에 관한 규정 제 15조 2 항
②10층 이상인 공동주택의 경우에는 제1항의 승용승강기를 비상용승강기의 구조로 하여야 한다. <개정 2007.7.24>
//주택건설기준 등에 관한 규정 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
}
Python Code 변환 예정
Modify
90
62354
주택건설기준 등에 관한 규정 제 15조 4 항
④제1항 또는 제2항의 규정에 의한 승용승강기 또는 비상용승강기로서 제3항 각호의 기준에 적합한 것은 화물용승강기로 겸용할 수 있다.
//주택건설기준 등에 관한 규정 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
}
Python Code 변환 예정
Modify
91
20011
특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(NFSC 501A) 제 14조 1호
1. 수직풍도는 내화구조로 하되 「건축물의 피난·방화구조 등의 기준에 관한 규칙」제3조제1호 또는 제2호의 기준 이상의 성능으로 할 것<개정 2013.9.3>
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
92
20012
특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(NFSC 501A) 제 14조 3호
3. 각층의 옥내와 면하는 수직풍도의 관통부에는 다음 각목의 기준에 적합한 댐퍼 (이하 "배출댐퍼"라 한다)를 설치하여야 한다.
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
93
20014
특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(NFSC 501A) 제 14조 3호 사 목
사. 개방 시의 실제개구부(개구율을 감안한 것을 말한다)의 크기는 수직풍도의 내부단면적과 같도록 할 것
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(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
}
Python Code 변환 예정
Modify
94
20015
특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(NFSC 501A) 제 14조 3호 아 목
아. 댐퍼는 풍도내의 공기흐름에 지장을 주지 않도록 수직풍도의 내부로 돌출하지 않게 설치할 것
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 14조 (수직풍도에 따른 배출) 3호 아목
Check(NFSC501A_14_0_1_아){
KS
}
KS{
Duct myDuct{
isObjectProperty( Duct.isVerticalDuct)=TRUE
}
hasObject(myDuct, Damper)=False
}
Python Code 변환 예정
Modify
95
20020
특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(NFSC 501A) 제 17조
제17조(급기구) 제연구역에 설치하는 급기구는 다음 각 호의 기준에 적합하여야 한다.
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 17조 (급기구)
Check(NFSC_17){
IF CS THEN KS
}
CS{
isObjectProperty( Zone.isSmokeControlZone)=True
}
KS{
getResult(NFSC17_3)=True
}
Python Code 변환 예정
Modify