Building --> extrude(world.y,height) color(LUColor) set(plotArea, geometry.area)
Volume(volumeType) --> case volumeType == "GF" : color ("#646464") FloorCalc else : color (LUColor) set(material.opacity,0.6) FloorCalc
attr 'parcelArea = 0'
Parcel --> set(parcelArea, geometry.area) # override the value with the actual geometry value
attr FSetback = 1.5 attr BSetback = 5 attr LSetback = 5 attr RSetback = 5 attr height = 46 attr LUColor = "#ff6464" attr GroundFloorHeight = 5 attr UpperFloorHeight = 4 attr SHAPE_Area = 0 #parcel polygon area from GDB #@Hidden attr plotArea = 0 # used to calc FAR @StartRule Lot --> setback(FSetback) { street.front : Concrete | remainder : Sub1 } Concrete --> color("#CCCCCC") #Grey Sub1 --> setback(BSetback) { street.back : Concrete1 | remainder : Sub2 } Concrete1 --> color("#CCCCCC") #Grey Sub2 --> setback(LSetback) { street.left : Concrete2 | remainder : Sub3 } Concrete2 --> color("#CCCCCC") #Grey Sub3 --> setback(RSetback) { street.right : Concrete3 | remainder : Building } Concrete3 --> color("#CCCCCC") #Grey Building --> set(plotArea, geometry.area) extrude(world.y,height) color(LUColor) BuildingVolume3D BuildingVolume3D --> # the 3d volume will not be split into smaller 3d volumes ! 1 ground floor volume will be created. split(y) {GroundFloorHeight : Volume("GF") | ~1 : AllUpperFloors} AllUpperFloors --> # the rest of the volume is not split into upper floor volumes, as many times as possible ('*' sign) split(y) {~UpperFloorHeight : Volume("UF")}* Volume(volumeType) --> case volumeType == "GF" : color ("#646464") Floor else : color (LUColor) Floor Floor --> comp(f){ bottom: reverseNormals FloorBottom } FloorBottom --> report("GFA",geometry.area) report("FAR",geometry.area/SHAPE_Area) set(material.opacity,0.6)
// land use types from the parcel object attribute. attr PROPERTY_USE = " " ## importing.cga import ruleC2: "Report_C-2.cga" import ruleC3: "Report_C-3.cga" import ruleC3_23: "Report_C-3_23.cga" import ruleCCCOR: "Report_CC-COR.cga" import ruleCCMH: "Report_CC-MH.cga" import ruleCCMHX: "Report_CC-MHX.cga" import ruleCCOR1: "Report_C-COR1.cga" import ruleCCX: "Report_CC-X.cga" import ruleCM1: "Report_CM-1.cga" import ruleCM2: "Report_CM-2.cga" import ruleI2: "Report_I-2.cga" import ruleRM7: "Report_RM-7.cga" import ruleSCS: "Report_S-CS.cga" import ruleOther: "Report_Other.cga" @StartRule Lot--> case geometry.area > 200: case PROPERTY_USE == "C-2" : ruleC2.Lot case PROPERTY_USE == "C-3" : ruleC3.Lot case PROPERTY_USE == "C-3(23)" : ruleC3_23.Lot case PROPERTY_USE == "CC-COR" : ruleCCCOR.Lot case PROPERTY_USE == "CC-MH" : ruleCCMH.Lot case PROPERTY_USE == "CC-MHX" : ruleCCMHX.Lot case PROPERTY_USE == "C-COR1" : ruleCCOR1.Lot case PROPERTY_USE == "CC-X" : ruleCCX.Lot case PROPERTY_USE == "CM-1" : ruleCM1.Lot case PROPERTY_USE == "CM-2" : ruleCM2.Lot case PROPERTY_USE == "I-2" : ruleI2.Lot case PROPERTY_USE == "RM-7" : ruleRM7.Lot case PROPERTY_USE == "S-CS" : ruleSCS.Lot case PROPERTY_USE == "Other" : ruleOther.Lot else: ruleOther.Lot else: NIL
attr FSetback = 1.5 attr BSetback = 5 attr LSetback = 5 attr RSetback = 5 attr height = 46 attr LUColor = "#ff6464" attr GroundFloorHeight = 5 attr UpperFloorHeight = 4 attr SHAPE_Area = 0 #parcel polygon area from GDB @Group("Viz",4) @Range("massOnly", "floors", "massAndFloors") attr vizMode = "massAndFloors" attr plotArea = 0 # used to calc FAR @StartRule Lot --> setback(FSetback) { street.front : Concrete | remainder : Sub1 } Concrete --> color("#CCCCCC") #Grey Sub1 --> setback(BSetback) { street.back : Concrete1 | remainder : Sub2 } Concrete1 --> color("#CCCCCC") #Grey Sub2 --> setback(LSetback) { street.left : Concrete2 | remainder : Sub3 } Concrete2 --> color("#CCCCCC") #Grey Sub3 --> setback(RSetback) { street.right : Concrete3 | remainder : Building } Concrete3 --> color("#CCCCCC") #Grey Building --> set(plotArea, geometry.area) extrude(world.y,height) color(LUColor) BuildingVolume3D BuildingVolume3D --> MassViz # the 3d volume will not be split into smaller 3d volumes ! 1 ground floor volume will be created. split(y) {GroundFloorHeight : Volume("GF") | ~1 : AllUpperFloors} AllUpperFloors --> # the rest of the volume is not split into upper floor volumes, as many times as possible ('*' sign) split(y) {~UpperFloorHeight : Volume("UF")}* Volume(volumeType) --> case volumeType == "GF" : color ("#646464") Floor else : color (LUColor) Floor Floor --> comp(f){ bottom: reverseNormals FloorBottom } FloorBottom --> report("GFA",geometry.area) report("FAR",geometry.area/SHAPE_Area) MassViz MassViz --> case vizMode == "massOnly" : Mass. case vizMode == "massAndFloors" : set(material.opacity,0.8) BuildingVolume3D. else: NIL
############################################################################################################### # attributes ############################################################################################################### @Group("SETBACKS",0) attr FSetback = 1.5 Group("SETBACKS") attr BSetback = 5 Group("SETBACKS") attr LSetback = 5 Group("SETBACKS") attr RSetback = 5 @Group("HEIGHTS",1) attr height = 46 Group("HEIGHTS") attr GroundFloorHeight = 5 Group("HEIGHTS") attr UpperFloorHeight = 4 @Group("COLORS",2) attr LUColor = "#ff6464" @Group("VIZ",3) @Range("massOnly", "floors", "massAndFloors") attr vizMode = "massAndFloors" ############################################################################################################### # generic, hidden attributes ############################################################################################################### @Hidden attr plotArea = 0 ############################################################################################################### # functions ############################################################################################################### colorFunction ( volumeType ) = case volumeType == "GF" : "#646464" else : LUColor ############################################################################################################### # parcelling ############################################################################################################### @StartRule Lot --> set (plotArea, geometry.area) setback(FSetback) { street.front : Concrete | remainder : Sub1 } Concrete --> color("#CCCCCC") #Grey Sub1 --> setback(BSetback) { street.back : Concrete1 | remainder : Sub2 } Concrete1 --> color("#CCCCCC") #Grey Sub2 --> setback(LSetback) { street.left : Concrete2 | remainder : Sub3 } Concrete2 --> color("#CCCCCC") #Grey Sub3 --> setback(RSetback) { street.right : Concrete3 | remainder : Building } Concrete3 --> color("#CCCCCC") #Grey ############################################################################################################### # building ############################################################################################################### Building --> extrude(world.y,height) color(LUColor) BuildingVolume3D BuildingVolume3D --> # the 3d volume will not be split into smaller 3d volumes ! 1 ground floor volume will be created. split(y) {GroundFloorHeight : Volume("GF") | ~1 : AllUpperFloors} AllUpperFloors --> # the rest of the volume is not split into upper floor volumes, as many times as possible ('*' sign) split(y) {~UpperFloorHeight : Volume("UF")}* ############################################################################################################### # volume ############################################################################################################### Volume(volumeType) --> color (colorFunction ( volumeType )) MassReporting # shape for reporting, will be deleted MassViz # shape duplicate for visualization ############################################################################################################### # viz ############################################################################################################### MassViz --> case vizMode == "massOnly" : Viz. case vizMode == "massAndFloors" : set(material.opacity,0.8) Viz. case vizMode == "floors" : comp(f){ bottom: reverseNormals Viz. } else: NIL ############################################################################################################### # reporting ############################################################################################################### MassReporting --> comp(f){ bottom: report("GFA",geometry.area) report("FAR",geometry.area/plotArea) NIL }
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.