개방형BIM 기반의 건축설계 적법성 평가 자동화 기술 및 응용기술 개발
Development of OpenBIM based Architectural Design Code Checking and Evaluation Technology
  Welcome to BIM - 2nd Project Website - Yonsei University
PAGE MENU  
전체법규 - 법규데이터베이스
- 대한민국 전체 법규 목록
- 설계품질검토 대상 관련법규
- 관련법규 변동 현황
대상법규 - 문장 논리규칙체계화
- 조항단위 논리규칙체계
- 문장단위 논리규칙체계
주어부 - 객체.속성 데이터베이스
- 법규로부터의 객체.속성 분류
- 명칭DB: 객체 | 객체및속성
서술부 - 함수 데이터베이스
- 논리규칙화 함수 분류
- 논리규칙화 함수 DB
관계부 - 문장 내.외 관계논리
- 문장 내.외 관계유형분류
- 문장 내.외관계 논리체계화
문장단위 | 체크리스트 단위
KBimCode 데이터베이스
- KBimCode Lang. Definition
- KBimCode Editor:
전체 개발항목 단위
우선순위 개발항목 단위
- KBimCode DB 2단계:
문장단위 | 조항단위 |
분야/용도/단계 체크리스트 단위
- KBimLogic Applications
KBimAssess Code 데이터베이스
- Executable KBimAssess Code
- KBimCode-Assess 연동모듈
 
(2025-06-28 기준) 설계품질검토용 건축법 및 관련법규 - KBIMCode (문장단위)
  ◁prev 1   2   3      
3 / 3 page Total 2500 / 4000 records    신규입력
Select
ALL
None
#
ID
Law
Jo
JO Name
HANG
HO
MOK
Text
Search!
1
48891 국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 10호

10. 유통상업지역 : 200퍼센트 이상 1천100퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 10호
Check(EDLPUA_85_1_10){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "CirculationBusinessArea"
}

KS{
	getFloorAreaRatio() >= 200
	getFloorAreaRatio() <= 1100
} 




Python Code 변환 예정



Modify
2
48892 국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 11호

11. 전용공업지역 : 150퍼센트 이상 300퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 11호
Check(EDLPUA_85_1_11){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ExclusiveIndustrialArea"
}

KS{
	getFloorAreaRatio() >= 150
	getFloorAreaRatio() <= 300
} 




Python Code 변환 예정



Modify
3
48893 국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 12호

12. 일반공업지역 : 200퍼센트 이상 350퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 12호
Check(EDLPUA_85_1_12){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "GeneralIndustrialArea"
}

KS{
	getFloorAreaRatio() >= 200
	getFloorAreaRatio() <= 350
} 




Python Code 변환 예정



Modify
4
48894 국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 13호

13. 준공업지역 : 200퍼센트 이상 400퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 13호
Check(EDLPUA_85_1_13){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "QuasiIndustrialArea"
}

KS{
	getFloorAreaRatio() >= 200
	getFloorAreaRatio() <= 400
} 




Python Code 변환 예정



Modify
5
48895 국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 14호

14. 보전녹지지역 : 50퍼센트 이상 80퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 14호
Check(EDLPUA_85_1_14){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "GreenConservationArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 80
} 




Python Code 변환 예정



Modify
6
48896 국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 15호

15. 생산녹지지역 : 50퍼센트 이상 100퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 15호
Check(EDLPUA_85_1_15){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "GreenProductionArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 100
} 




Python Code 변환 예정



Modify
7
48897 국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 16호

16. 자연녹지지역 : 50퍼센트 이상 100퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 16호
Check(EDLPUA_85_1_16){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "GreenNaturalArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 100
} 




Python Code 변환 예정



Modify
8
48898 국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 17호

17. 보전관리지역 : 50퍼센트 이상 80퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 17호
Check(EDLPUA_85_1_17){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ConservationManagementArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 80
} 




Python Code 변환 예정



Modify
9
48899 국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 18호

18. 생산관리지역 : 50퍼센트 이상 80퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 18호
Check(EDLPUA_85_1_18){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ProductionManagementArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 80
} 




Python Code 변환 예정



Modify
10
48900 국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 19호

19. 계획관리지역 : 50퍼센트 이상 100퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 19호
Check(EDLPUA_85_1_19){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "PlanningManagementArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 100
} 




Python Code 변환 예정



Modify
11
48901 국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 20호

20. 농림지역 : 50퍼센트 이상 80퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 20호
Check(EDLPUA_85_1_20){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "AgriculturalAndForestryArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 80
} 




Python Code 변환 예정



Modify
12
48902 국토의 계획 및 이용에 관한 법률 시행령 제 85조 1 항 21호

21. 자연환경보전지역 : 50퍼센트 이상 80퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 1항 21호
Check(EDLPUA_85_1_21){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "NaturalEnvironmentConservationArea"
}

KS{
	getFloorAreaRatio() >= 50
	getFloorAreaRatio() <= 80
} 




Python Code 변환 예정



Modify
13
48912 국토의 계획 및 이용에 관한 법률 시행령 제 85조 6 항 1호

1. 공원·광장(교통광장을 제외한다. 이하 이 조에서 같다)·하천 그 밖에 건축이 금지된 공지에 접한 도로를 전면도로로 하는 대지안의 건축물이나 공원·광장·하천 그 밖에 건축이 금지된 공지에 20미터 이상 접한 대지안의 건축물





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항 1호
Check(EDLPUA_85_6_1){
	IF CS THEN KS
}

CS{
	getBuildingUsage() != "UrbanArea"
	getBuildingUsage() = "DevelopmentPromotionDistrict"
}

KS{
	getFloorAreaRatio() <= 100
} 




Python Code 변환 예정



