개방형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-27 기준) 설계품질검토용 건축법 및 관련법규 - KBIMCode (문장단위)
    1      
1 / 1 page Total 2500 / 4000 records    신규입력
Select
ALL
None
#
ID
Law
Jo
JO Name
HANG
HO
MOK
Text
Search!
1
20062 건축물의 구조기준 등에 관한 규칙 제 35조 1 항 2호

2. 하나의 층에 있어서의 개구부와 그 바로 윗층에 있는 개구부와의 수직거리는 600밀리미터 이상으로 하여야 한다. 같은 층의 벽에 상하의 개구부가 분리되어 있는 경우 그 개구부 사이의 거리도 또한 같다.





//건축물의 구조기준 등에 관한 규칙 35조 (개구부) 1항 2호
Check(RSSB_35_1_2){
	KS2 AND IF CS THEN KS1
}
KS2{
	Opening myOpening1{
	isInstalled(Opening, Floor.One) = TRUE
	}
	Opening myOpening2{
	isInstalled(Opening, myOpening1.Floor.UpperFloor) = TRUE
	}
	getObjectVerticalDistance(myOpening1, myOpening2) >= 600mm
}
CS{
	Opening myOpening3{
	isInstalled(Opening, Floor.One.Wall.One) = TRUE
	}
	getObjectInterval(myOpening3,,a) >= 600mm
} 




Python Code 변환 예정



Modify
2
20063 건축물의 구조기준 등에 관한 규칙 제 35조 2 항

②조적식구조인 벽에 설치하는 개구부에 있어서는 각층마다 그 개구부 상호간 또는 개구부와 대린벽의 중심과의 수평거리는 그 벽의 두께의 2배 이상으로 하여야 한다. 다만, 개구부의 상부가 아치구조인 경우에는 그러하지 아니하다.





//건축물의 구조기준 등에 관한 규칙 35조 (개구부) 2항
Check(RSSB_35_2){
	getResult(RSSB_28_2) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF (!CS1 AND CS2) THEN KS
}
	Wall myWall1{
	isObjectProperty(myWall.Structure.isMansoryStructure) = TRUE
	}
