Open BIM based Technological Environment for Building Design Quality Enhancement
1-2. 설계품질검증 자동화를 위한 각종 법규 및 제기준의 체계화된 논리규칙 데이터베이스 구축
- 건축물 설계품질 혁신을 위한 개방형 BIM 기술 환경 구축 | 국토교통부
3. 담의 길이 2미터 이내마다 담의 벽면으로부터 그 부분의 담의 두께 이상 튀어나온 버팀벽을 설치하거나, 담의 길이 4미터 이내마다 담의 벽면으로부터 그 부분의 담의 두께의 1.5배 이상 튀어나온 버팀벽을 설치할 것. 다만, 각 부분의 담의 두께가 제2호의 규정에 의한 담의 두께의 1.5배 이상인 경우에는 그러하지 아니하다.
//건축물의 구조기준 등에 관한 규칙 39조 (조적식구조인 담) 3호
Check(RSSB_39_0_3){
IF !CS THEN KS
}
CS{
}
KS{
FD = getObjectProperty(Fence.depth)
Wall myWall{
isObjectProperty(Wall.isSupportingWall) = TRUE
}
(isInstalled(myWall, Fence, b, 2) = TRUE
getObjectProperty(Wall.depth) >= FD)
OR (isInstalled(myWall, Fence, b, 4) = TRUE
getObjectProperty(Wall.depth) >= 1.5* 2호 규정에 의한 담의 두께)
}
제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
}
제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
}
②높이가 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
}
//건축물의 구조기준 등에 관한 규칙 51조 (철근을 덮는 두께)
Check(RSSB_51){
getResult(RSSB_3_3) = TRUE AND IF CS THEN KS
}
CS{
// 철근을 덥는 콘크리트
}
KS{
getResult(RSSB_51_0_1)=True
getResult(RSSB_51_0_2)=True
}
//건축물의 구조기준 등에 관한 규칙 51조 (철근을 덮는 두께) 1호 가목
Check(RSSB_51_0_1_가){
IF CS THEN KS
}
CS{
getObjectDiameter("철근")>=29 mm
}
KS{
getObjectThickness("철근을 덮는 콘크리트")>=60 mm
}
// 건축물의 구조기준 등에 관한 규칙 51조 (철근을 덮는 두께) 1호 나목
Check(RSSB_51_0_1_나){
IF CS THEN KS
}
CS{
getObjectDiameter("철근")>16 mm
getObjectDiameter("철근")<29 mm
}
KS{
getObjectThickness("철근을 덮는 콘크리트")>=50 mm
}
// 건축물의 구조기준 등에 관한 규칙 51조 (철근을 덮는 두께) 1호 다목
Check(RSSB_51_0_1_다){
IF CS THEN KS
}
CS{
getObjectDiameter("철근")<=16 mm
}
KS{
getObjectThickness("철근을 덮는 콘크리트")>=40 mm
}
//건축물의 구조기준 등에 관한 규칙 51조 (철근을 덮는 두께) 2호
Check(RSSB_51_0_2){
IF CS THEN KS
}
CS{
isExternal(Concrete)=False
// 흙에 접하지 않는 경우
}
KS{
getResult(RSSB_51_0_2_가)=True
getResult(RSSB_51_0_2_나)=True
}
// 건축물의 구조기준 등에 관한 규칙 51조 (철근을 덮는 두께) 2호 가목
Check(RSSB_51_0_2_가){
KS
}
KS{
getObjectThickness(Slab)>=20 mm
getObjectThickness(Wall)>=20 mm
getObjectThickness(BridgingJoist)>=20 mm
}
제52조(보의 구조) 구조부재인 보는 복근(複筋)으로 배근하되, 주근(主筋)은 직경 12밀리미터 이상의 것을 사용하여야 한다. 다만, 늑근(肋筋)은 직경 6밀리미터 이상의 것을 사용하여야 하며, 그 배치간격은 보춤의 4분의 3이하 또는 450밀리미터 이하이어야 한다. <개정 2009.12.31.>
//건축물의 구조기준 등에 관한 규칙 52조 (보의 구조)
Check(RSSB_52){
getResult(RSSB_3_3) = TRUE AND IF CS THEN KS
}
CS{
isObjectProperty(Beam.isStructuralMember)=True
}
KS{
getObjectProperty(Beam.MainReinforcement.diameter)>=12 mm
getObjectProperty(Beam."늑근".diameter
2. 최대휨모멘트를 받는 부분에 있어서의 인장철근의 간격은 단변방향은 200밀리미터 이하로 하고 장변방향은 300밀리미터 이하로 하되, 슬래브의 두께의 3배 이하로 하여야 한다.
//건축물의 구조기준 등에 관한 규칙 53조 (콘크리트슬래브의 구조) 2호
Check(RSSB_53_0_2){
KS
}
KS{
getObjectDistance(TensionReinforcement, "최대휨모멘트를 받는 부분의 단변방향의 간격") <=200 mm
getObjectDistance(TensionReinforcement, "최대휨모멘트를 받는 부분의 장변방향의 간격") <=300 mm
TS=getObjectThickness(Slab)
getObjectDistance(TensionReinforcement, "최대휨모멘트를 받는 부분의간격") <= TS/3
}
1. 내력벽의 최소두께는 벽의 최상단에서 4.5미터까지는 150밀리미터 이상이어야 하며, 각 3미터 내려감에 따라 10밀리미터씩의 비율로 증가시켜야 한다. 다만, 두께가 120밀리미터 이상의 경우로서 구조계산에 의하여 안전하다고 확인된 경우에는 그러하지 아니하다.
//건축물의 구조기준 등에 관한 규칙 54조 (내력벽의 구조) 1호
Check(RSSB_54_0_1){
IF !CS THEN KS
}
Wall myWall{
isObjectProperty(Wall.isLoadBearingWall)=True
}
CS{
getWallThickness(myWall)>=120 mmm
}
KS{
H1=getObjectHeight(myWall)
H2= H1-4.5 m
getWallThickness(myWall,H2,H1)>=150 mm
H3=getFloorElevationHeight(myWall.Floor)
getWallThickness(myWall,H3,H2,3 m, a)>=150+10*a
}
2. 내력벽의 배근은 9밀리미터 이상의 것을 450밀리미터 이하의 간격으로 하고, 벽두께의 3배 이하이어야 한다. 이 경우 벽의 두께가 200밀리미터 이상일 때에는 벽 양면에 복근으로 하여야 한다.
//건축물의 구조기준 등에 관한 규칙 54조 (내력벽의 구조) 2호
Check(RSSB_54_02){
KS
}
KS{
Wall myWall{
isObjectProperty(Wall.isLoadBearingWall)=True
}
Reinforcement myReinforcement{
getObjectProperty(Reinforcement.diameter)>=9 mm
}
isInstalled(myReinforcement, myWall, 450 mm)=True
//벽두께의 3배 이하이어야 한다.
IF getObjectProperty(myWall.depth)>=200 mm
THEN isInstalled(DoubleReinforcement, myWall, myWall.BothSides)=True
END IF
}
제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
}
⑤공동주택의 지하층은 「주택건설기준 등에 관한 규정」 제2조제3호에 따른 주민공동시설(이하 "주민공동시설"이라 한다)로 활용할 수 있다. 이 경우 관리주체는 대피시설로 사용하는데 지장이 없도록 이를 유지ㆍ관리하여야 한다. <개정 2006.2.24., 2014.11.4.>
//주택법 시행령 47조 (행위허가 등의 기준 등) 5항
Check(NFSC506_47_5){
IF !CS THEN KS
}
CS{
getBuildingUsage() = "MultiUnitHouse"
getObjectProperty(Floor.number) < 0
}
KS{
Floor myFloor{
getObjectProperty(Floor.number) < 0
}
getFloorUsage(myFloor) != "ResidentsCommonSpace"
}
제11조(지하층의 활용) 공동주택을 건설하는 주택단지에 설치하는 지하층은 근린생활시설(변전소ㆍ정수장 및 양수장을 제외한다. 다만, 변전소의 경우 「전기사업법」 제2조제2호에 따른 전기사업자가 자신의 소유 토지에 「전원개발촉진법 시행령」 제3조제1호에 따른 시설의 설치ㆍ운영에 종사하는 자를 위하여 건설하는 공동주택 및 주택과 주택 외의 건축물을 동일건축물에 복합하여 건설하는 경우로서 사업계획승인권자가 주거안정에 지장이 없다고 인정하는 건축물의 변전소는 포함한다)ㆍ주차장ㆍ주민공동시설 및 주택(사업계획승인권자가 해당 주택의 주거환경에 지장이 없다고 인정하는 경우로서 1층 세대의 주거전용부분으로 사용되는 구조만 해당한다) 그 밖에 관계 법령에 따라 허용되는 용도로 사용할 수 있으며, 그 구조 및 설비는 「건축법」제53조에 따른 기준에 적합하여야 한다. <개정 2005.6.30., 2006.1.6., 2008.10.29., 2009.10.19., 2013.6.17.>
//주택건설기준 등에 관한 규정 11조 (지하층의 활용)
Check(RHC_11){
IF CS THEN KS
}
CS{
getBuildingUsage()=" MultiUnitHouse"
getFloorNumber(Space)<0
}
KS{
getResult(BA_53)=True
}
제15조(승강기등) ①6층 이상인 공동주택에는 국토교통부령이 정하는 기준에 따라 대당 6인승 이상인 승용승강기를 설치하여야 한다. 다만, 「건축법 시행령」 제89조의 규정에 해당하는 공동주택의 경우에는 그러하지 아니하다. <개정 1992.5.30., 1994.12.23., 1994.12.30., 1999.9.29., 2005.6.30., 2008.2.29., 2013.3.23.>
//주택건설기준 등에 관한 규정 15조 (승강기등) 1항
Check(RHC_15_1){
getResult(RHC_15_5) = TRUE AND IF (CS1 AND !CS2) THEN KS
}
CS1{
getBuildingUsage() = "MultiUnitHouse"
getBuildingStoriesCount() >= 6
}
CS2{
getBuildingStoriesCount = 6
Stair myStair{
isObjectProperty(Stair.isDirect) = TRUE
}
getFloorArea() = FA
FA / 300 = FA2
getIntegeralNumber(FA2) = FA3
getObjectCount(myStair) >= FA3
}
KS{
Elevator myElevator{
getObjectProperty(Elevator.occupancy) >= 6
}
isExist(myElevator) = TRUE
}
//주택건설기준 등에 관한 규정 15조 (승강기등) 3항 3호
Check(RHC_15_3_3){
IF CS THEN KS
}
CS{
}
KS{
Elevator myElevator{
getObjectProperty(Elevator.usage) = "FreightElevator"
}
isInstalled(myElevator, Stair.Space) = TRUE
}
4. 복도형인 공동주택의 경우에는 100세대까지 1대를 설치하되, 100세대를 넘는 경우에는 100세대마다 1대를 추가로 설치할 것
//주택건설기준 등에 관한 규정 15조 (승강기등) 3항 4호
Check(RHC_15_3_4){
IF CS THEN KS
}
CS{
}
KS{
Elevator myElevator{
getObjectProperty(Elevator.usage) = "FreightElevator"
}
getObjectCount(myElevator) = ELV
100*n <= getObjectProperty(Building.numberOfHousehold) <100*(n+1)
n <= ELV
}
④ 다음 각 호의 어느 하나에 해당하는 특정소방대상물 가운데 대통령령으로 정하는 특정소방대상물에는 제9조제1항에도 불구하고 대통령령으로 정하는 소방시설을 설치하지 아니할 수 있다.
// 소방시설 설치ㆍ유지 및 안전관리에 관한 법률 11조 (소방시설기준 적용의 특례) 4항
Check(IMSFA_11_4){
IF CS THEN KS
}
CS{
getResult(IMSFA_11_4_4) = TRUE
}
KS{
isInstalled(FireFightingFacility) = TRUE OR FALSE
}
//주차장법 시행규칙 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
}
//주차장법 시행규칙 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
}
다. 경사로의 차로 너비는 직선형인 경우에는 3.3미터 이상(2차로의 경우에는 6미터 이상)으로 하고, 곡선형인 경우에는 3.6미터 이상(2차로의 경우에는 6.5미터 이상)으로 하며, 경사로의 양쪽 벽면으로부터 30센티미터 이상의 지점에 높이 10센티미터 이상 15센티미터 미만의 연석(沿石)을 설치하여야 한다. 이 경우 연석 부분은 차로의 너비에 포함되는 것으로 본다.
6. 자동차용 승강기로 운반된 자동차가 주차구획까지 자주식으로 들어가는 노외주차장의 경우에는 주차대수 30대마다 1대의 자동차용 승강기를 설치하여야 한다. 이 경우 제16조의2제1호 및 제3호를 준용하되, 자동차용 승강기의 출구와 입구가 따로 설치되어 있거나 주차장의 내부에서 자동차가 방향전환을 할 수 있을 때에는 제16조의2제3호에 따른 진입로를 설치하고 제16조의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 myOpening1{
isObjectProperty(Elevator.Opening.isEntrance)=TRUE
}
Opening myOpening2{
isObjectProperty(Elevator.Opening.isExit)=TRUE
}
myOpening1 != myOpening2
isExist(myOpening1)=TRUE
isExist(myOpening2)=TRUE
}
CS2{
getObjectProperty(ParkingLot.operationType) = "DriveInParking"
isObjectProperty(ParkingLot.isOffStreetParking)=TRUE
}
KS1{
}
KS2{
getResult(ERPA_16-2_1)=TRUE
getResult(ERPA_16-2_3)=TRUE
}