1
건축물의 구조기준 등에 관한 규칙 제 39조 3호
3. 담의 길이 2미터 이내마다 담의 벽면으로부터 그 부분의 담의 두께 이상 튀어나온 버팀벽을 설치하거나, 담의 길이 4미터 이내마다 담의 벽면으로부터 그 부분의 담의 두께의 1.5배 이상 튀어나온 버팀벽을 설치할 것. 다만, 각 부분의 담의 두께가 제2호의 규정에 의한 담의 두께의 1.5배 이상인 경우에는 그러하지 아니하다.
//건축물의 구조기준 등에 관한 규칙 39조 (조적식구조인 담) 3호
Check(RSSB_39_0_3){
IF !CS THEN KS
}
CS{
}
KS{
FD = getObjectProperty(Fence.depth)
Wall myWall{
isObjectProperty(Wall.isSupportingWall) = TRUE
}
(isInstalled(myWall, Fence, b, 2) = TRUE
getObjectProperty(Wall.depth) >= FD)
OR (isInstalled(myWall, Fence, b, 4) = TRUE
getObjectProperty(Wall.depth) >= 1.5* 2호 규정에 의한 담의 두께)
}
Python Code 변환 예정
2
건축물의 에너지절약설계기준 제 5조 5호
5. "고효율에너지기자재인증제품”(이하 "고효율인증제품”이라 한다)이라 함은 산업통상자원부 고시 「고효율에너지기자재 보급촉진에 관한규정」(이하 "고효율인증규정”이라 한다)에서 정한 기준을 만족하여 에너지관리공단에서 인증서를 교부받은 제품을 말한다.
// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 6항
Check(NFSC102_6_6){
IF (CS1 THEN KS1) OR (CS2 THEN KS2) OR (CS3 THEN KS3) OR (CS4 THEN KS4)
}
Port myPort {
Port .typeForWater = "IndoorFireHydrantDischarge"
}
Pipe myPipe{
isObjectProperty(Pipe.isBranchLines) = TRUE
isConnectedTo(Pipe, myPort ) = TRUE
}
Pipe myPipe2{
isObjectProperty(Pipe.isRiser) = TRUE
}
CS1{
getObjectProperty(myPipe.systemType) = "HoseReelHydrantSystem"
}
KS1{
getObjectProperty(myPipe.diameter) >= 25mm
}
CS2{
getObjectProperty(myPipe.systemType) != "HoseReelHydrantSystem"
}
KS2{
getObjectProperty(myPipe.diameter) >= 40mm
}
CS3{
getObjectProperty(myPipe2.systemType) = "HoseReelHydrantSystem"
}
KS3{
getObjectProperty(myPipe2.diameter) >= 32mm
}
CS4{
getObjectProperty(myPipe2.systemType) != "HoseReelHydrantSystem"
}
KS4{
getObjectProperty(myPipe2.diameter) >= 50mm
}
Python Code 변환 예정
3
건축물의 에너지절약설계기준 제 5조 6호
6. "완화기준”이라 함은 「건축법」, 「국토의 계획 및 이용에 관한 법률」 및 「지방자치단체 조례」등에서 정하는 조경설치면적, 건축물의 용적률 및 높이제한 기준을 적용함에 있어 완화 적용할 수 있는 비율을 정한 기준을 말한다.
// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 7항
Check(NFSC503A_6_7){
IF CS THEN KS
}
CS{
Pipe.isShared(SimpleSprinklersystem.Pipe, FireDepartmentConnectionSystem.Pipe) = TRUE
}
KS{
Pipe myPipe1{
isObjectProperty(Pipe.isRiser) = TRUE
}
Port myPort {
getObjectProperty(Port .typeForWater) = "Delivery"
Pipe myPipe2{
isConnectedTo(Pipe, myPort ) = TRUE
}
isObjectProperty(myPipe1.diameter) >= 100 mm
getObjectProperty(myPipe2.diameter) >= 65 mm
}
Python Code 변환 예정
4
건축물의 에너지절약설계기준 제 5조 9호 거 목
거. "투광부"라 함은 창, 문면적의 50% 이상이 투과체로 구성된 문, 유리블럭, 플라스틱패널 등과 같이 투과재료로 구성되며, 외기에 접하여 채광이 가능한 부위를 말한다.
// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 11항
Check(NFSC503A_6_11){
IF CS THEN KS
}
Pipe myPipe{
isObjectProperty(Pipe.usage) = "WaterSupplyPipe"
}
Valve myValve1{
isObjectProperty(Valve.isShutoffValve) = TRUE
}
S{
isInstalled(myValve1,myPipe) = TRUE
isInstalled(myValve1,myPort ) = FALSE
}
KS{
isObjectProperty(myValve1.isIndicatingValve) = TRUE
Valve myValve2{
isInstalled(Valve, Pump.Inlet) = TRUE
}
isObjectProperty(myValve2.isIndicatingValve) = TRUE
isObjectProperty(myValve2.isButterflyValve) = FALSE
}
Python Code 변환 예정
5
건축물의 에너지절약설계기준 제 5조 9호 너 목
너. "태양열취득률(SHGC)"이라 함은 입사된 태양열에 대하여 실내로 유입된 태양열취득의 비율을 말한다.
// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 13항 2호
Check(NFSC503A_6_13_2){
IF !CS THEN KS
}
CS{
isShared(HookingUpSprinklerSystem.Pipe, SprinklerSystem.Pipe, WaterSprayExtingushingSystem.Pipe, FoamExtinguishingSystem.Pipe) = TRUE
OR isShared(HookingUpSprinklerSystem.Pipe, FireDepartmentConnectionSystem.Pipe) = TRUE
}
KS{
Port myPort {
getObjectProperty(HookingUpSprinklerSystem.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 변환 예정
6
건축물의 에너지절약설계기준 제 5조 9호 다 목
다. "거실의 외벽”이라 함은 거실의 벽 중 외기에 직접 또는 간접 면하는 부위를 말한다. 다만, 복합용도의 건축물인 경우에는 해당 용도로 사용하는 공간이 다른 용도로 사용하는 공간과 접하는 부위를 외벽으로 볼 수 있다.
// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 13항 3호
Check(NFSC503A_6_13_3){
KS
}
KS{
Port myPort {
getObjectProperty(IndoorFireHydrantSystem.Port .typeForWater) = "FireDepartmentConnection"
}
getObjectVerticalDistance(Ground, myPort ) >= 0.5m
getObjectVerticalDistance(Ground, myPort ) <= 1m
}
Python Code 변환 예정
7
건축물의 에너지절약설계기준 제 5조 9호 더 목
더. "차양장치"라 함은 태양열의 실내 유입을 저감하기 위한 목적으로 설치하는 장치로서 설치위치에 따라 외부 차양과 내부 차양 그리고 유리간 사이 차양으로 구분된다. 가동 유무에 따라 고정식과 가변식으로 나눌 수 있다.
// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 13항 4호
Check(NFSC503A_6_13_4){
KS{
Port myPort {
isObjectProperty(Port .typeForWater) = "FireDepartmentConnection"
}
(isObjectProperty(myPort .shapeType)="DoubleType"
isObjectProperty(myPort .diameter) = 65mm)
OR isObjectProperty(myPort .shapeType) = "SingleType"
}
Python Code 변환 예정
8
건축물의 에너지절약설계기준 제 5조 9호 러 목
러. "일사조절장치"라 함은 태양열의 실내 유입을 조절하기 위한 목적으로 설치하는 장치를 말한다.
// 옥내소화전설비의 화재안전기준(nfsc 102) 7조 (함 및 방수구 등) 2항 1호
Check(NFSC503A_7_2_1){
KS2 AND IF CS THEN KS1
}
KS2{
isInstalled(옥내소화전방수구, SpecificFireFightingBuilding.Floor.One) = TRUE
getElementDistance(SpecificFireFightingBuilding.Wall|SpecificFireFightingBuilding.Column, 옥내소화전방수구.One) <= 25m
}
CS{
getBuildingUsage() = "MultiUnitHouse"
}
KS2{
Door myDoor{
isObjectProperty(Door.isEntrance) = TRUE
}
Floor myFloor{
isInstalled(myDoor, Floor) = TRUE
}
Port myPort {
Port .typeForWater="IndoorFireHydrantDischarge"
}
isInstalled(myPort , myFloor.One) = TRUE
}
Python Code 변환 예정
9
건축물의 에너지절약설계기준 제 5조 9호 마 목
마. "최상층에 있는 거실의 반자 또는 지붕”이라 함은 최상층으로서 거실인 경우의 반자 또는 지붕을 말하며, 기타 층으로서 거실의 반자 또는 지붕 부위가 외기에 직접 또는 간접적으로 면한 부위를 포함한다. 다만, 복합용도의 건축물인 경우에는 다른 용도로 사용하는 공간과 접하는 부위를 최상층에 있는 거실의 반자 또는 지붕으로 볼 수 있다.
// 옥내소화전설비의 화재안전기준(nfsc 102) 7조 (함 및 방수구 등) 2항 2호
Check(NFSC503A_7_2_2){
KS
}
KS{
Port myPort {
Port .typeForWater="IndoorFireHydrantDischarge"
}
getObjectVerticalLocation(myPort , FloorSlab) > 0
getObjectVerticalDistance(FloorSlab, myPort ) <= 1.5m
}
Python Code 변환 예정
10
건축물의 에너지절약설계기준 제 7조 2호 나 목
나. 건축물의 체적에 대한 외피면적의 비 또는 연면적에 대한 외피면적의 비는 가능한 작게 한다.
//스프링클러설비의 화재안전기준(nfsc 103) 11조 (송수구) 2호
Check(NFSC103_11_0_2){
IF CS THEN KS
}
CS{
Port myPort {
isObjectProperty(Port .typeForWater) = "FireDepartmentConnection"
}
Pipe myPipe{
isObjectProperty(Pipe.isRiser)=TRUE
}
Valve myValve{
isObjectProperty(Valve.isShutoffValve)=TRUE
}
isConnectedTo(myPort ,Pipe)=TRUE
isConnectedTo(Pipe,myPipe)=TRUE
isInstalled(Pipe, myValve) = TRUE
}
KS{
Space mySpace{
isObjectProperty(Space.usage) = "MachineRoom"
}
isExternal(myValve)=TRUE
OR hasSpace(mySpace,myValve)=TRUE
Python Code 변환 예정
11
건축물의 에너지절약설계기준 제 7조 2호 다 목
다. 실의 용도 및 기능에 따라 수평, 수직으로 조닝계획을 한다.
//스프링클러설비의 화재안전기준 11조 (송수구) 3호
check(NFSC103_11_0_3){
KS
}
KS{
isObjectProperty(Port .typeForWater) = "FireDepartmentConnection"
isObjectProperty(Port .shapeType)="DoubleType"
isObjectProperty(Port .diameter) = 65mm
}
Python Code 변환 예정
12
건축물의 에너지절약설계기준 제 7조 3호
3. 단열계획
//스프링클러설비의 화재안전기준(nfsc 103) 11조 (송수구) 5호
Check(NFSC103_11_0_5){
IF CS THEN KS
}
CS{
isObject(Sprinkler.Head.openAndCloseType) = "EnclosedType"
}
KS{
Port myPort {
isObjectProperty(Port .typeForWater)="FireDepartmentConnection"
}
Space mySpace{
isObjectProperty(Space.FloorSlab.area) = 3000m2
}
isInstalled(mySpace, myPort ) = TRUE
getObjectCount(mySpace.One.myPort ) >= 1
getObjectCount(myPort ) <= 5
}
Python Code 변환 예정
13
건축물의 에너지절약설계기준 제 7조 3호 가 목
가. 건축물 외벽, 천장 및 바닥으로의 열손실을 방지하기 위하여 기준에서 정하는 단열두께보다 두껍게 설치하여 단열부위의 열저항을 높이도록 한다.
//스프링클러설비의 화재안전기준(nfsc 103) 11조 (송수구) 6호
Check(NFSC103_11_0_6){
KS
}
KS{
Port myPort {
isObjectProperty(Port .typeForWater) = "FireDepartmentConnection"
}
getObjectVerticalDistance(Ground, myPort , a) >= 0.5m
getObjectVerticalDistance(Ground, myPort , a) <= 1m
}
Python Code 변환 예정
14
건축물의 에너지절약설계기준 제 8조 2호 다 목
다. 기기배관 및 덕트는 국토교통부에서 정하는 「건축기계설비공사표준시방서」의 보온두께 이상 또는 그 이상의 열저항을 갖도록 단열조치를 하여야 한다. 다만, 건축물내의 벽체 또는 바닥에 매립되는 배관 등은 그러하지 아니할 수 있다.
// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 14호
Check(NFSC103_15_1_14){
KS
}
KS{
(getBuildingUsage() = "Indoor.TennisCourts"
OR getBuildingUsage() = "Indoor.게이트볼장"
OR getBuildingUsage() = "Indoor.정구장")
(getObjectProperty(Floor.InteriorFinish.Material.nonCombustibility) = TRUE
OR getObjectProperty(Floor.InteriorFinish.Material.quasiNonCombustibility) TRUE)
(getObjectProperty(Wall.InteriorFinish.Material.nonCombustibility) = TRUE
OR getObjectProperty(Wall.InteriorFinish.Material.quasiNonCombustibility) TRUE)
(getObjectProperty(Ceiling.InteriorFinish.Material.nonCombustibility) = TRUE
OR getObjectProperty(Ceiling.InteriorFinish.Material.quasiNonCombustibility) TRUE)
isObjectProperty(Space.hasCombustible) = FALSE
hasSpace(Auditorium, SportsFacility) = FALSE
getObjectProperty(Floor.number) > 0
}
Python Code 변환 예정
15
건축물의 에너지절약설계기준 제 9조 2호 가 목
가. 열원설비는 부분부하 및 전부하 운전효율이 좋은 것을 선정한다.
// 간이스프링클러설비의 화재안전기준(nfsc 103a) 4조 (수원) 2항 1호
Check(NFSC503A_4_2_1){
KS
}
KS{
Valve myValve1{
isObjectProperty(Valve.isFootValve) = TRUE
isObjectProperty(Valve.systemType) = "SimpleSprinklerSystem"
}
Port myPort 1{
getObjectProperty(Port .typeForWater) = "Obsorption"
isObjectProperty(Valve.systemType) = "SimpleSprinklerSystem"
}
Valve myValve2{
isObjectProperty(Valve.isFootValve) = TRUE
isObjectProperty(Valve.systemType) != "SimpleSprinklerSystem"
}
Port myPort 2{
getObjectProperty(Port .typeForWater) = "Obsorption"
isObjectProperty(Valve.systemType) != "SimpleSprinklerSystem"
}
getObjectVerticalLocation(myValve1|myValve1, myValve2|myPort 2) < 0
}
Python Code 변환 예정
16
건축물의 에너지절약설계기준 제 9조 2호 나 목
나. 난방기기, 냉방기기, 냉동기, 송풍기, 펌프 등은 부하조건에 따라 최고의 성능을 유지할 수 있도록 대수분할 또는 비례제어운전이 되도록 한다.
// 간이스프링클러설비의 화재안전기준(nfsc 103a) 4조 (수원) 2항 2호
Check(NFSC503A_4_2_2){
KS
}
KS{
Pipe myPipe{
getObjectProperty(Pipe.usage)= "WaterSupplyPipe"
getObjectProperty(Pipe.systemType)="SimpleSprinklerSystem"
isObjectProperty(Pipe.isRiser)= TRUE
}
Tank myTank{
getObjectProperty(Tank.operationType) = "ElevatedWaterTank"
}
Port myPort 1{
getObjectProperty(Port .typeForWater) = "Supply"
isConnectedTo(Port ,myTank) = TRUE
isConnectedTo(Port ,myWaterSupplyPipe) = TRUE
}
Port myPort 2 {
getObject(Port ) - getObject(myPort 1)
}
Distance1 = getObjectVerticalDistance(myPort 1, Ground.Surface, b)
Distance2 = getObjectVerticalDistance(myPort 2, Ground.Surface, b)
Distance1 - Distance2 < 0
}
Python Code 변환 예정
17
건축물의 에너지절약설계기준 제 11조 3호 가 목
가. 옥외등은 고효율 에너지기자재 인증제품 또는 산업통상자원부 고시 효율관리기자재 운용규정」에서 고효율조명기기로 등록된 고휘도방전램프(HID Lamp : High Intensity Dis charge Lamp) 또는 LED 램프를 사용하고, 옥외등의 조명회로는 격등 점등과 자동점멸기에 의한 점멸이 가능하도록 한다.
//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 5항
Check(NFSC503A_8_5){
IF CS THEN KS
}
CS{
Pipe myPipe1{
Pipe.systemType = "SimpleSprinklersystem"
}
Pipe myPipe2{
Pipe.systemType = "FireDepartmentConnectionSystem"
}
Pipe.isShared(myPipe1, myPipe2) = TRUE
}
KS{
Pipe myPipe3{
isObjectProperty(Pipe.isRiser) = TRUE
}
Port myPort {
getObjectProperty(Port .typeForWater) = "Delivery"
Pipe myPipe4{
isConnectedTo(Pipe, myPort ) = TRUE
}
isObjectProperty(myPipe3.diameter) >= 100 mm
getObjectProperty(myPipe4.diameter) >= 65 mm
}
Python Code 변환 예정
18
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 11조 5 항 3호
3. 연면적이 5천제곱미터 이상인 판매시설, 운수시설
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 11조 (건축물의 바깥쪽으로의 출구의 설치기준) 5항 3호
Check(REFB_11_5_3){
KS
}
KS {
getBuildingUsage() = “CommercialFacility”
OR getBuildingUsage() = “TransportationFacility”
getObjectProperty(Building.grossFloorArea) >= 5000 m2
}
Python Code 변환 예정
19
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 13조 1 항 1호
1. 헬리포트의 길이와 너비는 각각 22미터이상으로 할 것. 다만, 건축물의 옥상바닥의 길이와 너비가 각각 22미터이하인 경우에는 헬리포트의 길이와 너비를 각각 15미터까지 감축할 수 있다.
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙
Check(REFB){
IF CS THEN KS1 ELSE KS2
}
CS{
getObjectLength(Building.RoofTop.FloorSlab)<=22 m
getObjectWidth(Building.RoofTop.FloorSlab)<=22 m
}
KS1{
getObjectLength(Heliport)>=15 m
getObjectWidth(Heliport)>=15 m
}
KS2{
getObjectLength(Heliport)>=22 m
getObjectWidth(Heliport)>=22 m
}
Python Code 변환 예정
20
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 15조 3 항
③공동주택(기숙사를 제외한다)·제1종 근린생활시설·제2종 근린생활시설·문화 및 집회시설·종교시설·판매시설·운수시설·의료시설·노유자시설·업무시설·숙박시설·위락시설 또는 관광휴게시설의 용도에 쓰이는 건축물의 주계단·피난계단 또는 특별피난계단에 설치하는 난간 및 바닥은 아동의 이용에 안전하고 노약자 및 신체장애인의 이용에 편리한 구조로 하여야 하며, 양쪽에 벽등이 있어 난간이 없는 경우에는 손잡이를 설치하여야 한다. <개정 2010.4.7>
check(REFB_15_3){
IF CS THEN KS
}
CS{
getBuildingUsage()= "ClassINeighborhoodLivingFacility"
OR getBuildingUsage() = "ClassIINeighborhoodLivingFacility"
OR getBuildingUsage() = "CulturalAndAssemblyFacility"
OR getBuildingUsage() = "ReligiousFacility"
OR getBuildingUsage() = "CommercialFacility"
OR getBuildingUsage() = "TransportationFacility"
OR getBuildingUsage() = "MedicalFacility"
OR getBuildingUsage() = "FacilitiesForTheAgedAndChildren"
OR getBuildingUsage() = "BusinessFacility"
OR getBuildingUsage() = "LodgingFacility"
OR getBuildingUsage() = "AmusementFacility"
OR getBuildingUsage() = "FacilityForTourismAndRelaxation"
OR (getBuildingUsage() = "MultiUnitHouse" AND getBuildingUsage() != "Dormitory")
}
KS{
isExist(Railing)=TRUE
OR (isExist(Railing)=FALSE AND isExist(Handle)=TRUE)
}
Python Code 변환 예정
21
건축법 시행령 제 40조 3 항 1호
1. 건축물의 지붕을 평지붕으로 하는 경우: 헬리포트를 설치하거나 헬리콥터를 통하여 인명 등을 구조할 수 있는 공간
//건축법 시행령 40조 (옥상광장 등의 설치) 3항 1호
Check(EDBA_40_3_1){
IF (CS) THEN KS
}
CS{
getObjectProperty(Roof.shapeType) = “FlatRoof”
}
KS{
isExist(Heliport) = True
getResult(REFB_13_1)=True
getResult(REFB_13_2)=True
}
Python Code 변환 예정
22
건축법 시행령 제 51조 2 항 1호 마 목
마. 운수시설
//건축법 시행령 51조 (거실의 채광 등) 2항 5호
Check(EDBA_51_2_5){
getBuildingUsage() = "TransportationFacility"
}
Python Code 변환 예정
23
건축법 시행령 제 51조 2 항 1호 차 목
차. 운동시설
//건축법 시행령 51조 (거실의 채광 등) 2항 10호
Check(EDBA_51_2_10){
getBuildingUsage() = "SportsFacility"
}
Python Code 변환 예정
24
건축법 시행령 제 61조 1 항 1호
1. 단독주택 중 다중주택·다가구주택
Check(EDBA_61_1_1){
IF CS THEN KS
}
Floor myfloor1 {
isObjectProperty(ClassIINeighborhoodLivingFacility.PerformanceHall)=TRUE
OR isObjectProperty(ClassIINeighborhoodLivingFacility.ReligiousAssemblyFacility)=TRUE
OR isObjectProperty(ClassIINeighborhoodLivingFacility.ReligiousAssemblyFacility)=TRUE
AND getFloorArea()>=300
}
CS{
isExist(myfloor1)=TRUE
OR(getBuildingUsage()= "CulturalAndAssemblyFacility"
AND getBuildingUsage()!= "CulturalAndAssemblyFacility.WeddingHall")
OR getBuildingUsage()= "ReligiousFacility"
OR getBuildingUsage()= "CommercialFacility"
OR getBuildingUsage()= "TransportationFacility"
OR (getBuildingUsage()= "AmusementFacility"
OR (getBuildingUsage()!= "AmusementFacility.Pubs"
AND getBuildingUsage()!= "AmusementFacility.BarBusiness")
}
KS{
getFloorArea(Room)>=200m2
OR (isObjectProperty(MainStructuralPart.isFireResistantStructure)=TRUE
OR isObjectProperty(MainStructuralPart.Material.nonCombustibility)=TRUE
getFloorArea(Room)>=400m2
}
Python Code 변환 예정
25
건축법 시행령 제 56조 1 항 2호
2. 문화 및 집회시설 중 전시장 또는 동·식물원, 판매시설, 운수시설, 수련시설, 운동시설 중 체육관·운동장, 위락시설(주점영업의 용도로 쓰는 것은 제외한다), 창고시설, 위험물저장 및 처리시설, 자동차 관련 시설, 방송통신시설 중 방송국·전신전화국·촬영소, 묘지 관련 시설 중 화장장 또는 관광휴게시설의 용도로 쓰는 건축물로서 그 용도로 쓰는 바닥면적의 합계가 500제곱미터 이상인 건축물
//건축법 시행령 56조 (건축물의 내화구조) 1항 2호
check(EDBA_56_1_2){
KS
}
KS{
(getBuildingUsage() = "ExhibitionHall" | "ZoologicalANDbotanicalGarden" | "CommercialFacility" | "TransportationFacilities" | "gymnasium.educationAndresearchFacilities" | "hall.educationAndresearchFacilities" | "gymnasium" | "sportsfacilities.stadium" | "sports facilities.warehouses" | "factory.facilitiesForStorageAndreatmentOfDangerousSubstance" | "factory.facilitiesForMotorVehicles" | "facilitiesforbroadcastingAndTelecommunications.broadcastingStation" | "facilitiesforbroadcasting andtelecommunications.telegraphAndTelephoneStations" | "facilitiesforbroadcasting and telecommunications.studio" | "cemeteries and relatedfacilities.Crematorium | "facilitiesfortourismandrelaxation"
OR (getBuildingUsage() = "amusementfacilities"
AND getBuildingUsage() != "barbusiness.amusementfacilities"))
AND getFloorArea(getSpace(getBuildingUsage()) > = 500m2))
}
Python Code 변환 예정
26
건축법 시행령 제 34조 2 항 2호
2. 단독주택 중 다중주택·다가구주택, 제2종 근린생활시설 중 학원·독서실, 판매시설, 운수시설(여객용 시설만 해당한다), 의료시설(입원실이 없는 치과병원은 제외한다), 교육연구시설 중 학원, 노유자시설 중 아동 관련 시설·노인복지시설, 수련시설 중 유스호스텔, 숙박시설 또는 장례식장의 용도로 쓰는 3층 이상의 층으로서 그 층의 해당 용도로 쓰는 거실의 바닥면적의 합계가 200제곱미터 이상인 것
//건축법 시행령 34조 (직통계단의 설치) 2항2호
Check(EDBA_34_2_2){
Building myBuilding{
getBuildingUsage()="DentalClinic"
}
Space mySpace{
getSpaceUsage() = "Ward"
}
Floor myFloor1 {
getObjectProperty(Floor.number)>=3
getObjectUsage(Floor) = “DetachedHouse.MultiUserHouse”
OR getObjectUsage(Floor) = “DetachedHouse.MultiFamilyHouse”
OR getObjectUsage(Floor) = “ClassIINeighborhoodLivingFacility.EducationalInstitute”
OR getObjectUsage(Floor) = “ClassIINeighborhoodLivingFacility.ReadingRooms”
OR getObjectUsage(Floor) = “CommercialFacility”
OR getObjectUsage(Floor) = “TransportationFacility.PassengerTrafficFacilities”
OR ( getObjectUsage(Floor) = “MedicalFacility” ADN hasObject(myBuilding, mySpace)=TRUE )
OR getObjectUsage(Floor) = “EducationAndResearchFacility.EducationalInstitutes”
OR getObjectUsage(Floor) = “FacilitiesForTheAgedAndChildren.ChildrenRelatedFacilities”
OR getObjectUsage(Floor) = “EducationAndResearchFacility.WelfareFacilityForTheAged”
OR getObjectUsage(Floor) = “Trainingfacility.YouthHostel”
OR getObjectUsage(Floor) = “LodgingFacility”
}
Floor myFloor2{
getObjectUsage(Floor) = “ClassIINeighborhoodLivingFacility.FacilityForProvidingInternetComputerGameService”
}
getTotalFloorArea(myFloor1.Room)>= 200 m2
OR getTotalFloorArea(myFloor2.Room)>= 300 m2
}
Python Code 변환 예정
27
건축법 시행령 제 35조 5 항
⑤ 건축물의 5층 이상인 층으로서 문화 및 집회시설 중 전시장 또는 동·식물원, 판매시설, 운수시설(여객용 시설만 해당한다), 운동시설, 위락시설, 관광휴게시설(다중이 이용하는 시설만 해당한다) 또는 수련시설 중 생활권 수련시설의 용도로 쓰는 층에는 제34조에 따른 직통계단 외에 그 층의 해당 용도로 쓰는 바닥면적의 합계가 2천 제곱미터를 넘는 경우에는 그 넘는 2천 제곱미터 이내마다 1개소의 피난계단 또는 특별피난계단(4층 이하의 층에는 쓰지 아니하는 피난계단 또는 특별피난계단만 해당한다)을 설치하여야 한다. <개정 2008.10.29, 2009.7.16>
//건축법 시행령 35조 (피난계단의 설치) 5항
check(EDBA_35_5){
IF (CS) THEN KS
}
CS{
Floor myFloor{
Floor.number >= 5
OR Floor.usage = "CulturalAndAssemblyFacility.ExhibitionHall"
OR Floor.usage = "CulturalAndAssemblyFacility.ZoologicalAndBotanicalGarden"
OR Floor.usage = "CommercialFacility"
OR Floor.usage = "PassengerTrafficFacilities“??
OR Floor.usage = "SportsFacility"
OR Floor.usage = "AmusementFacility"
OR Floor.usage = "FacilityForTourismAndRelaxation“???
OR Floor.usage = "Trainingfacility.TrainingFacilityInLivingZone“
}
isExist(myFloor)=True
}
KS{
Stair myStair2{
isObjectProperty(Stair.isSpecialEscape) = True
OR isObjectProperty(Stair.isEscape) = True
}
getResult(EDBA_34) = TRUE
IF (getTotalFloorArea(myFloor.Space) >= 2000m2)
THEN getObjectCount(myStair2) >= 1+ getFloorArea(myFloor.Space)/2000
}
Python Code 변환 예정
28
연결살수설비의 화재안전기준(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 변환 예정
29
연결살수설비의 화재안전기준(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 변환 예정
30
연결살수설비의 화재안전기준(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 변환 예정
31
연결살수설비의 화재안전기준(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 변환 예정
32
연결살수설비의 화재안전기준(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 변환 예정
33
연결살수설비의 화재안전기준(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 변환 예정
34
연결살수설비의 화재안전기준(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 변환 예정
35
연결송수관설비의 화재안전기준(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 변환 예정
36
연결송수관설비의 화재안전기준(NFSC 502) 제 4조 7호
7. 송수구는 연결송수관의 수직배관마다 1개 이상을 설치할 것. 다만, 하나의 건축물에 설치된 각 수직배관이 중간에 개폐밸브가 설치되지 아니한 배관으로 상호 연결되어 있는 경우에는 건축물마다 1개씩 설치할 수 있다.
//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 7호
Check(NFSC502_4_0_7){
IF CS THEN KS1 ELSE KS2
}
CS{
Port myPort {
Port .typeForWater = "FireDepartmentConnection"
}
Pipe myPipe{
Pipe.systemType = "FireDepartmentConnectionSystem"
isObjectProperty(Pipe.isRiser)=True
}
Pipe myPipe2{
isInstalled( myValve, Pipe)=False
}
Valve myValve{
isObjectProperty(Valve.isShutOffValve)=True
}
isConnectedTo(myPipe, myPipe2)=True
}
KS1{
isInstalled(myPort )=True
}
KS2{
getObjectCount(myPort ,myPipe )>=1
}
Python Code 변환 예정
37
연결송수관설비의 화재안전기준(NFSC 502) 제 6조 1호
1. 연결송수관설비의 방수구는 그 특정소방대상물의 층마다 설치할 것. 다만, 다음 각목의 어느 하나에 해당하는 층에는 설치하지 아니할 수 있다.
연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 1호
Check(NFSC502_6_0_1){
IF !CS THEN KS
}
CS{
getResult(NFSC502_6_0_1_가)=True
getResult(NFSC502_6_0_1_나)=True
}
KS{
Port myPort {
Port .typeForWater = "Delivery"
}
isInstalled(myPort ,SpecificFireFightingBuilding)=True
}
Python Code 변환 예정
38
연결송수관설비의 화재안전기준(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 변환 예정
39
연결송수관설비의 화재안전기준(NFSC 502) 제 6조 3호 나 목
나. 스프링클러설비가 유효하게 설치되어 있고 방수구가 2개소 이상 설치된 층
//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 3호 나목
Check(NFSC502_6_0_3_나){
KS
}
KS{
isExist(SprinklerSystem)=True
getObjectCount( FireDepartmentConnectionSystem.Port , Floor.One)>=2
}
Python Code 변환 예정
40
연결송수관설비의 화재안전기준(NFSC 502) 제 6조 4호
4. 방수구의 호스접결구는 바닥으로부터 높이 0.5m 이상 1m 이하의 위치에 설치할 것
//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 4호
Check(NFSC502_6_0_4){
KS
}
KS{
getObjectVerticalDistance(FloorSlab, FireDepartmentConnectionSystem.Port .HosePort ) > 0.5m
OR getObjectVerticalDistance(FloorSlab, FireDepartmentConnectionSystem.Port .HosePort ) <= 1m
Python Code 변환 예정
41
연결송수관설비의 화재안전기준(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(myPort t.diameter)=65 mm
}
Python Code 변환 예정
42
연결송수관설비의 화재안전기준(NFSC 502) 제 7조 1호
1. 방수기구함은 피난층과 가장 가까운 층을 기준으로 3개층마다 설치하되, 그 층의 방수구마다 보행거리 5m 이내에 설치할 것 <개정 2014.8.18>
//연결송수관설비의 화재안전기준(NFSC 502) 7조 (방수기구함) 1호
Check(NFSC502_7_0_1){
KS
}
KS{
Floor myFloor{
isObjectProperty(Floor.isEscape)=True
}
Floor myFloor2{
Floor.number>EFN
}
Floor myFloor3{
Floor.nmberPort , DischargeCabinet) <= 5 m
}
Python Code 변환 예정
43
연결송수관설비의 화재안전기준(NFSC 502) 제 7조 2호 나 목
나. 방사형 관창은 단구형 방수구의 경우에는 1개, 쌍구형 방수구의 경우에는 2개 이상 비치할 것
//연결송수관설비의 화재안전기준(NFSC 502) 7조 (방수기구함) 2호 나목
Check(NFSC502_7_0_2_나){
KS
}
KS{
IF getObjectPropety(RadialSprayNozzle.Port .shapeType)="SingleType"
THEN getObjectCount(RadialSprayNozzle)=1
ELSE IF getObjectPropety(RadialSprayNozzle.Port .shapeType)="DoubleType"
getObjectCount(RadialSprayNozzle)=2
END IF
}
Python Code 변환 예정
44
연소방지설비의 화재안전기준(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 변환 예정
45
연소방지설비의 화재안전기준(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 변환 예정
46
연소방지설비의 화재안전기준(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 변환 예정
47
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 4조
제4조(유도등 및 유도표지의 종류) 특정소방대상물의 용도별로 설치하여야 할 유도등 및 유도표지는 다음 표에 따라 그에 적응하는 종류의 것으로 설치하여야 한다.<개정 2008.12.15, 2012.8.20>
// 유도등 및 유도표지의 화재안전기준(nfsc 303) 4조 (유도등 및 유도표지의 종류)
Check(NFSC303_4){
KS
}
KS{
LeadingLight myLeadingLight1{
// isObejctProperty(LeadingLight.isForExit)=True, 대형
}
LeadingLight myLeadingLight2{
// isObejctProperty(LeadingLight.isForExit)=True , 중형
}
LeadingLight myLeadingLight3{
// isObejctProperty(LeadingLight.isForExit)=True, 소형
}
LeadingLight myLeadingLight4{
isObejctProperty(LeadingLight.isForPassage)=True
}
LeadingLight myLeadingLight5{
isObjectProperty(LeadingLight.isForSeat)=True
}
LeadingSign myLeadingSign1{
isObjectProperty(LeadingSign.isForExit)=True
}
LeadingSign myLeadingSign2{
isObjectProperty(LeadingSign.isForPassage)=True
}
IF getBuildingUsage()="PerformanceHall"
OR getBuildingUsage()="AssemblyHall"
OR getBuildingUsage()="Auditorium"
OR getBuildingUsage()="SportsFacility"
OR getBuildingUsage()="Tavern"
THEN
isExist(myLeadingLight1)=True
isExist(myLeadingLight4)=True
isExist(myLeadingLight5)=True
ELSE IF getBuildingUsage()="AmusementFacility"
OR getBuildingUsage()="CommercialFacility"
OR getBuildingUsage()="TransportationFacility"
OR getBuildingUsage()="TouristAccommodationBusiness"
OR getBuildingUsage()="MedicalFacility"
OR getBuildingUsage()="FuneralParlor"
OR getBuildingUsage()="FacilityForBroadcastingAndTelecommunication"
OR getBuildingUsage()="ExhibitionHall"
OR getBuildingUsage()="UndergroundShoppingCenter"
OR getBuildingUsage()="SubwayStation"
THEN isExist(myLeadingLight1)=True
isExist(myLeadingLight4)True
ELSE IF getBuildingUsage()="LodgingFacility"
OR getBuildingUsage()="Officetel"
// OR 지하층, 무창층 또는 층수가 11층 이상인 특정소방대상물
THEN isExist(myLeadingLight2)=True
isExist(myLeadingLight4)True
ELSE IF getBuildingUsage()="ClassINeighborhoodLivingFacility"
OR getBuildingUsage()="ClassIINeighborhoodLivingFacility"
OR getBuildingUsage()="FacilitiesForTheAgedAndChildren"
OR getBuildingUsage()="BusinessFacility"
OR getBuildingUsage()="FacilityForPowerGeneration"
OR getBuildingUsage()="ReligiousFacility"
OR getBuildingUsage()="EducationAndResearchFacility"
OR getBuildingUsage()="Trainingfacility"
OR getBuildingUsage()="Factory"
OR getBuildingUsage()="Warehouse"
OR getBuildingUsage()="CorrectionalFacilityAndMilitaryInstallation"
OR getBuildingUsage()="Dormitory"
OR getBuildingUsage()="AutomobileRepairShop"
OR getBuildingUsage()="DrivingSchool"
OR getBuildingUsage()="RepairingSchool"
OR getBuildingUsage()="PubliclyUsedEstablishment"
OR getBuildingUsage()="ComplexBuilding"
OR getBuildingUsage()="ApartmentHouse"
THEN isExist(myLeadingLight3)=True
isExist(myLeadingLight4)True
ELSE THEN isExist(myLeadingSign1)=True
isExist(myLeadingSign2)True
END IF
}
Python Code 변환 예정
48
유도등 및 유도표지의 화재안전기준(NFSC 303) 제 6조 1 항 1호 다 목
다. 바닥으로부터 높이 1m 이하의 위치에 설치할 것. 다만, 지하층 또는 무창층의 용도가 도매시장·소매시장·여객자동차터미널·지하역사 또는 지하상가인 경우에는 복도·통로 중앙부분의 바닥에 설치하여야 한다.
//유도등 및 유도표지의 화재안전기준(nfsc 303) 6조 (통로유도등 설치기준) 1항 1호 다목
Check(NFSC303_6_1_1_다){
KS
}
KS{
Floor myFloor{
getFloorNumber()<0
OR hasObject(Floor, Window)=False
}
IF getFloorUsage(myFloor)="WholesaleMarket"
OR getFloorUsage(myFloor)="RetailMarket"
OR getFloorUsage(myFloor)="PassengerVehicleTransportTerminal"
OR getFloorUsage(myFloor)="UndergroundStation"
OR getFloorUsage(myFloor)="UndergroundShoppingCenter"
THEN // 복도·통로 중앙부분의 바닥에 설치하여야 한다.
ELSE THEN
getObjectVerticalDistance(FloorSlab, LeadingLightForCorridors )<= 1 m
}
Python Code 변환 예정
49
장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행령 제 별표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 변환 예정
50
주차장법 시행령 제 별표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 변환 예정