Inconsistent Behaviour of Setback Operation

824
5
01-14-2017 12:25 PM
GeoffAbma
New Contributor

Screenshot

I am perplexed as to why the Setback operation behaves differently in these two instances.  Can anyone shed any light?  My desired result is the one on the left.

Here's the rule that I am applying to the initial shape:

Lot-->

   setback(2) {0:Yard | remainder:Building}

Yard -->

   color("#7FA18A")

Building -->

    extrude(12)

Please help.
Thanks! Geoff. 

Tags (1)
0 Kudos
5 Replies
BenLeslie1
Regular Contributor

I think it is to do with the angle between the edge you are setting back and the adjacent sloping edge.

i.e.  if the angle is closer to being a straight edge than a right angle you get the behaviour on the right-hand building, but if it's closer to being a right angle it behaves like the left-hand building.

0 Kudos
CherylLau
Esri Regular Contributor

Yes, Ben is correct.  The shape you get depends on the angle between the two edges.  I have a feeling that it happens when the angle between the two edges is > 135 deg.  Maybe this is a bug.  Thanks for posting.

If you want the behavior on the left, you might be able to achieve that with a split, but that depends on what kind of lot shapes you want this to work on.

0 Kudos
DavidWasserman
Regular Contributor

I see, at first I thought it might have to do with Edge indexing, but a small difference in angle seems hard to perceive just from the image. My first comment was unhelpful. For a rule to generalize, I guess you could use geometry.edges/is rectangular to determine if you should use setback vs. a well oriented split. It does seem very strange. 

Does the behavior change if you use a different selector rather than the default? 

David Wasserman, AICP
0 Kudos
BenLeslie1
Regular Contributor

I don't think it's a bug - this is the behaviour I expect.

As you suggest, split looks like the correct tool for this job.

0 Kudos
GeoffAbma
New Contributor

Thanks everyone for your help.  I have used the split function in conjunction with the alignScopetoGeometry to achieve what I wanted.

//--- Corner Lot (Right) ---//


frontYardcr -->
alignScopeToGeometry(yUp, largest, 0)
split(z) {~1: rearYardcr | frontSetback: colorGreen}

rearYardcr -->
alignScopeToGeometry(yUp, largest, 2)
split(z) { ~1: sideYard1cr | rearSetback: colorGreen}

sideYard1cr -->
alignScopeToGeometry(yUp, largest, 3)
split(z) { ~1: sideYard2cr | flankageSetback: colorGreen}

sideYard2cr -->
alignScopeToGeometry(yUp, largest, 1)
split(z) { ~1: buildableArea | interiorSetback: colorGreen}

0 Kudos