Modify
14
48913 국토의 계획 및 이용에 관한 법률 시행령 제 85조 6 항 2호

2. 너비 25미터 이상인 도로에 20미터 이상 접한 대지안의 건축면적이 1천제곱미터 이상인 건축물





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항 2호
Check(EDLPUA_85_6_2){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "FisheryResourcesProtectionZone"
}

KS{
	getFloorAreaRatio() <= 80
} 




Python Code 변환 예정



Modify
15
72066 국토의 계획 및 이용에 관한 법률 시행령 제 85조 6 항 3호

3. 「자연공원법」에 따른 자연공원: 100퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항 3호
Check(EDLPUA_85_6_3){
	IF CS THEN KS
}

CS{
	getBuildingUsage() = "ParkProtectionZone"
}

KS{
	getFloorAreaRatio() <= 100
}
 




Python Code 변환 예정



Modify
16
72067 국토의 계획 및 이용에 관한 법률 시행령 제 85조 6 항 4호

4. 「산업입지 및 개발에 관한 법률」 제2조제8호라목에 따른 농공단지(도시지역외의 지역에 지정된 농공단지에 한한다) : 150퍼센트 이하





//	국토의 계획 및 이용에 관한 법률 시행령 85조 (용도지역 안에서의 용적률) 6항 4호
Check(EDLPUA_85_6_4){
	IF CS THEN KS
}

CS{
	getObjectProperty(IndustrialComplex.type) = "AgriculturalIndustrialComplex"
}

KS{
	getFloorAreaRatio() <= 150%
}
 




Python Code 변환 예정



Modify
17
19890 다중이용업소의 안전관리에 관한 특별법 시행령 제 2조 5호

5. 「게임산업진흥에 관한 법률」 제2조제6호ㆍ제6호의2ㆍ제7호 및 제8호의 게임제공업ㆍ인터넷컴퓨터게임시설제공업 및 복합유통게임제공업. 다만, 게임제공업 및 인터넷컴퓨터게임시설제공업의 경우에는 영업장(내부계단으로 연결된 복층구조의 영업장은 제외한다)이 지상 1층 또는 지상과 직접 접하는 층에 설치되고 그 영업장의 주된 출입구가 건축물 외부의 지면과 직접 연결된 구조에 해당하는 경우는 제외한다.





//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 5호


Check(ERSASP_2_0_5){
KS1 AND IF CS THEN !KS2
}


KS1{
getObjectProperty(Building.business)= "GIPA_2_0_6"
OR getObjectProperty(Building.business)= "GIPA_2_0_6-2"
OR getObjectProperty(Building.business)= "GIPA_2_0_7"
OR getObjectProperty(Building.business)= "GIPA_2_0_8"
}


CS{
getObjectProperty(Building.business)= "GIPA_2_0_6"
OR getObjectProperty(Building.business)= "GIPA_2_0_7"
}

KS2{
Space mySpace{
Space.usage = "GIPA_2_0_6"
OR Space.usage = "GIPA_2_0_7"
}
Floor myFloor{
hasObject(Floor,mySpace)=TRUE
}
Door myDoor{
isObjectProperty(mySpace.Door.isEntrance)=TRUE
}

(getObjectProperty(myFloor.number)=1
OR isDirectlyAccessible(myFloor, Ground)=TRUE)
isConnectedToExternal(myDoor)=TRUE
} 




Python Code 변환 예정



Modify
18
19903 소화기구 및 자동소화장치의 화재안전기준(NFSC 101) 제 4조 1 항 4호 가 목

가. 각층마다 설치하되, 특정소방대상물의 각 부분으로부터 1개의 소화기까지의 보행거리가 소형소화기의 경우에는 20m 이내, 대형소화기의 경우에는 30m 이내가 되도록 배치할 것. 다만, 가연성물질이 없는 작업장의 경우에는 작업장의 실정에 맞게 보행거리를 완화하여 배치할 수 있으며, 지하구의 경우에는 화재발생의 우려가 있거나 사람의 접근이 쉬운 장소에 한하여 설치할 수 있다<개정 2012.6.11>





//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 4호 가목



Check(NFSC101_4_1_4){

       KS

}



KS{

     isInstalled(FireExtinguisher, Floor)=True

     

     IF getObjectProperty(FireExtinguisher.sizeType)="SmallSize"

     THEN getObjectDistance(SpecificFireFightingBuilding.Wall, FireExtinguisher.One)<=20 m

          getObjectDistance(SpecificFireFightingBuilding.Column, FireExtinguisher.One)<=20 m



     ELSE IF getObjectProperty(FireExtinguisher.sizeType)="LargeSize"

     THEN getObjectDistance(SpecificFireFightingBuilding.Wall, FireExtinguisher.One)<=30 m

          getObjectDistance(SpecificFireFightingBuilding.Column, FireExtinguisher.One)<=30 m



     END IF 

} 




Python Code 변환 예정



Modify
19
19904 소화기구 및 자동소화장치의 화재안전기준(NFSC 101) 제 4조 1 항 4호 나 목

나. 특정소방대상물의 각층이 2 이상의 거실로 구획된 경우에는 가목의 규정에 따라 각 층마다 설치하는 것 외에 바닥면적이 33㎡ 이상으로 구획된 각 거실(아파트의 경우에는 각 세대를 말한다)에도 배치할 것<개정 2012.6.11>





//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 3호 나목

Check(NFSC101_4_1_3_나){
    IF CS THEN KS
}

CS{
    isFirePartitioned(Floor.One, Room.Two, SpecificFireFightingBuilding)=True
}

KS{
   Room myRoom{
         isFirePartion(Room, a, 33)=True
   }
   isInstalled(FireExtinguishingEquipment, myRoom)=True
} 




