1
72577
간이스프링클러설비의 화재안전기준(NFSC 103A) 제 8조 6 항 2호
2. 유량측정장치는 성능시험배관의 직관부에 설치하되, 펌프의 정격토출량의 175% 이상 측정할 수 있는 성능이 있을 것
// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 6항 2호
Check(NFSC103A_8_6_2){
KS
}
KS{
Pipe myPipe{
isObjectProperty(Pipe.isForTest) = TRUE
}
isConnectedTo( myPipe, DischargeMeasuringEquipment) = TRUE
getObjectProperty(DischargeMeasuringEquipment.measurementCapacity) = DME
getObjectProperty(Pump.ratedDischargePressure) = PDP
PDP*1.75 <= DME
}
Python Code 변환 예정
Modify
2
24886
건축물의 구조기준 등에 관한 규칙 제 25조 3 항
③가새는 그 두 끝부분을 기둥·보 그 밖의 구조부재인 가로재와 잇도록 하여야 한다. <개정 2009.12.31>
//건축물의 구조기준 등에 관한 규칙 25조 (가새) 3항
Check(RSSB_25_3){
KS
}
KS{
isObjectProperty(HorizontalMember.isStructuralMember) = TRUE
isConnectedTo( Brace, HorizontalMember) = TRUE
}
Python Code 변환 예정
Modify
3
19386
건축물의 설비기준 등에 관한 규칙 제 10조 3호 나 목
나. 각층으로부터 피난층까지 이르는 승강로를 단일구조로 연결하여 설치할 것
//건축물의 설비기준 등에 관한 규칙 10조 (비상용승강기의 승강장 및 승강로의 구조) 3호 나목
Check(RFB_10_0_3_나){
KS
}
KS{
Floor myFloor{
isObjectProperty(Floor.isEscape)=TRUE
}
ElevatorShaft myElevatorShaft1{
hasObject(Floor,ElevatorShaft)=TRUE
}
ElevatorShaft myElevatorShaft2{
hasObject(myFloor,ElevatorShaft)=TRUE
}
isConnectedTo( myElevatorShaf1t, myElevatorShaft2, SingleStructure)=TRUE
}
Python Code 변환 예정
Modify
4
25140
건축물의 설비기준 등에 관한 규칙 제 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 변환 예정
Modify
5
72691
건축물의 에너지절약설계기준 제 5조 5호
5. "고효율에너지기자재인증제품”(이하 "고효율인증제품”이라 한다)이라 함은 산업통상자원부 고시 「고효율에너지기자재 보급촉진에 관한규정」(이하 "고효율인증규정”이라 한다)에서 정한 기준을 만족하여 에너지관리공단에서 인증서를 교부받은 제품을 말한다.
// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 6항
Check(NFSC102_6_6){
IF (CS1 THEN KS1) OR (CS2 THEN KS2) OR (CS3 THEN KS3) OR (CS4 THEN KS4)
}
Port myPort{
Port.typeForWater = "IndoorFireHydrantDischarge"
}
Pipe myPipe{
isObjectProperty(Pipe.isBranchLines) = TRUE
isConnectedTo( Pipe, myPort) = TRUE
}
Pipe myPipe2{
isObjectProperty(Pipe.isRiser) = TRUE
}
CS1{
getObjectProperty(myPipe.systemType) = "HoseReelHydrantSystem"
}
KS1{
getObjectProperty(myPipe.diameter) >= 25mm
}
CS2{
getObjectProperty(myPipe.systemType) != "HoseReelHydrantSystem"
}
KS2{
getObjectProperty(myPipe.diameter) >= 40mm
}
CS3{
getObjectProperty(myPipe2.systemType) = "HoseReelHydrantSystem"
}
KS3{
getObjectProperty(myPipe2.diameter) >= 32mm
}
CS4{
getObjectProperty(myPipe2.systemType) != "HoseReelHydrantSystem"
}
KS4{
getObjectProperty(myPipe2.diameter) >= 50mm
}
Python Code 변환 예정
Modify
6
72692
건축물의 에너지절약설계기준 제 5조 6호
6. "완화기준”이라 함은 「건축법」, 「국토의 계획 및 이용에 관한 법률」 및 「지방자치단체 조례」등에서 정하는 조경설치면적, 건축물의 용적률 및 높이제한 기준을 적용함에 있어 완화 적용할 수 있는 비율을 정한 기준을 말한다.
// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 7항
Check(NFSC503A_6_7){
IF CS THEN KS
}
CS{
Pipe.isShared(SimpleSprinklersystem.Pipe, FireDepartmentConnectionSystem.Pipe) = TRUE
}
KS{
Pipe myPipe1{
isObjectProperty(Pipe.isRiser) = TRUE
}
Port myPort{
getObjectProperty(Port.typeForWater) = "Delivery"
Pipe myPipe2{
isConnectedTo( Pipe, myPort) = TRUE
}
isObjectProperty(myPipe1.diameter) >= 100 mm
getObjectProperty(myPipe2.diameter) >= 65 mm
}
Python Code 변환 예정
Modify
7
72699
건축물의 에너지절약설계기준 제 5조 9호 너 목
너. "태양열취득률(SHGC)"이라 함은 입사된 태양열에 대하여 실내로 유입된 태양열취득의 비율을 말한다.
// 옥내소화전설비의 화재안전기준(nfsc 102) 6조 (배관 등) 13항 2호
Check(NFSC503A_6_13_2){
IF !CS THEN KS
}
CS{
isShared(HookingUpSprinklerSystem.Pipe, SprinklerSystem.Pipe, WaterSprayExtingushingSystem.Pipe, FoamExtinguishingSystem.Pipe) = TRUE
OR isShared(HookingUpSprinklerSystem.Pipe, FireDepartmentConnectionSystem.Pipe) = TRUE
}
KS{
Port myPort{
getObjectProperty(HookingUpSprinklerSystem.Port.typeForWater) = "FireDepartmentConnection"
}
Pipe myPipe{
isObjectProperty(Pipe.isRiser)=TRUE
}
Vavle myValve{
isObjectProperty(Valve.isShutoffValve)= TRUE
}
isConnectedTo( myPort, Pipe) = TRUE
isConnectedTo( Pipe, myPipe) = TRUE
isInstalled(myValve, myPipe) = FALSE
}
Python Code 변환 예정
Modify
8
72712
건축물의 에너지절약설계기준 제 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 myWaterSupplyOpening2{
WaterSupplyOpening != myWaterSupplyOpening
}
KS{
getObjectVerticalLocation(myWaterSupplyOpening, myWaterSupplyOpening2) < 0
}
Python Code 변환 예정
Modify
9
72759
건축물의 에너지절약설계기준 제 7조 2호 나 목
나. 건축물의 체적에 대한 외피면적의 비 또는 연면적에 대한 외피면적의 비는 가능한 작게 한다.
//스프링클러설비의 화재안전기준(nfsc 103) 11조 (송수구) 2호
Check(NFSC103_11_0_2){
IF CS THEN KS
}
CS{
Port myPort{
isObjectProperty(Port.typeForWater) = "FireDepartmentConnection"
}
Pipe myPipe{
isObjectProperty(Pipe.isRiser)=TRUE
}
Valve myValve{
isObjectProperty(Valve.isShutoffValve)=TRUE
}
isConnectedTo( myPort,Pipe)=TRUE
isConnectedTo( Pipe,myPipe)=TRUE
isInstalled(Pipe, myValve) = TRUE
}
KS{
Space mySpace{
isObjectProperty(Space.usage) = "MachineRoom"
}
isExternal(myValve)=TRUE
OR hasSpace(mySpace,myValve)=TRUE
Python Code 변환 예정
Modify
10
72777
건축물의 에너지절약설계기준 제 7조 5호 라 목
라. 창에 직접 도달하는 일사를 조절할 수 있도록 제5조제9호러목에 따른 일사조절장치를 설치한다.
// 스프링클러설비의 화재안전기준(nfsc 103) 15조 (헤드의 설치제외) 1항 5호 나목
Check(NFSC103_15_1_5_2){
KS
}
KS{
Wall myWall{
isConnectedTo( Wall, Ceiling) = TRUE
isConnectedTo( Wall, CeilingCovering) = TRUE
}
isObjectProperty(myWall.Material.nonCombustibility) = TRUE
getObjectDistance(Ceiling, CeilingCovering) >= 2m
}
Python Code 변환 예정
Modify
11
72794
건축물의 에너지절약설계기준 제 9조 2호 나 목
나. 난방기기, 냉방기기, 냉동기, 송풍기, 펌프 등은 부하조건에 따라 최고의 성능을 유지할 수 있도록 대수분할 또는 비례제어운전이 되도록 한다.
// 간이스프링클러설비의 화재안전기준(nfsc 103a) 4조 (수원) 2항 2호
Check(NFSC503A_4_2_2){
KS
}
KS{
Pipe myPipe{
getObjectProperty(Pipe.usage)= "WaterSupplyPipe"
getObjectProperty(Pipe.systemType)="SimpleSprinklerSystem"
isObjectProperty(Pipe.isRiser)= TRUE
}
Tank myTank{
getObjectProperty(Tank.operationType) = "ElevatedWaterTank"
}
Port myPort1{
getObjectProperty(Port.typeForWater) = "Supply"
isConnectedTo( Port,myTank) = TRUE
isConnectedTo( Port,myWaterSupplyPipe) = TRUE
}
Port myPort2 {
getObject(Port) - getObject(myPort1)
}
Distance1 = getObjectVerticalDistance(myPort1, Ground.Surface, b)
Distance2 = getObjectVerticalDistance(myPort2, Ground.Surface, b)
Distance1 - Distance2 < 0
}
Python Code 변환 예정
Modify
12
72840
건축물의 에너지절약설계기준 제 11조 3호 가 목
가. 옥외등은 고효율 에너지기자재 인증제품 또는 산업통상자원부 고시 효율관리기자재 운용규정」에서 고효율조명기기로 등록된 고휘도방전램프(HID Lamp : High Intensity Dis charge Lamp) 또는 LED 램프를 사용하고, 옥외등의 조명회로는 격등 점등과 자동점멸기에 의한 점멸이 가능하도록 한다.
//간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 5항
Check(NFSC503A_8_5){
IF CS THEN KS
}
CS{
Pipe myPipe1{
Pipe.systemType = "SimpleSprinklersystem"
}
Pipe myPipe2{
Pipe.systemType = "FireDepartmentConnectionSystem"
}
Pipe.isShared(myPipe1, myPipe2) = TRUE
}
KS{
Pipe myPipe3{
isObjectProperty(Pipe.isRiser) = TRUE
}
Port myPort{
getObjectProperty(Port.typeForWater) = "Delivery"
Pipe myPipe4{
isConnectedTo( Pipe, myPort) = TRUE
}
isObjectProperty(myPipe3.diameter) >= 100 mm
getObjectProperty(myPipe4.diameter) >= 65 mm
}
Python Code 변환 예정
Modify
13
72849
건축물의 에너지절약설계기준 제 11조 4호 라 목
라. 실내 조명설비는 군별 또는 회로별로 자동제어가 가능하도록 한다.
// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 10항
Check(NFSC503A_8_10){
IF CS THEN KS
}
Pipe myPipe1{
isObjectProperty(Pipe.isBranchLines) = TRUE
}
Head myHead{
isObjectProperty(Head.installationDirectionType) = "TopDownType"
}
CS{
isInstalled(myHead, myPipe1) = TRUE
}
KS{
Pipe mypipe2{
isConnectedTo( myPipe1, Pipe) = TRUE
isConnectedTo( myHead, Pipe) = TRUE
}
getObjectVerticalLocation(myPipe1, myPipe1) > 0
}
Python Code 변환 예정
Modify
14
72853
건축물의 에너지절약설계기준 제 13조
제13조(에너지절약계획서 및 설계 검토서 작성) 에너지절약 설계 검토서는 별지 제1호 서식에 따라 에너지절약설계기준 의무사항 및 에너지성능지표, 에너지소요량 평가서로 구분된다. 에너지절약계획서를 제출하는 자는 에너지절약계획서 및 설계 검토서(에너지절약설계기준 의무사항 및 에너지성능지표, 에너지소요량 평가서)의 판정자료를 제시(전자문서로 제출하는 경우를 포함한다)하여야 한다. 다만, 자료를 제시할 수 없는 경우에는 부득이 당해 건축사 및 설계에 협력하는
// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 11항 2호 가목
Check(NFSC503A_8_11_2_가){
KS
}
KS{
Pipe myPipe{
isObjectProperty(Pipe.usage) = "WaterDrainPipe"
isObjectProperty(Pipe.isRiser) = TRUE
}
Valve myValve{
isObjectProperty(Valve.isShutoffValve) = TRUE
}
isConnectedTo( Pipe, myPipe) = TRUE
isInstalled(myValve, Pipe) = TRUE
}
Python Code 변환 예정
Modify
15
72856
건축물의 에너지절약설계기준 제 15조 2 항
② 에너지성능지표의 각 항목에 대한 배점의 판단은 에너지절약계획서 제출자가 제시한 설계도면 및 자료에 의하여 판정하며, 판정 자료가 제시되지 않을 경우에는 적용되지 않은 것으로 간주한다.
// 간이스프링클러설비의 화재안전기준(nfsc 103a) 8조 (배관 및 밸브) 12항 1호
Check(NFSC503A_8_12_1){
KS
}
KS{
Pipe myPipe{
isObjectProperty(Pipe.isBranchLines) = TRUE
isFarthestDistance(WaterflowIndicator, Pipe) = TRUE
}
isInstalled(TestingDevice, myPipe.End) = TRUE
isConnectedTo( TestingDevice, myPipe.End) = TRUE
}
Python Code 변환 예정
Modify
16
72903
건축물의 에너지절약설계기준 제 별표5조
열관류율 계산 시 적용되는 실내 및 실외측 표면 열전달저항
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 7호 라목
Check(NFSC203_7_3_7_라){
KS
}
KS{
Pipe myPipe{
isObjectProperty(Pipe.isForAir) = TRUE
}
isConnectedTo( myPipe, DetectingElement.One) = TRUE
getObjectLength(myPipe) <= 100m
}
Python Code 변환 예정
Modify
17
72908
건축물의 에너지절약설계기준 제 서식1조
에너지절약계획 설계 검토서
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 8호 나목
Check(NFSC203_7_3_8_나){
KS
}
KS{
isConnectedTo( ThermocoupleElement, DetectingElement.One) = TRUE
getObjectCount(ThermocoupleElement) <= 20
}
Python Code 변환 예정
Modify
18
11463
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 19조 3 항
③ 법 제49조제3항에 따른 가구ㆍ세대 등 간 소음방지를 위한 바닥은 경량충격음(비교적 가볍고 딱딱한 충격에 의한 바닥충격음을 말한다)과 중량충격음(무겁고 부드러운 충격에 의한 바닥충격음을 말한다)을 차단할 수 있는 구조로 하여야 한다. <신설 2014.11.28>
check(REFB_19_1){
KS
}
KS{
Wall myWall{
isObjectProperty(Wall.isPartitionWall) = TRUE
}
Floor myFloor{
hasObject(Floor, myWall)
}
isFireResistantStructure(myWall)=TRUE
(isConnectedTo( myWall, Roof.BottomSurface) = TRUE
OR isCOnnectedTo(myWall, myFloor.UpperFloor.FloorSlab) = TRUE)
}
def Check():
for building in SELECT('building'):
bldg_use = building.SELECT('building type').STRING()
sub_use = building.SELECT('prop', '세부용도').STRING()
space_codes = []
if bldg_use == '단독주택' and sub_use == '다가구주택':
space_codes = ['가구'] #가구
elif (bldg_use == '공동주택' and sub_use != '기숙사') or (bldg_use == '노유자시설' and sub_use == '노인복지주택'):
space_codes = ['33237'] #세대
elif bldg_use == '공동주택' and sub_use == '기숙사':
space_codes = ['33230'] #침실
elif bldg_use == '의료시설':
space_codes = ['34310'] #병실
elif bldg_use == '교육연구시설' and sub_use == '학교':
space_codes = ['34404', '34409'] #교실
elif bldg_use == '숙박시설':
space_codes = ['33201'] #객실
elif (bldg_use == '제2종 근린생활시설' and sub_use == '다중생활시설') or (bldg_use == '노유자시설' and sub_use == '노인요양시설'):
space_codes = ['호실'] #호실
else:
return
for storey in building.SELECT('storey'):
walls_list = []
for space in storey.SELECT('space'):
code = space.SELECT('class code').STRING()
if code in space_codes:
walls_list.append(space.SELECT('wall'))
n = len(walls_list)
for i, walls in enumerate(walls_list):
if i == n-1:
break
for j, walls2 in enumerate(walls_list):
if i >= j:
continue
for wall in walls:
if wall.SELECT('isexterior').BOOL():
continue
id = wall.SELECT('element id').STRING()
for wall2 in walls2:
if wall2.SELECT('isexterior').BOOL():
continue
id2 = wall2.SELECT('element id').STRING()
if id == id2:
if wall.SELECT('prop', '경계벽').BOOL() == False:
wall.ERROR('해당 벽은 경계벽이어야 합니다.')
else:
if wall.SELECT('prop', '내화구조').BOOL() == False:
wall.ERROR('경계벽은 내화구조이어야 합니다.')
else:
if wall.SELECT('top touched').BOOL():
wall.SUCCESS('경계벽 조건에 부합합니다.')
else:
wall.ERROR('경계벽 상단이 슬라브와 닿지 않습니다.')
break
Modify
19
19602
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 30조 1호 나 목
나. 승강장은 각 층의 내부와 연결될 수 있도록 하되, 그 출입구에는 갑종방화문을 설치할 것. 이 경우 방화문은 언제나 닫힌 상태를 유지할 수 있는 구조이어야 한다.
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 1호 나목
check(REFB_30_0_1_나){
KS
}
KS{
isConnectedTo( Platform, Floor.One.Space) = TRUE
Door myDoor{
isObjectProperty(Door.isEntrance) = TRUE
isInstalled(Door, Floor.One) = TRUE
}
isObjectProperty(myDoor.isStrictFireproofDoor) = TRUE
}
Python Code 변환 예정
Modify
20
19608
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 30조 2호 나 목
나. 각 층으로부터 피난층까지 이르는 승강로를 단일구조로 연결하여 설치할 것
// 건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 30조 (피난용승강기의 설치기준) 2호 나목
Check(REFB_30_0_2_나){
KS
}
KS{
Floor myFloor{
isObjectProperty(Floor.isEscape)=True
}
ElevatorShaft myElevatorShaft1{
hasObject(Floor,ElevatorShaft)=TRUE
}
ElevatorShaft myElevatorShaft2{
hasObject(myFloor,ElevatorShaft)=TRUE
isConnectedTo( myElevatorShaf1t, myElevatorShaft2, SingleStructure)=TRUE
}
Python Code 변환 예정
Modify
21
25175
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 8조 1 항
①영 제34조에 따른 직통계단의 출입구는 피난에 지장이 없도록 일정한 간격을 두어 설치하고, 각 직통계단 상호간에는 각각 거실과 연결된 복도등 통로를 설치하여야 한다. <개정 2010.4.7>
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 8조 (직통계단의 설치기준) 1항
Check(REFB_8_1){
Stair myStair{
isObjectProperty(Stair.isDirect)=TRUE
}
Passage myPassage{
isConnectedTo( Room, Passage)=TRUE
}
isExist(myPassage)=TRUE
isConnectedTo( myStair,myPassage)=TRUE
}
Python Code 변환 예정
Modify
22
25194
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 9조 2 항 1호 라 목
라. 계단실의 바깥쪽과 접하는 창문등(망이 들어 있는 유리의 붙박이창으로서 그 면적이 각각 1제곱미터 이하인 것을 제외한다)은 당해 건축물의 다른 부분에 설치하는 창문등으로부터 2미터 이상의 거리를 두고 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 9조 (피난계단 및 특별피난계단의 구조) 2항 1호 라목
check(REFB_9_2_1_4){
IF (CS1 AND CS2) THEN KS
}
CS1 {
Opening myOpening1{
isConnectedTo( Stair.Space, Opening) = TRUE
getObjectProperty(Opening.material)= “WireContainedGlass”
getObjectProperty(Window.panelOperationType)= “FixedSashWindow”
getObjectProperty(Opening.area)=< 1㎡
}
CS2 {
Opening myOpening2{
getObject(Opening) != myOpening1
}
KS{
getElementDistance(myOpening1, myOpening2, a)>=2m;
}
}
Python Code 변환 예정
Modify
23
25307
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 19조 1 항
①영 제53조의 규정에 의하여 건축물에 설치하는 경계벽 및 간막이벽은 내화구조로 하고, 지붕밑 또는 바로 윗층의 바닥판까지 닿게 하여야 한다.
check(REFB_19_1){
KS
}
KS{
Wall myWall{
isObjectProperty(Wall.isPartitionWall) = TRUE
}
Floor myFloor{
hasObject(Floor, myWall)
}
isFireResistantStructure(myWall)=TRUE
(isConnectedTo( myWall, Roof.BottomSurface) = TRUE
OR isCOnnectedTo(myWall, myFloor.UpperFloor.FloorSlab) = TRUE)
}
def Check():
for building in SELECT('building'):
bldg_use = building.SELECT('building type').STRING()
sub_use = building.SELECT('prop', '세부용도').STRING()
space_codes = []
if bldg_use == '단독주택' and sub_use == '다가구주택':
space_codes = ['가구'] #가구
elif (bldg_use == '공동주택' and sub_use != '기숙사') or (bldg_use == '노유자시설' and sub_use == '노인복지주택'):
space_codes = ['33237'] #세대
elif bldg_use == '공동주택' and sub_use == '기숙사':
space_codes = ['33230'] #침실
elif bldg_use == '의료시설':
space_codes = ['34310'] #병실
elif bldg_use == '교육연구시설' and sub_use == '학교':
space_codes = ['34404', '34409'] #교실
elif bldg_use == '숙박시설':
space_codes = ['33201'] #객실
elif (bldg_use == '제2종 근린생활시설' and sub_use == '다중생활시설') or (bldg_use == '노유자시설' and sub_use == '노인요양시설'):
space_codes = ['호실'] #호실
else:
return
for storey in building.SELECT('storey'):
walls_list = []
for space in storey.SELECT('space'):
code = space.SELECT('class code').STRING()
if code in space_codes:
walls_list.append(space.SELECT('wall'))
n = len(walls_list)
for i, walls in enumerate(walls_list):
if i == n-1:
break
for j, walls2 in enumerate(walls_list):
if i >= j:
continue
for wall in walls:
if wall.SELECT('isexterior').BOOL():
continue
id = wall.SELECT('element id').STRING()
for wall2 in walls2:
if wall2.SELECT('isexterior').BOOL():
continue
id2 = wall2.SELECT('element id').STRING()
if id == id2:
if wall.SELECT('prop', '경계벽').BOOL() == False:
wall.ERROR('해당 벽은 경계벽이어야 합니다.')
else:
if wall.SELECT('prop', '내화구조').BOOL() == False:
wall.ERROR('경계벽은 내화구조이어야 합니다.')
else:
if wall.SELECT('top touched').BOOL():
wall.SUCCESS('경계벽 조건에 부합합니다.')
else:
wall.ERROR('경계벽 상단이 슬라브와 닿지 않습니다.')
break
Modify
24
25346
건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 제 25조 2 항 4호
4. 지하층의 바닥으로부터 비상탈출구의 아랫부분까지의 높이가 1.2미터 이상이 되는 경우에는 벽체에 발판의 너비가 20센티미터 이상인 사다리를 설치할 것
//건축물의 피난ㆍ방화구조 등의 기준에 관한 규칙 25조 (지하층의 구조) 2항 4호
check(REFB_25_2_4){
IF CS THEN KS
}
CS{
Door myDoor{
Door.functionType = "Emergency"
Door.Floor.number < 0
}
Floor myFloor{
Floor.number < 0
}
getObjectVerticalDistance(myFloor, myDoor) >= 1.2 m
}
KS{
isConnectedTo( Wall, Ladder) = TRUE
getObjectProperty(Ladder.footholdWidth) >= 20 cm
}
Python Code 변환 예정
Modify
25
19915
연결살수설비의 화재안전기준(NFSC 503) 제 4조 1 항 5호
5. 송수구로부터 주배관에 이르는 연결배관에는 개폐밸브를 설치하지 아니 할 것. 다만, 스프링클러설비·물분무소화설비·포소화설비 또는 연결송수관설비의 배관과 겸용하는 경우에는 그러하지 아니하다.
// 연결살수설비의 화재안전기준(nfsc 503) 4조 (송수구 등) 1항 5호
Check(NFSC503_4_1_5){
IF !CS THEN KS
}
CS{
Pipe myPipe1{
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
}
Pipe myPipe2{
getObjectProperty(Port.systemType) = "SprinklerSystem"
}
Pipe myPipe3{
getObjectProperty(Port.systemType) = "WaterSprayExtingushingSystem"
}
Pipe myPipe4{
getObjectProperty(Port.systemType) = "FoamExtinguishingSystem"
}
Pipe myPipe5{
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
}
Pipe myPipe6{
getObjectProperty(Port.systemType) = "FireDepartmentConnectionSystem"
}
isShared(myPipe1, myPipe2, myPipe3, myPipe4) = TRUE
OR isShared(myPipe5, myPipe6) = TRUE
}
KS{
Port myPort{
getObjectProperty(Port.systemType) = "HookingUpSprinklerSystem"
getObjectProperty(Port.typeForWater) = "FireDepartmentConnection"
}
Pipe myPipe{
isObjectProperty(Pipe.isRiser)=TRUE
}
Vavle myValve{
isObjectProperty(Valve.isShutoffValve)= TRUE
}
isConnectedTo( myPort, Pipe) = TRUE
isConnectedTo( Pipe, myPipe) = TRUE
isInstalled(myValve, myPipe) = FALSE
}
Python Code 변환 예정
Modify
26
19927
연결살수설비의 화재안전기준(NFSC 503) 제 5조 3 항
③폐쇄형헤드를 사용하는 연결살수설비의 주배관은 옥내소화전설비의 주배관(옥내소화전설비가 설치된 경우에 한한다) 및 수도배관(연결살수설비가 설치된 건축물 안에 설치된 수도배관 중 구경이 가장 큰 배관을 말한다) 또는 옥상에 설치된 수조(다른 설비의 수조를 포함한다)에 접속하여야 한다. 이 경우 연결살수설비의 주배관과 옥내소화전설비의 주배관·수도배관·옥상에 설치된 수조의 접속부분에는 체크밸브를 설치하되, 점검하기 쉽게 하여야 한다.
// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 3항
Check(NFSC503_5_3){
IF CS THEN KS
}
Head myHead{
isObjectProperty(Head.openAndCloseType) = "EnclosedType"
}
Pipe myPipe1{
isObjectProperty(Pipe.isRiser) = TRUE
isObjectProperty(myPipe.systemType) = "HookingUpSprinklerSystem"
}
CS{
isInstalled(myHead, myPipe1) = TRUE
}
KS{
Pipe myPipe2{
isObjectProperty(Pipe.isRiser) = TRUE
isObjectProperty(myPipe.systemType) = "IndoorFireHydrantSystem"
}
Tank myTank{
isInstalled(Tank, Rooftop) = TRUE
}
Pipe myPipe3{
Pipe.isForWater = TRUE
연결살수설비가 설치된 건축물 안에 설치된 수도배관 중 구경이 가장 큰 배관
}
Valve myValve{
isObjectProperty(Valve.isCheckValve) = TRUE
}
(isConnectedTo( myPipe1, myPipe2) = TRUE
isInstalled(myValve, myPipe1) = TRUE
isInstalled(myValve, myPipe2) = TRUE)
OR (isConnectedTo( myPipe1, myPipe3) = TRUE
isInstalled(myValve, myPipe1) = TRUE
isInstalled(myValve, myPipe3) = TRUE)
OR (isConnectedTo( myPipe1, myTank) = TRUE
isInstalled(myValve, myPipe1) = TRUE
isInstalled(myValve, myTank) = TRUE)
}
Python Code 변환 예정
Modify
27
19929
연결살수설비의 화재안전기준(NFSC 503) 제 5조 4 항 1호
1. 송수구의 가장 먼 가지배관의 끝으로부터 연결하여 설치할 것
// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 4항
Check(NFSC503_5_4_1){
KS
}
KS{
Pipe myPipe1{
isObjectProperty(Pipe.isForTest) = TRUE
}
Port myPort{
getObjectProperty(Port.typeForWater) = "FireDepartmentConnection"
}
Pipe myPipe2{
isObjectProperty(Pipe.isBranchLines) = TRUE
isFarthestDistance(myPort, Pipe) = TRUE
}
isConnectedTo( myPipe1, myPipe2) = TRUE
}
Python Code 변환 예정
Modify
28
19937
연결살수설비의 화재안전기준(NFSC 503) 제 5조 9 항 3호
3. 폐쇄형헤드를 사용하는 연결살수설비에 하향식헤드를 설치하는 경우에는 가지배관으로부터 헤드에 이르는 헤드접속배관은 가지관상부에서 분기할 것. 다만, 소화설비용 수원의 수질이 「먹는물관리법」 제5조에 따라 먹는물의 수질기준에 적합하고 덮개가 있는 저수조로부터 물을 공급받는 경우에는 가지배관의 측면 또는 하부에서 분기할 수 있다.
// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 9항 3호
Check(NFSC503_5_9_3){
IF CS THEN KS
}
Head myHead1{
isObjectProperty(Head.openAndCloseType) = "EnclosedType"
}
Head myHead2{
isObjectProperty(myHead.installationDirectionType) = "TopDownType"
}
CS{
isObjectProperty(myHead1.systemType) = "HookingUpSprinklerSystem"
isInstalled(myHead2, HookingUpSprinklerSystem) = TRUE
}
KS{
Pipe myPipe1{
isObjectProperty(Pipe.isBranchLines) = TRUE
}
Pipe myPipe2{
isConnectedTo( Pipe, myPipe1) = TRUE
isConnectedTo( Pipe, myHead2) = TRUE
}
getObjectVerticalLocation(myPipe2, myPipe1) > 0
}
Python Code 변환 예정
Modify
29
20463
연결송수관설비의 화재안전기준(NFSC 502) 제 4조 4호
4. 송수구로부터 연결송수관설비의 주배관에 이르는 연결배관에 개폐밸브를 설치한 때에는 그 개폐상태를 쉽게 확인 및 조작할 수 있는 옥외 또는 기계실 등의 장소에 설치할 것. 이 경우 개폐밸브에는 그 밸브의 개폐상태를 감시제어반에서 확인할 수 있도록 급수개폐밸브 작동표시 스위치를 다음 각 목의 기준에 따라 설치하여야 한다. <개정 2014.8.18>
//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 4호
Check(NFSC502_4_0_4){
IF CS THEN KS
}
CS{
Pipe myPipe1{
Pipe.systemType = "FireDepartmentConnectionSystem"
Pipe.isRiser = TRUE
}
Pipe myPipe2{
isConnectedTo( FireDepartmentConnection, Pipe)=True
isConnectedTo( myPipe1, Pipe)=True
}
Valve myValve{
isObjectProperty(Valve.isShutoffValve)=True
}
hasObject(myConnectionPipe, myValve)=True
}
KS{
isExternal(myValve)=True
OR (hasObject(Space, myValve)=True
getSpaceUsage(Space) = "MachinRoom"
}
Python Code 변환 예정
Modify
30
20465
연결송수관설비의 화재안전기준(NFSC 502) 제 4조 7호
7. 송수구는 연결송수관의 수직배관마다 1개 이상을 설치할 것. 다만, 하나의 건축물에 설치된 각 수직배관이 중간에 개폐밸브가 설치되지 아니한 배관으로 상호 연결되어 있는 경우에는 건축물마다 1개씩 설치할 수 있다.
//연결송수관설비의 화재안전기준(NFSC 502) 4조 (송수구) 7호
Check(NFSC502_4_0_7){
IF CS THEN KS1 ELSE KS2
}
CS{
Port myPort{
Port.typeForWater = "FireDepartmentConnection"
}
Pipe myPipe{
Pipe.systemType = "FireDepartmentConnectionSystem"
isObjectProperty(Pipe.isRiser)=True
}
Pipe myPipe2{
isInstalled( myValve, Pipe)=False
}
Valve myValve{
isObjectProperty(Valve.isShutOffValve)=True
}
isConnectedTo( myPipe, myPipe2)=True
}
KS1{
isInstalled(myPort)=True
}
KS2{
getObjectCount(myPort,myPipe )>=1
}
Python Code 변환 예정
Modify
31
20106
연소방지설비의 화재안전기준(NFSC 506) 제 4조 6 항 3호
3. 하향식헤드를 설치하는 경우에 가지배관으로부터 헤드에 이르는 헤드접속배관은 가지관상부에서 분기할 것
//연소방지설비의 화재안전 기준(nfsc 506) 4조 (배관) 6항 3호
Check(NFSC506_4_6_3){
IF CS THEN KS
}
CS{
Pipe myPipe{
hasObject(CombustionProtectionSystem, Pipe) = TRUE
isObjectProperty(Pipe.isBranchLines) = TRUE
}
Head myHead{
getObjectProperty(Head.installationDirectionType) = "TopDownType"
}
isInstalled(myPipe, myHead) = TRUE
}
KS{
Pipe myPipe{
hasObject(CombustionProtectionSystem, Pipe) = TRUE
isObjectProperty(Pipe.isBranchLines) = TRUE
}
Head myHead{
getObjectProperty(Head.installationDirectionType) = "TopDownType"
}
Pipe myPipe2{
isConnectedTo( myPipe, Pipe) = TRUE
isConnectedTo( myHead, Pipe) = TRUE
}
isDiverged(가지관 상부, myPipe2) = TRUE
}
Python Code 변환 예정
Modify
32
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
33
20119
연소방지설비의 화재안전기준(NFSC 506) 제 6조 6호
6. 송수구로부터 주배관에 이르는 연결배관에는 개폐밸브를 설치하지 아니할 것
// 연소방지설비의 화재안전기준(nfsc 506) 6조 (송수구) 6호
Check(NFSC506_6_0_6){
KS
}
KS{
Port myPort{
getObjectProperty(Port.typeForWater) = "FireDepartmentConnection"
}
Pipe myPipe2{
isObjectProperty(Pipe.isRiser) = TRUE
}
Pipe myPipe{
isConnectedTo( Pipe, myPort) = TRUE
isConnectedTo( Pipe, myPipe2) = TRUE
}
Valve myValve{
isObjectProperty(Valve.isShutoffValve) = TRUE
}
isInstalled(myValve, myPipe) = FALSE
}
Python Code 변환 예정
Modify
34
20440
자동화재탐지설비 및 시각경보장치의 화재안전기준(NFSC 203) 제 7조 3 항 9호 나 목
나. 하나의 검출기에 접속하는 감지부는 2개 이상 15개 이하가 되도록 할 것. 다만, 각각의 감지부에 대한 작동여부를 검출기에서 표시할 수 있는 것(주소형)은 형식승인 받은 성능인정범위내의 수량으로 설치할 수 있다.
자동화재탐지설비의 화재안전기준(nfsc 203) 7조 (감지기) 3항 9호 나목
Check(NFSC203_7_3_9_나){
IF CS THEN KS
}
CS{
isConnectedTO(Detector.One, SensingElement) = TRUE
}
KS{
getObjectCount(SensingElement) >= 2
getObjectCount(SensingElement) <= 15
}
Python Code 변환 예정
Modify
35
20027
특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(NFSC 501A) 제 19조 6호
6. 송풍기와 연결되는 캔버스는 내열성(석면재료를 제외한다)이 있는 것으로 할 것
// 특별피난계단의 계단실 및 부속실 제연설비의 화재안전기준(nfsc 501a) 19조 (급기송풍기) 6호
Check(NFSC 501A){
IF CS THEN KS
}
CS{
isConnectedTo( AirBlower, Canvas) = TRUE
}
KS{
Canvas.Material.thermalResistance = TRUE
getObjectMaterial(Canvas) != "asbestos"
}
Python Code 변환 예정
Modify