Hello!
I'm making some calculations in cityengine and i'm facing a problem at this moment.
I can have the reports os this calculation but i need to transform it in a object attribut in the layer Lots that is already in the cityengine. I need this because i should make some other calculations with the result of this report.
I'm trying to calculate the volume of the real city and the legally city. I need to subtract the volumes results to have a constructive stock. My first problem is how to calculate volume and that how can i put this report in the attributes of an object.
Here is the code:
attr Frontal = 6
attr Lateral = 3
attr TO = 0.4
attr CA = 3
attr GFHeight = 3
attr UFHeight = 3
myFunction = 0.0
@hidden
attr parcelArea = 0
Lot --> Area(geometry.area)
Area(area) --> set (parcelArea, geometry.area) report ("Area do Lote PD", parcelArea) Afast_F(area)
Afast_F(area) --> setback(Frontal) { streetSide : NIL | remainder : Afast_L(area) }
Afast_L(area) --> setback(Lateral) { noStreetSide : NIL | remainder : projecao(area) }
projecao(area) --> case geometry.area > area * TO : Redimensiona(area, geometry.area)
else : Sobe(area, geometry.area)
Redimensiona(area, areaP) --> s('area*TO/areaP, 'area*TO/areaP, '1) center (xz) Sobe (area, geometry.area)
Sobe (area, areaSC ) -->
extrude(3*(area*CA/areaSC))
split (y) {GFHeight : Volume("GF") | ~1 : UpperFloor }
UpperFloor -->
split (y) { ~ UFHeight : Volume("UF") } *
Volume (volumeType) -->
case volumeType == "GF":
color ("#990000")
set (material.opacity, 0.5)
Reporting
else :
color ("#990000")
set (material.opacity, 0.5)
Reporting
Reporting -->
report("Primeiro Andar PD", geometry.area(bottom))
report("Demais Andares PD", geometry.area(bottom) / parcelArea )
Anyone?
Thanks!
Sheyla