Python Code 변환 예정



Modify
20
19908 소화기구 및 자동소화장치의 화재안전기준(NFSC 101) 제 4조 8호 가 목

가. 분사헤드의 설치 높이는 방호구역의 바닥으로부터 최소 0.2m 이상 최대 3.7m 이하로 하여야 한다. 다만, 별도의 높이로 형식승인 받은 경우에는 그 범위 내에서 설치할 수 있다.





//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 8호 가목
Check(NFSC101_4_1_8_가){
	KS
}

Zone myZone{
	isObjectProperty(Zone.isProtectionZone)=TRUE
}

02.m <= getObjectVerticalDistance(myZone.FloorSlab, AutomaticFireExtinguishingEquipment.Head, a) <= 3.7m
	 




Python Code 변환 예정



Modify
21
19910 소화기구 및 자동소화장치의 화재안전기준(NFSC 101) 제 4조 2 항

② 이산화탄소 또는 할로겐화합물(할론 1301과 청정소화약제를 제외한다)을 방사하는 소화기구(자동확산소화장치를 제외한다)는 지하층이나 무창층 또는 밀폐된 거실로서 그 바닥면적이 20㎡ 미만의 장소에는 설치할 수 없다. 다만, 배기를 위한 유효한 개구부가 있는 장소인 경우에는 그러하지 아니하다.<개정 2008.12.15, 2012.6.11>





//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 2항

Check(NFSC101_4_2){

	KS

}



KS{

	FireExtinguisher myFireExtinguisher{

	getObjectProperty(FireExtinguishingEquipment.extinguishingAgentType) = "GasType"

	}

	Space mySpace{

		(getFloorNumber(Space) = -1

	OR hasSpace(Space, Window) = FALSE

	OR isObjectProperty(Room.isEnclosed)=TRUE)

	getObjectProperty(Space.FloorSlab) < 20 m2

	}



	getSpace(mySpace, myFireExtinguisher) = FALSE

} 




Python Code 변환 예정



Modify
22
19958 연결살수설비의 화재안전기준(NFSC 503) 제 6조 4 항

④가연성 가스의 저장·취급시설에 설치하는 연결살수설비의 헤드는 다음 각 호의 기준에 따라 설치하여야 한다. 다만, 지하에 설치된 가연성가스의 저장·취급시설로서 지상에 노출된 부분이 없는 경우에는 그러하지 아니하다. <개정 2012.8.20>





//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 4항
Check(NFSC503_6_4){
	IF !(CS) THEN KS
}

CS{
	getFloorElevationHeight(?) = A
	getSpaceHeight(?) = B
	A + B <= 0
}

KS{
	hasSpace(?, HookingUpSprinklerSystem.Head) = TRUE
	getResult(NFSC503_6_4_1) = TRUE
	getResult(NFSC503_6_4_2) = TRUE
} 




Python Code 변환 예정



Modify
23
20484 연결송수관설비의 화재안전기준(NFSC 502) 제 6조 1호 가 목

가. 아파트의 1층 및 2층





//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 1호 가목

Check(NFSC502_6_0_1_가){
    KS
}

KS{
    getBuildigUsage()="ApartmentHouse"
    getFloorNumber()=1
    OR getFloorNumber()=2
} 




Python Code 변환 예정



Modify
24
20485 연결송수관설비의 화재안전기준(NFSC 502) 제 6조 1호 다 목

다. 송수구가 부설된 옥내소화전을 설치한 특정소방대상물(집회장·관람장·백화점·도매시장·소매시장·판매시설·공장·창고시설 또는 지하가를 제외한다)로서 다음의 어느 하나에 해당하는 층 (1) 지하층을 제외한 층수가 4층 이하이고 연면적이 6,000㎡ 미만인 특정소방대상물의 지상층 (2) 지하층의 층수가 2 이하인 특정소방대상물의 지하층





//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 1호 다목



Check(NFSC502_6_0_1_다목){

         KS

}



KS{

       getBuildingUsage()!="AssemblyHall"

       getBuildingUsage()!="Auditorium"

       getBuildingUsage()!="DepartmentStore"

       getBuildingUsage()!="WholesaleMarket"

       getBuildingUsage()!="CommercialFacility"

       getBuildingUsage()!="Factory"

       getBuildingUsage()!="Warehouse"

       getBuildingUsage()!="UndergroundMarket"



      

FireHydrant myFireHydrant{
isExternal(FireHydrant)  = FALSE
         isInstalled(FireDepartmentConnection, FireHydrant)=True

    }       



    isInstalled(myIndoorFireHydrant,SpecificFireFightingBuilding)=True



    Floor myFloor{

            Floor.number>0

    }

    Floor myFloor2{

            Floor.number<0

    }

    (

    gerObjectCount(myFloor)<=4 

    getGrossFloorArea()<6000 m2

    Floor.number>0

    )



    OR 

    (

     getObjectCount(myFloor)<=2

     Floor.number<0        

    )

    



    

} 




Python Code 변환 예정



Modify
25
20486 연결송수관설비의 화재안전기준(NFSC 502) 제 6조 2호

2. 방수구는 아파트 또는 바닥면적이 1,000㎡ 미만인 층에 있어서는 계단(계단의 부속실을 포함하며 계단이 2 이상 있는 경우에는 그 중 1개의 계단을 말한다)으로부터 5m 이내에, 바닥면적 1,000㎡ 이상인 층(아파트를 제외한다)에 있어서는 각 계단(계단의 부속실을 포함하며 계단이 3 이상 있는 층의 경우에는 그 중 2개의 계단을 말한다)으로부터 5m 이내에 설치하되, 그 방수구로부터 그 층의 각 부분까지의 거리가 다음 각목의 기준을 초과하는 경우





