②조적식구조인 내력벽의 두께는 그 건축물의 층수·높이 및 벽의 길이에 따라 각각 다음 표의 두께 이상으로 하되, 조적재가 벽돌인 경우에는 당해 벽높이의 20분의 1이상, 블록인 경우에는 당해 벽높이의 16분의 1이상으로 하여야 한다.
┌───────┬─────────────┬─────────────┬─────────────┐
│건축물의 높이 │5미터 미만 │5미터 이상 11미터 미만
//건축물의 구조기준 등에 관한 규칙 32조 (내력벽의 두께) 2항
Check(RSSB_32_2){
getResult(RSSB_32_7) = TRUE AND getResult(RSSB_32_3) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CS THEN KS
}
CS {
getResult(RSSB_33_3)=True
}
KS{
//HW means Height of wall
Wall myWall{
isObjectProperty(Wall.isLoadBearingWall) = TRUE
}
HW=getObjectHeight(myWall)
IF isObjectProperty(Wall.Structure.isMansoryStructure)=TRUE
IF getBuildingHeight()<5 m
IF getFloorNumber(myWall)=1
IF getObjectLength(myWall)<8 m
THEN getObjectThickness(myWall)>= 150 mm
ELSE THEN getObjectThickness(myWall)>= 190 mm
END IF
END IF
ELSE IF getBuildingHeight()>=5 m
getBuildingHeight()<11 m
getFloorNumber(myWall)=1
OR getFloorNumber(myWall)=2
THEN getObjectThickness(myWall)>= 190 mm
ELSE IF getBuildingHeight()>=11 m
IF getObjectLength(myWall)<8 m
getFloorNumber(myWall)=1
OR getFloorNumber(myWall)=2
THEN getObjectThickness(myWall)>=190 mm
ELSE IF getFloorNumber(myWall)=1
THEN getObjectThickness(myWall)>=290 mm
ELSE IF getFloorNumber(myWall)=2
THEN getObjectThickness(myWall)>=190 mm
END IF
END IF
IF getObjectMaterial(myWall)="벽돌"
THEN getObjectThickness(myWall)>= HW/20
ELSE IF getObjectMaterial(myWall)="Block"
THEN getObjectThickness(myWall)>= HW/16
END IF
END IF
}
제34조(테두리보) 건축물의 각층의 조적식구조인 내력벽 위에는 그 춤이 벽두께의 1.5배 이상인 철골구조 또는 철근콘크리트구조의 테두리보를 설치하여야 한다. 다만, 1층인 건축물로서 벽두께가 벽의 높이의 16분의 1이상이거나 벽길이가 5미터 이하인 경우에는 목조의 테두리보를 설치할 수 있다.
//건축물의 구조기준 등에 관한 규칙 34조 (테두리보)
Check(RSSB_34){
getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CS THEN KS
}
CS{
Wall myWall{
isObjectProperty(Wall.isLoadBearingWall)=True
}
isObjectProperty(myWall.Structure.isMansoryStructure)= True
}
KS{
WD=getObjectProperty(myWall.depth)
WH=getObjectProperty(myWall.height)
WallGirder myWallGirder{
getObjectProperty(WallGirder.height)>=1.5*WD
}
isInstalled(myWallGrider, myWall, Top)=True
IF getBuildingStoriesCount()=1
(WD>=WH/16
OR getObjectProperty(myWall.length)<=5 m
)
THEN getObjectProperty(myWallGrider.Structure.materialType)="Timber"
ELSE THEN getObjectProperty(myWallGrider.Structure.materialType)="SteelFrame"
OR getObjectProperty(myWallGrider.Structure.materialType)="ReinforcedConcrete"
END IF
}
제41조(적용범위) ①이 절의 규정은 보강블록구조의 건축물이나 보강블록구조와 철근콘크리트구조 그 밖의 구조를 병용하는 건축물의 보강블록구조인 부분에 이를 적용한다.
//건축물의 구조기준 등에 관한 규칙 41조 (적용범위 등) 1항
Check(RSSB_41_1){
getResult(RSSB_41_1) = TRUE AND KS
}
KS{
getObjectProperty(Building.Structure.materialType) = "SteelReinforcedConcreteBlock"
OR "ReinforcedConcrete"
}
제43조(내력벽) ①건축물의 각층에 있어서 건축물의 길이방향 또는 너비방향의 보강블록구조인 내력벽의 길이(대린벽의 경우에는 그 접합된 부분의 각 중심을 이은 선의 길이를 말한다. 이하 이 절에서 같다)는 각각 그 방향의 내력벽의 길이의 합계가 그 층의 바닥면적 1제곱미터에 대하여 0.15미터 이상이 되도록 하되, 그 내력벽으로 둘러쌓인 부분의 바닥면적은 80제곱미터를 넘을 수 없다.
// 건축물의 구조기준 등에 관한 규칙 43조 (내력벽) 1항
Check(RSSB_43_1){
getResult(RSSB_41_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS
}
KS{
Wall myWall{
isObjectProperty(Wall.isLoadBearingWall) = TRUE
getObjectProperty(Wall.Structure.materialType) = "SteelReinforcedConcreteBlock"
}
FA =getObjectArea(Floor.One)
getObjectProperty(myWall.Length)>= FA*0.15 m
getObjectProperty(myWall.width)>= FA*0.15 m
Space mySpace{
isSurrounded(Space, myWall)=True
}
getFloorArea(mySpace)<=80 m2
}
① 주요구조부(바닥·지붕틀 및 주계단은 제외한다. 이하 이 조에서 같다)가 목구조인 건축물은 지붕높이 18미터 이하, 처마높이 15미터 이하 및 연면적 3,000제곱미터 이하로 하여야 한다. 다만, 스프링클러를 설치하는 경우에는 연면적을 6,000제곱미터까지 허용할 수 있다.
①이 절의 규정은 벽돌구조·돌구조·콘크리트블록구조 그 밖의 조적식구조(보강블록구조를 제외한다. 이하 이 절에서 같다)의 건축물이나 조적식구조와 목구조 그 밖의 구조를 병용하는 건축물의 조적식구조로 된 부분에 이를 적용한다.
//건축물의 구조기준 등에 관한 규칙 28조 (적용범위 등) 1항
Check(RSSB_28_1){
getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND KS
}
KS{
(getObjectProperty(Building.Structure.materialType) = "Brick" OR "Stone" OR "ConcreteBlock")
OR (isObjectProperty(Building.Structure.isMansoryStructure) = TRUE
getObjectProperty(Building.Structure.materialType) != "SteelReinforcedConcreteBlock")
}
3. 높이 31미터를 넘는 층수가 4개층이하로서 당해 각층의 바닥면적의 합계 200제곱미터(벽 및 반자가 실내에 접하는 부분의 마감을 불연재료로 한 경우에는 500제곱미터)이내마다 방화구획으로 구획한 건축물
//건축물의 설비기준 등에 관한 규칙 9조 (비상용승강기를 설치하지 아니할 수 있는 건축물) 3호
Check(RFB_9_0_3){
KS
}
KS{
getBuildingHeight()>31 m
getBuildingStoriesCount()<=4
IF isObjectProperty(Wall.InteriorFinish.Material.nonCombustibility)=TRUE
isObjectProperty(CeilingCovering.InteriorFinish.Material.nonCombustibility)=TRUE
THEN isFirePartition(Floor, a,500)=TRUE
ELSE THEN isFirePartition(Floor, a,200)=TRUE
END IF
}
난방 및 냉방설비의 용량계산을 위한 외기조건은 각 지역별로 위험율 2.5%(냉방기 및 난방기를 분리한 온도출현분포를 사용할 경우) 또는 1%(연간 총시간에 대한 온도출현 분포를 사용할 경우)로 하거나 별표7에서 정한 외기온·습도를 사용한다. 별표7 이외의 지역인 경우에는 상기 위험율을 기준으로 하여 가장 유사한 기후조건을 갖는 지역의 값을 사용한다. 다만, 지역난방공급방식을 채택할 경우에는 산업통상자원부 고시 「집단에너지시설의 기술기준」에 의하여 용량계
다. 철재로 보강된 콘크리트블록조ㆍ벽돌조 또는 석조로서 철재에 덮은 콘크리트블록등의 두께가 5센티미터 이상인 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 1호 다목
Check (REFB_3_0_1_다){
IF CS THEN KS
}
CS{
getObjectProperty(Wall.Structure.materialType) = "ConcreteBlock" OR "Brick" OR "Stone"
isObjectProperty(Structure.isReinforcedSteelStructure) = TRUE
}
KS{
getObjectThickness(Wall.Structure) >= 5cm
}
마. 고온ㆍ고압의 증기로 양생된 경량기포 콘크리트패널 또는 경량기포 콘크리트블록조로서 두께가 10센티미터 이상인 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 1호 마목
Check (REFB_3_0_1_마){
KS
}
KS{
getObjectProperty(Wall.Structure.materialType) = "AeratedConcretePanel" OR "AeratedConcreteBlock"
getObjectThickness(Wall.Structure) >= 10cm
}
나. 철재로 보강된 콘크리트블록조ㆍ벽돌조 또는 석조로서 철재에 덮은 콘크리트블록등의 두께가 5센티미터 이상인 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 1호 다목
Check (REFB_3_0_4_나){
IF CS THEN KS
}
CS{
getObjectProperty(FloorSlab.Structure.materialType) = "ConcreteBlock" OR "Brick" OR "Stone"
isObjectProperty(Structure.isReinforcedSteelStructure) = TRUE
}
KS{
getObjectThickness(FloorSlab.Structure) >= 5cm
}
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 6호 나목
Check (REFB_3_0_6_나){
IF CS THEN KS
}
CS{
getObjectProperty(Roof.Structure.materialType) = "ConcreteBlock" OR "Brick" OR "Stone"
isObjectProperty(Structure.isReinforcedSteelStructure) = TRUE
}
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 6호 다목
Check (REFB_3_0_6_다){
IF CS THEN KS
}
CS{
getObjectProperty(Roof.Structure.materialType) = "GlassBlock" OR "WiredSheetGlass"
isObjectProperty(Structure.isReinforcedSteelStructure) = TRUE
}
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 7호 나목
Check (REFB_3_0_7_나){
KS
}
KS{
getObjectProperty(Stair.Structure.materialType) = "PlainConcrete" OR "ConcreteBlock" OR "Brick" OR "Stone"
}
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 7호 다목
Check (REFB_3_0_7_다){
IF CS THEN KS
}
CS{
getObjectProperty(Stair.Structure.materialType) = "ConcreteBlock" OR "Brick" OR "Stone"
isObjectProperty(Structure.isReinforcedSteelStructure) = TRUE
}
5. 거실의 벽 및 반자가 실내에 면하는 부분(반자돌림대ㆍ창대 그 밖에 이와 유사한 것을 제외한다. 이하 이 조에서 같다)의 마감은 불연재료ㆍ준불연재료 또는 난연재료로 하고, 그 거실로부터 지상으로 통하는 주된 복도ㆍ계단 그밖에 통로의 벽 및 반자가 실내에 면하는 부분의 마감은 불연재료 또는 준불연재료로 할 것
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 14조의2 (복합건축물의 피난시설 등) 5호
Check(REFB_14-2_0_5){
KS
}
KS{
Object myObject{
getObject(Room.wall)
getObject(Room.CeilingCovering)
}
Corridor myCorridor{
isGoThrough(Room, Corridor, Ground )=True
}
Stair myStair{
isGoThrough(Room,Stair, Ground )=True
}
Passage myPassage{
isGoThrough(Room,Passage, Ground )=True
}
Space mySpace{
Space.usage==myCorridor.usage
OR Space.usage==myStair.usage
OR Space.usage=myPassage.usage
}
Object myObject2{
getObject(mySpace.wall)
getObject(mySpace.CeilingCovering)
}
( isObjectProperty(myObject.InteriorFinish.Material.nonCombustibility)=True
OR isObjectProperty(myObject.InteriorFinish.Material.quasiNonCombustibility)=True
OR isObjectProperty(myObject.InteriorFinish.Material.flameResistance)= True
)
isObjectProperty(myObject2.InteriorFinish.Material.nonCombustibility)=True
OR isObjectProperty(myObject2.InteriorFinish.Material.quasiNonCombustibility)=True
}
4. 금속제 굴뚝은 목재 기타 가연재료로부터 15센티미터 이상 떨어져서 설치할 것. 다만, 두께 10센티미터 이상인 금속외의 불연재료로 덮은 경우에는 그러하지 아니하다.
check(REFB_20_0_4){
IF !CS THEN KS
}
CS{
(isObjectProperty(Chimney.Material.nonCombustibility)= TRUE
AND !(getObjectProperty(Chimney.Material)="Metal"))
And getElementWidth(NoncombustibleMaterials)>=10
}
KS{
getObjectDistance(Chimney, combustibleMaterials)>= 15CM
AND getObjectProperty(Chimney.Material)="Metal"))
}
다. 실내에 접하는 부분(바닥 및 반자 등 실내에 면한 모든 부분을 말한다)의 마감(마감을 위한 바탕을 포함한다)은 불연재료로 할 것
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 1호 다목
check(REFB_30_0_1_다){
KS
}
KS{
isObjectProperty(Space.InteriorFinish.Material.nonCombustibility)=TRUE
}
나. 계단실의 실내에 접하는 부분(바닥 및 반자 등 실내에 면한 모든 부분을 말한다)의 마감(마감을 위한 바탕을 포함한다)은 불연재료로 할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 나목
check(REFB_9_2_1_2){
KS
}
KS{
isObjectProperty(Stair.Space.InteriorFinish.Material.nonCombustibility) = TRUE
}
마. 계단실·노대 또는 부속실에 설치하는 건축물의 바깥쪽에 접하는 창문등(망이 들어 있는 유리의 붙박이창으로서 그 면적이 각각 1제곱미터이하인 것을 제외한다)은 계단실·노대 또는 부속실외의 당해 건축물의 다른 부분에 설치하는 창문등으로부터 2미터 이상의 거리를 두고 설치할 것
⑥법 제39조제1항에 따라 영 제39조제1항 각 호의 어느 하나에 해당하는 건축물의 바깥쪽으로 나가는 출입문에 유리를 사용하는 경우에는 안전유리를 사용하여야 한다. <신설 2006.6.29>
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 11조 (건축물의 바깥쪽으로의 출구의 설치기준) 6항
Check(REFB_11_6){
KS
}
KS{
Door myDoor{
isObjectProperty(Door.isEntrance)=TRUE
}
IF getObjectMaterial(myDoor)="Glass"
THEN getObjectType(Glass)="Safety"
}
3. 11층 이상의 층은 바닥면적 200제곱미터(스프링클러 기타 이와 유사한 자동식 소화설비를 설치한 경우에는 600제곱미터)이내마다 구획할 것. 다만, 벽 및 반자의 실내에 접하는 부분의 마감을 불연재료로 한 경우에는 바닥면적 500제곱미터(스프링클러 기타 이와 유사한 자동식 소화설비를 설치한 경우에는 1천500제곱미터)이내마다 구획하여야 한다.
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 14조 (방화구획의설치) 1항3호
check(REFB_14_1_3){
KS2 AND IF CS THEN KS
}
Floor myFloor {
getFloorNumebr()>= 11
}
KS2{
isFirepartition(myFloor,200)=TRUE
OR
((isExist(SprinklerSystem) = TRUE
OR isObjectProperty(ExtinguishingSystem.isAutomatic) = TRUE)
AND isFirepartition(myFloor,600)=TRUE)
}
CS1 {
isObjectProperty(Space.InteriorFinish.Material.nonCombustibility)=TRUE
}
KS1 {
isFirepartition(myFloor,500)=TRUE
OR
((isExist(SprinklerSystem) = TRUE
OR isObjectProperty(ExtinguishingSystem.isAutomatic) = TRUE)
AND isFirepartition(myFloor,1500)=TRUE)
}
②영 제52조에 따라 다음 각 호의 어느 하나에 해당하는 욕실 또는 조리장의 바닥과 그 바닥으로부터 높이 1미터까지의 안벽의 마감은 이를 내수재료로 하여야 한다. <개정 2010.4.7>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 18조 (거실등의 방습) 2항
Check(REFB_18_2){
IF CS THEN KS
}
CS{
getResult(REFB_18_2_1)=TRUE
OR getResult(REFB_18_2_2)=TRUE
}
KS{
Finish myFinish{
getObjectDistance(Finish,floor)<=1
isObjectPropert(InteriorFinish.Material.waterResistance)=TRUE
}
5. 비상탈출구는 피난층 또는 지상으로 통하는 복도나 직통계단에 직접 접하거나 통로 등으로 연결될 수 있도록 설치하여야 하며, 피난층 또는 지상으로 통하는 복도나 직통계단까지 이르는 피난통로의 유효너비는 0.75미터 이상으로 하고, 피난통로의 실내에 접하는 부분의 마감과 그 바탕은 불연재료로 할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 5호
check(REFB_25_2_5){
Floor myFloor(
isObjectProperty(Floor.isEscape) = TRUE
)
Stair myStair{
isObjectProperty(Stair.isDirect) = TRUE
(isDirectlyAccessible(Stair, Ground) = TRUE
OR isDirectlyAccessible(Stair, myFloor) = TRUE)
}
Corridor myCorridor{
isDirectlyAccessible(Corridor, myFloor) = TRUE
OR isDirectlyAccessible(Corridor, Ground) = TRUE
}
Door myDoor{
Door.functionType = "Emergency"
Door.Floor.number < 0
}
(isDirectlyAccessible(myDoor, myStair) = TRUE
OR isDirectlyAccessible(myDoor, myCorridor) = TRUE
OR isGoThrough(myDoor, Corridor, myStair) = TRUE
OR isGoThrough(myDoor, Corridor, myCorridor) = TRUE)
Passage myPassage{
isObjectProperty(Passage.isEscape) = TRUE
}
getSpaceWidth(myPassage) >= 0.75 m
isObjectProperty(myPassage.InteriorFinish.Material.nonCombustibility) = TRUE
}
①법 제52조제1항에 따라 영 제61조제1항 각 호의 건축물에 대하여는 그 거실의 벽 및 반자의 실내에 접하는 부분(반자돌림대·창대 기타 이와 유사한 것을 제외한다. 이하 이 조에서 같다)의 마감은 불연재료·준불연재료 또는 난연재료로 하여야 하며, 그 거실에서 지상으로 통하는 주된 복도·계단 기타 통로의 벽 및 반자의 실내에 접하는 부분의 마감은 불연재료 또는 준불연재료로 하여야 한다. <개정 2005.7.22, 2010.4.7, 2010.12.30>
check(REFB_24_1){
KS}
KS{
(check(EDBA_61_1_1)=TRUE
OR check(EDBA_61_1_2)=TRUE
OR check(EDBA_61_1_3)=TRUE
OR check(EDBA_61_1_4)=TRUE)
OR check(EDBA_61_1_5)=TRUE)
OR check(EDBA_61_1_6)=TRUE)
OR check(EDBA_61_1_7)=TRUE)
AND (getObjectProperty(Room.Wall.Material.noncombustible)= TRUE
AND (getObjectProperty(CeilingCornice | WindowSill.Material.noncombustible)= TRUE
OR !(getObjectProperty(CeilingCornice | WindowSill.Material.noncombustiblel)= TRUE)
AND (isGoThrough(Room, Corridor | Stair | Passage,Ground)= TRUE
AND (isFireResistant(getWall(Corridor))=TRUE
AND isFireResistant(getWall(Stair))=TRUE
AND isFireResistant(getWall(Passage))=TRUE
AND isFireResistant(getObject(CeilingCovering))=TRUE)
}
②영 제61조제1항 각 호의 건축물 중 다음 각 호의 어느 하나에 해당하는 거실의 벽 및 반자의 실내에 접하는 부분의 마감은 제1항에도 불구하고 불연재료 또는 준불연재료로 하여야 한다. <개정 2003.1.6, 2005.7.22, 2006.6.29, 2010.4.7, 2010.12.30>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조 (건축물의 마감재료) 2항
check(REFB_24_2){
IF CS THEN KS
}
CS{
getResult(REFB_24_2_1)=TRUE
OR getResult(REFB_24_2_2)=TRUE
}
KS{
(isObjectProperty(CeilingCovering.InteriorFinish.Material.nonCombustibility)=TRUE
OR isObjectProperty(CeilingCovering.InteriorFinish.Material.quasiNonCombustibility)=TRUE )
(isObjectProperty(Room.Wall.InteriorFinish.Material.nonCombustibility)=TRUE
OR isObjectProperty(Room.Wall.InteriorFinish.Material.quasiNonCombustibility)=TRUE
)
}
④영 제61조제1항제2호에 따른 공동주택에는 「다중이용시설 등의 실내공기질관리법」 제11조제1항 및 같은 법 시행규칙 제10조에 따라 환경부장관이 고시한 오염물질방출 건축자재를 사용하여서는 아니 된다. <신설 2006.6.29, 2010.12.30>
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조 (건축물의 마감재료) 4항
Check(REFB_24_4){
IF CS THEN KS
}
Building myBuilding{
getResult(EDBA_61_1_2)=TRUE
}
CS{
isExist(myBuilding)=TRUE
}
KS{
isObjectProperty(myBuilding.Material.isEmittingPollutant)=FALSE
}
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 13조 (헬리포트 및 구조공간 설치 기준) 3항 5호
Check(REFB_13_3_5){
KS
}
KS{
Space mySpace{
isObjectProperty(Space.isEscape) = TRUE
}
isObjectProperty(mySpace.InteriorFinish.Material.nonCombustibility)=True
}
제20조의2 (내화구조의 적용이 제외되는 공장건축물) 영 제56조제1항제3호 단서에서 "국토해양부령으로 정하는 공장"이란 별표 2의 업종에 해당하는 공장으로서 주요구조부가 불연재료로 되어 있는 2층 이하의 공장을 말한다. <개정 2005.7.22, 2008.3.14, 2009.7.1>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 3조 (내화구조) 1호 가목
Check (REFB_3_0_1_가){
KS
}
KS{
getObjectProperty(Wall.Structure.materialType) = "ReinforcedConcrete" OR "SteelFramedReinforcedConcrete"
getWallThickness(Wall) >= 10cm
}
② 방화지구 안의 공작물로서 간판, 광고탑, 그 밖에 대통령령으로 정하는 공작물 중 건축물의 지붕 위에 설치하는 공작물이나 높이 3미터 이상의 공작물은 주요부를 불연(不燃)재료로 하여야 한다.
//건축법 51조 (방화지구 안의 건축물) 2항
Check(BA_51_2){
IF CS THEN KS
}
CS{
getResult(LPUA_37_1_4)=True
}
KS{
Construction myConstruction {
isInstalled(Construction , Rooftop)=True
OR Construction.height>=3 m
}
isObjectProperty(myConstruction.MainStructuralPart.Material.nonCombustibility)=True
}
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
}
2. 제2종 근린생활시설 중 공연장·종교집회장·인터넷컴퓨터게임시설제공업소·학원·독서실·당구장·다중생활시설의 용도로 쓰는 건축물
Check(EDBA_61_1_2){
IF CS THEN KS1 OR KS2}
Building myBuilding{
getBuildingUsage()="DetachedHouse.Multi-userHouses"
OR getBuildingUsage()="DetachedHouse.Multi-familyHouses"
OR getBuildingUsage()="ClassIINeighborhoodLivingFacility.EducationalInstitute"
OR getBuildingUsage()="ClassIINeighborhoodLivingFacility.ReadingRooms
OR getBuildingUsage()="ClassIINeighborhoodLivingFacility.CommunalLivingFacility
OR getBuildingUsage()="ClassIINeighborhoodLivingFacility.LodgingFacility"
OR getBuildingUsage()="ClassIINeighborhoodLivingFacility.MedicalFacility"
OR getBuildingUsage()="EducationAndResearchFacility.EducationalInstitute"
OR getBuildingUsage()="BusinessFacility.Oofficetels"
OR getBuildingUsage()="FuneralParlors"
}
MBU = getObjectUsage(myBuilding)
CS{
getBuildingUsage() = MBU
Floor myfloor{
Floor.number>=3
}
KS1{
(Floor.number>=3
AND getTotalfloorarea(Room)>=200m2)
KS2{isObjectProperty(MainStructuralPart.isFireResistantStructure)=TRUE
OR isObjectProperty(MainStructuralPart.Material.nonCombustibility)=TRUE
AND Floor.number>=3
getTotalfloorarea(Room)>=200m2
}
①법 제52조제1항에서 "대통령령으로 정하는 용도 및 규모의 건축물"이란 다음 각 호의 어느 하나에 해당하는 건축물을 말한다. 다만, 그 주요구조부가 내화구조 또는 불연재료로 되어 있고 그 거실의 바닥면적(스프링클러나 그 밖에 이와 비슷한 자동식 소화설비를 설치한 바닥면적을 뺀 면적으로 한다. 이하 이 조에서 같다) 200제곱미터 이내마다 방화구획이 되어 있는 건축물은 제외한다. <개정 2009.7.16, 2010.2.18, 2010.12.13, 2013.3.23, 2014.3.24, 2014.8.27, 2014.10.14, 2015.9.22, 2017.2.3>
//건축법 시행령 61조 (건축물의 마감재료) 1항
Check(EDBA_61_1){
IF !CS THEN KS
}
CS{
(isObjectProperty(MainStructuralPart.isFireResistantStructure)=TRUE
OR isObjectProperty(MainStructuralPart.Material.nonCombustibility)=TRUE)
isFirePartition(Room.Floor, a, 200)=TRUE
}
KS{
getResult(EDBA_61_1_1)=TRUE
OR getResult(EDBA_61_1_2)=TRUE
OR getResult(EDBA_61_1_3)=TRUE
OR getResult(EDBA_61_1_4)=TRUE
OR getResult(EDBA_61_1_5)=TRUE
OR getResult(EDBA_61_1_6)=TRUE
OR getResult(EDBA_61_1_7)=TRUE
}
① 법 제49조제1항에 따라 5층 이상 또는 지하 2층 이하인 층에 설치하는 직통계단은 국토해양부령으로 정하는 기준에 따라 피난계단 또는 특별피난계단으로 설치하여야 한다. 다만, 건축물의 주요구조부가 내화구조 또는 불연재료로 되어 있는 경우로서 다음 각 호의 어느 하나에 해당하는 경우에는 그러하지 아니하다. <개정 2008.10.29>
//건축법 시행령 35조(피난계단의 설치) 1항
Check(EDBA_35_1){
IF (!CS1 AND !CS2 AND CS3) THEN KS
}
CS1 {
isFireProofStructure(MainStructuralPart) = TRUE
OR isObjectProperty(MainStructuralPart.Material.nonCombustibility) = TRUE
}
CS2 {
getResult(EDBA_35_1_1) = TRUE
OR getResult(EDBA_35_1_2) = TRUE
}
CS3{
Floor myFloor {
Floor.number > 5
OR Floor.number <= -2
}
Stair myStair {
isObjectProperty(Stair.isDirect) = TRUE
}
hasElement(myFloor, myStair) = TRUE
}
KS {
isObjectProperty(myStair.isEscape) = TRUE
OR isObjectProperty(myStair.isSpecialEscape) = TRUE
}
① 법 제49조제2항에 따라 주요구조부가 내화구조 또는 불연재료로 된 건축물로서 연면적이 1천 제곱미터를 넘는 것은 국토해양부령으로 정하는 기준에 따라 내화구조로 된 바닥·벽 및 제64조에 따른 갑종 방화문(국토해양부장관이 정하는 기준에 적합한 자동방화셔텨를 포함한다. 이하 이 조에서 같다)으로 구획(이하 "방화구획"이라 한다)하여야 한다. 다만, 「원자력법」 제2조에 따른 원자로 및 관계시설은 「원자력법」에서 정하는 바에 따른다.
//건축법 시행령 46조 (방화구획의 설치) 1항
Check(EDBA_46_1){
IF (!CS1 AND CS2) THEN KS
}
CS1{
getBuildingUsage()="NuclearReactorAndRelatedFacility"
}
CS2{
(isObjectProperty(MainStructuralPart.isFireResistantStructure)=TRUE
OR isObjectProperty(MainStructuralPart.Material.nonCombustibility)=TRUE))
AND Building.grossFloorArea>1000 m2
}
KS{
Floor myFloor{
isObjectProperty(FloorSlab.isFireResistantStructure)=TRUE
}
Wall myWall{
isObjectProperty(Wall.isFireResistantStructure)=TRUE
}
Door myDoor{
isObjectProperty(Door.isStrictFireproofDoor)=TRUE
}
isFirePartition(Building, myFloor)=TRUE
AND isFirePartition(Building, myWall)=TRUE
AND isFirePatrition(Building, myDoor)=TRUE
AND getResult(REFB_14_1)=TRUE
AND getResult(REFB_14_2)=TRUE
AND getResult(REFB_14_3)=TRUE
}
① 법 제50조제2항에 따라 연면적 1천 제곱미터 이상인 건축물은 방화벽으로 구획하되, 각 구획된 바닥면적의 합계는 1천 제곱미터 미만이어야 한다. 다만, 주요구조부가 내화구조이거나 불연재료인 건축물과 제56조제1항제5호 단서에 따른 건축물 또는 내부설비의 구조상 방화벽으로 구획할 수 없는 창고시설의 경우에는 그러하지 아니하다.
// 건축법 시행령 57조 ( 대규모 건축물의 방화벽 등) 1항
Check(EDBA_57_1){
IF (CS1 AND CS2) THEN KS
}
CS1{
getObjectProperty(MainStructuralPart.isFireResistantStructure) = TRUE
OR getObjectProperty(MainStructuralPart.Material.nonCombustibility) = TRUE
OR getResult(EDBA_56_1_5) = TRUE
}
CS2{
getObjectProperty(Building.grossFloorArea) >= 1000m2
}
KS{
Space mySpace{
getFloorArea(Space) < 1000m2
}
Space mySpace2{
Space != mySpace
}
Wall myWall{
isObjectProperty(Wall.isFireProofWall) = TRUE
}
isPartitioned(mySpace, mySpace2, myWall) = TRUE
}
① 건축물의 피난층(직접 지상으로 통하는 출입구가 있는 층을 말한다. 이하 같다) 외의 층에서는 피난층 또는 지상으로 통하는 직통계단(경사로를 포함한다. 이하 같다)을 거실의 각 부분으로부터 계단(거실로부터 가장 가까운 거리에 있는 계단을 말한다)에 이르는 보행거리가 30미터 이하가 되도록 설치하여야 한다. 다만, 건축물(지하층에 설치하는 것으로서 바닥면적의 합계가 300제곱미터 이상인 공연장·집회장·관람장 및 전시장은 제외한다)의 주요구조부가 내화구조 또는 불연재료로 된 건축물은 그 보행거리가 50미터(층수가 16층 이상인 공동주택은 40미터) 이하가 되도록 설치할 수 있으며, 자동화 생산시설에 스프링클러 등 자동식 소화설비를 설치한 공장으로서 국토해양부령으로 정하는 공장인 경우에는 그 보행거리가 75미터(무인화 공장인 경우에는 100미터) 이하가 되도록 설치할 수 있다. <개정 2009.7.16>
// 건축법 시행령 34조 (직통계단의 설치) 1항
Check(EDBA_34_1){
KS
}
KS{
Floor myFloor{
isObjectProperty(Floor.isEscape) = TRUE
}
Space mySpace{
getObjectProperty(Space.usage)="PerformanceHall"
OR getObjectProperty(Space.usage)="AssemblyHall"
OR getObjectProperty(Space.usage)="Auditorium"
OR getObjectProperty(Space.usage)="ExhibitionHall"
}
Door myDoor{
isDirectlyAccessible(Door, Ground)=TRUE
}
Stair myStair{
isObjectProperty(Stair.isDirect)=TRUE
isAccessible(Stair,myFloor)=TRUE
OR isAccessible(Stair,Ground)=TRUE
}
Ramp myRamp{
isAccessible(Ramp,myFloor)=TRUE
OR isAccessible(Ramp,Ground)=TRUE
}
Floor myFloor2{
isObjectProperty(Floor.isEscape)=FALSE
OR hasObject(Floor, myDoor)=FALSE
}
Zone myZone{
isDirectlyAccessible(myStair, Zone)=FALSE
}
IF
getFloorNumber(mySpace)>0
getFloorArea(mySpace)<=300 m2
isFireResistantStructure(MainStructuralPart)=TRUE
OR isObjectProperty(MainStructuralPart.Material.nonCombustibility)=TRUE
THEN IF getBuildingStoriesCount()>=16
getBuildingUsage()="MultiUnitHouse"
THEN ED= 40
ELSE THEN ED=50
END IF
ELSE IF
getBuildingUsage() = "Factory"
isExist(ExtinguishingSystem)=TRUE
isObjectProperty(ExtinguishingSystem.isAutomatic)=TRUE
getResult(REFB_8_2)=TRUE
THEN IF getBuildingUsage() = "UnmannedFactory"
THEN ED=100
ELSE THEN ED=75
END IF
ELSE THEN ED=30
END IF
(hasObject(myFloor,myStair)=TRUE
hasObject(myZone, myStair)=TRUE
getObjectDistance(Room,myStair, 1)<=ED)
OR
(hasObject(myFloor,myRamp)=TRUE
hasObject(myZone, myRamp)=TRUE
getObjectDistance(Room,myRamp, 1)<=ED)
}
max_route_length = 30
def Check():
evac_storey_exist = False
stories = SELECT('storey')
for storey in stories:
if storey.SELECT('is evacuation storey').BOOL() == True:
evac_storey_exist = True
break
if evac_storey_exist == False:
ERROR('피난층이 존재하지 않습니다.')
return
for storey in stories:
if storey.SELECT('is evacuation storey').BOOL() == True:
continue
stairs = storey.SELECT('direct stair')
if stairs.COUNT() == 0:
storey.ERROR(storey.SELECT('name').STRING() + '에 직통계단이 존재하지 않습니다.')
continue
for space in storey.SELECT('space'):
route_length = -1
for route in space.SELECT('escape route', stairs):
length = route.SELECT('length').UNIT('m').NUMBER()
if length > 0:
if route_length < 0:
route_length = length
else:
route_length = min([route_length, length])
if route_length < 0:
space.ERROR(space.SELECT('name').STRING() + '부터 직통계단까지 갈 수 없다.')
elif route_length > max_route_length:
space.ERROR(space.SELECT('name').STRING() + '부터 직통계단까지의 거리가 멀다 : ' + str(route_length))
else:
space.SUCCESS(space.SELECT('name').STRING() + ' : ' + str(route_length))
제5조(배관 등) ①배관은 배관용탄소강관(KS D 3507) 또는 압력배관용탄소강관(KS D 3562)이나 이와 동등 이상의 강도·내식성 및 내열성을 가진 것으로 하여야 한다. 다만, 다음 각 호의 어느 하나에 해당하는 장소에는 법 제39조에 따라 제품검사에 합격한 소방용 합성수지배관으로 설치할 수 있다. <개정 2012.8.20>
// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 1항
Check(NFSC503_5_1){
IF !CS THEN KS
}
CS{
getResult(NFSC503_5_1_2) = TRUE
getResult(NFSC503_5_1_3) = TRUE
}
KS{
getObjectProperty(Pipe.Material) = "KS D 3507"
OR getObjectProperty(Pipe.Material) = "KS D 3562"
}
제4조(배관) ①배관은 배관용탄소강관(KS D 3507) 또는 압력배관용탄소강관(KS D 3562)이나 이와 동등 이상의 강도·내식성 및 내열성을 가진 것으로 하여야 한다. 다만, 다음 각 호의 어느 하나에 해당하는 장소에는 법 제39조에 따라 제품검사에 합격한 소방용 합성수지배관으로 설치할 수 있다.<개정 2012.8.20>
// 연소방지설비의 화재안전기준(nfsc 506) 8조 (방화벽의 설치기준) 3호
Check(NFSC506_8_0_3){
KS
}
KS{
Wall myWall{
isObjectProperty(Wall.isFireProofWall)=True
}
IF isInstalled(Wire, myWall)=True
THEN isObjectProperty(Wire.Finish.Material.isFireStop)= TRUE
END IF
IF isInstalled(Cable, myWall)=True
THEN isObjectProperty(Cable.Finish.Material.isFireStop)= TRUE
END IF
}