Open BIM based Technological Environment for Building Design Quality Enhancement
1-2. 설계품질검증 자동화를 위한 각종 법규 및 제기준의 체계화된 논리규칙 데이터베이스 구축
- 건축물 설계품질 혁신을 위한 개방형 BIM 기술 환경 구축 | 국토교통부
제78조(용도지역에서의 용적률) ① 제36조에 따라 지정된 용도지역에서 용적률의 최대한도는 관할 구역의 면적과 인구 규모, 용도지역의 특성 등을 고려하여 다음 각 호의 범위에서 대통령령으로 정하는 기준에 따라 특별시·광역시·특별자치시·특별자치도·시 또는 군의 조례로 정한다. <개정 2011.4.14., 2013.7.16.>
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항
Check(LPUA_78_1){
KS
}
KS{
getResult(LPUA_78_1_1)=TRUE
getResult(LPUA_78_1_2)=TRUE
getResult(LPUA_78_1_3)=TRUE
getResult(LPUA_78_1_4)=TRUE
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호
Check(LPUA_78_1_1){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "UrbanArea"
}
KS{
getResult(LPUA_78_1_1_가)=TRUE
OR getResult(LPUA_78_1_1_나)=TRUE
OR getResult(LPUA_78_1_1_다)=TRUE
OR getResult(LPUA_78_1_1_라)=TRUE
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 가목
Check(LPUA_78_1_1_가){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "ResidentialArea"
}
KS{
getFloorAreaRatio() <= 500%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 나목
Check(LPUA_78_1_1_나){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "CommercialArea"
}
KS{
getFloorAreaRatio() <= 1500%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 다목
Check(LPUA_78_1_1_다){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "IndustrialArea"
}
KS{
getFloorAreaRatio() <= 400%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 1호 라목
Check(LPUA_78_1_1_라){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "GreenArea"
}
KS{
getFloorAreaRatio() <= 100%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호
Check(LPUA_78_1_2){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "ControlArea"
}
KS{
getResult(LPUA_78_1_2_가)=TRUE
OR getResult(LPUA_78_1_2_나)=TRUE
OR getResult(LPUA_78_1_2_다)=TRUE
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호 가목
Check(LPUA_78_1_2_가){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "ConservationManagementArea"
}
KS{
getFloorAreaRatio() <= 80%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호 나목
Check(LPUA_78_1_2_나){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "ProductionManagementArea"
}
KS{
getFloorAreaRatio() <= 80%
}
다. 계획관리지역: 100퍼센트 이하. 다만, 성장관리방안을 수립한 지역의 경우 해당 지방자치단체의 조례로 125퍼센트 이내에서 완화하여 적용할 수 있다.
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 2호 다목
Check(LPUA_78_1_2_다){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "PlanningManagementArea"
}
KS{
getFloorAreaRatio() <=100%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 3호
Check(LPUA_78_1_3){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "AgriculturalAndForestryArea"
}
KS{
getFloorAreaRatio() <= 80%
}
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 1항 4호
Check(LPUA_78_1_4){
IF CS THEN KS
}
CS{
getObjectProperty(Building.SpecialPurposeArea.type) = "NaturalEnvironmentConservationArea"
}
KS{
getFloorAreaRatio() <= 80%
}
③ 제77조제3항제2호부터 제5호까지의 규정에 해당하는 지역에서의 용적률에 대한 기준은 제1항과 제2항에도 불구하고 200퍼센트 이하의 범위에서 대통령령으로 정하는 기준에 따라 특별시·광역시·특별자치시·특별자치도·시 또는 군의 조례로 따로 정한다. <개정 2011.4.14.>
// 국토의 계획 및 이용에 관한 법률 78조 (용도지역에서의 용적률) 3항
Check(LPUA_78_3){
IF CS THEN KS
}
CS{
getResult(LPUA_77_3_2) = TRUE
getResult(LPUA_77_3_3) = TRUE
getResult(LPUA_77_3_4) = TRUE
getResult(LPUA_77_3_5) = TRUE
}
KS{
BFA = getObjectProperty(Building.floorAreaRatio)
BFA <= 200
getResult(Unimplemented_LGMO) = TRUE
제2조(다중이용업) 「다중이용업소의 안전관리에 관한 특별법」(이하 "법"이라 한다) 제2조제1항제1호에서 "대통령령으로 정하는 영업"이란 다음 각 호의 어느 하나에 해당하는 영업을 말한다. <개정 2008.12.24., 2009.7.1., 2009.8.6., 2010.8.11., 2012.1.31., 2013.3.23., 2013.11.20., 2014.11.19., 2014.12.23.>
//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업)
Check(ERSASP_2){
KS
}
KS{
Building myBuilding{
getResult(ERSASP_2_1)= TRUE
OR getResult(ERSASP_2_2)= TRUE
OR getResult(ERSASP_2_3)= TRUE
OR getResult(ERSASP_2_5)= TRUE
OR getResult(ERSASP_2_6)= TRUE
OR getResult(ERSASP_2_7)= TRUE
OR getResult(ERSASP_2_7-2)= TRUE
OR getResult(ERSASP_2_7-3)= TRUE
OR getResult(ERSASP_2_7-4)= TRUE
OR getResult(ERSASP_2_7-5)= TRUE
}
}
(3) 하나의 건축물에 제1호, 제2호, 제4호부터 제7호까지, 제7호의2부터 제7호의5까지 및 제8호의 다중이용업 중 어느 하나 이상의 다중이용업과 학원이 함께 있는 경우
Check(ERSASP_2_0_3_나3){
IF CS THEN KS
}
CS{
getObjectProperty(Building.business)= "AEOPE_2_0_1"
}
KS{
getResult(ERSASP_2_0_1)= TRUE
OR getResult(ERSASP_2_0_2)= TRUE
OR getResult(ERSASP_2_0_4)= TRUE
OR getResult(ERSASP_2_0_5)= TRUE
OR getResult(ERSASP_2_0_6)= TRUE
OR getResult(ERSASP_2_0_7)= TRUE
OR getResult(ERSASP_2_0_7-2)= TRUE
OR getResult(ERSASP_2_0_7-3)= TRUE
OR getResult(ERSASP_2_0_7-4)= TRUE
OR getResult(ERSASP_2_0_7-5)= TRUE
OR getResult(ERSASP_2_0_8)= TRUE
}
5. 「게임산업진흥에 관한 법률」 제2조제6호ㆍ제6호의2ㆍ제7호 및 제8호의 게임제공업ㆍ인터넷컴퓨터게임시설제공업 및 복합유통게임제공업. 다만, 게임제공업 및 인터넷컴퓨터게임시설제공업의 경우에는 영업장(내부계단으로 연결된 복층구조의 영업장은 제외한다)이 지상 1층 또는 지상과 직접 접하는 층에 설치되고 그 영업장의 주된 출입구가 건축물 외부의 지면과 직접 연결된 구조에 해당하는 경우는 제외한다.
//다중이용업소의 안전관리에 관한 특별법 시행령 2조 (다중이용업) 5호
Check(ERSASP_2_0_5){
KS1 AND IF CS THEN !KS2
}
KS1{
getObjectProperty(Building.business)= "GIPA_2_0_6"
OR getObjectProperty(Building.business)= "GIPA_2_0_6-2"
OR getObjectProperty(Building.business)= "GIPA_2_0_7"
OR getObjectProperty(Building.business)= "GIPA_2_0_8"
}
CS{
getObjectProperty(Building.business)= "GIPA_2_0_6"
OR getObjectProperty(Building.business)= "GIPA_2_0_7"
}
KS2{
Space mySpace{
Space.usage = "GIPA_2_0_6"
OR Space.usage = "GIPA_2_0_7"
}
Floor myFloor{
hasObject(Floor,mySpace)=TRUE
}
Door myDoor{
isObjectProperty(mySpace.Door.isEntrance)=TRUE
}
(getObjectProperty(myFloor.number)=1
OR isDirectlyAccessible(myFloor, Ground)=TRUE)
isConnectedToExternal(myDoor)=TRUE
}
가. 각층마다 설치하되, 특정소방대상물의 각 부분으로부터 1개의 소화기까지의 보행거리가 소형소화기의 경우에는 20m 이내, 대형소화기의 경우에는 30m 이내가 되도록 배치할 것. 다만, 가연성물질이 없는 작업장의 경우에는 작업장의 실정에 맞게 보행거리를 완화하여 배치할 수 있으며, 지하구의 경우에는 화재발생의 우려가 있거나 사람의 접근이 쉬운 장소에 한하여 설치할 수 있다<개정 2012.6.11>
//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 1항 4호 가목
Check(NFSC101_4_1_4){
KS
}
KS{
isInstalled(FireExtinguisher, Floor)=True
IF getObjectProperty(FireExtinguisher.sizeType)="SmallSize"
THEN getObjectDistance(SpecificFireFightingBuilding.Wall, FireExtinguisher.One)<=20 m
getObjectDistance(SpecificFireFightingBuilding.Column, FireExtinguisher.One)<=20 m
ELSE IF getObjectProperty(FireExtinguisher.sizeType)="LargeSize"
THEN getObjectDistance(SpecificFireFightingBuilding.Wall, FireExtinguisher.One)<=30 m
getObjectDistance(SpecificFireFightingBuilding.Column, FireExtinguisher.One)<=30 m
END IF
}
② 이산화탄소 또는 할로겐화합물(할론 1301과 청정소화약제를 제외한다)을 방사하는 소화기구(자동확산소화장치를 제외한다)는 지하층이나 무창층 또는 밀폐된 거실로서 그 바닥면적이 20㎡ 미만의 장소에는 설치할 수 없다. 다만, 배기를 위한 유효한 개구부가 있는 장소인 경우에는 그러하지 아니하다.<개정 2008.12.15, 2012.6.11>
//소화기구 및 자동 소화장치의 화재안전기준(nfsc 101) 4조 (설치기준) 2항
Check(NFSC101_4_2){
KS
}
KS{
FireExtinguisher myFireExtinguisher{
getObjectProperty(FireExtinguishingEquipment.extinguishingAgentType) = "GasType"
}
Space mySpace{
(getFloorNumber(Space) = -1
OR hasSpace(Space, Window) = FALSE
OR isObjectProperty(Room.isEnclosed)=TRUE)
getObjectProperty(Space.FloorSlab) < 20 m2
}
getSpace(mySpace, myFireExtinguisher) = FALSE
}
제5조(배관 등) ①배관은 배관용탄소강관(KS D 3507) 또는 압력배관용탄소강관(KS D 3562)이나 이와 동등 이상의 강도·내식성 및 내열성을 가진 것으로 하여야 한다. 다만, 다음 각 호의 어느 하나에 해당하는 장소에는 법 제39조에 따라 제품검사에 합격한 소방용 합성수지배관으로 설치할 수 있다. <개정 2012.8.20>
// 연결살수설비의 화재안전기준(nfsc 503) 5조 (배관 등) 1항
Check(NFSC503_5_1){
IF !CS THEN KS
}
CS{
getResult(NFSC503_5_1_2) = TRUE
getResult(NFSC503_5_1_3) = TRUE
}
KS{
getObjectProperty(Pipe.Material) = "KS D 3507"
OR getObjectProperty(Pipe.Material) = "KS D 3562"
}
③폐쇄형헤드를 사용하는 연결살수설비의 주배관은 옥내소화전설비의 주배관(옥내소화전설비가 설치된 경우에 한한다) 및 수도배관(연결살수설비가 설치된 건축물 안에 설치된 수도배관 중 구경이 가장 큰 배관을 말한다) 또는 옥상에 설치된 수조(다른 설비의 수조를 포함한다)에 접속하여야 한다. 이 경우 연결살수설비의 주배관과 옥내소화전설비의 주배관·수도배관·옥상에 설치된 수조의 접속부분에는 체크밸브를 설치하되, 점검하기 쉽게 하여야 한다.
// 연결살수설비의 화재안전기준(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)
}
2. 시험장치 배관의 구경은 가장 먼 가지배관의 구경과 동일한 구경으로 하고, 그 끝에는 물받이 통 및 배수관을 설치하여 시험 중 방사된 물이 바닥으로 흘러내리지 아니하도록 할 것. 다만, 목욕실·화장실 또는 그 밖의 배수처리가 쉬운 장소의 경우에는 물받이 통 또는 배수관을 설치하지 아니할 수 있다.
2. 폐쇄형헤드를 사용하는 연결살수설비의 청소구는 주배관 또는 교차배관(교차배관을 설치하는 경우에 한한다) 끝에 40㎜ 이상 크기의 개폐밸브를 설치하고, 호스접결이 가능한 나사식 또는 고정배수 배관식으로 할 것. 이 경우 나사식의 개폐밸브는 옥내소화전 호스접결용의 것으로 하고, 나사보호용의 캡으로 마감하여야 한다.
3. 폐쇄형헤드를 사용하는 연결살수설비에 하향식헤드를 설치하는 경우에는 가지배관으로부터 헤드에 이르는 헤드접속배관은 가지관상부에서 분기할 것. 다만, 소화설비용 수원의 수질이 「먹는물관리법」 제5조에 따라 먹는물의 수질기준에 적합하고 덮개가 있는 저수조로부터 물을 공급받는 경우에는 가지배관의 측면 또는 하부에서 분기할 수 있다.
2. 천장 또는 반자의 각 부분으로부터 하나의 살수헤드까지의 수평거리가 연결살수설비전용헤드의 경우은 3.7m 이하, 스프링클러헤드의 경우는 2.3m 이하로 할 것. 다만, 살수헤드의 부착면과 바닥과의 높이가 2.1m 이하인 부분은 살수헤드의 살수분포에 따른 거리로 할 수 있다.
// 연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 2항 2호
Check(NFSC503_6_2_2){
IF (CS1 THEN KS1) OR (CS2 THEN KS2)
}
CS1{
Head myHead{
isObjectProperty(HookingUpSprinklerSystem.Head.isShared) = FALSE
}
isExist(myHead) = TRUE
}
KS1{
getObjectDistance(Ceiling, HookingUpSprinklerSystem.Head) <= 3.7m
OR getObjectDistance(CeilingCovering, HookingUpSprinklerSystem.Head) <= 3.7m
}
CS2{
isExist(SprinklerHead) = TRUE
}
KS2{
getObjectDistance(Ceiling, SprinklerSystem) <= 2.3m
OR getObjectDistance(CeilingCovering, SprinklerSystem) <= 2.3m
}
나. 천장의 최상부를 중심으로 가지관을 서로 마주보게 설치하는 경우에는 최상부의 가지관 상호간의 거리가 가지관상의 스프링클러헤드 상호간의 거리의 2분의 1이하(최소 1m 이상이 되어야 한다)가 되게 스프링클러헤드를 설치하고, 가지관의 최상부에 설치하는 스프링클러헤드는 천장의 최상부로부터의 수직거리가 90㎝ 이하가 되도록 할 것. 톱날지붕, 둥근지붕 기타 이와 유사한 지붕의 경우에도 이에 준한다.
//연결살수설비의 화재안전기준(nfsc 503) 6조 (연결살수설비의 헤드) 3항 6호 나목
Check(NFSC503_6_3_6_2){
IF (CS1 THEN KS1) or (CS2 THEN KS2)
}
CS1{
hasObject(Ceiling, SprinklerHead.Deflector) = TRUE
getObjectWidth(SprinklerHead, c) = SH
getObjectWidth(SprinklerHead.Deflector) = SHD
SH*0.5 < 1m
}
KS1{
getObjectWidth(SprinklerHead.Deflector) = 1m
getVerticalObjectDistance(SprinklerHead, Ceiling) <= 90cm
}
CS2{
hasObject(Ceiling, SprinklerSystemHead.Deflector) = TRUE
getObjectWidth(SprinklerSystemHead, c) = SH
getObjectWidth(SprinklerSystemHead.Deflector) = SHD
SH*0.5 >= 1m
}
KS2{
getObjectWidth(SprinklerSystemHead.Deflector) = SHD
SHD <= SH*0.5
getVerticalObjectDistance(SprinklerSystemHead, Ceiling) <= 90cm
}
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
}
제4조(유도등 및 유도표지의 종류) 특정소방대상물의 용도별로 설치하여야 할 유도등 및 유도표지는 다음 표에 따라 그에 적응하는 종류의 것으로 설치하여야 한다.<개정 2008.12.15, 2012.8.20>
// 유도등 및 유도표지의 화재안전기준(nfsc 303) 4조 (유도등 및 유도표지의 종류)
Check(NFSC303_4){
KS
}
KS{
LeadingLight myLeadingLight1{
// isObejctProperty(LeadingLight.isForExit)=True, 대형
}
LeadingLight myLeadingLight2{
// isObejctProperty(LeadingLight.isForExit)=True , 중형
}
LeadingLight myLeadingLight3{
// isObejctProperty(LeadingLight.isForExit)=True, 소형
}
LeadingLight myLeadingLight4{
isObejctProperty(LeadingLight.isForPassage)=True
}
LeadingLight myLeadingLight5{
isObjectProperty(LeadingLight.isForSeat)=True
}
LeadingSign myLeadingSign1{
isObjectProperty(LeadingSign.isForExit)=True
}
LeadingSign myLeadingSign2{
isObjectProperty(LeadingSign.isForPassage)=True
}
IF getBuildingUsage()="PerformanceHall"
OR getBuildingUsage()="AssemblyHall"
OR getBuildingUsage()="Auditorium"
OR getBuildingUsage()="SportsFacility"
OR getBuildingUsage()="Tavern"
THEN
isExist(myLeadingLight1)=True
isExist(myLeadingLight4)=True
isExist(myLeadingLight5)=True
ELSE IF getBuildingUsage()="AmusementFacility"
OR getBuildingUsage()="CommercialFacility"
OR getBuildingUsage()="TransportationFacility"
OR getBuildingUsage()="TouristAccommodationBusiness"
OR getBuildingUsage()="MedicalFacility"
OR getBuildingUsage()="FuneralParlor"
OR getBuildingUsage()="FacilityForBroadcastingAndTelecommunication"
OR getBuildingUsage()="ExhibitionHall"
OR getBuildingUsage()="UndergroundShoppingCenter"
OR getBuildingUsage()="SubwayStation"
THEN isExist(myLeadingLight1)=True
isExist(myLeadingLight4)True
ELSE IF getBuildingUsage()="LodgingFacility"
OR getBuildingUsage()="Officetel"
// OR 지하층, 무창층 또는 층수가 11층 이상인 특정소방대상물
THEN isExist(myLeadingLight2)=True
isExist(myLeadingLight4)True
ELSE IF getBuildingUsage()="ClassINeighborhoodLivingFacility"
OR getBuildingUsage()="ClassIINeighborhoodLivingFacility"
OR getBuildingUsage()="FacilitiesForTheAgedAndChildren"
OR getBuildingUsage()="BusinessFacility"
OR getBuildingUsage()="FacilityForPowerGeneration"
OR getBuildingUsage()="ReligiousFacility"
OR getBuildingUsage()="EducationAndResearchFacility"
OR getBuildingUsage()="Trainingfacility"
OR getBuildingUsage()="Factory"
OR getBuildingUsage()="Warehouse"
OR getBuildingUsage()="CorrectionalFacilityAndMilitaryInstallation"
OR getBuildingUsage()="Dormitory"
OR getBuildingUsage()="AutomobileRepairShop"
OR getBuildingUsage()="DrivingSchool"
OR getBuildingUsage()="RepairingSchool"
OR getBuildingUsage()="PubliclyUsedEstablishment"
OR getBuildingUsage()="ComplexBuilding"
OR getBuildingUsage()="ApartmentHouse"
THEN isExist(myLeadingLight3)=True
isExist(myLeadingLight4)True
ELSE THEN isExist(myLeadingSign1)=True
isExist(myLeadingSign2)True
END IF
}