CS1{
	isObjectProperty(Opening.UpperSideShape) = "Arc"
}
CS2{
	isInstalled(Opening, myWall1) = TRUE
}
KS{
	Wall myWall2{
	isObejctProperty(Wall.isRightAngleCrossingWall) = TRUE
	isInstalled(Wall, myWall1.Floor) = TRUE
	}
	WD = getObjectProperty(myWall1.depth)
	getObject(Floor.One.Opening)
	(getObjectInterval(Opening, ) >= 2* WD
	OR getObjectDistance(Opening, myWall2.Center) >= 2* WD
} 




Python Code 변환 예정



Modify
3
72735 건축물의 에너지절약설계기준 제 6조 4호

4. 기밀 및 결로방지 등을 위한 조치





//	스프링클러설비의 화재안전기준(NFSC 103) 10조 (음향장치 및 기동장치) 2항

Check(NFSC103_10_2){

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

}



CS1{
Space.usage = "RackWarehouse"
isObjectProperty(Space.hasSpecialCombustible) = TRUE

}



KS1{

	getObjectHeight(Rack) / 4 = RH



	(RH-1) <= getObjectCount(SprinklerHead) < RH

	getObjectInterval(SprinklerHead) = 4m

}



CS2{

Space.usage = "RackWarehouse"
isObjectProperty(Space.hasSpecialCombustible) != TRUE


}



KS2{

	getObjectHeight(Rack) / 6 = RH



	(RH-1) <= getObjectCount(SprinklerHead) < RH

	getObjectInterval(SprinklerHead) = 6m

} 




Python Code 변환 예정



Modify
4
72860 건축물의 에너지절약설계기준 제 17조 1 항 1호

「법 및 조례에서 정하는 기준 용적률」× [1 + 완화기준]





// 간이스프링클러설비의 화재안전기준(NFSC 103A) 8조 (배관 및 밸브) 13조 1호



Check(NFSC103A_8_13_1){

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

}

Pipe myPipe{

	isObjectProperty(Pipe.isBranchLines) = TRUE

}

CS1{

	getObjectInterval(SimpleSprinkler.Head) <= 3.5m

}

KS1{

	getObjectCountInInterval(Hanger, SimpleSprinkler.Head) >= 1

	isInstalled(Hanger, myPipe) = TRUE

}



CS2{

	getObjectInterval(SimpleSprinkler.Head) > 3.5m

}

KS2{

	Head myHead{

	isObjectProperty(Head.installationDirectionType) = "BottomUpType"

	}

	isInstalled(Hanger, myPipe, b, 3.5) = TRUE

getObjectCountInInterval(Hanger, SimpleSprinkler.Head) >= 1

	getObjectDistance(myHead, Hanger) >= 8cm 



} 




Python Code 변환 예정



Modify
5
72861 건축물의 에너지절약설계기준 제 17조 1 항 2호

2. 조경면적 적용방법





//간이스프링클러설비의 화재안전기준(NFSC 103A) 8조 (배관 및 밸브) 13조 2

Check(NFSC103A_8_13_2){
	IF(CS1 THEN KS1) OR (CS2 THEN KS2)
}
Pipe myPipe1{
	isObjectProperty(Pipe.isCrossMains) = TRUE
}
Pipe myPipe2{
	isObjectProperty(Pipe.isBranchLines) = TRUE
}
CS1{
	getObjectInterval(myPipe2) <= 4.5m
}
KS1{
	getObjectCountInInterval(Hanger, myPipe2) >= 1
	isInstalled(Hanger, myPipe1) = TRUE
}

CS2{
	getObjectInterval(myPipe2) > 4.5m
}
KS2{
	isInstalled(Hanger, myPipe1, b, 4.5) = TRUE
getObjectCountInInterval(Hanger, myPipe2) >= 1
} 




Python Code 변환 예정



Modify
6
72876 건축물의 에너지절약설계기준 제 23조 1 항

제23조(복합용도 건축물의 에너지절약계획서 및 설계 검토서 작성방법 등) ① 에너지절약계획서 및 설계 검토서를 제출하여야 하는 건축물 중 비주 거와 주거용도가 복합되는 건축물의 경우에는 해당 용도별로 에너지절 약계획서 및 설계 검토서를 제출하여야 한다.





/ 간이스프링클러설비의 화재안전기준(nfsc 103a) 9조 (간이헤드) 6호



Check(NFSC503A_9_0_6){

	IF !CS THEN KS

}

CS{

	DBSH = getObjectDistance(Head.One, Head.One)

	getObjectdistance(Ceiling.Surface, Beam.BottomSurface) > 55cm

	getObjectdistance(Beam.BottomSideSurface, SimpleSprinkler.Head) <= DBSH/2

}

KS{

Beam myBeam{
isInstalled(Beam, SpecificFireFightingBuilding) = TRUE
}
	DCH = getObjectInterval(Head, myBeam)

	Head myHead{

	getObjectDistance(Head, myBeam) = DCH

	}

	

	IF getElementDistance(myHead.Deflector.Center, Beam) < 0.75m THEN getObjectVerticalLocation(myHead.Deflector, Beam.BottomSurface) < 0



	ELSE IF getElementDistance(myHead.Deflector.Center, Beam) >= 0.75m 

	OR getElementDistance(myHead.Deflector.Center, Beam) < 1m THEN getObjectVerticalLocation(myHead.Deflector, Beam.BottomSurface) < 0 

	getElementDistance(myHead.Deflector, Beam.BottomSurface) < 0.1m



	ELSE IF getElementDistance(myHead.Deflector.Center, Beam) >= 1m 

	OR getElementDistance(myHead.Deflector.Center, Beam) < 1.5m THEN getObjectVerticalLocation(myHead.Deflector, Beam.BottomSurface) < 0 

	getElementDistance(myHead.Deflector, Beam.BottomSurface) < 0.15m



	ELSE IF getElementDistance(myHead.Deflector.Center, Beam) >= 1.5m 

	THEN getObjectVerticalLocation(myHead.Deflector, Beam.BottomSurface) < 0 

	getElementDistance(myHead.Deflector, Beam.BottomSurface) < 0.3m

} 




Python Code 변환 예정



Modify
7
72901 건축물의 에너지절약설계기준 제 별표3조

단열재의 두께





자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 7호 가목
Check(NFSC203_7_3_7_가){
	KS3 AND IF !CS THEN KS1 ELSE KS2
}
	Pipe myPipe{
	isObjectProperty(Pipe.isForAir) = TRUE
	}
	Zone myZone{
	isObjectProperty(Zone.isDetectionZone) = TRUE
	}
KS3{
	getElementDistance(myPipe, myZone.Wall) <= 1.5m
	getElementDistance(myPipe, myZone.Column) <= 1.5m
}
CS{
	isFireResistantStructure(SpecificFireFightingBuilding.MainStructuralPart) = TRUE
	
}
KS1{
	getObjectInterval(myPipe) <= 6m
}
KS2{
	getObjectInterval(myPipe) <= 6m
} 




Python Code 변환 예정



Modify
8
20108 연소방지설비의 화재안전기준(NFSC 506) 제 4조 7 항 1호

1. 가지배관에는 헤드의 설치지점 사이마다 1개 이상의 행가를 설치하되, 헤드간의 거리가 3.5m을 초과하는 경우에는 3.5m 이내마다 1개 이상 설치할 것. 이 경우 상향식헤드와 행가 사이에는 8㎝ 이상의 간격을 두어야 한다.





//  연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 7항 1호

Check(NFSC506_4_7_1){
	IF (CS1 THEN KS1) OR (CS2 THEN KS2)
}

CS1{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

	Head myHead{
		isInstalled(Head, myPipe) = TRUE
	}

	getObjectInterval(myHead) <= 3.5m
}

KS1{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

	Head myHead{
		isInstalled(Head, myPipe) = TRUE
	}

	getobjectCountInInterval(Hanger, myHead) >= 1
}

CS2{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

	Head myHead{
		isInstalled(Head, myPipe) = TRUE
	}

	getObjectInterval(myHead) > 3.5m
}

KS2{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

	Head myHead{
		isInstalled(Head, myPipe) = TRUE
	}

	getObjectInterval(myHead) = OIH
	OIH/3.5 = OIHH
	(OIHH-1) <= getObjectCountInInterval(Hanger, myHead) < OIHH
	getObjectInterval(Hanger) = 3.5m

	Head myHead2{
		getObjectProperty(Head.installationDirectionType) = "BottomUpType"
	}

	getObjectInterval(myHead2, Hanger) >= 8cm
} 




Python Code 변환 예정



Modify
9
20109 연소방지설비의 화재안전기준(NFSC 506) 제 4조 7 항 2호

2. 교차배관에는 가지배관과 가지배관 사이마다 1개 이상의 행가를 설치하되, 가지배관 사이의 거리가 4.5m을 초과하는 경우에는 4.5m 이내마다 1개 이상 설치할 것





//  연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 7항 2호

Check(NFSC506_4_7_2){
	IF (CS1 THEN KS1) OR (CS2 THEN KS2)
}

CS1{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
		getObjectInterval(Pipe) <= 4.5m
	}

	Pipe myPipe2{
		isObjectProperty(Pipe.isCrossMains) = TRUE
	}

	isConnectedTo(myPipe, myPipe2) = TRUE
}