//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 2호

Check(NFSC502_6_0_2){
     KS 
}

KS{
     Space mySpce{
         getSpaceUsage(Space)="Stair.AncillaryRoom"
         OR
         (
         IF getObjectCoutn(Stair)>=2
             THEN getSpace(Stair.One)
         ELSE 
             getSpaceUsage(Space)="Stair"
         END IF
         )
     }

      Space mySpce2{
         getSpaceUsage(Space)="Stair.AncillaryRoom"
         OR
         (
         IF getObjectCoutn(Stair)>=3
             THEN getSpace(Stair.Two)
         ELSE 
             getSpaceUsage(Space)="Stair"
         END IF
         )
     }

     IF getBuildingUsage()="ApartmentHouse"
        OR getFloorArea()<1000 m2 
      
     THEN getObjectDistance(FireDepartmentConnection, mySpace)<5 m 

     ELSE IF getFloorArea()>1000 m2
    
     THEN getObjectDistance(FireDepartmentConnection, mySpace)<5 m 
          getResult(NFSC502_6_0_2_가)=True
          getResult(NFSC502_6_0_2_나)=True
        
     END IF
} 




Python Code 변환 예정



Modify
26
20487 연결송수관설비의 화재안전기준(NFSC 502) 제 6조 2호 가 목

가. 지하가(터널은 제외한다) 또는 지하층의 바닥면적의 합계가 3,000㎡ 이상인 것은 수평거리 25m





//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 2호 가목



Check(NFSC502_6_0_2_가){



    IF CS THEN KS1 ELSE KS2

}



CS{

       Space mySpace{

            getSpaceUsage()="UndergroundMarket"

            OR getFloorNumber()<0

        }



       getFloorArea(mySpace)>3000 m2

}



KS1{



    getElementDistance(FireDepartmentConnectionSystem.OutLet, Wall )<=25 m

    getElementDistance(FireDepartmentConnectionSystem.OutLet, Column )<=25 m



}





KS2{

       getResult(NFSC502_6_0_2_나)=True

 } 




Python Code 변환 예정



Modify
27
20489 연결송수관설비의 화재안전기준(NFSC 502) 제 6조 3호

3. 11층 이상의 부분에 설치하는 방수구는 쌍구형으로 할 것. 다만, 다음 각목의 어느 하나에 해당하는 층에는 단구형으로 설치할 수 있다.





//연결송수관설비의 화재안전기준(NFSC 502) 6조 (방수구) 3호



Check(NFSC502_6_0_3){

     IF CS1 THEN KS1 ELSE IF CS2 THEN KS2

}





CS1{

   Space mySpace{

      getFloorNumber(Space)>=11

   }

   

    isInstalled(FireDepartmentConnectionSystem.Port, mySpace)=True

}



KS1{

       getObjectProperty(FireDepartmentConnectionSystem.Port.shapeType)="DoubleType"

}





CS2{

   getResult(NFSC502_6_0_3_가)=True

   OR getResult(NFSC502_6_0_3_나)=True

}



KS2{

getObjectProperty(FireDepartmentConnectionSystem.Port.shapeType)="SingleType"

} 




Python Code 변환 예정



Modify
28
20490 연결송수관설비의 화재안전기준(NFSC 502) 제 6조 3호 가 목

가. 아파트의 용도로 사용되는 층





//연결송수관설비의 화재안전기준(nfsc502) 6조 (방수구) 3호 가목



Check(NFSC502_6_0_3_가){

        KS      

}



KS{

   getFloorUsage()="ApartmentHouse"

} 




Python Code 변환 예정



