Open BIM based Technological Environment for Building Design Quality Enhancement
1-2. 설계품질검증 자동화를 위한 각종 법규 및 제기준의 체계화된 논리규칙 데이터베이스 구축
- 건축물 설계품질 혁신을 위한 개방형 BIM 기술 환경 구축 | 국토교통부
가. 건축물의 내부와 계단실은 노대를 통하여 연결하거나 외부를 향하여 열 수 있는 면적 1제곱미터 이상인 창문(바닥으로부터 1미터 이상의 높이에 설치한 것에 한한다) 또는 「건축물의 설비기준 등에 관한 규칙」 제14조의 규정에 적합한 구조의 배연설비가 있는 면적 3제곱미터 이상인 부속실을 통하여 연결할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 가목
check (REFB_9_2_3_1){
CS THEN KS
}
CS {
isExist(Stair.Space) = TRUE
}
KS {
Window myWindow {
getObjectProperty(Window.area)>= 1 m2
isObjectProperty(Window.isExternalDirection) = TRUE
getElementDistance(Window, FloorSlab, a)>=1m
}
SmokeExhaustionSystem mySmokeExhaustionSystem {
getElement(SmokeExhaustionSystem)
getResult(RFB_14)=TRUE
}
Space mySpace1{
getSpace(“Balcony”)
}
Space mySpace2{
isExternal(Space)=FALSE
}
Space mySpace3{
getSpace(“AncillaryRoom”)
getFloorArea(Space.Floor, ) >= 3㎡
hasElement(Space,mySmokeExhaustionSystem) = TRUE
hasElement(Space,myWindow) = TRUE
}
isGoThrough(mySpace2,Stair.Space, ,mySpace1)
OR isGoThrough(mySpace2,Stair.Space, ,mySpace3)
마. 계단실ㆍ노대 또는 부속실에 설치하는 건축물의 바깥쪽에 접하는 창문등(망이 들어 있는 유리의 붙박이창으로서 그 면적이 각각 1제곱미터이하인 것을 제외한다)은 계단실ㆍ노대 또는 부속실외의 당해 건축물의 다른 부분에 설치하는 창문등으로부터 2미터 이상의 거리를 두고 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 12조 (회전문의 설치기준) 1항
Check(REFB_12_1){
KS
}
KS {
getElementDistance(myDoor, Stair, a)>= 2 m
OR getElementDistance(myDoor, Escalator, a)>= 2 m
}
다. 경사로의 차로 너비는 직선형인 경우에는 3.3미터 이상(2차로의 경우에는 6미터 이상)으로 하고, 곡선형인 경우에는 3.6미터 이상(2차로의 경우에는 6.5미터 이상)으로 하며, 경사로의 양쪽 벽면으로부터 30센티미터 이상의 지점에 높이 10센티미터 이상 15센티미터 미만의 연석(沿石)을 설치하여야 한다. 이 경우 연석 부분은 차로의 너비에 포함되는 것으로 본다.
1. 특정소방대상물의 층마다 설치하되, 해당 특정소방대상물의 각 부분으로부터 하나의 옥내소화전방수구까지의 수평거리가 25m(호스릴옥내소화전설비를 포함한다) 이하가 되도록 할 것. 다만, 복층형 구조의 공동주택의 경우에는 세대의 출입구가 설치된 층에만 설치할 수 있다.<개정 2008.12.15, 2009.10.22>
// 옥내소화전설비의 화재안전기준(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
}
나. 천장의 최상부를 중심으로 가지관을 서로 마주보게 설치하는 경우에는 최상부의 가지관 상호간의 거리가 가지관상의 스프링클러헤드 상호간의 거리의 2분의 1이하(최소 1m 이상이 되어야 한다)가 되게 스프링클러헤드를 설치하고, 가지관의 최상부에 설치하는 스프링클러헤드는 천장의 최상부로부터의 수직거리가 90㎝ 이하가 되도록 할 것. 톱날지붕, 둥근지붕 기타 이와 유사한 지붕의 경우에도 이에 준한다.
//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 7항5호 나목
Check(NFSC103_10_7_5_2){
IF CS THEN KS
}
CS{
isInstalled(Celling,BranchPipe,b)=TRUE
}
KS{
BD=getElementDistance(BranchPipe, c)
SD=getElementDistance(SprinklerHead, c)
SD/BD>=2
BD>=1 m
IF isInstalled(BranchPipe, SprinklerHead, a )=TRUE
THEN getVerticalDistance(SprinklerHead,Ceiling.UppermostPart)<=90 cm
END IF
}
6. 연소할 우려가 있는 개구부에는 그 상하좌우에 2.5m 간격으로(개구부의 폭이 2.5m 이하인 경우에는 그 중앙에) 스프링클러헤드를 설치하되, 스프링클러헤드와 개구부의 내측 면으로부터 직선거리는 15㎝ 이하가 되도록 할 것. 이 경우 사람이 상시 출입하는 개구부로서 통행에 지장이 있는 때에는 개구부의 상부 또는 측면(개구부의 폭이 9m 이하인 경우에 한한다)에 설치하되, 헤드 상호간의 간격은 1.2m 이하로 설치하여야 한다.
//스프링클러설비의 화재안전기준(nfsc 103) 10조 (헤드) 7항 6호
Check(NFSC103_10_7_6){
IF (CS1 THEN KS1) or (CS2 THEN KS2)
}
CS1{
isObjectProperty(Opening.isFireSpreading)=TRUE
getObjectWidth(Opening, a) > 2.5m
}
KS2{
isInstalled(Opening, Sprinkler.Head, 2.5m) = TRUE
getElementDistance(Opening.InsideSurface, Sprinkler.Head) <= 15cm
}
CS2{
isObjectProperty(Opening.isFireSpreading)=TRUE
getObjectWidth(Opening, Sprinkler.Head, a) <= 2.5m
}
KS2{
isInstalled(Opening, Sprinkler.Head, center) = TRUE
getElementDistance(Opening.InsideSurface, Sprinkler.Head) <= 15cm
}
⑧ 제7항제2호에도 불구하고 특정소방대상물의 보와 가장 가까운 스프링클러 헤드는 다음 표의 기준에 따라 설치하여야 한다. 다만, 천장 면에서 보의 하단까지의 길이가 55㎝를 초과하고 보의 하단 측면 끝부분으로부터 스프링클러헤드까지의 거리가 스프링클러헤드 상호간 거리의 2분의 1 이하가 되는 경우에는 스프링클러헤드와 그 부착 면과의 거리를 55㎝ 이하로 할 수 있다.<개정 2013.6.10>
(표)
//스프링클러설비의 화재안전기준 10조 (헤드) 8항
check(NFSC103_10_8){
(IF !(CS1) THEN KS1) or (IF CS1 THEN KS2)
}
KS1{
Beam myBeam{
hasObject(SpecificFireFightingBuilding, Beam) = TRUE
}
getElementDistance(myBeam, SprinklerHead, 1) = TRUE
//Table
getElementDistance(SprinklerHead.Deflector, Beam, a) + getObjectWidth(SprinklerHead.Deflector)*0.5 = SBD
getObjectVerticalDistance(SprinklerHead.Deflector, Beam.BottomSurface, a) = SHD
IF SBD < 0.75 m
THEN SHD < getObjectHeight(Beam.BottomSurface)
IF 0.75 m <= SBD < 1 m
THEN SHD < 0.1 m
IF 1 m <= SBD < 1.5 m
THEN SHD < 0.15 m
IF SBD >= 1.5 m
THEN SHD < 0.3 m
}
CS1{
getObjectDistance(Ceiling.Surface, Beam.BottomSurface) > 55 cm
getObjectDistance(Beam.BottomSideSurface, SprinklerHead) = OD
OD <= getElementDistance(SprinklerHead, c)*0.5
}
KS2{
getObjectDistance(SprinklerHead, SprinklerHead.AttachingToSurface) <= 55 cm
}
6. 제4호의 규정에도 불구하고 소방대상물의 보와 가장 가까운 간이헤드는 다음 표의 기준에 따라 설치할 것. 다만, 천장면에서 보의 하단까지의 길이가 55㎝를 초과하고 보의 하단 측면 끝부분으로부터 간이헤드까지의 거리가 간이헤드 상호간 거리의 2분의 1 이하가 되는 경우에는 간이헤드와 그 부착면과의 거리를 55㎝ 이하로 할 수 있다.<개정 2013.6.10>
(표)
/ 간이스프링클러설비의 화재안전기준(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
}