Though I have been in and out of CityEngine for a couple months now, I am still new to all of this.
Q: I have been developing some nice looking CGA codes for a variety of building typologies and have those placed on 'building footprints' from my imported GIS data for a suburban area (happy to post in a marketplace free as soon as available). In ArcMap, those footprints are on a separate layer from the lots (as I believe it typical in most city GIS data). Both the lot and footprint have a long list of attributes, visible in ArcMap attribute table.
I get how I can place a single family residential building CGA code on a footprint, and that populates, and I have another code for say grass, fence, trees (suburban filler) that I can apply to the lots. My question is how I can make these two geometries interact within CityEngine? Can I manipulate the 2-D geometries of the footprint and lot at all? They seem to be static shapes since they are from a GIS data set.
If I figure out how to manipulate the size or shape of the building footprint in CityEngine, can the features on the lot respond to this. In a way, it is like having a CE lot within a lot, and then having those interact. In the demos, there is only ever a lot, and a building is generally extruded from within part of that bounded area.
I am probably missing something obvious. Thanks in advance for any tips or advice. This might all be to vague, so let me know if I should post something images or CGA's.
To answer your question in one word - yes -I want to do something that would be very hard to implement - I am talking about that interaction between static and dynamic two-dimensional geometries - maybe specifically making static geometries into components of other static geometries and then making them dynamic? I know I can make static geometries dynamic by way of .obj manipulation, but that doesn't seem to be the right way to go in this case.
I attached an image that shows a very rough idea of what I am getting at. I left one static building footprint blank so you can see it at the bottom. The footprint and the lot that surround it are seperate GIS data layers. Ideally I would like to get these two layers to interact. (all geometries shown are static GIS imports)
Right now I can get my CGA to work for the lot (grass, trees, whatever - not shown), and I can get these little suburban typologies to populate on the building footprints (or on the lot geometries for that matter), but as far as CE goes I don't know how you would tell it to create a driveway on the lot geometry up to the right hand side of the housefootprint - how to tell one static geometry to do something that relates to another in its proximity?
I would imagine you would have to create a line of code that queries all geometries that fall within its boundaries (is this possible?). Then subtract that area geometry from its own. Then search its internal geometry for the the right-most line - or actually look at the code for the inner geometry and find where my garage code lies).
Another - perhaps easier - option would be to make the lot code as simple as possible (just grass or something) and make things like driveways, trees, mailboxes, whatever, as properties of the house footprint code - with object locations outside the bounds of the houes footprint. Problem with this is that those objects would still have to 'read' the lot geometry 'below' to know the extents to which they should populate.
A last and perhaps obvious solution would be to change the GIS data itself... I am more comforable with CE than ArcGIS, so that is primarily why I put this one last. I still don't know how you could have a static shape relate to another one in GIS in a way that CE could understand it as such.
Thanks for the help on this one Matt. I am sure a well educated coder will have an excellent solution beyond my rudeamentary skills.