Front Facade

3393
10
Jump to solution
09-04-2013 06:07 AM
AvgiSotiropoulou
New Contributor
Hello,

I was wondering if there is a way to set the side of the Building that you want to use for Front facade?
For example I want to set as a Front facade the side that it looks at the street?

Thanks a lot!!
0 Kudos
1 Solution

Accepted Solutions
MatthiasBuehler1
Frequent Contributor II
hi !

The python scripts I created led to a new tool in CityEngine 2013.

If you have a valid CE2012 license, you also get CE2013 for free !

The tool is called 'Set Street Edges', in the Shapes Menu.

Try it, ok ?

Matt

View solution in original post

0 Kudos
10 Replies
MatthiasBuehler1
Frequent Contributor II
Hi,

Please go through the tutorial videos first :
http://forums.arcgis.com/threads/64843-CityEngine-Collection-RESOURCES-FAQ-HELP

Have fun !

m.
0 Kudos
AvgiSotiropoulou
New Contributor
Hey!
Thanks for the response but I have already run through the tutorials. Maybe I wasn't very clear on what I was trying to do.
I have a GDB of building footprints of a big area. The problem is that the majority of the polygons are too
close to each other so their sides are adjacent (as you can see at the attachment file) , so when I generate the building models the front facades are not always visible. So I was wondering if there is a way that I can define as front Facade the sides that are not adjacent.

Kind regards
Avgi

[ATTACH=CONFIG]27264[/ATTACH]
0 Kudos
SóniaIldefonso
New Contributor
Hello everybody.

I'm a CityEngine beginner and this is my first time here.
I found Avgi's question interesting as I'm facing a very similar problem.
Even though I run through the tutorials, I'm not able to solve this issue...
So, let me try to make it plain.

I have a SHP file of building footprints and another SHP file of streets which I imported into CE.
After the footprint extrusion, I use the component split in order to get the facades.
In fact, I'm quite interested in main facades (the street-facing components). As footprints and streets don't interact dynamically (in the current case), I can't use the selector street.xxx to set the faces I want to use as main (or front) facades.
As you can see (left side of the image - attachment file), whether I use front, side,etc or object.front, object.side,etc selectors, it doesn't work. It has to do with the different object coordinate system, right?
Despite that, I have a second goal. I want to classify main facades according to the different street types (A,B and C).

Then I tested the following workflow:

1. In order to set different main (or front) facades, I added a new object attribute to the original shapes called "BuildingType".
The possible values are:
StreetFront_north
StreetFront_east
StreetFront_south
StreetFront_west
Corner_northeast
Corner_southeast
Corner_southwest
Corner_northwest
and BlockFront (to the 4 quadrants).

2. Then I used the world.xxx selectors to get only the facades that correspond to the assigned buildings orientation.
I gave them different colors so that I made it clear. The X faces are represented as black. 
----------------------------------------------------------------------------------------------------------------
Building(BuildingType) -->
case BuildingType == "StreetFront_north" :
  comp(f)
   {world.north:N | world.west:X | world.south:X | world.east:X}
case BuildingType == "StreetFront_south" :
  comp(f)
   {world.north:X | world.west:X | world.south:S | world.east:X}
        (...)
        else: NIL
----------------------------------------------------------------------------------------------------------------
As you can see at the right side of the image, the result is not perfect yet.
Some faces of both corner and top buildings of the block have been generated as main facades too because there are more than one facing the same quadrant... And I even didn't classify the facades according to the street type yet...
The next step would be adding a second new object attribute to the original shapes called "streetType" whose values differ between three values (A,B,C) so that I can call the right facade shape to either N, E, S and O previously generated shapes.

So... I was wondering... there must be a simpler way of doing this!
Would you give me some clues, please?

Thank you.
Best regards.

Sónia I.
0 Kudos
MatthiasBuehler1
Frequent Contributor II
Hi,


@ Avgi :
This thread may help you ..

http://forums.esri.com/CityEngine/forum-44564.html


@ sildefonso :
any thing 'street-side related' needs the 'streetWidth' attributes set. This is automatically done with the lots produced by the Dynamic City Layouts systems ( Block Subdivision ). See the thread above to see how those can be set also on static shapes.

The best way to classify facades based on the street is to actually evaluate the streetWidth() attribute value.

Though the scripts provided above do not set those values too. ( The script was created about 2 years ago .. )

Note that CityEngine 2013 will have a builtin functionality for this (what my scripts emulate) !

Ok ?

matt
0 Kudos
SóniaIldefonso
New Contributor
Thank you so much for this useful thread, Matthias!

I'll go through it carefully.

I really have a lot to learn about CE...


Best regards.
sildefonso
0 Kudos
SóniaIldefonso
New Contributor
Coming back to this issue again...

I've gone through it carefully Matthias.
Now I have streetWidth() attributes in my footprint shapefile. I'm able to use the selector street.front to generate street facades.

The next question is:
Can I generate different facades (footprint shapefile) according to an attribute value which has been set within the streetNetwork shapefile ?
Footprints are static and "real" street width value is not available in my original streets shapefile (that's why it's getting the default 8).

I was wondering...
Can I use Layer Attribute (Street Network shapefile) as a source for Street_type attribute within the footprint shapefile ?

--------------------------------------------
Facade -->
case Street_type == "Main" :
   FacadeA
case Street_type == "Path" :
   FacadeB
case Street_type == "Boulevard" :
   FacadeC
else : NIL
--------------------------------------------
This is not working...

Thanks
0 Kudos
AvgiSotiropoulou
New Contributor
Hey Matthias,
sorry for the super late reply and thank you very much for your help! Unfortunately the python script, (alignStaticShapesToDynamicStreets.py) doesn't work. I am selecting the shapes of the footprints and the street segments and run the script, but apart from a window that is appearing for a second nothing changes. I have attached the shapefiles that I am working with, I would be grateful if you could have a look.
Thanks a lot in advance for your help :)
Avgi
0 Kudos
MatthiasBuehler1
Frequent Contributor II
hi !

The python scripts I created led to a new tool in CityEngine 2013.

If you have a valid CE2012 license, you also get CE2013 for free !

The tool is called 'Set Street Edges', in the Shapes Menu.

Try it, ok ?

Matt
0 Kudos
BenLeslie1
Regular Contributor

Just discovered these 'Street Edge', '1st Edge' tools - very useful..... essential infact in my workflow.

But is there a reason why, when you subdivide a SHAPE the front face tends to be an internal face, but, much more usefully, when you subdivie a BLOCK the front face tends to be external? - as per the image.  If the front face was external I wouldn't need to use these manual tools.

Front-->Red

Left-->Yellow

Right-->Green

Back-->Blue

shape_block_subdiv.jpg