Modify
29
20491 연결송수관설비의 화재안전기준(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 변환 예정



Modify
30
20492 연결송수관설비의 화재안전기준(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 변환 예정



Modify
31
20496 연결송수관설비의 화재안전기준(NFSC 502) 제 7조 1호

1. 방수기구함은 피난층과 가장 가까운 층을 기준으로 3개층마다 설치하되, 그 층의 방수구마다 보행거리 5m 이내에 설치할 것 <개정 2014.8.18>





//연결송수관설비의 화재안전기준(NFSC 502) 7조 (방수기구함) 1호



Check(NFSC502_7_0_1){

       KS

}



KS{

    Floor myFloor{

           isObjectProperty(Floor.isEscape)=True

    }



    Floor myFloor2{

         Floor.number>EFN

    }

   

    Floor myFloor3{

         Floor.nmberFloorNumber(myFloor)

      isInstalled(DischargeCabinet, myFloor2, 3)=True

      isInstalled(DischargeCabinet, myFloor3, 3)=True

      getObjectDistance(FireDepartmentConnectionSystem.Port, DischargeCabinet) <= 5 m

} 




Python Code 변환 예정



Modify
32
19969 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 5조 2 항

②피난구유도등은 피난구의 바닥으로부터 높이 1.5m 이상의 곳에 설치하여야 한다.





//유도등 및 유도표지의 화재안전기준(nfsc 303) 5조 (피난구유도등) 2항

Check(NFSC303_5_2){
     KS
}

KS{
Opening myOpening{
   isObjectProperty(Opening.isEscape)=True
}
 LeadingLight myLeadingLight{
        isObjectProperty(LeadingLight.isForExit)=True
    }

    getObjectVerticleDistance(myLeadingLight, myOpening.FloorSlab)>=1.5 m
} 




Python Code 변환 예정



Modify
33
19974 유도등 및 유도표지의 화재안전기준(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 변환 예정



Modify
34
19978 유도등 및 유도표지의 화재안전기준(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 변환 예정



Modify
35
19981 유도등 및 유도표지의 화재안전기준(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 변환 예정



Modify
36
19982 유도등 및 유도표지의 화재안전기준(NFSC 303) 제 7조 1 항

제7조(객석유도등 설치기준) ①객석유도등은 객석의 통로, 바닥 또는 벽에 설치하여야 한다.





//유도등 및 유도표지의 화재안전기준(nfsc 303) 7조 (객석유도등 설치기준) 1항

Check(NFSC303_7_1){
           KS
}

LeadingLight myLight{
  isObjectProperty(LeadingLight.isForSeat)=True
}

KS{
   isInstalled(myLight, Passage)=True
   (
    isInstalled(myLight, FloorSlab)=True
    OR isInstalled(myLight, Wall)=True
    )
} 




Python Code 변환 예정



Modify
37
19986 유도등 및 유도표지의 화재안전기준(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 변환 예정



Modify
38
19987 유도등 및 유도표지의 화재안전기준(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 변환 예정



Modify
39
19991 유도등 및 유도표지의 화재안전기준(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 변환 예정



Modify
40
20442 자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 10호 가 목

가. 감지기의 부착높이에 따라 다음 표에 따른 바닥면적마다 1개 이상으로 할 것





자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 10호 가목

Check(NFSC203_7_3_10_가){

	IF (CS1 THEN KS1) OR (CS2 THEN KS2)

}



	Sensor mySensor1{

	getObjectProperty(Sensor.type) = "Type1"

	OR getObjectProperty(Sensor.type) = "Type2"

	}

	Sensor mySensor2{

	isObjectProperty(Sensor.type) = "Type3"

	}



CS1{

	getObjectVerticalDistance(FloorSlab, Sensor) < 4m

} 

KS1{

	isInstalled(mySensor1, FloorSlab.Space, C, 150) = TRUE)

	OR isInstalled(mySensor2, FloorSlab.Space, C, 50) = TRUE)

}

CS2{

	getObjectVerticalDistance(FloorSlab, Sensor) >= 4m

	getObjectVerticalDistance(FloorSlab, Sensor) < 20m

}

KS2{

	isInstalled(mySensor1, FloorSlab.Space, C, 75) = TRUE)

} 




Python Code 변환 예정



Modify
41
20449 자동화재탐지설비 및 시각경보장치의 화재안전기준(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 변환 예정



Modify
42
20456 자동화재탐지설비 및 시각경보장치의 화재안전기준(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 변환 예정



Modify
43
19995 장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행규칙 제 별표1조

1. 장애인등의 통행이 가능한 접근로 가. 유효폭 및 활동공간 (1) 휠체어사용자가 통행할 수 있도록 접근로의 유효폭은 1.2미터 이상으로 하여야 한다. (2) 휠체어사용자가 다른 휠체어 또는 유모차 등과 교행할 수 있도록 50미터마다 1.5미터×1.5미터 이상의 교행구역을 설치할 수 있다. (3) 경사진 접근로가 연속될 경우에는 휠체어사용자가 휴식할 수 있도록 30미터마다 1.5미터×1.5미터 이상의 수평면으로 된 참을 설치할





//장애인ㆍ노인ㆍ임산부 등의 편의증진보장에 관한 법률 시행규칙 별표1 편의시설의 구조·재질등에 관한 세부기준(제2조제1항관련)

Check(ERCDAPA_2_1_*_1_4_나_1){
	IF (CS1 THEN KS1) OR (CS2 THEN KS2)

	ParkingUnit myParkingUnit{
		isObjectProperty(ParkingUnit.isParallelParking) = TRUE
	}

	CS1{
		isObjectProperty(ParkingUnit.isParallelParking) = TRUE
	}

	KS1{
		getObjectWidth(ParkingLotArea.isHandicapParking, a) >= 3.3 m
		getElementLength(ParkingLotArea.isHandicapParking) >= 5 m
	}

	CS2{
		isObjectProperty(ParkingLotArea.isParallelParking) = FALSE
	}

	KS2{
		getObjectWidth(ParkingLotArea.isHandicapParking, a) >= 2 m
		getElementLength(ParkingLotArea.isHandicapParking) >= 6 m
	}
}


check(ERCDAPA_2_1_*_1_4_나_2){
	getObjectGradient(ParkingSpace.Floor) <= 1/50
}


check(ERCDAPA_2_1_*_1_6_가_1){
	
	Door myDoor1{
		isObjectProperty(Door.isEntrance) = TRUE
	}

	Door myDoor2{
		isObjectProperty(Door.isEntrance) = TRUE
		getObject(Door.isEntrance) != getObject(myDoor1)
	}

	getObjectWidth(Door.isEntrance) >= 0.8 m
	isEgressDirection(myDoor1) = isEgressDirection(myDoor2)
	getObjectDistance(myDoor1, myDoor2) >= 1.2 m
}


check(ERCDAPA_2_1_*_1_6_가_2){
	
	isObjectProperty(Door.isAutomatic) = FALSE
	isObjectProperty(Door.isSillFree) = TRUE
}

check(ERCDAPA_2_1_*_1_8_가_2){
	
	getObjectVerticalDistance(FloorSurface,Door.Bottom)
}

check(ERCDAPA_2_1_*_1_8_나){
	
	Stair myStair{
		isObjectProperty(Stair.isEscape) = TRUE
		isObjectProperty(Stair.isOutdoor) = TRUE
	}

	getObjectWidth(myStair) >= 0.9 m 
	getObjectWidth(myStair.StairLanding) >= 0.9 m

	Stair myStair2{
		isObjectProperty(Stair.isEscape) = FALSE
		isObjectProperty(Stair.isOutdoor) = FALSE
	}

	getObjectWidth(myStair2) >= 1.2 m 
	getObjectWidth(myStair2.StairLanding) >= 1.2 m
}


check(ERCDAPA_2_1_*_1_8_다_1){
	
	hasObject(Stair, VerticalSurfaceStair) = TRUE
}

check(ERCDAPA_2_1_*_1_8_다_2){
	
	getObjectWidth(Stair.threadWidth) >= 0.28 m
	getObjectHeight(Stair.riserHeight) <= 0.18m
}

check(ERCDAPA_2_1_*_1_8_다_3){
	
	getObjectGradient(Stair.riserGradient) >= 60
	getObjectLength(Stair.nosingLength) < 3 cm
} 




Python Code 변환 예정



Modify
44
19998 장애인ㆍ노인ㆍ임산부 등의 편의증진 보장에 관한 법률 시행령 제 별표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 변환 예정



Modify
45
20007 주차장법 제 12조의2조 2호

2. 용적률: 1천500퍼센트 이하





//주차장법 12조의2 (다른 법률과의 관계)2호

Check(PLA_12-2_0_2){
      KS
}

KS{
   getFloorAreaRatio()<1500%
}

 




Python Code 변환 예정



Modify
46
61635 주차장법 시행규칙 제 6조 1 항 12호

12. 노외주차장의 주차단위구획은 평평한 장소에 설치하여야 한다. 다만, 경사도가 7퍼센트 이하인 경우로서 시장ㆍ군수 또는 구청장이 안전에 지장이 없다고 인정하는 경우에는 그러하지 아니하다.





//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 12호
Check(ERPA_6_1_12){
       IF CS THEN KS
}

CS{
		getObjectProperty(ParkingLot.buildingType)="BuildingType"
		getObjectProperty(ParkingLot.Floor.numberOf) >= 2
}
KS{
	getResult(ERPA_6_1_12_나)=TRUE
} 




Python Code 변환 예정



Modify
47
61639 주차장법 시행규칙 제 6조 4 항

④노외주차장에 설치할 수 있는 부대시설은 다음 각 호와 같다. 다만, 그 설치하는 부대시설의 총면적은 주차장 총시설면적의 20퍼센트를 초과하여서는 아니 된다. <개정 1992.9.5, 1996.6.29, 2009.6.30>





//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 4항

Check(ERPA_6_4){

	IF !CS THEN KS

}



CS{

	TFA = getFloorArea(ParkingLot)

	getTotalObjectArea(	ParkingLotSubsidiaryFacility) > TFA*0.2

}



KS{

	ParkingLot myParkingLot{

		isObjectProperty(ParkingLot.isOffStreetParking) = TRUE

	}



	SubsidiaryFacility mySubsidiaryFacility{

		getResult(ERPA_4_1) = TRUE

		OR getResult(ERPA_4_2) = TRUE

		OR getResult(ERPA_4_3) = TRUE

	}



	hasSpace(myParkingLot, mySubsidiaryFacility) = TRUE

} 




Python Code 변환 예정



Modify
48
61644 주차장법 시행규칙 제 6조 5 항

⑤법 제20조제2항 또는 제3항의 규정에 의한 노외주차장에 설치할 수 있는 부대시설의 종류 및 주차장 총시설면적중 부대시설이 차지하는 비율에 대하여는 제4항의 규정에 불구하고 특별시ㆍ광역시ㆍ시ㆍ군 또는 구의 조례로 정할 수 있다. 이 경우 부대시설이 차지하는 면적의 비율은 주차장 총 시설면적의 40퍼센트를 초과할 수 없다. <신설 1996.6.29, 2004.7.1>





//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 5항

Check(ERPA_6_5){

	IF CS THEN KS

}



CS{

	ParkingLot myParkingLot{

		isObjectProperty(ParkingLot.isOffStreetParking) = TRUE

		getResult(PLA_20_2) = TRUE

		OR getResult(PLA_20_3) = TRUE

	}



	hasSpace(myParkingLot,SubsidiaryFacility) = TRUE

	getTotalFloorArea(myParkingLot.facilityArea)

}



KS{

	getFloorArea(ParkingLotSubsidiaryFacility) <= getTotalObjectArea(ParkingLot)*0.4

} 




Python Code 변환 예정



Modify
49
61645 주차장법 시행규칙 제 6조 6 항

⑥시장ㆍ군수 또는 구청장이 노외주차장내에 국토의계획및이용에관한법률 제2조제7호의 도시계획시설을 부대시설로서 중복하여 설치하고자 하는 경우에는 노외주차장외의 용도로 사용하고자 하는 도시계획시설이 차지하는 면적의 비율은 부대시설을 포함하여 주차장 총 시설면적의 40퍼센트를 초과할 수 없다. <신설 2004.7.1>





//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 6항

Check(ERPA_6_6){

	IF CS THEN KS

}



ParkingLot myParkingLot{

	isObjectProperty(ParkingLot.isOffStreetParking) = TRUE

}


Building myBuilding{
Building.usage = "UrbanGunPlanningFacility"
getResult(LPUA_2_0_7) = TRUE
hasSpace(myParkingLot, Building) = TRUE
getSpaceUsage(Building) = getSpaceUsage(SubsidiaryFacility)

}

Building myBuilding1{
Building.usage = "UrbanGunPlanningFacility"
}

CS{

	getObjectNumber(myBuilding) >= 2

}



KS{

	(getFloorArea(myBuilding1)- getFloorArea(myBuilding)) <= (getTotalObjectArea(ParkingLot) + getTotalObjectArea(SubsidiaryFacility))*0.4

} 




Python Code 변환 예정



Modify
50
20003 주차장법 시행령 제 별표1조

부설주차장의 설치대상 시설물 종류 및 설치기준(제6조제1항 관련) (시설물 :설치기준) 1. 위락시설 :○ 시설면적 100㎡당 1대(시설면적/100㎡) 2. 문화 및 집회시설(관람장은 제외한다), 종교시설, 판매시설, 운수시설, 의료시설(정신병원·요양병원 및 격리병원은 제외한다), 운동시설(골프장·골프연습장 및 옥외수영장은 제외한다), 업무시설(외국공관 및 오피스텔은 제외한다), 방송통신시설 중 방송국, 장례식장 :○ 시설면적 150㎡당 1대(시설면적/





//주차장법 시행령 별표1 부설주차장의 설치대상 시설물 종류 및 설치기준





Check(EDPA_*_1_1){

IF CS THEN KS

}

Space mySpace1{

getBuildingUsage()=” AmusementFacility”

myTotalFloorArea = getTotalFloorArea(mySpace1)

CS{

isExist(mySpace1)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea/100

}





Check(EDPA_*_1_2){

IF CS THEN KS

}

Space mySpace2{

(getBuildingUsage()= “CulturalAndAssemblyFacility”

AND getBuildingUsage() !=” Auditorium”)

OR (getBuildingUsage() = “ReligiousFacility | CommercialFacility | TransportationFacilit”

OR getBuildingUsage() = ”MedicalFacility”

AND getBuildingUsage() != “MentalHospital | ConvalescentHospital | DetentionHoispital”)

OR (getBuildingUsage() = “SportsFacility” 

AND getBuildingUsage() != “GolfCourse | GolfDrivingRange | OurdoorSwimmingPool”)

OR (getBuildingUsage()= “BusinessFacility”

AND getBuildingUsage() != “ForeignOfficialResidence | Officetels” )

}

myTotalFloorArea2 = getTotalFloorArea(mySpace2)

}

CS{

isExist(mySpace2)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea2/150

}



Check(EDPA_*_1_3){

IF CS THEN KS

}

Space mySpace3{

 ((getBuildingUsage ()=” ClassINeighborhoodLivingFacility”

AND getSpaceUsage != “PublicToilet | Shelter | CommunityChildCenter”)

OR getBuildingUsage ()=”ClassIINeighborhoodLivingFacility”

OR getBuildingUsage ()=”LodgingFacility”)

}

myTotalFloorArea3 = getTotalFloorArea(mySpace3)

}

CS{

isExist(mySpace3)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea3/200

}





Check(EDPA_*_1_4){

IF CS1 THEN KS1 OR CS2 THEN KS2

}

Space mySpace1{

getBuildingUsage ()=” DetachedHouse”

}

myTotalFloorArea = getTotalFloorArea(mySpace1)

}

CS1{

myTotalFloorArea>50 

AND myTotalFloorArea<=150

}

KS1{

isObjectProperty(parkingLot.numberofParkingUnit)=1

}

CS2{

myTotalFloorArea>150 

}

KS2{

(myTotalFloorArea-150)/100+1=ParkingLot.numberofParkingUnit

}





Check(EDPA_*_1_7){

IF CS THEN KS

}

Space mySpace7{

getBuildingUsage ()=”Trainingfacility” 

getBuildingUsage ()=”Factory”

getBuildingUsage () != ”AptartmentTypeFactory”

}

myTotalFloorArea7 = getTotalFloorArea(myspace7)

CS{

isExist(mySpace7)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea7/400

}



Check(EDPA_*_1_8){

IF CS THEN KS

}

Space mySpace8{

getBuildingUsage ()= “Warehouse”

}

myTotalFloorArea8 = getTotalFloorArea(mySpace8)

}

CS{

isExist(mySpace8)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea8/400

}



Check(EDPA_*_1_9){

IF CS THEN KS

}

Space mySpace9{

getBuildingUsage ()= “DormitoryForStudents”

}

myTotalFloorArea9 = getTotalFloorArea(myspace9)

CS{

isExist(mySpace9)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea9/400

}





Check(EDPA_*_1_10){

IF CS THEN KS

}

Space mySpace10 { 

getObject(Space) != myspace1 | myspace2 | myspace3 | myspace4 | myspace5 | myspace6 | myspace7 | myspace8 | myspace9 |

}

myTotalFloorArea10 = getTotalFloorArea(mySpace10)

}

CS{

isExist(mySpace9)=TRUE

} 

KS{

ParkingLot.numberOfParkingUnit<=myTotalFloorArea10/300

}





Check(EDPA_*_1_0_1){

IF CS THEN KS

}

CS{

getResult(EDPA_*_1_0_1_가)= TRUE

OR getResult(EDPA_*_1_0_1_나)= TRUE

OR getResult(EDPA_*_1_0_1_다)= TRUE

OR getResult(EDPA_*_1_0_1_라)= TRUE

OR getResult(EDPA_*_1_0_1_마)= TRUE

OR getResult(EDPA_*_1_0_1_바)= TRUE

OR getResult(EDPA_*_1_0_1_사)= TRUE

}

KS{

isExist(ParkingLot.isAttachedParking)=FALSE

}



Check(EDPA_*_1_0_1_가){

KS

}

isExist(ClassINeighborhoodLivingFacility.Substation)=TRUE

OR isExist(ClassINeighborhoodLivingFacility.PumpingStation)=TRUE

OR isExist(ClassINeighborhoodLivingFacility.PurificationPlant)=TRUE

OR isExist(ClassINeighborhoodLivingFacility.Shelter)=TRUE

OR isExist(ClassINeighborhoodLivingFacility.PublicToilet)=TRUE

Check(EDPA_*_1_0_1_나){

KS

}

isExist(ReligiousFacility.Monastery)=TRUE

OR isExist(ReligiousFacility.Convent)=TRUE

OR isExist(ReligiousFacility.Chapel)=TRUE

OR isExist(ReligiousFacility.Shrine)=TRUE

Check(EDPA_*_1_0_1_다){

KS

}

isExist(getBuildingUsage()=”FacilityForAnimalAndPlant”)=TRUE

AND isExist(getBuildingUsage()=”SlaughterHouse”)=FALSE

AND isExist(getBuildingUsage()=”ChickenSlaughterHouse”)=FALSE

Check(EDPA_*_1_0_1_라){

KS

}

isExist(FacilityForBroadcastingAndTelecommunication.TransmitAndReceptionAndTransitFacility)=TRUE

Check(EDPA_*_1_0_1_마){

KS

}

getObjectProperty(Building.isExclusiveUseOfParkingLot) = FALSE

(getBuildingUsage() != "CommercialFacility.DepartmentStore" OR "CommercialFacility.ShoppingCenter" OR  "LargeStore"

OR getBuildingUsage() != "CulturalAndAssemblyFacility.MovieTheater" OR  "CulturalAndAssemblyFacility.ExhibitionHall" OR "CulturalAndAssemblyFacility.WeddingHall"

Check(EDPA_*_1_0_1_바){

KS

}

getBuildingUsage()= “Station”

Check(EDPA_*_1_0_1_사){

KS

}

getResult(EDBA_6_1_4)=TRUE









Check(EDPA_*_1_0_4){

KS

}

Space mySpace{

getBuildingUsage()= “DetachedHouse”

getBuildingUsage() !=”Multi-familyHouses”

}

getTotalArea(mySpace)<=50m2

getTotalArea(mySpace)/100 = ParkingLot.numberOfParkingUnit 




Python Code 변환 예정



Modify
51
62347 주택건설기준 등에 관한 규정 제 15조 1 항

①6층 이상인 공동주택에는 국토교통부령이 정하는 기준에 따라 대당 6인승 이상인 승용승강기를 설치하여야 한다. 다만, 「건축법 시행령」 제89조의 규정에 해당하는 공동주택의 경우에는 그러하지 아니하다. <개정 1992.5.30, 1994.12.23, 1994.12.30, 1999.9.29, 2005.6.30, 2008.2.29, 2013.3.23>





//주택건설기준 등에 관한 규정 15조 (승강기등) 1항
Check(RHC_15_1){
	getResult(RHC_15_5) = TRUE AND IF (CS1 AND !CS2) THEN KS
}

CS1{
	getBuildingUsage() = "MultiUnitHouse"
	getBuildingStoriesCount() >= 6
}

CS2{
	getBuildingStoriesCount = 6
	
	Stair myStair{
		isObjectProperty(Stair.isDirect) = TRUE
	}

	getFloorArea() = FA
	FA / 300 = FA2
	getIntegeralNumber(FA2) = FA3
	getObjectCount(myStair) >= FA3
}

KS{
	Elevator myElevator{
		getObjectProperty(Elevator.occupancy) >= 6
	}

	isExist(myElevator) = TRUE
} 




Python Code 변환 예정



Modify
52
62907 주택건설기준 등에 관한 규정 제 11조

제11조(지하층의 활용) 공동주택을 건설하는 주택단지에 설치하는 지하층은 「주택법 시행령」 제7조제1호 및 제2호에 따른 근린생활시설(이하 "근린생활시설"이라 한다. 다만, 이 조에서는 변전소ㆍ정수장 및 양수장을 제외하되, 변전소의 경우 「전기사업법」 제2조제2호에 따른 전기사업자가 자신의 소유 토지에 「전원개발촉진법 시행령」 제3조제1호에 따른 시설의 설치ㆍ운영에 종사하는 자를 위하여 건설하는 공동주택 및 주택과 주택 외의 건축물을 동일건축물에 복합하여 건설하는 경우로서 사업계획승인권자가 주거안정에 지장이 없다고 인정하는 건축물의 변전소는 포함한다)ㆍ주차장ㆍ주민공동시설 및 주택(사업계획승인권자가 해당 주택의 주거환경에 지장이 없다고 인정하는 경우로서 1층 세대의 주거전용부분으로 사용되는 구조만 해당한다) 그 밖에 관계 법령에 따라 허용되는 용도로 사용할 수 있으며, 그 구조 및 설비는 「건축법」제53조에 따른 기준에 적합하여야 한다. <개정 2005.6.30, 2006.1.6, 2008.10.29, 2009.10.19, 2013.6.17, 2017.10.17>





//주택건설기준 등에 관한 규정 11조 (지하층의 활용) 

Check(RHC_11){
     IF CS THEN KS
}

CS{
   
   getBuildingUsage()="	MultiUnitHouse"
   getFloorNumber(Space)<0
}

KS{
    getResult(BA_53)=True
} 




Python Code 변환 예정



Modify
53
65563 주택법 시행령 제 47조 5 항

⑤ 감리자는 법 제16조제2항에 따라 착공신고를 하거나 감리업무의 범위에 속하는 각종 시험 및 자재확인 등을 하는 경우에는 서명 또는 날인을 하여야 한다.





//주택법 시행령 47조 (행위허가 등의 기준 등) 5항
Check(NFSC506_47_5){
	IF !CS THEN KS
}

CS{
	getBuildingUsage() = "MultiUnitHouse"
	getObjectProperty(Floor.number) < 0
}

KS{
	Floor myFloor{
		getObjectProperty(Floor.number) < 0
	}

	getFloorUsage(myFloor) != "ResidentsCommonSpace"
} 




Python Code 변환 예정



Modify
  ◁prev 1   2   3      
 

Related Sites

국토부 BIM과제-1st  |   Ministry of Land, Infrasrtucture and Transport   |   Korea Agency for Infrastructure Technology Advancement  |   Space and Design IT Lab   |   Yonsei University
This is Design IT Lab server's restricted area. Authorized users could access this website.