1
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 6조 1 항 2호 다 목
다. 바닥으로부터 높이 1.5m 이상의 위치에 설치할 것. 다만, 거실통로에 기둥이 설치된 경우에는 기둥부분의 바닥으로부터 높이 1.5m 이하의 위치에 설치할 수 있다.<개정 2008.12.15>
//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 2호 다목
Check(NFSC303_6_1_2_다){
KS
}
KS{
IF hasObject(Room.Passage, Column)=False
THEN getObjectVerticalDistance(FloorSlab,LeadingLightForLivingRoom )>=1.5
}
Python Code 변환 예정
2
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 6조 1 항 3호
3. 계단통로유도등은 다음 각 목의 기준에 따라 설치할 것
//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 3호
Check(NFSC303_6_1_3){
KS
}
KS{
getResult(NFSC303_6_1_3_가)=True
getResult(NFSC303_6_1_3_나)=True
}
Python Code 변환 예정
3
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 6조 1 항 3호 가 목
가. 각층의 경사로 참 또는 계단참마다(1개층에 경사로 참 또는 계단참이 2 이상 있는 경우에는 2개의 계단참마다)설치할 것
//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 3호 가목
Check (NFSC303_6_1_3_가){
KS
}
KS{
IF // getObjectCount(RampLanding, "1개층" )>=2
// OR getObjectCount(StairLanding, "1개층" )>=2
THEN // isInstalled(StairLanding, LeadingLightForStairs , "2개마다")=True
ELSE THEN isInstalled(RampLanding, LeadingLightForStairs)=True
OR isInstalled(StairLanding, LeadingLightForStairs)=True
END IF
}
Python Code 변환 예정
4
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 6조 1 항 3호 나 목
나. 바닥으로부터 높이 1m 이하의 위치에 설치할 것
//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 3호 나목
Check(NFSC303_6_1_3_나){
KS
}
KS{
getObjectVerticalDistance(FloorSlab, LeadingLightForStairs)=<=1 m
}
Python Code 변환 예정
5
유도등 및 유도표지의 화재안전기준(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 변환 예정
6
유도등 및 유도표지의 화재안전기준(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 변환 예정
7
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 7조 3 항
③객석내의 통로가 옥외 또는 이와 유사한 부분에 있는 경우에는 해당 통로 전체에 미칠 수 있는 수의 유도등을 설치하되, 그 조도는 통로바닥의 중심선 0.5m의 높이에서 측정하여 0.2㏓ 이상이 되어야 한다.<개정 2008.12.15, 2012.8.20>
//유도등 및 유도표지의 화재안전기준(nfsc 303) 7조 (객석유도등 설치기준) 3항
Check(NFSC303_7_3){
IF CS THEN KS
}
CS{
isExternal(AuditoriumPassage)=True
}
KS{
getSpaceIlluminance(AuditoriumPassage, "통로바닥의 중심선 0.5m의 높이에서 측정")>0.2 lx
}
Python Code 변환 예정
8
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 8조 1 항
제8조(유도표지 설치기준) ①유도표지는 다음 각 호의 기준에 따라 설치하여야 한다. <개정 2012.8.20>
//유도등 및 유도표지의 화재안전기준(nfsc 303) 8조 (유도표지 설치기준) 1항
Check(NFSC303_8_1){
IF !CS THEN KS
}
CS{
getResult(NFSC303_8_2)=True
}
KS{
getResult(NFSC303_8_1_1)=True
getResult(NFSC303_8_1_2)=True
}
Python Code 변환 예정
9
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 8조 1 항 1호
1. 계단에 설치하는 것을 제외하고는 각층마다 복도 및 통로의 각 부분으로부터 하나의 유도표지까지의 보행거리가 15m 이하가 되는 곳과 구부러진 모퉁이의 벽에 설치할 것
//유도등 및 유도표지의 화재안전기준(nfsc 303) 8조 (유도표지 설치기준) 1항 1호
Check(NFSC303_8_1_1){
IF ! CS THEN KS
}
CS{
isInstalled(LeadingSign,Stair)=True
}
KS{
getObjectDistance(Floor.One.Corridor.Wall, LeadingSign)<=15 m
getObjectDistance(Floor.One.Corridor.Column, LeadingSign)<=15 m
getObjectDistance(Floor.One.Passage.Wall, LeadingSign)<=15 m
getObjectDistance(Floor.One.Passage.Column, LeadingSign)<=15 m
}
Python Code 변환 예정
10
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 8조 1 항 2호
2. 피난구유도표지는 출입구 상단에 설치하고, 통로유도표지는 바닥으로부터 높이 1m 이하의 위치에 설치할 것<개정 2008.12.15>
//유도등 및 유도표지의 화재안전기준(nfsc 303) 8조 (유도표지 설치기준) 1항 2호
Check(NFSC303_8_1_2){
KS
}
KS{
getObjectVerticleDistance(LeadingSign, FloorSlab)<=1 m
}
Python Code 변환 예정
11
유도등 및 유도표지의 화재안전기준(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 변환 예정
12
유도등 및 유도표지의 화재안전기준(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 변환 예정
13
유도등 및 유도표지의 화재안전기준(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 변환 예정
14
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 8조의2조 2 항 2호
2. 피난유도 표시부는 바닥으로부터 높이 1m이하의 위치 또는 바닥 면에 설치할 것
// 유도등 및 유도표지의 화재안전기준(nfsc 303) 8조의2 (피난유도선 설치기준) 2항 2호
Check(NFSC303_8-2_2_2){
KS
}
KS{
getObjectVerticalLocation(피난유도 표시부, Ground) <= 1m
OR isInstalled(피난유도 표시부, FloorSurface) = TRUE
}
Python Code 변환 예정
15
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 8조의2조 2 항 3호
3. 피난유도 표시부는 50㎝이내의 간격으로 연속되도록 설치하되 실내장식물 등으로 설치가 곤란할 경우 1m 이내로 설치할 것
// 유도등 및 유도표지의 화재안전기준(nfsc 303) 8조의2 (피난유도선 설치기준) 2항 3호
Check(NFSC303_8-2_2_3){
KS
}
KS{
getObjectInterval(LeadingSignPart) < 50cm
}
Python Code 변환 예정
16
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 8조의2조 2 항 7호
7. 피난유도 제어부는 조작 및 관리가 용이하도록 바닥으로부터 0.8m이상1.5m이하의 높이에 설치할 것
// 유도등 및 유도표지의 화재안전기준(nfsc 303) 8조의2 (피난유도선 설치기준) 2항 7호
Check(NFSC303_8-2_2_7){
KS
}
KS{
getObjectVerticalLocation(LeadingControlPart, Ground) >= 0.8m
getObjectVerticalLocation(LeadingControlPart, Ground) <= 1.5m
}
Python Code 변환 예정
17
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 6조 1 항 1호 나 목
나. 구부러진 모퉁이 및 보행거리 20m마다 설치할 것
//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 1호 나목
Check(NFSC303_6_1_1_나){
KS
}
KS{
isInstalled("구부러진 모퉁이", LeadingLightForCorridor)=True
// 20m마다 설치 , 함수 필요
}
Python Code 변환 예정
18
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 6조 1 항 2호 나 목
나. 구부러진 모퉁이 및 보행거리 20m마다 설치할 것
//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 2호 나목
Check(NFSC303_6_1_2_나){
KS
}
KS{
isInstalled("구부러진 모퉁이", LeadingLightForCorridor)=True
// 20m마다 설치 , 함수 필요
}
Python Code 변환 예정
19
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 9호 나 목
나. 하나의 검출기에 접속하는 감지부는 2개 이상 15개 이하가 되도록 할 것. 다만, 각각의 감지부에 대한 작동여부를 검출기에서 표시할 수 있는 것(주소형)은 형식승인 받은 성능인정범위내의 수량으로 설치할 수 있다.
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 9호 나목
Check(NFSC203_7_3_9_나){
IF CS THEN KS
}
CS{
isConnectedTO(Detector.One, SensingElement) = TRUE
}
KS{
getObjectCount(SensingElement) >= 2
getObjectCount(SensingElement) <= 15
}
Python Code 변환 예정
20
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 10호
10. 연기감지기는 다음의 기준에 따라 설치할 것
// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 10호
Check(NFSC203_7_3_10){
KS
}
KS{
getResult(NFSC203_7_3_10_1) = TRUE
getResult(NFSC203_7_3_10_2) = TRUE
getResult(NFSC203_7_3_10_5) = TRUE
}
Python Code 변환 예정
21
자동화재탐지설비 및 시각경보장치의 화재안전기준(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 변환 예정
22
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 10호 나 목
나. 감지기는 복도 및 통로에 있어서는 보행거리 30m(3종에 있어서는 20m)마다, 계단 및 경사로에 있어서는 수직거리 15m(3종에 있어서는 10m)마다 1개 이상으로 할 것
// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 10호 나목
Check(NFSC203_7_3_10_2){
IF (CS1 THEN KS1) OR (CS2 THEN KS2)
}
CS1{
hasSpace(Corridor, SmokeSensor) = TRUE
OR hasSpace(Passage, SmokeSensor) = TRUE
}
KS1{
getObjectInterval(SmokeSensor) <= 30m
}
CS2{
hasSpace(Stair, SmokeSensor) = TRUE
OR hasSpace(Ramp, SmokeSensor) = TRUE
}
KS2{
getObjectInterval(SmokeSensor) <= 15m
}
Python Code 변환 예정
23
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 10호 마 목
마. 감지기는 벽 또는 보로부터 0.6m 이상 떨어진 곳에 설치할 것
// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 10호 마목
Check(NFSC203_7_3_10_5{
KS
}
KS{
getObjectDistance(SmokeSensor, Wall.Structure) >= 0.6m
OR getObjectDistance(SmokeSensor, Beam.Structure) >= 0.6m
}
Python Code 변환 예정
24
자동화재탐지설비 및 시각경보장치의 화재안전기준(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 변환 예정
25
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 12호
12. 정온식감지선형감지기는 다음의 기준에 따라 설치할 것
// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 12호
Check(NFSC203_7_3_12){
KS
}
KS{
getResult(NFSC203_7_3_12_2) = TRUE
getResult(NFSC203_7_3_12_3) = TRUE
getResult(NFSC203_7_3_12_4) = TRUE
}
Python Code 변환 예정
26
자동화재탐지설비 및 시각경보장치의 화재안전기준(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 변환 예정
27
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 13호
13. 불꽃감지기는 다음의 기준에 따라 설치할 것
// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 13호
Check(NFSC203_7_3_13){
KS
}
KS{
getResult(NFSC203_7_3_13_4) = TRUE
}
Python Code 변환 예정
28
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 13호 라 목
라. 감지기를 천장에 설치하는 경우에는 감지기는 바닥을 향하여 설치할 것
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 13호 라목
Check(NFSC203_7_3_13_라){
IF CS THEN KS
}
CS{
isInstalled(Sensor, Ceiling) = TRUE
}
KS{
객체설치방향(Sensor, FloorSlab) = TRUE
}
Python Code 변환 예정
29
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 15호
15. 광전식분리형감지기는 다음의 기준에 따라 설치할 것
// 자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 15호
Check(NFSC203_7_3_15){
KS
}
KS{
getResult(NFSC203_7_3_15_1) = TRUE
getResult(NFSC203_7_3_15_2) = TRUE
getResult(NFSC203_7_3_15_3) = TRUE
getResult(NFSC203_7_3_15_4) = TRUE
}
Python Code 변환 예정
30
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 15호 다 목
다. 감지기의 송광부와 수광부는 설치된 뒷벽으로부터 1m이내 위치에 설치할 것
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 15호 다목
Check(NFSC203_7_3_15_다){
KS
}
KS{
Wall myWall{
isInstalled(Sensor.LightReceivingElement, Wall) = TRUE
isInstalled(Sensor.LightSendingElement , Wall) = TRUE
}
getElementDistance(Sensor, myWall) <= 1m
}
Python Code 변환 예정
31
자동화재탐지설비 및 시각경보장치의 화재안전기준(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 변환 예정
32
자동화재탐지설비 및 시각경보장치의 화재안전기준(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 변환 예정
33
자동화재탐지설비 및 시각경보장치의 화재안전기준(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 변환 예정
34
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 5 항
⑤ 다음 각 호의 장소에는 감지기를 설치하지 아니한다.
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 5항
Check(NFSC203_7_5){
KS
}
KS{
getResult(NFSC203_7_5_1) = TRUE
OR getResult(NFSC203_7_5_2) = TRUE
OR getResult(NFSC203_7_5_5) = TRUE
OR getResult(NFSC203_7_5_6) = TRUE
OR getResult(NFSC203_7_5_8) = TRUE
OR getResult(NFSC203_7_5_9) = TRUE
}
Python Code 변환 예정
35
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 5 항 1호
1. 천장 또는 반자의 높이가 20m 이상인 장소. 다만, 제1항 단서 각호의 감지기로서 부착높이에 따라 적응성이 있는 장소는 제외한다.
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 5항 1호
Check(NFSC203_7_5_1){
IF CS THEN KS
}
CS{
getObjectVerticalDistance(FloorSlab, Ceiling) >= 20m
OR getObjectVerticalDistance(FloorSlab, CeilingCovering) >= 20m
}
KS{
isInstalled(Sensor) = FALSE
}
Python Code 변환 예정
36
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 5 항 5호
5. 목욕실·욕조나 샤워시설이 있는 화장실·기타 이와 유사한 장소
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 5항 5호
Check(NFSC203_7_5_5){
IF CS THEN KS
}
CS{
Space mySpace1{
getSpaceUsage() = "Toliet"
}
Space mySpace2{
getSpaceUsage() = "Bathoroom"
}
isInstalled(mySpace1, mySpace2) = TRUE
KS{
isInstalled(Sensor) = FALSE
}
Python Code 변환 예정
37
자동화재탐지설비 및 시각경보장치의 화재안전기준(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 변환 예정
38
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 5 항 8호
8. 실내의 용적이 20㎥ 이하인 장소
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 5항 8호
Check(NFSC203_7_5_6){
IF CS THEN KS
}
CS{
Space mySpace{
isExternal(Space) = FALSE
}
(mySpace.volume) <= 20m3
}
KS{
isInstalled(Sensor) = FALSE
}
Python Code 변환 예정
39
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 6 항
⑥ 지하구에 설치하는 감지기는 제1항 각 호의 감지기로서 먼지·습기등의 영향을 받지 아니하고 발화지점을 확인할 수 있는 감지기를 설치하여야 한다.<개정 2008.12.15>
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 6항
Check(NFSC203_7_6){
IF CS THEN KS
}
CS{
isInstalled(Sensor, Underground) = TRUE
}
KS{
getResult(NFSC203_7_1_1) = TRUE
OR getResult(NFSC203_7_1_2) = TRUE
OR getResult(NFSC203_7_1_3) = TRUE
OR getResult(NFSC203_7_1_4) = TRUE
OR getResult(NFSC203_7_1_5) = TRUE
OR getResult(NFSC203_7_1_6) = TRUE
OR getResult(NFSC203_7_1_7) = TRUE
OR getResult(NFSC203_7_1_8) = TRUE
}
Python Code 변환 예정
40
장애인·노인·임산부등의편의증진보장에관한법률 제 8조 1 항
①대상시설별로 설치하여야 하는 편의시설의 종류는 대상시설의 규모, 용도등을 고려하여 대통령령으로 정한다.
// 장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 8조 (편의시설의 설치기준) 1항
Check(CDAPA_8_1){
KS
}
KS{
getResult(EDCDAPA_4) = TRUE
}
Python Code 변환 예정
41
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 제 7조 6호
6. 통신시설
// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 6호
Check(CDAPA_7_0_6){
KS
}
KS{
getBuildingUsage() = "CommunicationFacility"
}
Python Code 변환 예정
42
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 제 7조
제7조(대상시설) 편의시설을 설치하여야 하는 대상(이하 "대상시설"이라 한다)은 다음 각 호의 어느 하나에 해당하는 것으로서 대통령령으로 정하는 것을 말한다.
// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설)
Check(CDAPA_7){
IF CS THEN KS
}
CS{
getResult(CDAPA_7_0_1) = TRUE
OR getResult(CDAOA_7_0_2) = TRUE
OR getResult(CDAOA_7_0_3) = TRUE
OR getResult(CDAOA_7_0_4) = TRUE
}
KS{
isInstalled(ConvenientFacility) = TRUE
}
Python Code 변환 예정
43
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 제 7조 1호
1. 공원
// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 1호
Check(CDAPA_7_0_1){
KS
}
KS{
getBuildingUsage() = "Park"
}
Python Code 변환 예정
44
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 제 7조 2호
2. 공공건물 및 공중이용시설
// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 2호
Check(CDAPA_7_0_2){
KS
}
KS{
getBuildingUsage() = "PublicFacility"
}
Python Code 변환 예정
45
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 제 7조 3호
3. 공동주택
// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 3호
Check(CDAPA_7_0_3){
KS
}
KS{
getBuildingUsage() = "MultiUnitHouse"
}
Python Code 변환 예정
46
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 제 7조 4호
4. 통신시설
// 장애인ㆍ노인ㆍ임산부등의편의증진보장에관한법률 7조 (대상시설) 4호
Check(CDAPA_7_0_4){
KS
}
KS{
getBuildingUsage() = "CommunicationFacility"
}
Python Code 변환 예정
47
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행규칙 제 2조 1 항
제2조(편의시설의 세부기준) ①「장애인·노인·임산부 등의 편의증진보장에 관한 법률」(이하 "법"이라 한다) 제8조제2항 전단 및 「장애인·노인·임산부 등의 편의증진보장에 관한 법률시행령」(이하 "영"이라 한다) 제4조의 규정에 의한 편의시설의 구조·재질등에 관한 세부기준은 별표 1과 같다. <개정 1999.6.8., 2005.12.30.>
// 장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행규칙 2조 (편의시설의 세부기준) 1항
Check(ERCDAPA_2_1){
KS
}
KS{
getResult(ERCDAPA_*_1)=TRUE
}
Python Code 변환 예정
48
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행규칙 제 별표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 변환 예정
49
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행령 제 3조
제3조(대상시설) 법 제7조 본문의 규정에 의하여 편의시설을 설치하여야 하는 대상시설은 별표 1과 같다.
// 장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행령 3조 (대상시설)
Check(EDCDAPA_3){
KS
}
KS{
getResult(EDCDAPA_*_1)=TRUE
}
Python Code 변환 예정
50
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행령 제 4조
제4조(편의시설의 종류) 법 제8조제1항의 규정에 의하여 대상시설별로 설치하여야 하는 편의시설의 종류 및 그 설치기준은 별표 2와 같다.
// 장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행령 4조 (편의시설의 종류)
Check(EDCDAPA_4){
KS
}
KS{
getResult(EDCDAPA_*_2)=TRUE
}
Python Code 변환 예정
51
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행령 제 별표1조
1. 공원
2. 공공건물 및 공중이용시설
가. 제1종 근린생활시설
(1) 수퍼마켓·일용품(식품·잡화·의류·완구·서적·건축자재·의약품ㆍ의료기기 등) 등의 소매점으로서 동일한 건축물(하나의 대지 안에 2동 이상의 건축물이 있는 경우에는 이를 동일한 건축물로 본다. 이하 같다) 안에서 당해 용도에 쓰이는 바닥면적의 합계가 300제곱미터 이상 1천제곱미터 미만인 시설
(2) 이용원·미용원·목욕장으로서 동일한 건축물 안에서 당해 용도에 쓰이는 바닥면적
// 장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행령 별표1 편의시설 설치 대상시설(제3조 관련)
Check(EDCDAPA_*_1_2_가_1){
getBuildingUsage()=“RetailStore”
Floor myFloor{
getFloorUsage(Floor)=”RetailStore”
}
getTotalFloorArea(myFloor)>=300 m2
getTotalFloorArea(myFloor)<1000 m2
}
Check(EDCDAPA_*_1_2_가_2){
Building myBuilding {
getBuildingUsage()=“Barbershop”
OR getBuildingUsage()=“BeautyShop”
OR getBuildingUsage()=“Bathhouse”
}
Floor myFloor{
getFloorUsage(Floor)= myBuilding.usage
}
getTotalFloorArea(myFloor)>=500 m2
}
Check(EDCDAPA_*_1_2_가_3){
Building myBuilding{
getBuildingUsage()=“CommunityCenter”
OR getBuildingUsage()=“PoliceBox”
OR getBuildingUsage()=“PoliceSubstation”
OR getBuildingUsage()=“PostOffice”
OR getBuildingUsage()=“HealthCenter”
OR getBuildingUsage()=“PublicLibrary”
OR getBuildingUsage()=“NationalHealthInsuranceService_NationalPensionService_Korea EmploymentAgencyForTheDisabled_KoreaWorkersCompensationAndWelfareServiceOffice”
}
Floor myFloor{
getFloorUsage(Floor)= myBuilding.usage
}
getTotalFloorArea(myFloor)<1000 m2
}
Check(EDCDAPA_*_1_2_가_4){
getBuildingUsage()=“Shelter”
}
Check(EDCDAPA_*_1_2_가_5){
getBuildingUsage()=“PublicToilet”
}
Check(EDCDAPA_*_1_2_가_6){
Building myBuilding{
getBuildingUsage()=“Clinic_ DentalClinic_OrientalMedicalClinic_MaternityClinic”
}
Floor myFloor{
getFloorUsage(Floor)= myBuilding.usage
}
getTotalFloorArea(myFloor)>=500 m2
}
Check(EDCDAPA_*_1_2_가_7){
getBuildingUsage()=“CommunityChildCenter”
Floor myFloor{
getFloorUsage(Floor)= “CommunityChildCenter”
}
getTotalFloorArea(myFloor)>=300 m2
}
Check(EDCDAPA_*_1_2_나_1){
getBuildingUsage()=“Restaurant”
Floor myFloor{
getFloorUsage(Floor)= “CommunityChildCenter”
}
getTotalFloorArea(myFloor)>=300 m2
}
Check(EDCDAPA_*_1_2_나_2){
Building myBuilding {
(getBuildingUsage()=“RestingRestaurant”
OR getBuildingUsage()=“Bakery”)
getBuildingUsage() !=”ClassINeighborhoodLivingFacility”
}
Floor myFloor{
getFloorUsage(Floor)= myBuilding.usage
}
getTotalFloorArea(myFloor)>=300 m2
}
Check(EDCDAPA_*_1_2_나_2){
getBuildingUsage()=“MassageParlor”
Floor myFloor{
getFloorUsage(Floor)= “MassageParlor”
}
getTotalFloorArea(myFloor)>=500 m2
}
Check(EDCDAPA_*_1_2_카_1){
getBuildingUsage()=“PublicOfficeBuilding. OfficeBuildingOfLocalGovernment ”
getBuildingUsage() !=”ClassINeighborhoodLivingFacility”
}
Check(EDCDAPA_*_1_2_카_2){
Building myBuilding{
getBuildingUsage()=“GeneralBusinessFacility.FinanceBusiness”
OR getBuildingUsage()=“GeneralBusinessFacility.Office”
OR getBuildingUsage()=“GeneralBusinessFacility.NewspaperOffice”
OR getBuildingUsage()=“GeneralBusinessFacility. Officetel”
}
Floor myFloor {
getFloorUsage()=myBuilding.usage
}
getTotalFloorArea(myFloor)>=500 m2
}
Check(EDCDAPA_*_1_2_카_3){
Building myBuilding{
getBuildingUsage()=“GeneralBusinessFacility.NationalHealthInsuranceService_NationalPensionService_Korea EmploymentAgencyForTheDisabled_KoreaWorkersCompensationAndWelfareServiceOffice”
}
Floor myFloor {
getFloorUsage()=myBuilding.usage
}
getTotalFloorArea(myFloor)>=1000 m2
}
Python Code 변환 예정
52
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행령 제 별표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 변환 예정
53
주차장법 제 12조의2조 1호
1. 건폐율: 100분의 90 이하
//주차장법 12조의2 (다른 법률과의 관계) 1호
Check(PLA_12-2_0_1){
KS
}
KS{
getBuildingToLandRatio() <90/100
}
Python Code 변환 예정
54
주차장법 제 12조의2조 2호
2. 용적률: 1천500퍼센트 이하
//주차장법 12조의2 (다른 법률과의 관계)2호
Check(PLA_12-2_0_2){
KS
}
KS{
getFloorAreaRatio()<1500%
}
Python Code 변환 예정
55
주차장법 제 12조의2조 3호
3. 대지면적의 최소한도: 45제곱미터 이상
//주차장법 12조의2 (다른 법률과의 관계) 3호
Check(PLA_12-2_0_3){
KS
}
KS{
getSiteArea()>45 m2
}
Python Code 변환 예정
56
주차장법 제 19조의5조 1 항
① 기계식주차장의 설치기준은 국토교통부령으로 정한다. <개정 2013.3.23, 2018.8.14>
//주차장법 19조의5 (기계식주차장의 설치기준)
Check(PLA_19-5){
IF CS THEN KS
}
CS{
getSpaceUsage()="MechanicalParking"
}
KS{
getResult(ERPA_16-2_0_1)=True
}
Python Code 변환 예정
57
주차장법 제 6조 1 항
①주차장의 구조·설비기준등에 관하여 필요한 사항은 국토해양부령으로 정한다. 이 경우 「자동차관리법」에 따른 배기량 1천시시 미만의 자동차(이하 "경형자동차"라 한다)에 대하여는 전용주차구획을 일정비율 이상 정할 수 있다. <개정 2003.7.29, 2003.12.31, 2008.2.29, 2008.3.28>
//주차장법 6조 (주차장설비기준 등) 1항
Check(PLA_6_1){
KS
}
KS{
getResult(ERPA_2)=TRUE
getResult(ERPA_3)=TRUE
getResult(ERPA_4)=TRUE
getResult(ERPA_6)=TRUE
getResult(ERPA_11)=TRUE
}
Python Code 변환 예정
58
주차장법 제 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 변환 예정
59
주차장법 제 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 변환 예정
60
주차장법 시행규칙 제 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 변환 예정
61
주차장법 시행규칙 제 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 변환 예정
62
주차장법 시행규칙 제 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 변환 예정
63
주차장법 시행규칙 제 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 변환 예정
64
주차장법 시행규칙 제 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 변환 예정
65
주차장법 시행규칙 제 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 변환 예정
66
주차장법 시행규칙 제 3조 1 항
① 법 제6조제1항에 따른 주차장의 주차단위구획은 다음 각 호와 같다.
// 주차장법 시행규칙 3조 (주차장의 주차구획) 1항
Check(ERPA_3_1){
KS
}
KS{
getResult(ERPA_3_1_1) = TRUE
getResult(ERPA_3_1_2) = TRUE
}
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))
67
주차장법 시행규칙 제 4조 1 항
① 법 제6조제1항에 따른 노상주차장의 구조·설비기준은 다음 각 호와 같다.
//주차장법 시행규칙 4조 (노상주차장의 구조·설비기준) 1항
Check(ERPA_4_1){
KS
}
KS{
getResult(ERPA_4_1_8)=True
}
Python Code 변환 예정
68
주차장법 시행규칙 제 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 변환 예정
69
주차장법 시행규칙 제 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 변환 예정
70
주차장법 시행규칙 제 11조 2 항
② 다음 각 호의 부설주차장에 대해서는 제6조제1항제9호 및 제11호를 준용한다.
//주차장법 시행규칙 11조 (부설주차장의 구조·설비기준) 2항
Check(ERPA_11_2){
getResult(ERPA_6_1_9) = TRUE
getResult(ERPA_6_1_11) = TRUE
}
Python Code 변환 예정
71
주차장법 시행규칙 제 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 변환 예정
72
주차장법 시행규칙 제 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 변환 예정
73
주차장법 시행규칙 제 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 변환 예정
74
주차장법 시행규칙 제 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 변환 예정
75
주차장법 시행규칙 제 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 변환 예정
76
주차장법 시행규칙 제 6조 4 항 2의2호
2의2. 「석유 및 석유대체연료 사업법 시행령」 제2조제3호에 따른 주유소(특별시장·광역시장, 시장·군수 또는 구청장이 설치한 노외주차장만 해당한다)
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 4항 3호
Check(ERPA_6_4_3){
KS
}
KS{
getSpaceUsage(ParkingLotSubsidiaryFacility) = "GasStation"
}
Python Code 변환 예정
77
주차장법 시행규칙 제 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 변환 예정
78
주차장법 시행규칙 제 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))
79
주차장법 시행규칙 제 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))
80
주차장법 시행규칙 제 6조 1 항
①법 제6조제1항에 따른 노외주차장의 구조 및 설비기준은 다음 각 호와 같다. <개정 1992.9.5, 1996.6.29, 2000.7.29, 2004.7.1, 2008.2.22, 2008.3.14, 2009.6.30>
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항
Check(ERPA_6_1){
KS
}
KS{
getResult(ERPA_6_1_2)=True
getResult(ERPA_6_1_3)=True
getResult(ERPA_6_1_4)=True
getResult(ERPA_6_1_5)=True
getResult(ERPA_6_1_6)=True
getResult(ERPA_6_1_7)=True
getResult(ERPA_6_1_12)=True
getResult(ERPA_6_1_14)=True
}
Python Code 변환 예정
81
주차장법 시행규칙 제 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 변환 예정
82
주차장법 시행규칙 제 6조 1 항 3호 가 목
가. 주차부분의 장ㆍ단변중 1변이상이 차로에 접하여야 한다.
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 3호 가목
Check(ERPA_6_1_3_가){
KS
}
KS{
isAdjacent(ParkingLotAreaMark.Edge, ParkingLot.Driveway)=True
}
Python Code 변환 예정
83
주차장법 시행규칙 제 6조 1 항 3호 나 목
나. 차로의 너비는 주차형식 및 출입구(지하식 또는 건축물식 주차장의 출입구를 포함한다. 이하 제4호에서 같다)의 개수에 따라 다음 표에 의한 기준이상으로 하여야 한다.
(단위 : 미터)
+-------------------+------------------------------------------------+
| | 차 로 의 너비 |
| 주 차 형 식 +------------------------+-----------------------+
| | 출입구가 2개 이상인 | 출입구가 1개인 경우 |
| | 경우 | |
+-------------------+------------------------+-----------------------+
| 평행주차 | 3.3 | 5.0 |
| 직각주차 | 6.0 | 6.0 |
| 60도 대향주차 | 4.5 | 5.5 |
| 45도 대향주차 | 3.5 | 5.0 |
| 교차주차 | 3.5 | 5.0 |
+-------------------+------------------------+-----------------------+
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 3호 나목
Check(ERPA_6_1_3_나){
KS
}
KS{
getResult(ERPA_6_1_3_나_1)=True
getResult(ERPA_6_1_3_나_2)=True
}
Python Code 변환 예정
84
주차장법 시행규칙 제 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 변환 예정
85
주차장법 시행규칙 제 6조 1 항 5호
5. 지하식 또는 건축물식 노외주차장의 차로는 제3호의 기준에 의하는 외에 다음 각 목에서 정하는 바에 의한다.
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호
Check(ERPA_6_1_5){
KS
}
KS{
getResult(ERPA_6_1_3)=TRUE
getResult(ERPA_6_1_5_가)=TRUE
getResult(ERPA_6_1_5_나)=TRUE
getResult(ERPA_6_1_5_다)=TRUE
getResult(ERPA_6_1_5_라)=TRUE
getResult(ERPA_6_1_5_바)=TRUE
}
Python Code 변환 예정
86
주차장법 시행규칙 제 6조 1 항 5호 가 목
가. 높이는 주차바닥면으로부터 2.3미터 이상으로 하여야 한다.
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호 가목
Check(ERPA_6_1_5_가){
KS
}
KS{
getObjectHeight(ParkingLot.Driveway) >= 2.3m
}
Python Code 변환 예정
87
주차장법 시행규칙 제 6조 1 항 5호 나 목
나. 굴곡부는 자동차가 6미터(같은 경사로를 이용하는 주차장의 총주차대수가 50대 이하인 경우에는 5미터) 이상의 내변반경으로 회전이 가능하도록 하여야 한다.
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호 나목
Check(ERPA_6_1_5_나){
KS1 AND IF CS THEN KS2
}
KS1{
}
CS{
}
KS2{
}
Python Code 변환 예정
88
주차장법 시행규칙 제 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 변환 예정
89
주차장법 시행규칙 제 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 변환 예정
90
주차장법 시행규칙 제 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 변환 예정
91
주차장법 시행규칙 제 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 변환 예정
92
주차장법 시행규칙 제 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 변환 예정
93
주차장법 시행규칙 제 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 변환 예정
94
주차장법 시행규칙 제 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 변환 예정
95
주차장법 시행규칙 제 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 변환 예정
96
주차장법 시행규칙 제 6조 4 항 1호
1. 관리사무소ㆍ휴게소 및 공중변소
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 4항 1호
Check(ERPA_6_4_1){
KS
}
KS{
getSpaceUsage(ParkingLotSubsidiaryFacility) = "ControlOffice"
OR getSpaceUsage(ParkingLotSubsidiaryFacility) = "RestArea"
OR getSpaceUsage(ParkingLotSubsidiaryFacility) = "PublicToilet"
}
Python Code 변환 예정
97
주차장법 시행규칙 제 6조 4 항 2호
2. 간이매점 및 자동차의 장식품판매점
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 4항 2호
Check(ERPA_6_4_2){
KS
}
KS{
getSpaceUsage(ParkingLotSubsidiaryFacility) = "SnackBar"
OR getSpaceUsage(ParkingLotSubsidiaryFacility) = "CarOrnamentationShop"
OR getSpaceUsage(ParkingLotSubsidiaryFacility) = "ElectricVehicleChargingStation"
}
Python Code 변환 예정
98
주차장법 시행규칙 제 6조 4 항 4호
4. 특별자치도ㆍ시ㆍ군 또는 자치구(이하 "시ㆍ군 또는 구"라 한다)의 조례로 정하는 이용자 편의시설
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 4항 4호
Check(ERPA_6_4_4){
KS
}
KS{
getResult(Unimplemented_LGMO)
}
Python Code 변환 예정
99
주차장법 시행규칙 제 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 변환 예정
100
주차장법 시행규칙 제 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 변환 예정