Offset/Setback issue

869
4
Jump to solution
08-26-2013 10:30 AM
ginoorgologo
New Contributor
Hi Matt,

I noticed that surfaces resulting from an offset border are considered as a single entity.
I need to differentiate the streetSide surfaces from the rest: is there a way to act separately on each one of them?

I thought of using the setback operator, but it seems to act only on edges (at least the remainder selector doesn't act on the surface properly.. )

alternatively: is there a way to apply the setback operation to the whole surface of the Lot?

thanks in advance
0 Kudos
1 Solution

Accepted Solutions
MatthiasBuehler1
Frequent Contributor II
Hi,

It must be the following:

Check this video here very precisely :
http://forums.arcgis.com/threads/44417-CGA-Understanding-the-concept-of-the-scope

comp() changes the scope's orientation to 'zUp'. sometimes, e.g. after an extrude, you're 'yUp'.

That changes very specifically, esp. after the comp().

Now, some operations like setback(), shapeLOU NEED a yUp scope. Means e.g. directly after a comp(f), if you don't align the scope to be yUp again, one dimension of the operation will look 'faulty compared to what you expect'.
-> use either alignScopeToAxes() or alignScopeToGeometry(), depending on what you need.

Ok ?

m.

View solution in original post

0 Kudos
4 Replies
MatthiasBuehler1
Frequent Contributor II
Hi,

Note the difference between dynamic and static shapes. dynamic Lot shapes automatically have the 'streetEdges' set. ( check the streetWidth() object attributes ). On static shapes, those have to be set manually.

So if CE doesn't find the streetEdges, the operations fall back to the 'object' selectors instead of the 'street' selector. ( e.g. street.front / object.front. [[ I'm not perfectly sure atm, but there's been a bug which may mess that behavior up sometimes ]]

It depends a bit on what you need, how you code it. But all operations can work directly on a Lot shape.

Try out the behaviors :
Lot -->
    setback()..

Lot -->
    offset()..

Lot -->
    shapeO()..


Maybe also take a look at the Mass Modeling tutorial :
http://www.arcgis.com/home/item.html?id=0bbea3049d3d4d16ba77a0ff543db8d6


ok so far ?
0 Kudos
ginoorgologo
New Contributor
Thanks for the reply matt.
I'm indeed working with dynamic shapes,  but I cannot understand this fact : once I apply the setback to the Lot and separate with comp(f) the setback - which is working great - from the remainder, the operator split(y) doesn't seems to work correctly on this former part of the surface :
// setback method
Lot -->
 setback (1){ street.front : Cinta
   | noStreetSide : extrude(4) Wall
   | remainder : 
    offset(1,inside)
    Lotter
   }
//[...]
Lotter -->
 split(x){ 'fronteX : 
    split(y) { 'fronteY : 
      extrude(high) 
      Building
        | ~a : Wall
        } 
    | ~a : Wall
           }


It seems to recognize only the x axe on the surface, else it's only acting on the edge I suppose:
[ATTACH=CONFIG]27141[/ATTACH]

In the other way :
// offset method
Lot -->
 offset(-1)
 comp(f) { inside :  
    offset(1,inside)
    innerrect
    Lotter
   | border : Cinta
   }
//[...]
Lotter --> 
//the same as before

I get this :
[ATTACH=CONFIG]27142[/ATTACH]

I've been working with CE shape grammar for a while lately and I love it, but I keep on using what I understood the most from the tutorials..
0 Kudos
MatthiasBuehler1
Frequent Contributor II
Hi,

It must be the following:

Check this video here very precisely :
http://forums.arcgis.com/threads/44417-CGA-Understanding-the-concept-of-the-scope

comp() changes the scope's orientation to 'zUp'. sometimes, e.g. after an extrude, you're 'yUp'.

That changes very specifically, esp. after the comp().

Now, some operations like setback(), shapeLOU NEED a yUp scope. Means e.g. directly after a comp(f), if you don't align the scope to be yUp again, one dimension of the operation will look 'faulty compared to what you expect'.
-> use either alignScopeToAxes() or alignScopeToGeometry(), depending on what you need.

Ok ?

m.
0 Kudos
ginoorgologo
New Contributor
Got it! I tried the alignScopetoGeometry(zUp, auto) before but in the wrong place :)

Now it works:
[ATTACH=CONFIG]27152[/ATTACH]
Lotter -->
 split(x){ 'fronteX : 
    split(y) { 'fronteY : 
      alignScopeToGeometry(zUp, auto)
      extrude(high) 
      Building
        | ~a : Wall
        } 
    | ~a : Wall
           }

Thanks for the support!
0 Kudos