1
19888
다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 3호
3. 「학원의 설립ㆍ운영 및 과외교습에 관한 법률」 제2조제1호에 따른 학원(이하 "학원"이라 한다)으로서 다음 각 목의 어느 하나에 해당하는 것
//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 3호
Check(ERSASP_2_0_3){
IF CS THEN KS
}
CS{
getObjectProperty( Building.business)= "AEOPE_2_0_1_"
}
KS{
getResult(ERSASP_2_0_3_가)= TRUE
OR getResult(ERSASP_2_0_3_나)= TRUE
}
Python Code 변환 예정
Modify
2
19889
다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 3호 나 목
(3) 하나의 건축물에 제1호, 제2호, 제4호부터 제7호까지, 제7호의2부터 제7호의5까지 및 제8호의 다중이용업 중 어느 하나 이상의 다중이용업과 학원이 함께 있는 경우
Check(ERSASP_2_0_3_나3){
IF CS THEN KS
}
CS{
getObjectProperty( Building.business)= "AEOPE_2_0_1"
}
KS{
getResult(ERSASP_2_0_1)= TRUE
OR getResult(ERSASP_2_0_2)= TRUE
OR getResult(ERSASP_2_0_4)= TRUE
OR getResult(ERSASP_2_0_5)= TRUE
OR getResult(ERSASP_2_0_6)= TRUE
OR getResult(ERSASP_2_0_7)= TRUE
OR getResult(ERSASP_2_0_7-2)= TRUE
OR getResult(ERSASP_2_0_7-3)= TRUE
OR getResult(ERSASP_2_0_7-4)= TRUE
OR getResult(ERSASP_2_0_7-5)= TRUE
OR getResult(ERSASP_2_0_8)= TRUE
}
Python Code 변환 예정
Modify
3
19890
다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 5호
5. 「게임산업진흥에 관한 법률」 제2조제6호ㆍ제6호의2ㆍ제7호 및 제8호의 게임제공업ㆍ인터넷컴퓨터게임시설제공업 및 복합유통게임제공업. 다만, 게임제공업 및 인터넷컴퓨터게임시설제공업의 경우에는 영업장(내부계단으로 연결된 복층구조의 영업장은 제외한다)이 지상 1층 또는 지상과 직접 접하는 층에 설치되고 그 영업장의 주된 출입구가 건축물 외부의 지면과 직접 연결된 구조에 해당하는 경우는 제외한다.
//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 5호
Check(ERSASP_2_0_5){
KS1 AND IF CS THEN !KS2
}
KS1{
getObjectProperty( Building.business)= "GIPA_2_0_6"
OR getObjectProperty( Building.business)= "GIPA_2_0_6-2"
OR getObjectProperty( Building.business)= "GIPA_2_0_7"
OR getObjectProperty( Building.business)= "GIPA_2_0_8"
}
CS{
getObjectProperty( Building.business)= "GIPA_2_0_6"
OR getObjectProperty( Building.business)= "GIPA_2_0_7"
}
KS2{
Space mySpace{
Space.usage = "GIPA_2_0_6"
OR Space.usage = "GIPA_2_0_7"
}
Floor myFloor{
hasObject(Floor,mySpace)=TRUE
}
Door myDoor{
isObjectProperty(mySpace.Door.isEntrance)=TRUE
}
(getObjectProperty( myFloor.number)=1
OR isDirectlyAccessible(myFloor, Ground)=TRUE)
isConnectedToExternal(myDoor)=TRUE
}
Python Code 변환 예정
Modify
4
19891
다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 6호
6. 「음악산업진흥에 관한 법률」 제2조제13호에 따른 노래연습장업
//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 6호
Check(ERSASP_2_0_6){
KS
}
KS{
getObjectProperty( Building.business)= "MIPA_2_0_13"
}
Python Code 변환 예정
Modify
5
19892
다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 7호
7. 「모자보건법」 제2조제12호에 따른 산후조리업
//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 7호
Check(ERSASP_2_0_7){
KS
}
KS{
getObjectProperty( Building.business)= "MCHA_2_0_11"
}
Python Code 변환 예정
Modify
6
19893
다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 7의2호
7의2. 고시원업[구획된 실(室) 안에 학습자가 공부할 수 있는 시설을 갖추고 숙박 또는 숙식을 제공하는 형태의 영업]
//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업)7-2호
Check(ERSASP_2_0_7-2){
KS
}
KS{
getObjectProperty( Building.business)= "AccommodationForExaminers"
}
Python Code 변환 예정
Modify
7
19894
다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 7의3호
7의3. 「사격 및 사격장 안전관리에 관한 법률 시행령」 제2조제1항 및 별표 1에 따른 권총사격장(실내사격장에 한정하며, 같은 조 제1항에 따른 종합사격장에 설치된 경우를 포함한다)
//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 7의3호
Check(ERSASP_2_0_7-3){
KS
}
KS{
getObjectProperty( Building.business)= "GunShootingRange"
}
Python Code 변환 예정
Modify
8
19895
다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 7의4호
7의4. 「체육시설의 설치ㆍ이용에 관한 법률」 제10조제1항제2호에 따른 골프 연습장업(실내에 1개 이상의 별도의 구획된 실을 만들어 스크린과 영사기 등의 시설을 갖추고 골프를 연습할 수 있도록 공중의 이용에 제공하는 영업에 한정한다)
//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 7-4호
Check(ERSASP_2_0_7-4){
KS
}
KS{
getObjectProperty( Building.business)="IUSA_10_1_2_9"
}
Python Code 변환 예정
Modify
9
19896
다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 7의5호
7의5. 「의료법」 제82조제4항에 따른 안마시술소
//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 7-5호
Check(ERSASP_2_0_7-5){
KS
}
KS{
getObjectProperty( Building.business)="MassageParlor"
}
Python Code 변환 예정
Modify
10
19903
소화기구 및 자동소화장치의 화재안전기준(NFSC 101) 제 4조 1 항 4호 가 목
가. 각층마다 설치하되, 특정소방대상물의 각 부분으로부터 1개의 소화기까지의 보행거리가 소형소화기의 경우에는 20m 이내, 대형소화기의 경우에는 30m 이내가 되도록 배치할 것. 다만, 가연성물질이 없는 작업장의 경우에는 작업장의 실정에 맞게 보행거리를 완화하여 배치할 수 있으며, 지하구의 경우에는 화재발생의 우려가 있거나 사람의 접근이 쉬운 장소에 한하여 설치할 수 있다<개정 2012.6.11>
//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 4호 가목
Check(NFSC101_4_1_4){
KS
}
KS{
isInstalled(FireExtinguisher, Floor)=True
IF getObjectProperty( FireExtinguisher.sizeType)="SmallSize"
THEN getObjectDistance(SpecificFireFightingBuilding.Wall, FireExtinguisher.One)<=20 m
getObjectDistance(SpecificFireFightingBuilding.Column, FireExtinguisher.One)<=20 m
ELSE IF getObjectProperty( FireExtinguisher.sizeType)="LargeSize"
THEN getObjectDistance(SpecificFireFightingBuilding.Wall, FireExtinguisher.One)<=30 m
getObjectDistance(SpecificFireFightingBuilding.Column, FireExtinguisher.One)<=30 m
END IF
}
Python Code 변환 예정
Modify
11
19910
소화기구 및 자동소화장치의 화재안전기준(NFSC 101) 제 4조 2 항
② 이산화탄소 또는 할로겐화합물(할론 1301과 청정소화약제를 제외한다)을 방사하는 소화기구(자동확산소화장치를 제외한다)는 지하층이나 무창층 또는 밀폐된 거실로서 그 바닥면적이 20㎡ 미만의 장소에는 설치할 수 없다. 다만, 배기를 위한 유효한 개구부가 있는 장소인 경우에는 그러하지 아니하다.<개정 2008.12.15, 2012.6.11>
//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 2항
Check(NFSC101_4_2){
KS
}
KS{
FireExtinguisher myFireExtinguisher{
getObjectProperty( FireExtinguishingEquipment.extinguishingAgentType) = "GasType"
}
Space mySpace{
(getFloorNumber(Space) = -1
OR hasSpace(Space, Window) = FALSE
OR isObjectProperty(Room.isEnclosed)=TRUE)
getObjectProperty( Space.FloorSlab) < 20 m2
}
getSpace(mySpace, myFireExtinguisher) = FALSE
}
Python Code 변환 예정
Modify
12
19912
연결살수설비의 화재안전기준(NFSC 503) 제 4조 1 항 2호
2. 송수구는 구경 65㎜의 쌍구형으로 설치할 것. 다만, 하나의 송수구역에 부착하는 살수헤드의 수가 10개 이하인 것은 단구형의 것으로 할 수 있다.
// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 1항 2호
Check(NFSC503_4_1_2){
IF CS THEN KS
}
CS{
Zone myZone{
isObjectProperty(Zone.isWaterSupplyZone)=TRUE
}
hasObject(myZone.One,HookingUpSprinklerSystem.Head.)=TRUE
getObjectCount(HookingUpSprinklerSystem.Head.) <= 10
}
KS{
Port myPort{
getObjectProperty( Port.systemType) = "HookingUpSprinklerSystem"
getObjectProperty( Port.typeForWater) = "FireDepartmentConnection"
}
isObjectProperty(myPort.diameter) = 65mm
getObjectProperty( myPort.shapeType) = "DoubleType"
}
Python Code 변환 예정
Modify
13
19913
연결살수설비의 화재안전기준(NFSC 503) 제 4조 1 항 3호
3. 개방형헤드를 사용하는 송수구의 호스접결구는 각 송수구역마다 설치할 것. 다만, 송수구역을 선택할 수 있는 선택밸브가 설치되어 있고 각 송수구역의 주요구조부가 내화구조로 되어 있는 경우에는 그러하지 아니하다.
// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 1항 3호
Check(NFSC503_4_1_3){
IF !CS THEN KS
}
Zone myZone{
isObjectProperty(Zone.isWaterSupplyZone)=TRUE
}
CS{
Valve myValve{
isObjectProerpty(Valve.isSelectionValve) = TRUE
}
isInstalled(myValve) = TRUE
hasObject(myZone,MainStructuralPart) = TRUE
isFireResistantStructure(MainStructuralPart) = TRUE
}
KS{
Port myPort{
getObjectProperty( Port.systemType) = "HookingUpSprinklerSystem"
getObjectProperty( Port.typeForWater) = "FireDepartmentConnection"
}
Head myHead{
getObjectProperty( Head.openAndCloseType) = "OpenType"
}
isInstalled(myPort.호스접결구, myZone.One) = TRUE
}
Python Code 변환 예정
Modify
14
19915
연결살수설비의 화재안전기준(NFSC 503) 제 4조 1 항 5호
5. 송수구로부터 주배관에 이르는 연결배관에는 개폐밸브를 설치하지 아니 할 것. 다만, 스프링클러설비·물분무소화설비·포소화설비 또는 연결송수관설비의 배관과 겸용하는 경우에는 그러하지 아니하다.
// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 1항 5호
Check(NFSC503_4_1_5){
IF !CS THEN KS
}
CS{
Pipe myPipe1{
getObjectProperty( Port.systemType) = "HookingUpSprinklerSystem"
}
Pipe myPipe2{
getObjectProperty( Port.systemType) = "SprinklerSystem"
}
Pipe myPipe3{
getObjectProperty( Port.systemType) = "WaterSprayExtingushingSystem"
}
Pipe myPipe4{
getObjectProperty( Port.systemType) = "FoamExtinguishingSystem"
}
Pipe myPipe5{
getObjectProperty( Port.systemType) = "HookingUpSprinklerSystem"
}
Pipe myPipe6{
getObjectProperty( Port.systemType) = "FireDepartmentConnectionSystem"
}
isShared(myPipe1, myPipe2, myPipe3, myPipe4) = TRUE
OR isShared(myPipe5, myPipe6) = TRUE
}
KS{
Port myPort{
getObjectProperty( Port.systemType) = "HookingUpSprinklerSystem"
getObjectProperty( Port.typeForWater) = "FireDepartmentConnection"
}
Pipe myPipe{
isObjectProperty(Pipe.isRiser)=TRUE
}
Vavle myValve{
isObjectProperty(Valve.isShutoffValve)= TRUE
}
isConnectedTo(myPort, Pipe) = TRUE
isConnectedTo(Pipe, myPipe) = TRUE
isInstalled(myValve, myPipe) = FALSE
}
Python Code 변환 예정
Modify
15
19917
연결살수설비의 화재안전기준(NFSC 503) 제 4조 3 항 1호
1. 폐쇄형헤드를 사용하는 설비의 경우에는 송수구·자동배수밸브·체크밸브의 순으로 설치할 것
// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 3항 1호
Check(NFSC503_4_3_1){
IF CS THEN KS
}
CS{
Head myHead{
getObjectProperty( Head.openAndCloseType) = "EnclosedType"
}
getObjectProperty( myHead.systemType) = "HookingUpSprinklerSystem"
}
KS{
Port myPort{
getObjectProperty( Port.systemType) = "HookingUpSprinklerSystem"
getObjectProperty( Port.typeForWater) = "FireDepartmentConnection"
}
Valve myValve1{
isObjectProperty(Valve.isAutomiaticDeliveryValve) = TRUE
}
Valve myValve2{
isObjectProperty(Valve.isCheckValve) = TRUE
}
isInstalledInOrder(myPort, myValve1, myValve2) = TRUE
}
Python Code 변환 예정
Modify
16
19918
연결살수설비의 화재안전기준(NFSC 503) 제 4조 3 항 2호
2. 개방형헤드를 사용하는 설비의 경우에는 송수구·자동배수밸브의 순으로 설치할 것
// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 3항 2호
Check(NFSC503_4_3_2){
IF CS THEN KS
}
CS{
Head myHead{
getObjectProperty( Head.openAndCloseType) = "OpenType"
}
getObjectProperty( myHead.systemType) = "HookingUpSprinklerSystem"
}
KS{
Port myPort{
getObjectProperty( Port.systemType) = "HookingUpSprinklerSystem"
getObjectProperty( Port.typeForWater) = "FireDepartmentConnection"
}
Valve myValve1{
isObjectProperty(Valve.isAutomiaticDeliveryValve) = TRUE
}
isInstalledInOrder(myPort, myValve1) = TRUE
}
Python Code 변환 예정
Modify
17
19919
연결살수설비의 화재안전기준(NFSC 503) 제 4조 4 항
④개방형헤드를 사용하는 연결살수설비에 있어서 하나의 송수구역에 설치하는 살수헤드의 수는 10개 이하가 되도록 하여야 한다.
// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 4항
Check(NFSC503_4_4){
IF CS THEN KS
}
CS{
Head myHead{
getObjectProperty( Head.openAndCloseType) = "OpenType"
}
getObjectProperty( myHead.systemType) = "HookingUpSprinklerSystem"
}
KS{
Zone myZone{
isObjectProperty(Zone.isWaterSupplyZone) = TRUE
}
Head myHead{
isInstalled(HookingUpSprinklerSystem.Head, myZone.One) = TRUE
}
getObjectCount(myHead) <= 10
}
Python Code 변환 예정
Modify
18
19920
연결살수설비의 화재안전기준(NFSC 503) 제 5조 1 항
제5조(배관 등) ①배관은 배관용탄소강관(KS D 3507) 또는 압력배관용탄소강관(KS D 3562)이나 이와 동등 이상의 강도·내식성 및 내열성을 가진 것으로 하여야 한다. 다만, 다음 각 호의 어느 하나에 해당하는 장소에는 법 제39조에 따라 제품검사에 합격한 소방용 합성수지배관으로 설치할 수 있다. <개정 2012.8.20>
// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 1항
Check(NFSC503_5_1){
IF !CS THEN KS
}
CS{
getResult(NFSC503_5_1_2) = TRUE
getResult(NFSC503_5_1_3) = TRUE
}
KS{
getObjectProperty( Pipe.Material) = "KS D 3507"
OR getObjectProperty( Pipe.Material) = "KS D 3562"
}
Python Code 변환 예정
Modify
19
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
20
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
21
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
22
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
23
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
24
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
25
19942
연결살수설비의 화재안전기준(NFSC 503) 제 6조 1 항
제6조(연결살수설비의 헤드) ①연결살수설비의 헤드는 연결살수설비전용헤드 또는 스프링클러헤드로 설치하여야 한다.
//연결살수설비의 화재안전기준(nfsc 503) 6조 (배관 등) 1항
Check(NFSC503_6_1){
KS
}
KS{
getObjectProperty( HookingUpSprinklerSystem.Head) = "SprinklerHead"
}
Python Code 변환 예정
Modify
26
19946
연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항
③폐쇄형스프링클러헤드를 설치하는 경우에는 제2항의 규정 외에 다음 각 호의 기준에 따라 설치하여야 한다. <개정 2012.8.20>
//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항
Check(NFSC503_6_3){
IF CS THEN KS
}
CS{
Head myHead{
getObjectProperty( SprinklerSystem.Head.openAndCloseType) = "EnclosedType"
}
isExist(myHead) = TRUE
}
KS{
getResult(NFSC503_6_3_2) = TRUE
getResult(NFSC503_6_3_3) = TRUE
getResult(NFSC503_6_3_5) = TRUE
getResult(NFSC503_6_3_6) = TRUE
}
Python Code 변환 예정
Modify
27
19948
연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 3호
3. 스프링클러헤드와 그 부착면(상향식헤드의 경우에는 그 헤드의 직상부의 천장·반자 또는 이와 비슷한 것을 말한다. 이하 같다)과의 거리는 30㎝ 이하로 할 것
//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 3호
Check(NFSC503_6_3_3){
IF (CS1 THEN KS1) or (CS2 THEN KS2)
}
CS1{
getObjectProperty( SprinklerHead) != "BottomUpType"
}
KS1{
getObjectDistance(SprinklerHead.AttachingToSurface, SprinklerHead) <= 30CM
}
CS2{
getObjectProperty( SprinklerHead) = "BottomUpType"
}
KS2{
getObjectVerticalDistance(Ceiling, SprinklerHead) <= 30CM
}
Python Code 변환 예정
Modify
28
19949
연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 5호
5. 스프링클러헤드의 반사판은 그 부착면과 평행하게 설치할 것. 다만, 측벽형헤드 또는 제7호에 따라 연소할 우려가 있는 개구부에 설치하는 스프링클러헤드의 경우에는 그러하지 아니하다.
//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 5호
Check(NFSC503_6_3_5){
IF !CS THEN KS
}
CS{
getObjectProperty( SprinklerSystem.Head.shapeType) = "SideWallType"
}
KS{
isParallel(SprinklerSystem.Head.Deflector, SprinklerSystem.Head.AttachingToSurface) = TRUE
}
Python Code 변환 예정
Modify
29
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
30
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
31
19956
연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 8호 다 목
다. 개방형스프링클러헤드를 사용하는 경우
//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 8호 다목
Check(NFSC503_6_3_8_3){
KS
}
KS{
Head myHead{
getObjectProperty( SprinklerSystem.Head.openAndCloseType) = "OpenType"
}
isExist(myHead) = TRUE
}
Python Code 변환 예정
Modify
32
19957
연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 9호
9. 측벽형스프링클러헤드를 설치하는 경우 긴변의 한쪽벽에 일렬로 설치(폭이 4.5m 이상 9m 이하인 실은 긴변의 양쪽에 각각 일렬로 설치하되 마주보는 스프링클러헤드가 나란히꼴이 되도록 설치)하고 3.6m 이내마다 설치할 것
//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 9호
Check(NFSC503_6_3_9){
IF (CS1 THEN KS1) or (CS2 THEN KS2)
}
CS1{
SprinklerHead mySprinklerHead{
getObjectProperty( SprinklerHead.shapeType) = "SideWallType"
}
isExist(mySprinklerHead) = TRUE
getObjectWidth(Room) < 4.5m
OR getObjectWidth(Room) > 9m
}
KS1{
SprinklerHead mySprinklerHead{
getObjectProperty( SprinklerHead.shapeType) = "SideWallType"
}
getObjectWidth(mySprinklerHead, c) < 3.6m
}
CS2{
Head myHead{
getObjectProperty( SprinklerSystem.Head.shapeType) = "SideWallType"
}
isExist(mySprinklerHead) = TRUE
getObjectWidth(Room) >= 4.5m
OR getObjectWidth(Room) <= 9m
}
KS2{
Head myHead{
getObjectProperty( SprinklerSystem.Head.shapeType) = "SideWallType"
}
isParallel(mySprinklerHead, Wall) = TRUE
}
Python Code 변환 예정
Modify
33
19959
연결살수설비의 화재안전기준(NFSC 503) 제 6조 4 항 1호
1. 연결살수설비 전용의 개방형헤드를 설치할 것
//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 4항 1호
Check(NFSC503_6_4_1){
KS
}
KS{
getObjectProperty( HookingUpSprinklerSystem.Head.openAndCloseType) = "OpenType"
}
Python Code 변환 예정
Modify
34
72614
연결살수설비의 화재안전기준(NFSC 503) 제 4조 1 항 4호
4. 지면으로부터 높이가 0.5m 이상 1m 이하의 위치에 설치할 것
Check(NFSC503_4_1_4){
KS
}
KS{
Port myPort{
getObjectProperty( Port.systemType) = "HookingUpSprinklerSystem"
getObjectProperty( Port.typeForWater) = "FireDepartmentConnection"
}
getObjectVerticalDistance(Ground, myPort) >= 0.5m
getObjectVerticalDistance(Ground, myPort) <= 1m
}
Python Code 변환 예정
Modify
35
20464
연결송수관설비의 화재안전기준(NFSC 502) 제 4조 5호
5. 구경 65㎜의 쌍구형으로 할 것
//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 5호
Check(NFSC502_4_0_5){
KS
}
KS{
Port myPort{
getObjectProperty( Port.typeForWater)="FireDepartmentConnection "
getObjectProperty( Port.shapeType)="DoubleType"
}
getObjectDiameter(myFireDepartmentConnection)= 65 mm
}
Python Code 변환 예정
Modify
36
20467
연결송수관설비의 화재안전기준(NFSC 502) 제 4조 8호 가 목
가. 습식의 경우에는 송수구·자동배수밸브·체크밸브의 순으로 설치할 것
//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 8호 가목
Check(){
IF CS THEN KS
}
CS{
getObjectProperty( FireDepartmentConnectionSystem.dryWetType)="WetFireDepartmentConnectionSystem"
}
KS{
// 송수구·자동배수밸브·체크밸브의 순으로 설치할 것
}
Python Code 변환 예정
Modify
37
20468
연결송수관설비의 화재안전기준(NFSC 502) 제 4조 8호 나 목
나. 건식의 경우에는 송수구·자동배수밸브·체크밸브·자동배수밸브의 순으로 설치할 것
//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 8호 나목
Check(NFSC502_4_0_8_나){
IF CS THEN KS
}
CS{
getObjectProperty( FireDepartmentConnectionSystem.dryWetType)="DryFireDepartmentConnectionSystem"
}
KS{
// 송수구·자동배수밸브·체크밸브·자동배수밸브의 순으로 설치할 것
}
Python Code 변환 예정
Modify
38
20471
연결송수관설비의 화재안전기준(NFSC 502) 제 5조 1 항 2호
2. 지면으로부터의 높이가 31m 이상인 특정소방대상물 또는 지상 11층 이상인 특정소방대상물에 있어서는 습식설비로 할 것
//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 1항 2호
Check(NFSC502_5_1_2){
IF CS THEN KS
}
CS{
(
getBuildingHeight()>=31 m
OR getBuildingStoriesCount()>=11
)
getBuildingUsage()="SpecificFireFightingBuilding"
}
KS{
getObjectProperty( FireDepartmentConnectionSystem.dryWetType)="WetFireDepartmentConnectionSystem"
}
Python Code 변환 예정
Modify
39
20473
연결송수관설비의 화재안전기준(NFSC 502) 제 5조 2 항 1호
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
}
Python Code 변환 예정
Modify
40
20475
연결송수관설비의 화재안전기준(NFSC 502) 제 5조 2 항 1호 나 목
나. 이음매 없는 구리 및 구리합금관(KS D 5301). 다만, 습식의 배관에 한한다.
//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 2항 1호 나목
Check(NFSC502_5_2_1_나){
IF CS THEN KS
}
CS{
getObjectProperty( Pipe.type)="WetPipe"
}
KS{
getObjectMaterial(Pipe)="KSD5301"
}
Python Code 변환 예정
Modify
41
20477
연결송수관설비의 화재안전기준(NFSC 502) 제 5조 2 항 2호
2. 배관 내 사용압력이 1.2 ㎫ 이상일 경우에는 압력배관용탄소강관(KS D 3562) 또는 이와 동등 이상의 강도·내식성 및 내열성을 가진 것
//연결송수관설비의 화재안전기준(NFSC 502) 5조 (배관) 2항 2호
Check(NFSC502_5_2_2){
IF CS THEN KS
}
CS{
getObjectProperty( Pipe.workingPressure)>=1.2 MPa
}
KS{
getObjectMaterial(Pipe)="KSD3562"
}
Python Code 변환 예정
Modify
42
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
43
20489
연결송수관설비의 화재안전기준(NFSC 502) 제 6조 3호
3. 11층 이상의 부분에 설치하는 방수구는 쌍구형으로 할 것. 다만, 다음 각목의 어느 하나에 해당하는 층에는 단구형으로 설치할 수 있다.
//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 3호
Check(NFSC502_6_0_3){
IF CS1 THEN KS1 ELSE IF CS2 THEN KS2
}
CS1{
Space mySpace{
getFloorNumber(Space)>=11
}
isInstalled(FireDepartmentConnectionSystem.Port, mySpace)=True
}
KS1{
getObjectProperty( FireDepartmentConnectionSystem.Port.shapeType)="DoubleType"
}
CS2{
getResult(NFSC502_6_0_3_가)=True
OR getResult(NFSC502_6_0_3_나)=True
}
KS2{
getObjectProperty( FireDepartmentConnectionSystem.Port.shapeType)="SingleType"
}
Python Code 변환 예정
Modify
44
20493
연결송수관설비의 화재안전기준(NFSC 502) 제 6조 5호
5. 방수구는 연결송수관설비의 전용방수구 또는 옥내소화전방수구로서 구경 65㎜의 것으로 설치할 것
//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 5호
Check(NFSC502_6_0_5){
KS
}
KS{
getObjectProperty( FireDepartmentConnectionSystem.Port.isShared)= FALSE
OR getObjectProperty( FireDepartmentConnectionSystem.Port.typeForWater)="IndoorFireHydrantDischarge"
Port myPort{
Port.typeForWater = "Delivery"
}
getObjectProperty( myPortt.diameter)=65 mm
}
Python Code 변환 예정
Modify
45
20098
연소방지설비의 화재안전기준(NFSC 506) 제 4조 1 항
제4조(배관) ①배관은 배관용탄소강관(KS D 3507) 또는 압력배관용탄소강관(KS D 3562)이나 이와 동등 이상의 강도·내식성 및 내열성을 가진 것으로 하여야 한다. 다만, 다음 각 호의 어느 하나에 해당하는 장소에는 법 제39조에 따라 제품검사에 합격한 소방용 합성수지배관으로 설치할 수 있다.<개정 2012.8.20>
// 연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 1항
Check(NFSC506_4_1){
KS
}
KS{
getObjectProperty( Pipe.Material)="KSD3507"
OR getObjectProperty( Pipe.Material)="KSD3562"
}
Python Code 변환 예정
Modify
46
20099
연소방지설비의 화재안전기준(NFSC 506) 제 4조 2 항
②급수배관(송수구로부터 연소방지설비방수구에 급수하는 배관을 말한다. 이하 같다)은 전용으로 하여야 한다.
// 연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 2항
Check(NFSC506_4_2){
KS
}
KS{
Pipe myPipe{
getObjectProperty( Pipe.usage) = "WaterSUpplyPipe"
}
isObjectProperty (myPipe.isShared) = FALSE
}
Python Code 변환 예정
Modify
47
20102
연소방지설비의 화재안전기준(NFSC 506) 제 4조 4 항 1호
1. 연소방지설비전용헤드를 사용하는 경우에는 다음 표에 따른 구경 이상으로 할 것
//연소방지설비의 화재안전 기준(nfsc 506) 4조 (배관) 4항 1호
Check(NFSC506_4_4_1){
IF CS THEN KS
}
CS{
isInstalled(CombustionProtectionSystem, ?) = TRUE
}
KS{
Pipe myPipe{
hasObject(CombustionProtectionSystem, Pipe) = TRUE
}
SprinklerHead mySprinklerHead{
isInstalled(myPipe, SprinklerHead) = TRUE
}
(getObjectCount(mySprinklerHead) = 1
getObjectProperty( myPipe.Diameter) >= 32mm)
OR(getObjectCount(mySprinklerHead) = 2
getObjectProperty( myPipe.Diameter) >= 40mm)
OR(getObjectCount(mySprinklerHead) = 3
getObjectProperty( myPipe.Diameter) >= 50mm)
OR(getObjectCount(mySprinklerHead) = 4
getObjectProperty( myPipe.Diameter) >= 65mm)
OR(getObjectCount(mySprinklerHead) = 5
getObjectProperty( myPipe.Diameter) >= 65mm)
OR(getObjectCount(mySprinklerHead) >= 6
getObjectProperty( myPipe.Diameter) >= 80mm)
}
Python Code 변환 예정
Modify
48
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
49
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
50
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
51
20111
연소방지설비의 화재안전기준(NFSC 506) 제 4조 8 항
⑧연소방지설비는 습식외의 방식으로 하여야 한다.
// 연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 8항
Check(NFSC506_4_8){
KS
}
KS{
getObjectProperty( CombustionProtectionSystem.type) != "WetPipeCombustionProtectionSystem"
}
Python Code 변환 예정
Modify
52
20117
연소방지설비의 화재안전기준(NFSC 506) 제 6조 2호
2. 송수구는 구경 65㎜의 쌍구형으로 할 것
// 연소방지설비의 화재안전기준(nfsc 506) 6조 (송수구) 2호
Check(NFSC506_6_0_2){
KS
}
KS{
Port myPort{
getObjectProperty( Port.typeForWater) = "FireDepartmentConnection"
}
isInstalled(myPort, CombustionProtectionSystem) = TRUE
getObjectProperty( myPort.diameter) = 65mm
getObjectProperty( myPort.shapeType) = "DoubleType"
}
Python Code 변환 예정
Modify
53
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
54
72615
연소방지설비의 화재안전기준(NFSC 506) 제 6조 4호
4. 지면으로부터 높이가 0.5m 이상 1m 이하의 위치에 설치할 것
// 연소방지설비의 화재안전기준(nfsc 506) 6조 (송수구) 4호
Check(NFSC506_6_0_4){
KS
}
KS{
Port myPort{
getObjectProperty( Port.typeForWater) = "FireDepartmentConnection"
isInstalled(Port, CombustionProtectionSystem) = TRUE
}
getObjectVerticalLocation(myPort, Ground) >= 0.5m
getObjectVerticalLocation(myPort, Ground) <= 1m
}
Python Code 변환 예정
Modify
55
72579
옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 1 항 1호 가 목
가. 배관용 탄소강관(KS D 3507)
// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 1항 1호 가목
Check(NFSC102_6_1_1_가){
KS
}
KS{
getObjectProperty( Pipe.Material) = "KS_D_3507"
}
Python Code 변환 예정
Modify
56
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
57
72581
옥내소화전설비의 화재안전기준(NFSC 102) 제 6조 1 항 1호 다 목
다. 배관용 스테인리스강관(KS D 3576) 또는 일반배관용 스테인리스강관(KS D 3595)
// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 1항 1호 다목
Check(NFSC102_6_1_1_다){
KS
}
KS{
getObjectProperty( Pipe.Material) = "KS_D_3576"
OR getObjectProperty( Pipe.Material) = "KS_D_3595"
}
Python Code 변환 예정
Modify
58
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
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
20445
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 11호
11. 열복합형감지기의 설치에 관하여는 제3호 및 제9호를, 연기복합형감지기의 설치에 관하여는 제10호를, 열연기복합형감지기의 설치에 관하여는 제5호 및 제10호 나목 또는 마목을 준용하여 설치할 것
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 11호
Check(NFSC203_7_3_11){
IF (CS1 THEN KS1) OR (CS2 THEN KS2) OR (CS3 THEN KS3)
}
CS1{
getObjectProperty( Sensor.isIntegratedType) = "HeatIntegratedType"
}
KS1{
getResult(NFSC203_7_3_3) = TRUE
OR getResult(NFSC203_7_3_9) = TRUE
}
CS2{
getObjectProperty( Sensor.isIntegratedType) = "SmokeIntegratedType"
}
KS2{
getResult(NFSC203_7_3_10) = TRUE
}
CS3{
getObjectProperty( Sensor.isIntegratedType) = "HeatAndSmokeIntegratedType"
}
KS3{
getResult(NFSC203_7_3_5) = TRUE
OR (getResult(NFSC203_7_3_10_나) = TRUE
OR getResult(NFSC203_7_3_10_마) = TRUE)
}
Python Code 변환 예정
Modify
62
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
63
20452
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 4 항
④ 제3항에도 불구하고 다음 각 호의 장소에는 각각 광전식분리형감지기 또는 불꽂감지기를 설치하거나 광전식공기흡입형감지기를 설치할 수 있다.
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 4항
Check(NFSC203_7_4){
IF CS THEN KS
}
CS{
getResult(NFSC203_7_4_1) = TRUE
OR getResult(NFSC203_7_4_2) = TRUE
}
KS{
Sensor mySensor1{
getObjectProperty( Sensor.sensingMode) = "PhotoelectricType"
getObjectProperty( Sensor.sensingRange) = "SeparateType"
}
Sensor mySensor2{
getObjectProperty( Sensor.sensingMode) = "PhotoelectricType"
getObjectProperty( Sensor.sensingRange) = "AspiratingType"
}
isInstalled(mySensor1) = TRUE
OR isInstalled(mySensor2) = TRUE
}
Python Code 변환 예정
Modify
64
20453
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 4 항 1호
1. 화학공장·격납고·제련소등 : 광전식분리형감지기 또는 불꽃감지기. 이 경우 각 감지기의 공칭감시거리 및 공칭시야각등 감지기의 성능을 고려하여야 한다.
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 4항 1호
Check(NFSC203_7_4_1){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ChemistryFactory"
OR getBuildingUsage() = "Hangar"
OR getBuildingUsage() = "Smelter"
}
KS{
Sensor mySensor1{
getObjectProperty( Sensor.sensingMode) = "PhotoelectricType"
getObjectProperty( Sensor.sensingRange) = "SeparateType"
}
isInstalled(mySensor1) = TRUE
OR isInstalled(FlameSensor) = TRUE
}
Python Code 변환 예정
Modify
65
20454
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 4 항 2호
2. 전산실 또는 반도체 공장등 : 광전식공기흡입형감지기. 이 경우 설치장소·감지면적 및 공기흡입관의 이격거리등은 형식승인 내용에 따르며 형식승인 사항이 아닌 것은 제조사의 시방에 따라 설치하여야 한다.
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 4항 2호
Check(NFSC203_7_4_2){
IF CS THEN KS
}
CS{
getSpaceUsage() = "ComputerRoom"
OR getBuildingUsage() = "SemiconductorFactory"
}
KS{
Sensor mySensor1{
getObjectProperty( Sensor.sensingMode) = "PhotoelectricType"
getObjectProperty( Sensor.sensingRange) = "AspiratingType"
}
isInstalled(mySensor1) = TRUE
}
Python Code 변환 예정
Modify
66
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
67
12312
주차장법 시행규칙 제 16조의2조 1 항 1호 가 목
가. 중형 기계식주차장(길이 5.05미터 이하, 너비 1.9미터 이하, 높이 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
}
Python Code 변환 예정
Modify
68
12316
주차장법 시행규칙 제 16조의2조 1 항 3호 가 목
가. 중형 기계식주차장: 길이 5.05미터 이상, 너비 1.9미터 이상
//주차장법 시행규칙 16조의2 (기계식주차장의 설치기준) 3호 가목
Check(ERPA_16-2_0_3_가){
IF CS THEN KS
}
CS{
ParkingLot myParkingLot{
ParkingLot.operationType = "MechanicalParking"
}
getObjectProperty( myParkingLot.scale)="MiddleSize"
}
KS{
myParking.length>=5.05 m
myParking.width>1.85 m
}
Python Code 변환 예정
Modify
69
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
70
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
71
61126
주차장법 시행규칙 제 6조 1 항 12호 나 목
나. 「도로법」 제2조제1항제4호나목에 따른 방호(防護) 울타리
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 12호 나목
Check(ERPA_6_1_12_2){
KS
}
KS{
isExist(CrashBarrier) = TRUE
getObjectProperty( CrashBarrier) = "FallPreventionSafetyFacility"
}
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
61201
주차장법 시행규칙 제 16조의5조 1 항 2호
2. 기계식주차장치 출입구의 크기는 중형 기계식주차장의 경우에는 너비 2.3미터 이상, 높이 1.6미터 이상으로 하여야 하고, 대형 기계식주차장의 경우에는 너비 2.4미터 이상, 높이 1.9미터 이상으로 하여야 한다. 다만, 사람이 통행하는 기계식주차장치 출입구의 높이는 1.8미터 이상으로 한다.
Check(ERPA_16 – 5_1_2) { IF (CS1 then KS1) OR (CS2 then KS2) }
CS1 {
ParkingLot myParkingLot {
myParkingLot.operationType = "MechanicalParking" }
getObjectProperty( myParkingLot.scale) = "MiddleSize"
MechanicalParkingEquipment myMechanicalParkingEquipment {
isExist(myMechanicalParkingEquipment, myParkingLot) = true }
}
KS1{
Opening myOpening1 {
isExist(myOpening1, myMechanicalParkingEquipment) = true
WD1 = getObjectWidth(myOpening1, a) >= 2.3m
H1 = getObjectHeight(myOpening1, a) >= 1.6m }
}
CS2 {
ParkingLot myParkingLot {
myParkingLot.operationType = "MechanicalParking" }
getObjectProperty( myParkingLot.scale) = "LargeSize"
MechanicalParkingEquipment myMechanicalParkingEquipment {
isExist(myMechanicalParkingEquipment, myParkingLot) = true }
}
KS2 {
Opening myOpening2 {
isExist(myOpening2, myMechanicalParkingEquipment) = true
WD2 = getObjectWidth(myOpening2, a) >= 2.4m
H2 = getObjectHeight(myOpening2, a) >= 1.9m } }
Python Code 변환 예정
Modify
74
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
75
61303
주차장법 시행규칙 제 11조 5 항 1호
1. 차로의 너비는 2.5미터 이상으로 한다. 다만, 주차단위구획과 접하여 있는 차로의 너비는 주차형식에 따라 다음 표에 따른 기준 이상으로 하여야 한다.
┌───────┬──────┐
│주차형식 │차로의 너비 │
├───────┼──────┤
│평행주차 │3.0미터 │
├───────┼──────┤
│직각주차 │6.0미터 │
├───────┼──────┤
│60도 대향주차 │4.0미터 │
├───────┼──────┤
│45도 대향주차 │3.5미터 │
├───────┼──────┤
│교차주차 │3.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
}
Python Code 변환 예정
Modify
76
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
77
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
78
61512
주차장법 시행규칙 제 3조 1 항 1호
1. 평행주차형식의 경우
┌───────────┬──────┬──────┐
│구분 │너비 │길이 │
├───────────┼──────┼──────┤
│경형 │1.7미터 이상│4.5미터 이상│
├───────────┼──────┼──────┤
│일반형 │2.0미터 이상│6.0미터 이상│
├───────────┼──────┼──────┤
│보도와 차도의 구분이 │2.0미터 이상│5.0미터 이상│
│없는 주거지역의 도로 │ │ │
├───────────┼──────┼──────┤
│이륜자동차전용 │1.0미터 이상│2.3미터 이상│
└───────────┴──────┴──────┘
// 주차장법 시행규칙 3조 (주차장의 주차구획) 1항 1호
Check(ERPA_3_1_1){
KS
}
KS{
getObjectProperty( ParkingUnit.parkingType) = "ParallelParking"
}
def Check():
for parklot in ROOT.SELECT('parklot'):
park_type = parklot.SELECT('prop', '주차형식').STRING()
car_type = parklot.SELECT('prop', '주차단위구획').STRING()
min_w = 0.0
min_l = 0.0
if park_type == '평행주차':
if car_type == '경형':
min_w = 1.7
min_l = 4.5
elif car_type == '일반형':
min_w = 2.0
min_l = 6.0
elif car_type == '이륜자동차전용':
min_w = 1.0
min_l = 2.3
else:
continue
else:
if car_type == '경형':
min_w = 2.0
min_l = 3.6
elif car_type == '일반형':
min_w = 2.5
min_l = 5.0
elif car_type == '확장형':
min_w = 2.6
min_l = 5.2
elif car_type == '장애인전용':
min_w = 3.3
min_l = 5.0
elif car_type == '이륜자동차전용':
min_w = 1.0
min_l = 2.3
else:
continue
width = parklot.SELECT('width').UNIT('m')
length = parklot.SELECT('length').UNIT('m')
w = width.NUMBER()
l = length.NUMBER()
if w < min_w:
width.ERROR('너비: ' + str(w) + ' (< ' + str(min_w) + ')' )
elif l < min_l:
length.ERROR('길이: ' + str(l) + ' (< ' + str(min_l) + ')' )
else:
parklot.SUCCESS(str(w) + ' x ' + str(l))
Modify
79
61513
주차장법 시행규칙 제 3조 1 항 2호
2. 평행주차형식 외의 경우
┌────────┬──────┬──────┐
│구분 │너비 │길이 │
├────────┼──────┼──────┤
│경형 │2.0미터 이상│3.6미터 이상│
├────────┼──────┼──────┤
│일반형 │2.5미터 이상│5.0미터 이상│
├────────┼──────┼──────┤
│확장형 │2.6미터 이상│5.2미터 이상│
├────────┼──────┼──────┤
│장애인전용 │3.3미터 이상│5.0미터 이상│
├────────┼──────┼──────┤
│이륜자동차 전용 │1.0미터 이상│2.3미터 이상│
└────────┴──────┴──────┘
// 주차장법 시행규칙 3조 (주차장의 주차구획) 1항 2호
Check(ERPA_3_1_2){
KS
}
KS{
getObjectProperty( ParkingUnit.parkingType) != "ParallelParking"
}
def Check():
for parklot in ROOT.SELECT('parklot'):
park_type = parklot.SELECT('prop', '주차형식').STRING()
car_type = parklot.SELECT('prop', '주차단위구획').STRING()
min_w = 0.0
min_l = 0.0
if park_type == '평행주차':
if car_type == '경형':
min_w = 1.7
min_l = 4.5
elif car_type == '일반형':
min_w = 2.0
min_l = 6.0
elif car_type == '이륜자동차전용':
min_w = 1.0
min_l = 2.3
else:
continue
else:
if car_type == '경형':
min_w = 2.0
min_l = 3.6
elif car_type == '일반형':
min_w = 2.5
min_l = 5.0
elif car_type == '확장형':
min_w = 2.6
min_l = 5.2
elif car_type == '장애인전용':
min_w = 3.3
min_l = 5.0
elif car_type == '이륜자동차전용':
min_w = 1.0
min_l = 2.3
else:
continue
width = parklot.SELECT('width').UNIT('m')
length = parklot.SELECT('length').UNIT('m')
w = width.NUMBER()
l = length.NUMBER()
if w < min_w:
width.ERROR('너비: ' + str(w) + ' (< ' + str(min_w) + ')' )
elif l < min_l:
length.ERROR('길이: ' + str(l) + ' (< ' + str(min_l) + ')' )
else:
parklot.SUCCESS(str(w) + ' x ' + str(l))
Modify
80
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
81
61618
주차장법 시행규칙 제 6조 1 항 5호 다 목
다. 경사로의 차로너비는 직선형인 경우에는 3.3미터 이상(2차선의 경우에는 6미터 이상)으로 하고, 곡선형인 경우에는 3.6미터이상(2차선의 경우에는 6.5미터 이상)으로 하며, 경사로의 양측벽면으로부터 30센티미터 이상의 지점에 높이 10센티미터 이상 15센티미터 미만의 연석을 설치하여야 한다. 이 경우 연석 부분은 차로의 너비에 포함되는 것으로 본다.
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호 다목
Check(ERPA_6_1_5_다){
KS AND IF (CS1 THEN KS1 ELSE KS2) OR (CS2 THEN KS3 ELSE KS4)
}
KS{
Wall myWall{
hasObject(Ramp,Wall)=TRUE
}
hasObject(Ramp, ParkingLot.Driveway)=TRUE
getElementDistance(myWall.Surface, Curb, a) >= 30cm
10cm =< getObjectProperty( Curb.height) < 15cm
}
CS1{
getObjectProperty( ParkingLot.Driveway.shapeType) = "LinearType"
getObjectProperty( ParkingLot.Driveway.numberOfLane) >= 2
}
KS1{
getOjbectProperty(ParkingLot.Driveway.width) >= 6m
}
KS2{
getOjbectProperty(ParkingLot.Driveway.width) >= 3.3m
}
CS2{
getObjectProperty( ParkingLot.Driveway.shapeType) = "CurvedType"
getObjectProperty( ParkingLot.Driveway.numberOfLane) >= 2
}
KS1{
getOjbectProperty(ParkingLot.Driveway.width) >= 6.5m
}
KS2{
getOjbectProperty(ParkingLot.Driveway.width) >= 3.6m
}
Python Code 변환 예정
Modify
82
61619
주차장법 시행규칙 제 6조 1 항 5호 라 목
라. 경사로의 종단경사도는 직선부분에서는 17퍼센트를 곡선부분에서는 14퍼센트를 초과하여서는 아니 된다.
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호 라목
Check(ERPA_6_1_5_라){
IF (CS1 THEN KS1) OR (CS2 THEN KS2)
}
CS1{
getObjectProperty( ParkingLot.Driveway.shapeType) = "LinearType"
}
KS1{
getObjectProperty( ParkingLot.Driveway.gradient) < 17%
}
CS2{
getObjectProperty( ParkingLot.Driveway.shapeType) = "CurvedType"
}
KS2{
getObjectProperty( ParkingLot.Driveway.gradient) < 14%
}
Python Code 변환 예정
Modify
83
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
84
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
85
61635
주차장법 시행규칙 제 6조 1 항 12호
12. 노외주차장의 주차단위구획은 평평한 장소에 설치하여야 한다. 다만, 경사도가 7퍼센트 이하인 경우로서 시장ㆍ군수 또는 구청장이 안전에 지장이 없다고 인정하는 경우에는 그러하지 아니하다.
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 12호
Check(ERPA_6_1_12){
IF CS THEN KS
}
CS{
getObjectProperty( ParkingLot.buildingType)="BuildingType"
getObjectProperty( ParkingLot.Floor.numberOf) >= 2
}
KS{
getResult(ERPA_6_1_12_나)=TRUE
}
Python Code 변환 예정
Modify
86
71942
주차장법 시행규칙 제 16조의2조 1 항 1호 나 목
나. 대형 기계식주차장(길이 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
}
Python Code 변환 예정
Modify
87
71945
주차장법 시행규칙 제 16조의2조 1 항 3호 나 목
나. 대형 기계식주차장: 길이 5.3미터 이상, 너비 2.15미터 이상
//주차장법 시행규칙 16조의2 (기계식주차장의 설치기준) 3호 나목
Check(ERPA_16-2_0_3_나){
IF CS THEN KS
}
CS{
ParkingLot myParkingLot{
ParkingLot.operationType = "MechanicalParking"
}
getObjectProperty( myParkingLot.scale)="LargeSize"
}
KS{
myParking.length>5.3 m
myParking.width>2.15 m
}
Python Code 변환 예정
Modify
88
72624
주차장법 시행규칙 제 6조 1 항 3호 나 1) 목
1) 이륜자동차전용 노외주차장
(표)
//주차장법 시행규칙 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
}
Python Code 변환 예정
Modify
89
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
90
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
91
61916
주차장법 시행령 제 6조 1 항 6호
6. 시설면적이 1만 제곱미터 이상인 공장을 건축하는 경우
//주차장법 시행령 6조 (부설주차장의 설치) 1항 6호
Check(EDPA_6_1_6){
KS
}
KS{
getBuildingUsage()= "Factory"
getObjectProperty( Building.facilityArea)>= 10000m2
}
Python Code 변환 예정
Modify
92
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
93
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
94
62350
주택건설기준 등에 관한 규정 제 15조 3 항 1호
1. 적재하중이 0.9톤 이상일 것
// 주택건설기준 등에 관한 규정 15조 (승강기등) 3항 1호
Check(RHC_15_3_1){
KS
}
KS{
getObjectProperty( Elevator.loadingCapacity) >= 0.9
}
Python Code 변환 예정
Modify
95
62351
주택건설기준 등에 관한 규정 제 15조 3 항 2호
2. 승강기의 폭 또는 너비중 한변은 1.35미터 이상, 다른 한변은 1.6미터 이상일 것
//주택건설기준 등에 관한 규정 15조 (승강기등) 3항 2호
Check(RHC_15_3_2){
KS
}
KS{
Elevator myElevator{
getObjectProperty( Elevator.usage) = "FreightElevator"
}
(getObjectWidth(myElevator) >= 1.35m
getObjectDepth(myElevator) >= 1.6m)
OR(getObjectWidth(myElevator) >= 1.6m
getObjectDepth(myElevator) >= 1.35m)
}
Python Code 변환 예정
Modify
96
62352
주택건설기준 등에 관한 규정 제 15조 3 항 3호
3. 계단실형인 공동주택의 경우에는 계단실마다 설치할 것
//주택건설기준 등에 관한 규정 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
}
Python Code 변환 예정
Modify
97
62353
주택건설기준 등에 관한 규정 제 15조 3 항 4호
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
}
Python Code 변환 예정
Modify
98
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
99
65563
주택법 시행령 제 47조 5 항
⑤ 감리자는 법 제16조제2항에 따라 착공신고를 하거나 감리업무의 범위에 속하는 각종 시험 및 자재확인 등을 하는 경우에는 서명 또는 날인을 하여야 한다.
//주택법 시행령 47조 (행위허가 등의 기준 등) 5항
Check(NFSC506_47_5){
IF !CS THEN KS
}
CS{
getBuildingUsage() = "MultiUnitHouse"
getObjectProperty( Floor.number) < 0
}
KS{
Floor myFloor{
getObjectProperty( Floor.number) < 0
}
getFloorUsage(myFloor) != "ResidentsCommonSpace"
}
Python Code 변환 예정
Modify
100
20013
특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(NFSC 501A) 제 14조 3호 가 목
가. 배출댐퍼는 두께 1.5㎜ 이상의 강판 또는 이와 동등 이상의 성능이 있는 것으로 설치하여야 하며 비 내식성 재료의 경우에는 부식방지 조치를 할 것
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 14조 (수직풍도에 따른 배출) 3호 가목
Check(NFSC501A_14_0_1_가){
KS
}
KS{
Damper myDamper{
getObjectProperty( Damper.functionType)="배출댐퍼"
}
Material myMaterial{
}
getObjectProperty( myDamper.Material.name)="SteelPlate"
getObjectProperty( myDamper.Material.depth)>=1.5 mm
}
Python Code 변환 예정
Modify