KS1{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
		getObjectInterval(Pipe) <= 4.5m
	}

	Pipe myPipe2{
		isObjectProperty(Pipe.isCrossMains) = TRUE
	}

	Hanger myHanger{
		isInstalled(Hanger, myPipe2) = TRUE
	}

	getObjectCountInInterval(myHanger,myPipe) >=1
}

CS2{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
		getObjectInterval(Pipe) > 4.5m
	}

	Pipe myPipe2{
		isObjectProperty(Pipe.isCrossMains) = TRUE
	}

	isConnectedTo(myPipe, myPipe2) = TRUE
}

KS2{
	Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
		getObjectInterval(Pipe) > 4.5m
	}

	Pipe myPipe2{
		isObjectProperty(Pipe.isCrossMains) = TRUE
	}

	Hanger myHanger{
		isInstalled(Hanger, myPipe2) = TRUE
	}

	getObjectCountInInterval(myHanger,myPipe) >=1
	getObjectInterval(myPipe) = OIP
	OIP/4.5 = OIPP
	(OIPP-1) <= getObjectCountInInterval(Hanger, myHead) < OIPP
	getObjectInterval(Hanger) = 4.5m
}
 




Python Code 변환 예정



Modify
10
20110 연소방지설비의 화재안전기준(NFSC 506) 제 4조 7 항 3호

3. 제1호와 제2호의 수평주행배관에는 4.5m 이내마다 1개 이상 설치할 것<개정 2012.8.20>





//연소방지설비의 화재안전기준(nfsc 506) 4조 (배관) 7항 3호 

Check(NFSC506_4_7_3){
        IF CS THEN KS 
}

CS{
Pipe myPipe{
		isObjectProperty(Pipe.isBranchLines) = TRUE
	}

               isObjectProperty(myPipe.isFeedMains)=True

}

KS{
           isInstalled(Hanger, myPipe)=True
        getObjectInterval(Hanger)>4.5 m
}


 




Python Code 변환 예정



Modify
11
20114 연소방지설비의 화재안전기준(NFSC 506) 제 5조 2호

2. 방수헤드간의 수평거리는 연소방지설비 전용헤드의 경우에는 2m 이하, 스프링클러헤드의 경우에는 1.5m 이하로 할 것





//	연소방지설비의 화재안전기준(nfsc 506) 5조 (방수헤드) 1호

Check(NFSC506_5_0_2){

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

}



CS1{

Head myHead{
	Head.isDischargeHead = TRUE
}

	isObjectProperty(myHead) = TRUE

	isObjectProperty(Head.isShared) = FALSE

	isInstalled(Head, CombustionProtectionSystem) = TRUE

}



KS1{

	getObjectInterval(myHead) <= 2m

}



CS2{

	isObjectProperty(myHead) = TRUE

	isObjectProperty(Sprinkler.Head) = TRUE

}



KS2{

	getObjectInterval(myHead) <= 1.5m

} 




Python Code 변환 예정



Modify
12
20115 연소방지설비의 화재안전기준(NFSC 506) 제 5조 3호

3. 살수구역은 환기구 등을 기준으로 지하구의 길이방향으로 350 m 이내마다 1개 이상 설치하되, 하나의 살수구역의 길이는 3m 이상으로 할 것





//연소방지설비의 화재안전기준(nfsc 506) 5조 (방수헤드) 3호
Check(NFSC506_5_0_3){
	 KS 
}


KS{
  Zone myZone{
    isObjectProperty(Zone.isWateringZone)=True
  }

  Head myHead{
    isObjectProperty(Head.isDischargeHead)=True
  }
    
    isInstalled(myHead,Zone)=True 
    getObjectInterval(myHead)<=350 m
    getObjectLength(myZone)>=3 m
    
    
} 




Python Code 변환 예정



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



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



Modify
    1      
 

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.