Hi all!
I'm wondering if there is a way to use the StreetWidth attribute so that setbacks can be based on the width of the street the lot side is facing. For instance, if it's a corner lot, I want to have a larger setback for the side that's facing a wider street and a smaller one for the side that's facing a narrower street.
Any pointers will be greatly appreciated! Thank you!
Lesi
In 2019.0, the new operation setbackPerEdge() allows you to create a setback with different setback distances on each edge. It takes as input a function that specifies the setback distance per edge. The function is evaluated per edge, and comp and scope attributes are accessible within this function.
https://doc.arcgis.com/en/cityengine/latest/cga/cga-setback-per-edge-operation.htm
This code creates a setback where the setback distances are equivalent to the street width on each edge.
attr streetWidth(i) = 0
myFunc = streetWidth(comp.index)
Lot -->
setbackPerEdge(myFunc) { all: Green | remainder: Red }
Thank you Cheryl for the update on the new functionalities! I'll test it out.
Cheryl, to clarify, a CE generated lot shape will have access to the street parameters? What about other rule attributes/parameters?
What about imported data?
David
No, the streetWidth attribute is a special case. See this post:
Got it. Only on parcels CE generates or also can be associated with a first edge operation?
Sorry, I don't understand this question.
I guess my question is there are two types of "parcels" or "lots" in CityEngine. One generated by outlines of roads, and those imported. I guess my question is how this applies to imported parcels and how one might go about orienting their edges for these operations.
The special streetWidth attribute code
attr streetWidth(i) = 0
will only work if the shape has an object attribute called streetWidth[] which is an array of floats. This object attribute is automatically generated on dynamic shapes (shapes created by graph networks). This object attribute does not inherently exist on non-dynamic shapes, but it can be created using Shapes -> Compute First/Street Edges.
https://doc.arcgis.com/en/cityengine/latest/help/help-shape-edge-tools.htm
Hi Cheryl
As a follow up on this same question, I'm trying to use envelope and setback function for imported parcels.CE 2019 provided versatility for setbacks, setbackPerEdge documentation showed an example of edge attribute's orientations
dist(orientation) =
case orientation == "park" : 1
case orientation == "street" : 7
case orientation == "lot" : 0
case orientation == "back" : 3
else : 0
My question is how to setup and customise edge attributes for mass data such as the example with parks, streets etc. For envelopes, the front of the envelopes uses street fronts. What I want my front is to be base on compass direction. I tried comp(e) using world.compass direction but the function didn't work. Now with CE2019 my assumption to achieve what I wanted will be using one set of edge attributes to rearrange street orientation for the envelope function and another set of edge attributes for my setback. But could not seem to find any documentation on setting up edge attributes.