1
건축물의 구조기준 등에 관한 규칙 제 35조
제35조(개구부)
//건축물의 구조기준 등에 관한 규칙 35조 (개구부) 1항
Check(RSSB_35_1){
getResult(RSSB_28_2) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CS THEN KS
}
CS{
Wall myWall1{
isObjectProperty(myWall.Structure.isMansoryStructure) = TRUE
}
isInstalled(Window, myWall) = TRUE
OR isInstalled(Door, myWall) = TRUE
OR isInstalled(Opening , myWall) = TRUE
}
KS{
getResult(RSSB_35_1_1) = TRUE
getResult(RSSB_35_1_2) = TRUE
}
Python Code 변환 예정
2
건축물의 구조기준 등에 관한 규칙 제 35조 1 항 1호
1. 각층의 대린벽으로 구획된 각 벽에 있어서 개구부의 폭의 합계는 그 벽의 길이의 2분의 1이하로 하여야 한다.
//건축물의 구조기준 등에 관한 규칙 35조 (개구부) 1항 1호
Check(RSSB_35_1_1){
KS
}
KS{
Wall myWall1{
isObjectProperty(Wall.isRightAngleCrossingWall) = TRUE
isInstalled(Wall, Floor.One) = TRUE
}
Wall myWall2{
isPartitioned(Wall, , myWall1) = TRUE
}
WL = getObjectWidth(myWall2)
OW = getObjectWidth(myOpening )
Opening myOpening {
isInstalled(Opening , Wall) = TRUE
}
Sum(OW) <= WL * 1/2
}
Python Code 변환 예정
3
건축물의 구조기준 등에 관한 규칙 제 35조 1 항 2호
2. 하나의 층에 있어서의 개구부와 그 바로 윗층에 있는 개구부와의 수직거리는 600밀리미터 이상으로 하여야 한다. 같은 층의 벽에 상하의 개구부가 분리되어 있는 경우 그 개구부 사이의 거리도 또한 같다.
//건축물의 구조기준 등에 관한 규칙 35조 (개구부) 1항 2호
Check(RSSB_35_1_2){
KS2 AND IF CS THEN KS1
}
KS2{
Opening myOpening 1{
isInstalled(Opening , Floor.One) = TRUE
}
Opening myOpening 2{
isInstalled(Opening , myOpening 1.Floor.UpperFloor) = TRUE
}
getObjectVerticalDistance(myOpening 1, myOpening 2) >= 600mm
}
CS{
Opening myOpening 3{
isInstalled(Opening , Floor.One.Wall.One) = TRUE
}
getObjectInterval(myOpening 3,,a) >= 600mm
}
Python Code 변환 예정
4
건축물의 구조기준 등에 관한 규칙 제 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 변환 예정
5
건축물의 구조기준 등에 관한 규칙 제 35조 3 항
③폭이 1.8미터를 넘는 개구부의 상부에는 철근콘크리트구조의 윗 인방(引枋)을 설치하여야 한다.
//건축물의 구조기준 등에 관한 규칙 35조 (개구부) 3항
Check(RSSB_35_3){
getResult(RSSB_28_3) = TRUE AND getResult(RSSB_28_2) = TRUE AND getResult(RSSB_28_1) = TRUE AND getResult(RSSB_3_3) = TRUE AND IF CS THEN KS
}
CS{
getObjectProperty(Opening .width) > 1.8m
}
KS{
Beam myBeam{
isOjectProperty(Beam.isLintel) = TRUE
getObjectProperty(Beam.Structure.materialType) = "ReinforcedConcrete"
}
getObjectVerticalLocation(myBeam, Opening ) > 0
}
Python Code 변환 예정
6
건축물의 설비기준 등에 관한 규칙 제 10조 2호 나 목
나. 승강장은 각층의 내부와 연결될 수 있도록 하되, 그 출입구(승강로의 출입구를 제외한다)에는 갑종방화문을 설치할 것. 다만, 피난층에는 갑종방화문을 설치하지 아니할 수 있다.
//건축물의 설비기준 등에 관한 규칙 10조 (비상용승강기의 승강장 및 승강로의 구조) 2호 나목
Check(RFB_10_0_2_나){
KS1 AND IF !(CS) THEN KS2
}
Space mySpace{
hasObject(Floor,Space)=TRUE
isAccessible(Platform,Space) = TRUE
}
KS1{
isExist(mySpace)=TRUE
}
CS{
isAccessible(Platform, myFloor) = TRUE
}
KS2{
Door myDoor{
hasSpace(Platform, Door) =TRUE
hasSpace(mySpace, Door) =TRUE
Door != ElevatorShaft.Opening
}
isObjectProperty(myDoor.isStrictFireproofDoor)= TRUE
}
Python Code 변환 예정
7
건축물의 설비기준 등에 관한 규칙 제 14조 2 항 1호
1. 배연구 및 배연풍도는 불연재료로 하고, 화재가 발생한 경우 원활하게 배연시킬 수 있는 규모로서 외기 또는 평상시에 사용하지 아니하는 굴뚝에 연결할 것
//건축물의 설비기준 등에 관한 규칙 14조 (배연설비) 2항1호
Check(RFB_14_2_1){
Duct myDuct{
getObjectProperty(Duct.functionType) = "Exhaust"
}
isObjectProperty(SmokeExhaustionOpening .Material.nonCombustibility) = TRUE
isObjectProperty(myDuct.Material.nonCombustibility) = TRUE
(isConnectedToExternal(SmokeExhaustionOpening ) = TRUE
isConnectedToExternal(myDuct) = TRUE)
OR( isConnectedTo(SmokeExhaustionOpening ,Chimney) = TRUE
isConnectedTo(myDuct,Chimney) = TRUE)
}
Python Code 변환 예정
8
건축물의 설비기준 등에 관한 규칙 제 14조 2 항 4호
4. 배연구가 외기에 접하지 아니하는 경우에는 배연기를 설치할 것
//건축물의 설비기준 등에 관한 규칙 14조 (배연설비) 2항4호
Check(RFB_14_2_4){
IF isConnectedToExternal(SmokeExhaustionOpening ) = FALSE
THEN isExist(SmokeExtractor) = TRUE
}
Python Code 변환 예정
9
건축물의 에너지절약설계기준 제 5조 9호 타 목
타. "야간단열장치”라 함은 창의 야간 열손실을 방지할 목적으로 설치하는 단열셔터, 단열덧문으로서 총열관류저항(열관류율의 역수)이 0.4㎡·K/W 이상인 것을 말한다.
// 스프링클러설비의 화재안전기준(nfsc 103) 4조 (수원) 5항 1호
Check(NFSC103_4_5_1){
KS
}
Pump myPump{
isInstalled(Pump, SprinklerSystem) = TRUE
}
Valve myValve{
isObjectProperty(Valve.isFootValve) = TRUE
isInstalled(Valve, myPump) = TRUE
}
Valve myValve2{
isObjectProperty(Valve.isFootValve) = TRUE
Valve != myValve
}
Pipe myPipe{
isObjectProperty(Pipe.isObsorptionPipe) = TRUE
}
Obsorption myObsorptionOpening {
isInstalled(ObsorptionOpening , myPipe) = TRUE
}
Obsorption myObsorptionOpening 2{
ObsorptionOpening != myObsorptionOpening
}
KS{
getObjectVerticalLocation(myValve, myValve2) < 0
OR getObjectVerticalLocation(myObsorptionOpening , myOpsorptionOpening 2) < 0
}
Python Code 변환 예정
10
건축물의 에너지절약설계기준 제 5조 9호 파 목
파. "평균 열관류율”이라 함은 지붕(천창 등 투명 외피부위를 포함하지 않는다), 바닥, 외벽(창 및 문을 포함한다) 등의 열관류율 계산에 있어 세부 부위별로 열관류율값이 다를 경우 이를 면적으로 가중평균하여 나타낸 것을 말한다. 단, 평균열관류율은 중심선 치수를 기준으로 계산한다.
// 스프링클러설비의 화재안전기준(nfsc 103) 4조 (수원) 5항 2호
Check(NFSC103_4_5_2){
KS
}
Pipe myPipe{
isObjectProperty(Pipe.isRiser) = TRUE
isInstalled(Pipe, SprinklerSystem) = TRUE
}
Tank myTank{
getObjectProperty(Tank.operationType) = "ElevatedWaterTank"
}
WaterSupplyOpening myWaterSupplyOpening {
isConnectedTo(WaterSupplyOpening , myPipe) = TRUE
}
WaterSupplyOpening myWaterSupplyOpening 2{
WaterSupplyOpening != myWaterSupplyOpening
}
KS{
getObjectVerticalLocation(myWaterSupplyOpening , myWaterSupplyOpening 2) < 0
}
Python Code 변환 예정
11
건축물의 에너지절약설계기준 제 6조 5호 나 목
나. 「건축법 시행령」별표1 제14호에 따른 연면적의 합계가 3,000제곱미터 이상인 업무시설
//스프링클러설비의 화재안전기준(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
}
Python Code 변환 예정
12
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 10조 1 항
제10조(관람석등으로부터의 출구의 설치기준) ①영 제38조 각호의 1에 해당하는 건축물의 관람석 또는 집회실로부터 바깥쪽으로의 출구로 쓰이는 문은 안여닫이로 하여서는 아니된다.
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 10조 (관람석등으로부터의 출구의 설치기준) 1항
check(REFB_10_1){
Space mySpace = getSpace("Auditorium") + getSpace("AssemblyHall")
Door myExit {
isAccessible(mySpace, Door) = TRUE
isObjectProperty(Door.isEntrance) = TRUE
}
getObjectProperty(myExit.panelOperationType) != "Opening InDoor"
}
SUCCESS
theater_code = '00000'
std_floor_area = 300
theater_code_label = '관람석 공간분류코드'
std_floor_area_label = '기준 바닥면적'
def Check():
for building in SELECT('building'):
bldg_use = building.SELECT('building type').STRING()
sub_use = building.SELECT('prop', '세부용도').STRING()
for storey in building.SELECT('storey'):
for space in storey.SELECT('space'):
if space.SELECT('name').STRING() not in ['관람석', '집회실':
continue
for door in space.Select('door'):
if door.SELECT('type') is '안여닫이' :
door.ERROR('본 공간의 문은 안여닫이입니다.')
else:
door.SUCCESS('본 공간의 문은 안여닫이가 아닙니다.')
13
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 30조 1호 가 목
가. 승강장의 출입구를 제외한 부분은 해당 건축물의 다른 부분과 내화구조의 바닥 및 벽으로 구획할 것
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 1호 가목
check(REFB_30_0_1_가){
KS
}
KS{
FloorSlab myFloorSlab{
isFireResistantStructure(FloorSlab) = TRUE
}
Wall myWall{
isFireResistantStructure(Wall) = TRUE
}
Object myElement{
getObject(Platform.Object) - getObject(Opening )
}
isPartitioned(myElement, , myFloorSlab) = TRUE
isPartitioned(myElement, , myWall) = TRUE
}
Python Code 변환 예정
14
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 30조 2호 다 목
다. 승강로 상부에 「건축물의 설비기준 등에 관한 규칙」 제14조에 따른 배연설비를 설치할 것
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 2호 다목
check(REFB_30_0_2_다){
KS
}
KS{
isInstalled(Opening .TopSurface, SmokeExhaustionSystem)
getResult(RFB_14) = TRUE
}
Python Code 변환 예정
15
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 1호 가 목
가. 계단실은 창문·출입구 기타 개구부(이하 "창문등"이라 한다)를 제외한 당해 건축물의 다른 부분과 내화구조의 벽으로 구획할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 가목
check(REFB_9_2_1_1){
KS
}
KS{
Wall myWall{
hasElement(Stair.Space, Wall) = TRUE
hasElement(Wall, Window) = FALSE
hasElement(Wall, Door) = FALSE
hasElement(Wall, Opening ) = FALSE
}
Stair myStair{
isObjectProperty(Stair.isEscape)= TRUE
}
isFireResistantStructure(myWall)= TRUE
isPartitioned (myStair, 0, myWall) = TRUE
}
Python Code 변환 예정
16
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 1호 라 목
라. 계단실의 바깥쪽과 접하는 창문등(망이 들어 있는 유리의 붙박이창으로서 그 면적이 각각 1제곱미터 이하인 것을 제외한다)은 당해 건축물의 다른 부분에 설치하는 창문등으로부터 2미터 이상의 거리를 두고 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 라목
check(REFB_9_2_1_4){
IF (CS1 AND CS2) THEN KS
}
CS1 {
Opening myOpening 1{
isConnectedTo(Stair.Space, Opening ) = TRUE
getObjectProperty(Opening .material)= “WireContainedGlass”
getObjectProperty(Window.panelOperationType)= “FixedSashWindow”
getObjectProperty(Opening .area)=< 1㎡
}
CS2 {
Opening myOpening 2{
getObject(Opening ) != myOpening 1
}
KS{
getElementDistance(myOpening 1, myOpening 2, a)>=2m;
}
}
Python Code 변환 예정
17
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 1호 마 목
마. 건축물의 내부와 접하는 계단실의 창문등(출입구를 제외한다)은 망이 들어 있는 유리의 붙박이창으로서 그 면적을 각각 1제곱미터 이하로 할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 마목
check(REFB_9_2_1_5){
KS
}
KS{
Opening myOpening 3{
getObject(Opening )!= Door
isConnectedToExternal(Opening ) = FALSE
hasElement(Stair.Space, Opening ) = TRUE
}
getObjectProperty(myOpening 3.material)= “WireContainedGlass”
getObjectProperty(myOpening 3.type)= “FixedSashWindow”
getObjectProperty(myOpening 3.area)=< 1㎡
}
Python Code 변환 예정
18
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 1호 바 목
바. 건축물의 내부에서 계단실로 통하는 출입구의 유효너비는 0.9미터 이상으로 하고, 그 출입구에는 피난의 방향으로 열 수 있는 것으로서 언제나 닫힌 상태를 유지하거나 화재로 인한 연기, 온도, 불꽃 등을 가장 신속하게 감지하여 자동적으로 닫히는 구조로 된 제26조에 따른 갑종방화문을 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 바목
Check(REFB_9_2_1_6){
KS
}
KS {
Door myDoor{
isConnectedToExternal(Opening ) = FALSE
}
Space mySpace{
isExternal(Space)=FALSE
}
isGoThrough(mySpace,myDoor,Stair.Space.) = TRUE
isObjectProperty(Door.effectiveWidth) >= 0.9m
isEgressDirection(Door) = TRUE;
}
Python Code 변환 예정
19
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 2호 가 목
가. 계단은 그 계단으로 통하는 출입구외의 창문등(망이 들어 있는 유리의 붙박이창으로서 그 면적이 각각 1제곱미터 이하인 것을 제외한다)으로부터 2미터 이상의 거리를 두고 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 2호 가목
check(REFB_9_2_2_1){
IF (CS) THEN KS
}
CS {
Opening myOpening 1{ getObjectProperty(Opening .material)= “WireContainedGlass”
getObjectProperty(Window.panelOperationType)= “FixedSashWindow”
getObjectProperty(Opening .area)=< 1㎡
}
Door myDoor {
isAccessible(Stair, Door)=TRUE
}
Opening myOpening 2{
getObject(Opening ) != myOpening 1
getObject(Opening ) != myDoor
}
isExist(myOpening 2) = TRUE
}
KS{
getElementDistance(Stair, myOpening 2, a)>=2m;
}
Python Code 변환 예정
20
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 3호 마 목
마. 계단실·노대 또는 부속실에 설치하는 건축물의 바깥쪽에 접하는 창문등(망이 들어 있는 유리의 붙박이창으로서 그 면적이 각각 1제곱미터이하인 것을 제외한다)은 계단실·노대 또는 부속실외의 당해 건축물의 다른 부분에 설치하는 창문등으로부터 2미터 이상의 거리를 두고 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 마목
check (REFB_9_2_3_5){
CS TEHN KS
}
CS{
Space mySpace {
getSpace(Stair.Space)
getSpace(“Balcony”)
getSpace(“AncillaryRoom”)
}
Opening myOpening 1 {
hasElement(mySpace,Opening )=TRUE
isConnectedToExternal(Opening ) = TRUE
Opening myOpening 2 {
getObjectProperty(Opening .material)= “WireContainedGlass”
getObjectProperty(Window.panelOperationType)= “FixedSashWindow”
getObjectProperty(Opening .area)=< 1㎡
}
Opening myOpening 3{
getObject(myOpening 1)-getObject(myOpening 2)
}
isExist(myOpening 3)=TRUE
KS{
Opening myOpening 4{
getObject(Opening )-getObject(myOpening 3)
}
getElementDistance(myOpening 3, myOpening 4, a)>=2m
}
Python Code 변환 예정
21
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 3호 바 목
바. 계단실에는 노대 또는 부속실에 접하는 부분외에는 건축물의 내부와 접하는 창문등을 설치하지 아니할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 바목
check (REFB_9_2_3_6){
CS TEHN KS
}
CS{
isExist(Stair.Space)=TRUE
KS{
Space mySpace1{
getSpace(“Balcony”)
getSpace(“AncillaryRoom”)
hasObject(Stair.Space, Space)=TRUE
}
Space mySpace2{
isExternal(Space)=FALSE
}
Opening myOpening {
getObject(Stair.Space.Opening ) + getObject(mySpace2.Opening ) + getObject(mySpace1.Opening )
}
hasSpace(Stair.Space, myOpening ) = TRUE
Python Code 변환 예정
22
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 3호 사 목
사. 계단실의 노대 또는 부속실에 접하는 창문등(출입구를 제외한다)은 망이 들어 있는 유리의 붙박이창으로서 그 면적을 각각 1제곱미터 이하로 할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 사목
check (REFB_9_2_3_7){
CS TEHN KS
}
CS{
Space mySpace {
getSpace(“Balcony”)
getSpace(“AncillaryRoom”)
hasObject(Stair.Space,Space)=TRUE
}
Opening myOpening {
getObject(mySpace.Opening )
}
isExist(myOpening )=TRUE
}
KS{
getObjectProperty(myOpening .material)= “WireContainedGlass”
getObjectProperty(Window.panelOperationType)= “FixedSashWindow”
getObjectProperty(myOpening .area)=< 1㎡
}
Python Code 변환 예정
23
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 3호 아 목
아. 노대 및 부속실에는 계단실외의 건축물의 내부와 접하는 창문등(출입구를 제외한다)을 설치하지 아니할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 3호 아목
check (REFB_9_2_3_8){
IF (CS) TEHN KS
}
CS{
Space mySpace1 {
getSpace(“Balcony”)
getSpace(“AncillaryRoom”)
}
isExist(mySpace1)=TRUE
}
KS{
Space mySpace2{
isExternal(Space)=FALSE
}
Opening myOpening {
getObject(mySpace2.Opening )
getObject(Stair.Space.Opening )
}
hasSpace(mySpace1,myOpening )= FALSE
}
Python Code 변환 예정
24
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 11조 2 항
②영 제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) != “Opening InDoor”
}
Python Code 변환 예정
25
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 14조 3 항 1호
1. 피난구의 덮개는 제26조에 따른 비차열 1시간 이상의 내화성능을 가져야 하며, 피난구의 유효 개구부 규격은 직경 60센티미터 이상일 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 14조 (방화구획의 설치기준) 3항 1호
Check(REFB_14_3_1){
KS
}
KS{
Opening myOpening {
isObjectProperty(Opening .isEscape)=True
}
getObjectDiameter(myOpening )>60 cm
}
Python Code 변환 예정
26
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 14조 3 항 2호
2. 상층·하층간 피난구의 설치위치는 수직방향 간격을 15센티미터 이상 띄어서 설치할 것
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 14조 (방화구획의 설치기준) 3항 2호
Check(REFB_14_3_2){
KS
}
KS{
getObjectVerticalDistance(myOpening , myOpening )> 15 cm
}
Python Code 변환 예정
27
건축법 시행령 제 46조 5 항 2호
2. 경계벽에 피난구를 설치한 경우
//건축법 시행령 46조 (방화구획의 설치) 5항 2호
Check(EDBA_46_5_2){CS
}
CS{
Opening myOpening {
Opening .isEscape = TRUE
}
Wall myWall{
isObjectProperty(Wall.isPartitionWall)=TRUE
}
AND hasObject(myWall,myOpening )=TRUE
}
Python Code 변환 예정
28
건축법 시행령 제 44조
제44조 (피난 규정의 적용례) 건축물이 창문, 출입구, 그 밖의 개구부(開口部)(이하 "창문등"이라 한다)가 없는 내화구조의 바닥 또는 벽으로 구획되어 있는 경우에는 그 구획된 각 부분을 각각 별개의 건축물로 보아 제34조부터 제41조까지를 적용한다.
//건축법 시행령 44조 (피난 규정의 적용례)
Check(EDBA_44){
IF CS THEN KS
}
CS{
Door myDoor{
isObjectProperty(Door.isEntrance)=True
}
Object myElement {
getObject(Window)
getObject(Opening )
getObject(myDoor)
}
FloorSlab myFloorSlab{
getObjectProperty(FloorSlab.isFireResistantStructure)=True
}
Wall myWall{
getObjectProperty(FloorSlab.isFireResistantStructure)=True
hasObject(Wall, myElement) =False
}
isFirePartition(Building, myFloorSlab)=True
OR isFirePartition(Building, myWall)=True
}
KS{
getResult(EDBA_34)=True
getResult(EDBA_35)=True
getResult(EDBA_36)=True
getResult(EDBA_37)=True
getResult(EDBA_38)=True
getResult(EDBA_39)=True
getResult(EDBA_40)=True
getResult(EDBA_41)=True
}
Python Code 변환 예정
29
연결살수설비의 화재안전기준(NFSC 503) 제 6조 3 항 7호
7. 연소할 우려가 있는 개구부에는 그 상하좌우에 2.5m 간격으로(개구부의 폭이 2.5m 이하인 경우에는 그 중앙에) 스프링클러헤드를 설치하되, 스프링클러헤드와 개구부의 내측면으로부터의 직선거리는 15㎝ 이하가 되도록 할 것. 이 경우 사람이 상시 출입하는 개구부로서 통행에 지장이 있는 때에는 개구부의 상부 또는 측면(개구부의 폭이 9m 이하인 경우에 한한다)에 설치하되, 헤드 상호간의 간격은 1.2m 이하로 설치하여야 한다.
//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 7호
Check(NFSC503_6_3_7){
IF (CS1 THEN KS1) or (CS2 THEN KS2)
}
CS1{
Opening myOpening {
isObjectProperty(Opening .isFireSpreading) = TRUE
}
isExist(myOpening ) = TRUE
getObjectWidth(myOpening , a) > 2.5m
}
KS1{
(getObjectDistance(myOpening .InsideSurface, SprinklerSystem.Head) <= 15cm
getObjectWidth(SprinklerSystem.Head, a) = 2.5m)
OR (getObjectWidth(myOpening ) <= 9m
getObjectDistance(myOpening .InsideSurface, SprinklerSystem.Head) <= 15cm
getObjectWidth(SprinklerSystem.Head, a) <= 1.2m)
}
CS2{
Opening myOpening {
isObjectProperty(Opening .isFireSpreading) = TRUE
}
isExist(myOpening ) = TRUE
getObjectWidth(myOpening , a) <= 2.5m
}
KS2{
hasObject(myOpening , SprinklerSystem.Head) = TRUE
}
Python Code 변환 예정
30
유도등 및 유도표지의 화재안전기준(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 변환 예정
31
주차장법 시행규칙 제 5조 7호
7. 주차대수 400대를 초과하는 규모의 노외주차장의 경우에는 노외주차장의 출구와 입구를 각각 따로 설치하여야 한다. 다만, 출입구의 너비의 합이 5.5미터 이상으로서 출구와 입구가 차선 등으로 분리되는 경우에는 함께 설치할 수 있다.
//주차장법 시행규칙 5조 (노외주차장의 설치에 대한 계획기준) 7항
Check(ERPA_5_7){
IF (!CS1 AND CS2) THEN KS
}
CS2{
ParkingLot myParkingLot{
isObjectProperty(ParkingLot.isOffStreetParking)=TRUE
}
getObjectProperty(ParkingLot.numberOfParkingUnit) > 400
}
Opening myOpening 1{
isObjectProperty(myParkingLot.Oepning.isEntrance)=TRUE
}
Opening myOpening 2{
isObjectProperty(myParkingLot.Oepning.isExit)=TRUE
}
myOpening 1 != myOpening 2
CS1{
getObjectProperty(myOpening 1.width) = W1
getObjectProperty(myOpening 2.width) = W2
W1 + W2 >= 5.5m
}
KS2{
isExist(myOpening 1) = TRUE
isExist(myOpening 2) = TRUE
}
Python Code 변환 예정
32
주차장법 시행규칙 제 16조의5조 1 항 2호
2. 기계식주차장치 출입구의 크기는 중형 기계식주차장의 경우에는 너비 2.3미터 이상, 높이 1.6미터 이상으로 하여야 하고, 대형 기계식주차장의 경우에는 너비 2.4미터 이상, 높이 1.9미터 이상으로 하여야 한다. 다만, 사람이 통행하는 기계식주차장치 출입구의 높이는 1.8미터 이상으로 한다.
Check(ERPA_16 – 5_1_2) { IF (CS1 then KS1) OR (CS2 then KS2) }
CS1 {
ParkingLot myParkingLot {
myParkingLot.operationType = "MechanicalParking" }
getObjectProperty(myParkingLot.scale) = "MiddleSize"
MechanicalParkingEquipment myMechanicalParkingEquipment {
isExist(myMechanicalParkingEquipment, myParkingLot) = true }
}
KS1{
Opening myOpening 1 {
isExist(myOpening 1, myMechanicalParkingEquipment) = true
WD1 = getObjectWidth(myOpening 1, a) >= 2.3m
H1 = getObjectHeight(myOpening 1, a) >= 1.6m }
}
CS2 {
ParkingLot myParkingLot {
myParkingLot.operationType = "MechanicalParking" }
getObjectProperty(myParkingLot.scale) = "LargeSize"
MechanicalParkingEquipment myMechanicalParkingEquipment {
isExist(myMechanicalParkingEquipment, myParkingLot) = true }
}
KS2 {
Opening myOpening 2 {
isExist(myOpening 2, myMechanicalParkingEquipment) = true
WD2 = getObjectWidth(myOpening 2, a) >= 2.4m
H2 = getObjectHeight(myOpening 2, a) >= 1.9m } }
Python Code 변환 예정
33
주차장법 시행규칙 제 6조 1 항 4호
4. 노외주차장의 출입구의 너비는 3.5미터 이상으로 하여야 하며, 주차대수규모가 50대 이상인 경우에는 출구와 입구를 분리하거나 너비 5.5미터 이상의 출입구를 설치하여 소통이 원활하도록 하여야 한다.
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 4호
Check(ERPA_6_1_4){
KS1 AND IF CS THEN KS2
}
KS1{
ParkingLot myParkingLot{
isObjectProperty(ParkingLot.isOffStreetParking)=TRUE
}
getObjectProperty(myParkingLot.Opening .width) >= 3.5m
}
CS{
getObjectProperty(ParkingLot.numberOfParkingUnit) >= 50
}
KS2{
Opening myOpening 1{
isObjectProperty(Opening .isExit)=TRUE
}
Opening myOpening 2{
isObjectProperty(Opening .isEntrance)=TRUE
}
myOpening 1 != myOpening 2
isExist(myOpening 1)=TRUE
isExist(myOpening 2)=TRUE
OR getObjectProperty(Opening .width) >= 5.5m
}
Python Code 변환 예정
34
주차장법 시행규칙 제 6조 1 항 5호 바 목
바. 주차대수규모가 50대 이상인 경우의 경사로는 너비 6미터 이상인 2차선의 차로를 확보하거나 진입차로와 진출차로를 분리하여야 한다.
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 5호 바목
Check(ERPA_6_1_5_바){
IF CS THEN (KS1 OR KS2)
}
CS{
getObjectProperty(ParkingLot.numberOfParkingUnit) >= 50
hasObject(Ramp, ParkingLot.Driveway.)=TRUE
}
KS1{
getObjectProperty(ParkingLot.Driveway.width) >= 6m
getObjectProperty(ParkingLot.Driveway.numberOfLane) >= 2
}
KS2{
Opening myOpening 1{
isObjectProperty(Opening .isExit)=TRUE
}
Opening myOpening 2{
isObjectProperty(Opening .isEntrance)=TRUE
}
myOpening 1 != myOpening 2
hasObject(ParkingLot.Driveway., myOpening 1)=TRUE
hasObject(ParkingLot.Driveway., myOpening 2)=TRUE
}
Python Code 변환 예정
35
주차장법 시행규칙 제 6조 1 항 6호
6. 노외주차장의 주차에 사용되는 부분의 높이는 주차바닥면으로부터 2.1미터 이상으로 하여야 한다.
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 6호
Check(ERPA_6_1_6){
IF (!CS1 AND CS2) THEN (KS1 AND KS2)
}
CS1{
Elevator myElevator{
getObjectProperty(Elevator.usage) = "AutomobileElevator"
}
Opening myOpening 1{
isObjectProperty(Elevator.Opening .isEntrance)=TRUE
}
Opening myOpening 2{
isObjectProperty(Elevator.Opening .isExit)=TRUE
}
myOpening 1 != myOpening 2
isExist(myOpening 1)=TRUE
isExist(myOpening 2)=TRUE
}
CS2{
getObjectProperty(ParkingLot.operationType) = "DriveInParking"
isObjectProperty(ParkingLot.isOffStreetParking)=TRUE
}
KS1{
}
KS2{
getResult(ERPA_16-2_1)=TRUE
getResult(ERPA_16-2_3)=TRUE
}
Python Code 변환 예정
36
주차장법 시행규칙 제 11조 5 항 5호
5. 출입구의 너비는 3미터 이상으로 한다. 다만, 막다른 도로에 접하여 있는 부설주차장으로서 시장·군수 또는 구청장이 차량의 소통에 지장이 없다고 인정하는 경우에는 2.5미터 이상으로 할 수 있다.
// 주차장법 시행규칙 11조 (부설주차장의 구조·설비기준) 5항 5호
Check(ERPA_11_5_5){
KS
}
KS{
getObjectWidth(ParkingLot.Opening ) >= 3m
}
Python Code 변환 예정
37
주차장법 시행규칙 제 16조의2조 1 항 1호
1. 기계식주차장치 출입구의 앞면에는 다음 각 목에 따라 자동차의 회전을 위한 공지(空地)(이하 "전면공지"라 한다) 또는 자동차의 방향을 전환하기 위한 기계장치(이하 "방향전환장치"라 한다)를 설치하여야 한다.
//주차장법 시행규칙 16조의2 (기계식주차장의 설치기준) 1호
Check(ERPA_16-2_0_1){
KS
}
KS{
isExist(FrontageSpace, MechanicalParkingEquipment.Opening .FrontSurface)=True
isExist(DirectionSwitchingEquipment, MechanicalParkingEquipment.Opening .FrontSurface)=True
getResult(ERPA_16-2_0_1_가)=True
getResult(ERPA_16-2_0_1_나)=True
}
Python Code 변환 예정
38
주차장법 시행규칙 제 6조 1 항 3호 나 1) 목
1) 이륜자동차전용 노외주차장
(표)
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 3호 나목
Check(ERPA_6_1_3_나){
IF CS THEN KS
}
CS{
getSpaceUsage()="ParkingLot"
getObjectProperty(ParkingLot.parkingUseType)="TwowheeledVehicle"
}
KS{
IF getObjectProperty(ParkingUnit.parkingType)="ParallelParking"
IF getObjectCount(Opening )>=2
THEN ParkingLot.Driveway.width>=2.25 m
ELSE IF getObjectCount(Opening )=1
THEN ParkingLot.Driveway.width>=3.5 m
END IF
ELSE IF getObjectProperty(ParkingUnit.parkingType)="RightAngleParking"
IF getObjectCount(Opening )>=2
THEN ParkingLot.Driveway.width>=4.0 m
ELSE IF getObjectCount(Opening )=1
THEN ParkingLot.Driveway.width>=4.0 m
END IF
ELSE IF getObjectProperty(ParkingUnit.parkingType)="45AngleParking"
IF getObjectCount(Opening )>=2
THEN ParkingLot.Driveway.width>=2.3 m
ELSE IF getObjectCount(Opening )=1
THEN ParkingLot.Driveway.width>=3.5 m
END IF
END IF
}
Python Code 변환 예정
39
주차장법 시행규칙 제 6조 1 항 3호 나 2) 목
2) 1) 외의 노외주차장
(표)
//주차장법 시행규칙 6조 (노외주차장의 구조·설비기준) 1항 3호 나목
Check(ERPA_6_1_3_나){
IF CS THEN KS
}
CS{
getSpaceUsage()="ParkingLot"
isObjectProperty(ParkingLot.isOffStreetParking)=True
getObjectProperty(ParkingLot.parkingUseType)!="TwowheeledVehicle"
}
KS{
IF getObjectProperty(ParkingUnit.parkingType)="ParallelParking"
IF getObjectCount(Opening )>=2
THEN ParkingLot.Driveway.width>=3.3 m
ELSE IF getObjectCount(Opening )=1
THEN ParkingLot.Driveway.width>=5.0 m
END IF
ELSE IF getObjectProperty(ParkingUnit.parkingType)="RightAngleParking"
IF getObjectCount(Opening )>=2
THEN ParkingLot.Driveway.width>=6.0 m
ELSE IF getObjectCount(Opening )=1
THEN ParkingLot.Driveway.width>=6.0 m
END IF
ELSE IF getObjectProperty(ParkingUnit.parkingType)="60AngleParking"
IF getObjectCount(Opening )>=2
THEN ParkingLot.Driveway.width>=4.5 m
ELSE IF getObjectCount(Opening )=1
THEN ParkingLot.Driveway.width>=5.5 m
END IF
ELSE IF getObjectProperty(ParkingUnit.parkingType)="45AngleParking"
IF getObjectCount(Opening )>=2
THEN ParkingLot.Driveway.width>=3.5 m
ELSE IF getObjectCount(Opening )=1
THEN ParkingLot.Driveway.width>=5.0 m
END IF
getObjectProperty(ParkingUnit.parkingType)="CrossParking"
IF getObjectCount(Opening )>=2
THEN ParkingLot.Driveway.width>=3.5 m
ELSE IF getObjectCount(Opening )=1
THEN ParkingLot.Driveway.width>=5.0 m
END IF
END IF
}
Python Code 변환 예정
40
특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(NFSC 501A) 제 14조 3호 사 목
사. 개방 시의 실제개구부(개구율을 감안한 것을 말한다)의 크기는 수직풍도의 내부단면적과 같도록 할 것
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 14조 (수직풍도에 따른 배출) 3호 사목
Check(NFSC501A_14_0_1_사){
KS
}
KS{
Duct myDuct{
isObjectProperty(Duct.isVerticalDuct)=TRUE
}
DOA= getObjectArea(myDuct.Opening )
DISA=getObjectSectionArea(myDuct)
DOA==DISA
}
Python Code 변환 예정
41
특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(NFSC 501A) 제 15조 2호
2. 개폐기의 개구면적은 다음식에 따라 산출한 수치 이상으로 할 것
//특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 15조 (배출구에 따른 배출) 2호
Check(NFSC501A_15_0_2){
KS
}
KS{
getObjectProperty(Opener.Opening .area)> Qn/2.5
}
Python Code 변환 예정