②조적식구조인 내력벽의 두께는 그 건축물의 층수·높이 및 벽의 길이에 따라 각각 다음 표의 두께 이상으로 하되, 조적재가 벽돌인 경우에는 당해 벽높이의 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"
}
②높이 4미터 이하이고, 연면적 20제곱미터 이하인 건축물에 대하여는 제42조 및 제45조의 규정에 한하여 이를 적용한다.
//건축물의 구조기준 등에 관한 규칙 41조 (적용범위) 2항
Check(RSSB_41_2){
getResult(RSSB_41_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CS THEN KS
}
CS{
getBuildingHeight()<=4 m
getGrossFloorArea() <=20 m2
}
KS{
getResult(RSSB_42)=True
getResult(RSSB_45)=True
}
②높이가 4미터 이하이고 연면적이 30제곱미터 이하인 건축물이나 높이가 3미터 이하인 담에 대하여는 제49조 및 제51조의 규정에 한하여 이를 적용한다.
//건축물의 구조기준 등에 관한 규칙 47조 (적용범위) 2항
Check(RSSB_47_2){
getResult(RSSB_3_3) = TRUE AND IF CS THEN KS
}
CS{
getBuildingHeight()<=4 m
getGrossFloorArea() <=30 m2
OR getObjectHeight(Fence)<= 3m
}
KS{
getResult(RSSB_51)=True
}
②2층 이상인 건축물에 있어서는 모서리에 설치하는 기둥 또는 이에 준하는 기둥은 통재(通材)기둥으로 하여야 한다. 다만, 이은기둥의 경우 그 이은 부분을 통재기둥과 동등 이상의 내력을 가지도록 보강한 경우에는 그러하지 아니하다.
//건축물의 구조기준 등에 관한 규칙 24조 (압축재의 최소단면 및 모서리에 설치하는 기둥) 2항
Check(RSSB_24_2){
getResult(RSSB_3_3) = TRUE AND IF CS THEN KS
}
CS{
getBuildingStoriesCount() >= 2
}
KS{
Column myColumn{
isInstalled(Column, Building.Edge) = TRUE
①이 절의 규정은 벽돌구조·돌구조·콘크리트블록구조 그 밖의 조적식구조(보강블록구조를 제외한다. 이하 이 절에서 같다)의 건축물이나 조적식구조와 목구조 그 밖의 구조를 병용하는 건축물의 조적식구조로 된 부분에 이를 적용한다.
//건축물의 구조기준 등에 관한 규칙 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
}
②가스보일러에 의한 난방설비를 설치하고 가스를 중앙집중공급방식으로 공급하는 경우에는 제1항의 규정에 불구하고 가스관계법령이 정하는 기준에 의하되, 오피스텔의 경우에는 난방구획마다 내화구조로 된 벽·바닥과 갑종방화문으로 된 출입문으로 구획하여야 한다. <신설 1999.5.11.>
// 건축물의 설비기준 등에 관한 규칙 13조 (개별난방설비) 2항
Check(RFB_13_2){
IF CS THEN KS
}
CS{
getBuildingUsage() = "Officetel"
}
KS{
Wall myWall{
isObjectProperty(Wall.isfireResistantStructure)
}
FloorSlab myFloorSlab{
isObjectProperty(FloorSlab.isFireResistantStructure) = TRUE
}
Door myDoor{
isObjectProperty(Door.isStrictFireproofDoor) = TRUE
}
Zone myZone{
isObjectProperty(Zone.isHeatingSection) = TRUE
}
isPartitioned(myZone, myWall) = TRUE
OR isPartitioned(myZone, myFloorSlab) = TRUE
OR isPartitioned(myZone, myDoor) = TRUE
}
5. 측면 낙뢰를 방지하기 위하여 높이가 60미터를 초과하는 건축물 등에는 지면에서 건축물 높이의 5분의 4가 되는 지점부터 최상단부분까지의 측면에 수뢰부를 설치하여야 하며, 지표레벨에서 최상단부의 높이가 150미터를 초과하는 건축물은 120미터 지점부터 최상단부분까지의 측면에 수뢰부를 설치할 것. 다만, 건축물의 외벽이 금속부재(部材)로 마감되고, 금속부재 상호간에 제4호 후단에 적합한 전기적 연속성이 보장되며 피뢰시스템레벨 등급에 적합하게 설치하여
//건축물의 설비기준 등에 관한 규칙 20 (피뢰설비) 5호
Check(RFB_20_0_5){
IF(CS1 THEN KS1) OR (CS2 THEN KS2)
}
CS1{
getBuildingHeight() > 60m
}
KS1{
BH1 = getBuildingHeight()
isInstalled(Terminal, Building, a, side) = TRUE
getObjectVerticalDistance(Ground, Terminal, a) >= BH1 * 4/5
getObjectVerticalDistance(Ground, Terminal, a) < BH1
}
CS2{
getBuildingHeight() > 150m
}
KS2{
BH2 = getBuildingHeight()
isInstalled(Terminal, Building, a, side) = TRUE
getObjectVerticalDistance(Ground, Terminal, a) >= 120m
getObjectVerticalDistance(Ground, Terminal, a) < BH2
}
1. 영 제46조제1항의 규정에 의하여 건축물에 방화구획이 설치된 경우에는 그 구획마다 1개소 이상의 배연창을 설치하되, 배연창의 상변과 천장 또는 반자로부터 수직거리가 0.9미터 이내일 것. 다만, 반자높이가 바닥으로부터 3미터 이상인 경우에는 배연창의 하변이 바닥으로부터 2.1미터 이상의 위치에 놓이도록 설치하여야 한다.
//건축물의 설비기준 등에 관한 규칙 14조 (배연설비) 1항 1호
Check(RFB_14_1_1){
IF (CS) THEN KS1 AND KS2
}
Zone myZone{
isObjectProperty(Zone.isFirePartition) = TRUE
}
CS{
isObjectProperty(Building.isFirePartition) = TRUE
}
KS1{
hasSpace(myZone, SmokeVentilator) = TRUE
getObjectVerticalDistance(SmokeVentilator, Ceiling) < 0.9 m
OR getObjectVerticalDistance(SmokeVentilator, CeilingCovering) < 0.9 m
}
KS2{
IF{
getSpaceHeight(myZone, b) >= 3 m
}
THEN{
getObjectVerticalDistance(SmokeVentilator, FloorSlab) >= 2.1 m
}
}
2. 배연창의 유효면적은 별표 2의 산정기준에 의하여 산정된 면적이 1제곱미터 이상으로서 그 면적의 합계가 당해 건축물의 바닥면적(영 제46조제1항 또는 제3항의 규정에 의하여 방화구획이 설치된 경우에는 그 구획된 부분의 바닥면적을 말한다)의 100분의 1이상일 것. 이 경우 바닥면적의 산정에 있어서 거실바닥면적의 20분의 1 이상으로 환기창을 설치한 거실의 면적은 이에 산입하지 아니한다.
//건축물의 설비기준 등에 관한 규칙 14조 (배연설비) 1항 2호
Check(RFB_14_1_2){
IF (CS) THEN (KS1 OR KS2)
}
Zone myZone{
isObjectProperty(Zone.isFirePartition) = TRUE
}
Space mySpace{
getSpaceUsage(Space) = "Room"
getTotalElementArea(Ventilator) >= getFloorArea(Space)*0.05
}
Space mySpace2{
hasSpace(Space, myZone) = TRUE
getResult(EDBA_46_1) = TRUE
getREsult(EDBA_46_3) = TRUE
}
CS{
getElementArea(SmokeVentilator) >= 1 m2
getResult(RFB_*_2) = TRUE
}
KS1{
getTotalElementArea(Ventilator) >= (getBuildingArea()-getFloorArea(mySpace))*0.01
}
KS2{
getTotalElementArea(Ventilator) >= (getFloorArea(myZone)-getFloorArea(mySpace))*0.01
}
③상업지역 및 주거지역에서 법 제2조제1항제11호의 규정에 의한 도로(막다른 도로로서 그 길이가 10미터 미만인 경우를 제외한다)에 접한 대지의 건축물에 설치하는 냉방시설 및 환기시설의 배기구는 도로면으로부터 2미터 이상의 높이에 설치하거나 배기장치의 열기가 보행자에게 직접 닿지 아니하도록 설치하여야 한다. <신설 2002.8.31>
// 건축물의 설비기준 등에 관한 규칙 23조 (건축물의 냉방설비) 3항
Check(RFB_23_3){
IF CS THEN KS
}
CS{
getBuildingUsage() = "ResidentialArea"
OR getBuildingUsage() = "CommercialArea"
}
KS{
getResult(RFB_23_3_1)
}
가. 바닥난방 부위에 설치되는 단열재는 바닥난방의 열이 슬래브 하부 및 측벽으로 손실되는 것을 막을 수 있도록 온수배관(전기난방인 경우는 발열선) 하부와 슬래브 사이에 설치하고, 온수배관(전기난방인 경우는 발열선) 하부와 슬래브 사이에 설치되는 구성 재료의 열저항의 합계는 층간 바닥인 경우에는 해당 바닥에 요구되는 총열관류저항(별표1에서 제시되는 열관류율의 역수)의 60% 이상, 최하층 바닥인 경우에는 70% 이상이 되어야 한다. 다만, 바닥난방을 하는
//스프링클러설비의 화재안전기준(NFSC 103) 10조 (헤드) 1항
Check(NFSC_10_1){
KS2 AND IF CS THEN KS1
KS2{
Space mySpace1{
천장과반자사이
}
hasElement(SpecificFireFightingBuilding.Ceiling,SprinklerHead)= TRUE
hasElement(SpecificFireFightingBuilding.CeilingCovering,SprinklerHead)= TRUE
hasElement(SpecificFireFightingBuilding.mySpace1,SprinklerHead)= TRUE
hasElement(SpecificFireFightingBuilding.Duct,SprinklerHead)= TRUE
hasElement(SpecificFireFightingBuilding.Shelf,SprinklerHead)= TRUE
}
CS{
Space mySpace2{
isExternal(Space)= FALSE
}
getSpaceWidth(Building.mySpace)<= 9m
}
KS1{
Wall myWall{
Wall.isSideWall=TRUE
}
hasElement(myWall,SprinklerSystem.Head)=TRUE
hasElement(myWall,SprinklerSystem.Head)=FALSE
}
//스프링클러설비의 화재안전기준 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
}
난방 및 냉방설비의 용량계산을 위한 외기조건은 각 지역별로 위험율 2.5%(냉방기 및 난방기를 분리한 온도출현분포를 사용할 경우) 또는 1%(연간 총시간에 대한 온도출현 분포를 사용할 경우)로 하거나 별표7에서 정한 외기온·습도를 사용한다. 별표7 이외의 지역인 경우에는 상기 위험율을 기준으로 하여 가장 유사한 기후조건을 갖는 지역의 값을 사용한다. 다만, 지역난방공급방식을 채택할 경우에는 산업통상자원부 고시 「집단에너지시설의 기술기준」에 의하여 용량계
제14조의2(복합건축물의 피난시설 등) 영 제47조제1항 단서의 규정에 의하여 같은 건축물안에 공동주택ㆍ의료시설ㆍ아동관련시설 또는 노인복지시설(이하 이 조에서 "공동주택등"이라 한다)중 하나 이상과 위락시설ㆍ위험물저장 및 처리시설ㆍ공장 또는 자동차정비공장(이하 이 조에서 "위락시설등"이라 한다)중 하나 이상을 함께 설치하고자 하는 경우에는 다음 각 호의 기준에 적합하여야 한다. <개정 2005.7.22.>
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 14조의2 (복합건축물의 피난시설 등)
Check(REFB_14-2){
IF CS THEN KS
}
CS{
Building myBuilding1{
Building.usage = "MultiUnitHouse"
OR Building.usage = "MedicalFacility"
OR Building.usage = "ChildrenRelatedFacility"
OR Building.usage = "WelfareFacilityForTheAged"
}
Building myBuilding2{
Building.usage = "AmusementFacility"
OR Building.usage = "FacilityForStorageAndTreatmentOfDangerousSubstance"
OR Building.usage = "Factory"
OR Building.usage = "AutomobileRepairShop"
}
hasObject(Building, myBuilding1) = TRUE
hasObject(Building, myBuilding2) = TRUE
}
KS{
getResult(REFB_14-2_0_1)=True
getResult(REFB_14-2_0_2)=True
getResult(REFB_14-2_0_3)=True
getResult(REFB_14-2_0_4)=True
getResult(REFB_14-2_0_5)=True
}
③영 제35조제1항에 따른 피난계단 또는 특별피난계단은 돌음계단으로 하여서는 아니되며, 영 제40조에 따라 옥상광장을 설치하여야 하는 건축물의 피난계단 또는 특별피난계단은 해당 건축물의 옥상으로 통하도록 설치하여야 한다. 이 경우 옥상으로 통하는 출입문은 피난방향으로 열리는 구조로서 피난시 이용에 장애가 없어야 한다. <개정 2010.4.7>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 3항
Check(REFB_9_3) {
KS
}
KS {
Stair myStair1{
isObjectProperty(Stair.isEscape)=TRUE
OR isObjectProperty(Stair.isSpecialEscape)=TRUE
}
Space mySpace{
getObjectProperty(Space.usage) = “RooftopPlaza”
}
hasObject(Rooftop, mySpace)=TRUE
}
Stair myStair2{
hasObject(mySpace.Building,myStair1)=TRUE
}
getObjectProperty(myStair.type)!= “WindingStair”
isAccessible(myStair2,mySpace)=TRUE
isEgressDirection(mySpace.Door) = TRUE
}
④영 제35조제2항에서 "갓복도식 공동주택"이라 함은 각 층의 계단실 및 승강기에서 각 세대로 통하는 복도의 한쪽 면이 외기(外氣)에 개방된 구조의 공동주택을 말한다. <신설 2006.6.29>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 4항
Check(REFB_9_4) {
KS
}
Building myBuilding{
Building.usage = “SideCorridorTypeMultiUnitHouse”
}
Space mySpace = getSpace(“Corridor”)
isConnectedToExternal(mySpace)=TRUE
②영 제39조제1항에 따라 건축물의 바깥쪽으로 나가는 출구를 설치하는 건축물중 문화 및 집회시설(전시장 및 동·식물원을 제외한다), 종교시설, 장례식장 또는 위락시설의 용도에 쓰이는 건축물의 바깥쪽으로의 출구로 쓰이는 문은 안여닫이로 하여서는 아니된다. <개정 2010.4.7>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 11조 (건축물의 바깥쪽으로의 출구의 설치기준) 2항
Check(REFB_11_2){
IF CS1 AND CS2 THEN KS
}
CS1 {
Building myBuilding{
getBuildingUsage() = “CulturalAndAssemblyFacility”
OR getBuildingUsage() = “ReligiousFacility”
OR getBuildingUsage() = “AmusementFacility”
OR getBuildingUsage() = “FuneralParlor”
getBuildingUsage() != “ExhibitionHall”
getBuildingUsage() != “ZoologicalAndBotanicalGarden”
}
Door myDoor{
isObjectProperty(myBuilding.Door.isEntrance)=TRUE
}
isExist(myDoor) = TRUE
}
KS {
getObjectProperty(myDoor.panelOperationType) != “OpeningInDoor”
}
2. 제1종 근린생활시설 중 마을회관·마을공동작업소·마을공동구판장·변전소·양수장·정수장·대피소·공중화장실 기타 이와 유사한 것
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 11조 (건축물의 바깥쪽으로의 출구의 설치기준) 5항 2호
Check(REFB_11_5_2){
KS
}
KS {
Building myBuilding{
getBuildingUsage() = “ClassINeighborhoodLivingFacility.VillageHall”
OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.CommunityWorkspace”
OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.CommunitySalesShop”
OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.Substation”
OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.PumpingStation”
OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.PurificationPlant”
OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.Shelter”
OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.PublicLibrary”
OR getBuildingUsage() = “ClassINeighborhoodLivingFacility.PublicToilet”
}
isExist(myBuilding) = TRUE
}
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
}
1. 초등학교의 계단인 경우에는 계단 및 계단참의 너비는 150센티미터 이상, 단높이는 16센티미터 이하, 단너비는 26센티미터 이상으로 할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조 (계단의 설치기준) 2항1호
check(REFB_15_2_1){
IF CS THEN KS
}
CS{
getBuildingUsage()="ElementarySchool"
}
KS{
getObjectWidth(Stair)>= 150 cm
getObjectWidth(StairLanding)>150 cm
getObjectProperty(Stair.riserHeight)>=16 cm
getObjectProperty(Stair.riserWidth)>=26 cm
}
def Check():
for building in SELECT('building'):
bldg_use = building.SELECT('building type').STRING()
sub_use = building.SELECT('prop', '세부용도').STRING()
min_clear_w = 0.6
max_riser_h = 0.0
min_tread_w = 0.0
if bldg_use == '교육연구시설':
min_clear_w = 1.5
min_tread_w = 0.26
if sub_use == '초등학교':
max_riser_h = 0.16
elif sub_use in ['중학교', '고등학교']:
max_riser_h = 0.18
elif (bldg_use == '문화 및 집회시설' and sub_use in ['공연장', '집회장', '관람장']) or (bldg_use == '판매시설'):
min_clear_w = 1.2
else:
min_clear_w = 0.6
for storey in building.SELECT('storey'):
for stair in storey.SELECT('stair'):
clear_width = stair.SELECT('clear width').UNIT('m')
clear_w = clear_width.NUMBER()
if clear_w < min_clear_w:
clear_width.ERROR('유효너비: ' + str(clear_w) + ' < ' + str(min_clear_w))
else:
clear_width.SUCCESS('유효너비: ' + str(clear_w) + ' >= ' + str(min_clear_w))
if max_riser_h > 0:
for riser_height in stair.SELECT('riser height'):
riser_h = riser_height.UNIT('m').NUMBER()
if riser_h > max_riser_h:
riser_height.ERROR('단높이: ' + str(riser_h) + ' > ' + str(max_riser_h))
break
if min_tread_w > 0:
for tread_width in stair.SELECT('tread width'):
tread_w = tread_width.UNIT('m').NUMBER()
if tread_w < min_tread_w:
tread_width.ERROR('단너비: ' + str(tread_w) + ' < ' + str(min_tread_w))
break
2. 중·고등학교의 계단인 경우에는 계단 및 계단참의 너비는 150센티미터 이상, 단높이는 18센티미터 이하, 단너비는 26센티미터 이상으로 할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조 (계단의 설치기준) 2항2호
check(REFB_15_2_2){
IF CS THEN KS
}
CS{
getBuildingUsage()="MiddleSchool"
OR getBuildingUsage()="HighSchool"
}
KS{
getObjectWidth(Stair)>=150 cm
getObjectWidth(StairLanding)>150 cm
getObjectProperty(Stair.riserHeight)>=18 cm
getObjectProperty(Stair.riserWidth)>=26 cm
}
def Check():
for building in SELECT('building'):
bldg_use = building.SELECT('building type').STRING()
sub_use = building.SELECT('prop', '세부용도').STRING()
min_clear_w = 0.6
max_riser_h = 0.0
min_tread_w = 0.0
if bldg_use == '교육연구시설':
min_clear_w = 1.5
min_tread_w = 0.26
if sub_use == '초등학교':
max_riser_h = 0.16
elif sub_use in ['중학교', '고등학교']:
max_riser_h = 0.18
elif (bldg_use == '문화 및 집회시설' and sub_use in ['공연장', '집회장', '관람장']) or (bldg_use == '판매시설'):
min_clear_w = 1.2
else:
min_clear_w = 0.6
for storey in building.SELECT('storey'):
for stair in storey.SELECT('stair'):
clear_width = stair.SELECT('clear width').UNIT('m')
clear_w = clear_width.NUMBER()
if clear_w < min_clear_w:
clear_width.ERROR('유효너비: ' + str(clear_w) + ' < ' + str(min_clear_w))
else:
clear_width.SUCCESS('유효너비: ' + str(clear_w) + ' >= ' + str(min_clear_w))
if max_riser_h > 0:
for riser_height in stair.SELECT('riser height'):
riser_h = riser_height.UNIT('m').NUMBER()
if riser_h > max_riser_h:
riser_height.ERROR('단높이: ' + str(riser_h) + ' > ' + str(max_riser_h))
break
if min_tread_w > 0:
for tread_width in stair.SELECT('tread width'):
tread_w = tread_width.UNIT('m').NUMBER()
if tread_w < min_tread_w:
tread_width.ERROR('단너비: ' + str(tread_w) + ' < ' + str(min_tread_w))
break
3. 문화 및 집회시설(공연장·집회장 및 관람장에 한한다)·판매시설 기타 이와 유사한 용도에 쓰이는 건축물의 계단인 경우에는 계단 및 계단참의 너비를 120센티미터 이상으로 할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조 (계단의 설치기준) 2항3호
check(REFB_15_2_3){
IF CS THEN KS
}
CS{
getBuildingUsage()= "CulturalAndAssemblyFacility.PerformanceHall"
OR getBuildingUsage()= "CulturalAndAssemblyFacility.AssemblyHall"
OR getBuildingUsage()= "CulturalAndAssemblyFacility.Auditorium"
OR getBuildingUsage()= "CommercialFacility "
}
KS{
getObjectWidth(Stair)>=120 cm
getObjectWidth(StairLanding)>=120 cm
}
def Check():
for building in SELECT('building'):
bldg_use = building.SELECT('building type').STRING()
sub_use = building.SELECT('prop', '세부용도').STRING()
min_clear_w = 0.6
max_riser_h = 0.0
min_tread_w = 0.0
if bldg_use == '교육연구시설':
min_clear_w = 1.5
min_tread_w = 0.26
if sub_use == '초등학교':
max_riser_h = 0.16
elif sub_use in ['중학교', '고등학교']:
max_riser_h = 0.18
elif (bldg_use == '문화 및 집회시설' and sub_use in ['공연장', '집회장', '관람장']) or (bldg_use == '판매시설'):
min_clear_w = 1.2
else:
min_clear_w = 0.6
for storey in building.SELECT('storey'):
for stair in storey.SELECT('stair'):
clear_width = stair.SELECT('clear width').UNIT('m')
clear_w = clear_width.NUMBER()
if clear_w < min_clear_w:
clear_width.ERROR('유효너비: ' + str(clear_w) + ' < ' + str(min_clear_w))
else:
clear_width.SUCCESS('유효너비: ' + str(clear_w) + ' >= ' + str(min_clear_w))
if max_riser_h > 0:
for riser_height in stair.SELECT('riser height'):
riser_h = riser_height.UNIT('m').NUMBER()
if riser_h > max_riser_h:
riser_height.ERROR('단높이: ' + str(riser_h) + ' > ' + str(max_riser_h))
break
if min_tread_w > 0:
for tread_width in stair.SELECT('tread width'):
tread_w = tread_width.UNIT('m').NUMBER()
if tread_w < min_tread_w:
tread_width.ERROR('단너비: ' + str(tread_w) + ' < ' + str(min_tread_w))
break
③공동주택(기숙사를 제외한다)·제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)
}
②문화 및 집회시설(전시장 및 동·식물원은 제외한다), 종교시설, 장례식장 또는 위락시설 중 유흥주점의 용도에 쓰이는 건축물의 관람석 또는 집회실로서 그 바닥면적이 200제곱미터 이상인 것의 반자의 높이는 제1항의 규정에 불구하고 4미터(노대의 아랫부분의 높이는 2.7미터)이상이어야 한다. 다만, 기계환기장치를 설치하는 경우에는 그러하지 아니하다. <개정 2010.4.7>
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 16조 (거실의 반자높이) 2항
check(REFB_16_2){
IF (CS1 AND CS2) THEN KS
}
CS1{
VentilatorEquipment myVentilatorEquipemnt{
isObjectProperty(VentilatorEquipment.isMechanical)=TRUE
}
isExist(myVentilatorEquipemn) = FALSE
}
CS2{
Space mySpace{
getSpaceUsage(Space) = “Auditorium”
OR getSpaceUsage(Space) = “AssemblyHall”
}
((getBuildingUsage() = “CulturalAndAssemblyFacilities.Tavern”
getBuildingUsage() != “ExhibitionHalls.Tavern”
getBuildingUsage() != “ZoologicalAndBotanicalGardens.Tavern”)
OR getBuildingUsage() = "ReligiousFacilities.Tavern”
target_space_codes = ['33703', '33708']
min_h = 4.0
min_h_bal = 2.7
target_space_codes_label = '대상 공간분류코드'
min_h_label = '최소 반자 높이'
min_h_bal_label = '최소 반자 높이(노대 밑)'
def Check():
for building in SELECT('building'):
bldg_use = building.SELECT('building type').STRING()
sub_use = building.SELECT('prop', '세부용도').STRING()
if not ((bldg_use == '문화 및 집회시설' and not sub_use in ['전시장', '동물원', '식물원'])
or (bldg_use in ['종교시설', '장례시설'])
or (bldg_use == '위락시설' and sub_use == '유흥주점')):
continue
spaces = building.SELECT('space');
for space in spaces:
code = space.SELECT('class code').STRING()
if not code in target_space_codes:
continue
area = space.SELECT('area').UNIT('m2').NUMBER()
if area < 200:
continue
dist = space.SELECT('ceiling height')
height = dist.UNIT('m').NUMBER()
if height < min_h:
dist.ERROR('반자 높이 : ' + str(height) + ' < ' + str(min_h))
else:
dist.SUCCESS('반자 높이 : ' + str(height) + ' >= ' + str(min_h))
for space in spaces:
if not '노대' in space.SELECT('name').STRING():
continue
for lower in space.SELECT('lower space'):
code = lower.SELECT('class code').STRING()
if not code in target_space_codes:
continue
area = lower.SELECT('area').UNIT('m2').NUMBER()
if area < 200:
continue
pos = space.SELECT('center')
dist = lower.SELECT('ceiling height', pos)
height = dist.UNIT('m').NUMBER()
if height < min_h_bal:
dist.ERROR('반자 높이 : ' + str(height) + ' < ' + str(min_h_bal))
else:
dist.SUCCESS('반자 높이 : ' + str(height) + ' >= ' + str(min_h_bal))
1의2. 제2종근린생활시설 중 공연장·단란주점·당구장·노래연습장, 문화 및 집회시설중 예식장·공연장, 수련시설 중 생활권수련시설·자연권수련시설, 숙박시설중 여관·여인숙, 위락시설중 단란주점·유흥주점 또는 「다중이용업소의 안전관리에 관한 특별법 시행령」 제2조에 따른 다중이용업의 용도에 쓰이는 층으로서 그 층의 거실의 바닥면적의 합계가 50제곱미터 이상인 건축물에는 직통계단을 2개소 이상 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 1항 1의2호
check(REFB_25_1_1-2){
IF CS THEN KS
}
CS{
(getBuildingUsage() = "ClassIINeighborhoodLivingFacility.PerformanceHall"
OR getBuildingUsage() = "ClassIINeighborhoodLivingFacility.Pubs"
OR getBuildingUsage() = "ClassIINeighborhoodLivingFacility.BilliardRoom"
OR getBuildingUsage() = "ClassIINeighborhoodLivingFacility.Karaoke"
OR getBuildingUsage() = "CulturalAndAssemblyFacility.WeddingHall"
OR getBuildingUsage() = "CulturalAndAssemblyFacility.PerformanceHall"
OR getBuildingUsage() = "TrainingFacility.TrainingFacilityInLivingZone"
OR getBuildingUsage() = "TrainingFacility.??LivingZone"
OR getBuildingUsage() = "LodgingFacility.Inn"
OR getBuildingUsage() = "AmusementFacility.Pubs"
OR getBuildingUsage() = "AmusementFacility.Tavern"
OR getResult(ERSASP_2) = TRUE)
getTotalFloorArea(Room) >= 50 m2
}
KS{
Stair myStair{
isObjectProperty(Stair.isDirect) = TRUE
}
getObjectCount(myStair) >= 2
}
1. 영 제61조제1항 각 호에 따른 용도에 쓰이는 거실 등을 지하층 또는 지하의 공작물에 설치한 경우의 그 거실(출입문 및 문틀을 포함한다)
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조 (건축물의 마감재료) 2항1호
check(REFB_24_2_1){
KS
}
KS{
Building myBuilding{
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
}
Room myRoom{
getSpace(myBuilding.Room)
}
getFloorNumber(myRoom)<0
}
④영 제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
}
① 영 제34조제3항 및 제4항에 따라 설치하는 피난안전구역(이하 "피난안전구역"이라 한다)은 해당 건축물의 1개층을 대피공간으로 하며, 대피에 장애가 되지 아니하는 범위에서 기계실, 보일러실, 전기실 등 건축설비를 설치하기 위한 공간과 같은 층에 설치할 수 있다. 이 경우 피난안전구역은 건축설비가 설치되는 공간과 내화구조로 구획하여야 한다. <개정 2012.1.6>
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조의2 (피난안전구역의 설치기준) 1항
check(REFB_8-2_1){
KS1 AND IF CS THEN KS2
}
Zone myZone{
isObjectProperty(Zone.isEgressSafetyZone) = TRUE
}
Space mySpace{
hasSpace(Space, FacilitiesOfABuilding)
}
Structure myStructure{
isObjectProperty(Space.isfireResistantStructure) = TRUE
}
KS1{
BSC = getBuildingStoriesCount()
getFloorNumber(myZone) <= BSC
}
CS{
getFloorNumber(mySpace) = getFloorNumber(myZone)
}
KS2{
isPartitioned(myZone, myStructure, mySpace) = TRUE
}
2. 헬리포트의 중심으로부터 반경 12미터 이내에는 헬리콥터의 이·착륙에 장애가 되는 건축물, 공작물, 조경시설 또는 난간 등을 설치하지 아니할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 13조 (헬리포트 및 구조공간 설치 기준) 1항 2호
Check(REFB_13_1_2){
KS
}
KS{
Space mySpace{
// 헬리포트의 중심으로부터 반경 12미터 이내의 공간
}
isInstalled(Building, mySpace)=False
isInstalled(Construction, mySpace)=False
isInstalled(LandscapeFacility, mySpace)=False
isInstalled(Railing, mySpace)=False
}
② 영 제40조제3항제1호에 따라 옥상에 헬리콥터를 통하여 인명 등을 구조할 수 있는 공간을 설치하는 경우에는 직경 10미터 이상의 구조공간을 확보하여야 하며, 구조공간에는 구조활동에 장애가 되는 건축물, 공작물 또는 난간 등을 설치해서는 안 된다. 이 경우 구조공간의 표시기준 등에 관하여는 제1항제3호 및 제4호를 준용한다. <신설 2010.4.7, 2012.1.6>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 13조 (헬리포트 및 구조공간 설치 기준) 2항
Check(REFB_13_2){
KS
}
KS{
Space mySpace{
getObjectDiameter(Space)>=10 m
}
isInstalled(Building, mySpace)=False
isInstalled(Construction, mySpace)=False
isInstalled(Railing, mySpace)=False
}
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조 (계단의 설치기준) 7항 1호
check(REFP_15_7_1){
KS
}
KS{
getBuildingUsage() = "MultiUnitHouse"
AND getStairStepWidth >= 1.2M
AND getPaceWidth >= 1.2M
}
min_stair_width = 1.5
def Check():
for building in SELECT('building'):
bldg_type = building.SELECT('building type').STRING()
sub_type = building.SELECT('prop', '세부용도').STRING()
if bldg_type is "공통주택":
min_stair_width = 1.2
else :
min_stair_width = 1.5
d_stairs = building.SELECT('direct stair')
for d_stair in d_stairs:
s_stair_w = d_stair.SELECT('width').Unit(m)
breker = True
for stair_stories in d_stair.SELECT('storey'):
if stair_stories.SELECT('is evacuation storey').BOOL() is True :
break
elif stair_stories.SELECT('level') is "Ground" :
break
else:
breaker = False
if breaker is True:
d_stair.SUCCESS('해당계단은 피난층이나 지상으로 통하는 직통계단이 아닙니다.')
break
if d_stair_w >= min_stair_width:
d_stair.SUCCESS('계단의너비()' + d_stair_w + ')가 ' + '>=' + min_stair_width)
else:
d_stair.ERROR('계단의너비()' + d_stair_w + ')가 ' + '<' + min_stair_width)
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 29조 (피난용승강기의 설치 및 구조) 1항
Check(REFB_29_1){
IF (!CS1 AND CS2)THEN KS
}
CS1{
Building myBuilding{
isObjectProperty(Building.isQuasiHighriseBuilding )=True
}
getBuildingUsage()="myBuilding.MultiUnitHouse"
}
CS2{
isObjectProperty(Building.isHighBuilding) = TRUE
}
KS{
getResult(REFB_30)=True
getResult(REFB_29_2)=True
}
② 영 제34조제1항 단서에서 "국토교통부령으로 정하는 공장"이란 반도체 및 디스플레이 패널을 제조하는 공장을 말한다. <신설 2010.4.7, 2013.3.23>
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조 (직통계단의 설치기준) 2항
Check(REFB_8_2){
getObjectProperty(Building.usage)=“Factory.SemiconductorAndDisplayPanelManufacturingFactory"
}
①영 제61조제1항제4호가목 및 제2항제1호나목에서 "국토교통부령으로 정하는 화재위험이 적은 공장"이란 각각 별표 3의 업종에 해당하는 공장을 말한다. 다만, 공장의 일부 또는 전체를 기숙사 및 구내식당의 용도로 사용하는 건축물을 제외한다. <개정 2008.3.14, 2010.12.30, 2012.1.6, 2013.3.23>
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조의2 (소규모 공장용도 건축물의 마감재료) 1항
check(REFB_24-2_1){
KS
}
KS{
getResult(REFB_*_3) = TRUE
(getBuildingUsage() != "Dormitory"
OR getBuildingUsage() != "Cafeteria"
OR getSpaceUsage() != "Dormitory"
OR getSpaceUsage() != "Cafeteria")
}
②영 제61조제1항제4호나목에서 "국토교통부령으로 정하는 출구"란 건축물의 내부의 각 부분으로부터 출구(가장 가까운 거리에 있는 출구를 말한다)에 이르는 보행거리가 30미터 이하가 되도록 설치된 유효너비 1.5미터 이상의 출구를 말한다. <개정 2008.3.14, 2010.12.30, 2013.3.23>
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 24조의2 (소규모 공장용도 건축물의 마감재료) 2항
check(REFB_24-2_2){
KS
}
KS{
Door myDoor{
isObjectProperty(Door.isEntrance) = TRUE
}
getObjectDistance(Building.IndoorElement, Door) <= 30
isObjectProperty(Door.effectiveWidth) >= 1.5m
}
①영 제48조의 규정에 의하여 건축물에 설치하는 복도의 유효너비는 다음 표와 같이 하여야 한다
┌───────────────┬────────────┬──────┐
│구분 │양옆에 거실이 있는 복도 │기타의 복도 │
├───────────────┼────────────┼──────┤
│유치원ㆍ초등학교 │2.4미터 이상 │1.8미터 이상│
│중학교ㆍ고등학교 │ │ │
├───────────────┼────────────┼──────┤
│공동주택ㆍ오피스텔 │1.8미터 이상 │1.2미터 이상│
├───────────────┼────────────┼──────┤
│당해 층 거실의 바닥면적 │1.5미터 이상(의료시설의 │1.2미터 이상│
│합계가 200제곱미터 이상인 경우│복도 1.8미터 이상) │ │
└───────────────┴────────────┴──────┘
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조의2 (복도의 너비 및 설치기준) 1항
Check(EDBA_15-2_1){
IF getBuildingUsage()="Kindergarten"
OR getBuildingUsage()="ElementarySchool"
OR getBuildingUsage()="MiddleSchool"
OR getBuildingUsage()="HightSchool"
THEN IF isExternal(Corridor)=FALSE
THEN getObjectProperty(Corridor.effectiveWidth)>2.4 m
ELSE THEN getObjectProperty(Corridor.effectiveWidth)>1.8 m
END IF
END IF
IF getBuildingUsage()="MultiUnitHouse"
OR getBuildingUsage()="Officetel"
THEN IF isExternal(Corridor)=FALSE
THEN getObjectProperty(Corridor.effectiveWidth)>1.8 m
ELSE THEN getObjectProperty(Corridor.effectiveWidth)>1.2 m
END IF
END IF
IF getTotalFloorArea(Corridor.Floor.Room)>200 m2
THEN IF isExternal(Corridor)=FALSE
THEN IF getBuildingUsage()="MedicalFacilities"
THEN getObjectProperty(Corridor.effectiveWidth)>1.8 m
ELSE THEN getObjectProperty(Corridor.effectiveWidth)>1.5 m
END IF
ELSE THEN getObjectProperty(Corridor.effectiveWidth)>1.2 m
END IF
END IF
}
②문화 및 집회시설(공연장ㆍ집회장ㆍ관람장ㆍ전시장에 한한다), 종교시설 중 종교집회장, 노유자시설 중 아동 관련 시설ㆍ노인복지시설, 수련시설 중 생활권수련시설, 위락시설 중 유흥주점 및 장례식장의 관람석 또는 집회실과 접하는 복도의 유효너비는 제1항의 규정에 불구하고 다음 각 호에서 정하는 너비로 하여야 한다. <개정 2010.4.7>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조의2 (복도의 너비 및 설치기준) 2항
check(REFB_15-2_2){
IF CS THEN KS
}
CS{
Space mySpace{
getSpaceUsage(Space) = “AssemblyHall”
OR getSpaceUsage(Space) = “PerformanceHall”
}
Corridor myCorridor{
isAdjacent(mySpace,Corridor) = TRUE
}
(getBuildingUsage()="CulturalAndAssemblyFacility.PerformanceHall"
OR getBuildingUsage()="CulturalAndAssemblyFacility.AssemblyHall"
OR getBuildingUsage()="CulturalAndAssemblyFacility.Auditorium"
OR getBuildingUsage()="CulturalAndAssemblyFacility.ExhibitionHall"
OR getBuildingUsage()="ReligiousFacility.ReligiousAssemblyFacility"
OR getBuildingUsage()="FacilitiesForTheAgedAndChildren.ChildrenRelatedFacility"
OR getBuildingUsage()="FacilitiesForTheAgedAndChildren.WelfareFacilityForTheAged"
OR getBuildingUsage()="Trainingfacility.TrainingFacilitiesInLiving "
OR getBuildingUsage()="AmusementFacility.tavern"
OR getBuildingUsage()="AmusementFacility.FuneralParlors" )
isExist(myCorridor)=TRUE
}
KS{
getResult(REFB_15-2_2_1)=TRUE
getResult(REFB_15-2_2_2)=TRUE
getResult(REFB_15-2_2_3)=TRUE
}
corridor_code = '33105'
std_floor_area = 200
corridor_code_label = '복도 공간분류코드'
std_floor_area_label = '기준 연면적'
def Check():
for building in SELECT('building'):
if building.SELECT('prop', '연면적').NUMBER() <= std_floor_area:
continue
bldg_use = building.SELECT('building type').STRING()
sub_use = building.SELECT('prop', '세부용도').STRING()
if not ((bldg_use == '문화 및 집회시설' and sub_use in ['공연장' ,'집회장', '관람장', '전시장'])
or (bldg_use == '종교시설' and sub_use == '종교집회장')
or (bldg_use == '노유자시설' and sub_use in ['아동관련시설' ,'노인복지시설'])
or (bldg_use == '수련시설' and sub_use == '생활권수련시설')
or (bldg_use == '위락시설' and sub_use == '유흥주점')
or (bldg_use == '장례시설' and sub_use == '장례식장')):
continue
for storey in building.SELECT('storey'):
area = 0.0
corridors = []
for space in storey.SELECT('space'):
if space.SELECT('class code').STRING() == corridor_code:
corridors.append(space)
area += space.SELECT('area').UNIT('m2').NUMBER()
min_cor_w = 1.8
if area < 500:
min_cor_w = 1.5
elif area >= 1000:
min_cor_w = 2.4
for space in corridors:
width = space.SELECT('min clear width').UNIT('m')
w = width.NUMBER()
if w < min_cor_w:
width.ERROR('유효너비: ' + str(w) + ' < ' + str(min_cor_w))
else:
width.SUCCESS('유효너비: ' + str(w) + ' >= ' + str(min_cor_w))
제20조의2 (내화구조의 적용이 제외되는 공장건축물) 영 제56조제1항제3호 단서에서 "국토해양부령으로 정하는 공장"이란 별표 2의 업종에 해당하는 공장으로서 주요구조부가 불연재료로 되어 있는 2층 이하의 공장을 말한다. <개정 2005.7.22, 2008.3.14, 2009.7.1>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 15조의2 (복도의 너비 및 설치기준) 1항
Check(REFB_15-2_1){
KS
}
KS{
IF (Building.usage="Kindergarten"
OR Building.usage="ElementarySchool"
OR Building.usage="MiddleAndHighSchool" )
IF(isAdjacent(Corridor, Room)=True)
THEN Corridor.width>=2.4 m
ELSE THEN Corridor.width>=1.8 m
END IF
ELSE IF( Building.usage="MultiUnitHouse"
OR Building.usage="Officetels" )
IF( isAdjacent(Corridor, Room)=True)
TEHN Corridor.width>=1.8 m
ELSE THEN Corridor.width>=1.2 m
END IF
ELSE IF( Floor.One.Room.area > 200 m2)
IF(isAdjacent(Corridor, Room)=True)
TEHN IF (Building.usage="MedicalFacility")
THEN Corridor.width>=1.8 m
ELSE THEN Corridor.width>=1.5 m
ELSE THEN Corridor.width>=1.2 m
END IF
END IF
}
①대통령령으로 정하는 용도 및 규모의 건축물의 내부 마감재료는 방화에 지장이 없는 재료로 하되, 「다중이용시설 등의 실내공기질관리법」 제5조 및 제6조에 따른 실내공기질 유지기준 및 권고기준을 고려하고 관계 중앙행정기관의 장과 협의하여 국토해양부령으로 정하는 기준에 따른 것이어야 한다. <개정 2009.12.29>
//건축법 52조 (건축물의 마감재료) 1항
Check(BA_52_1){
IF CS THEN KS
}
Building myBuilding{
getResult(EDBA_61_1)=TRUE
}
CS{
isExist(myBuilding)=TRUE
}
KS{
getResult(REFB_24_1)=TRUE
getResult(REFB_24_2)=TRUE
getResult(REFB_24_3)=TRUE
getResult(REFB_24_4)=TRUE
}