AnsweredAssumed Answered

Roofs stored as 3D SHP file

Question asked by goran.vuksicgdi-net-esridist Employee on Apr 12, 2012
Latest reply on Apr 17, 2012 by geonetadmin
Hi all

I'm still pretty new with CityEngine and CGA so have been basically copy-pasting tutorial CGA rules on my data.
Everything works fine while I'm using SHP that is storing footprint polygons.

But... Things are getting 'strange' when input data represents 3D roof polygons and is stored in SHP file Z (as shown in PIC01.PNG). In addition it has roof's MinZ and MaxZ height values stored as attributes.

Second input data (not shown in pictures) is height map with following attributes:
attr elevation = map_01(brightness, 0.0, 100.0) + elevationDelta
attr DEM = elevation

After applying following CGA rule:
attr DEM = 10 // attr DEM=elevation
attr height = 10
attr red = "#ff0000"
attr blue = "#0000ff"
attr yellow = "#ffff00"

Lot --> extrude(world.y, DEM+height) Building // attr height has negative values stored
                                                             //thus '-' operation

Building -->      
            comp(f) { 
                  vertical : color(yellow) Front | 
                  aslant : color(blue) RoofA | 
                  horizontal : color(red) RoofB

Result is shown in PIC02.PNG with problem circled with red color. Is there any simple solution for this?

Things are of course getting worse after applying 'complex' CGA rule that includes splitting building into floors and texturing (PIC03.PNG).
attr visinaPrizemlja = 5
attr visinaKata = 3

Front -->
            setupProjection(0, scope.xy, 1.5, 1, 1) 
            setupProjection(2, scope.xy, 1, 1)
            split(y){ visinaPrizemlja : Prizemlje 
            | {~visinaKata : Kat}* }

Extra NOTE: Prizemlje [ground floor] and Kat [floor] are mirrored.

Last problem is shown in PIC04.PNG;
CGA rule is set to put random textures on roofs. Since my roof is 'made of' 2 SHP polygons 2 different textures are applied on 1 roof.

Any kind of help is much appreciated.

Thanks in advance,