CGA rule for house front definition on corner lots

04-30-2014 01:22 PM
New Contributor
Hi everyone,
I've been having a big problem combining CGA rules and imported line/street data.
I managed to get close to a sollution at some point - but it is still not 100% solved.

My issue is that I wrote some rules for buildings with 1 specific house front, that mandatory has to be the smallest side,
facing the street.
For tests I used the following code with a setup shown in the screenshot below.
My problem is that in most cases it works, deciding to color the smallest face, facing the street "red".
However in some cases it does not.
I also did try cutting out the section from (F--> to frontA2 -->) which also works in many cases but in a few still defines the larger faces as "smaller" (red) because the scope is aligned differently.

Obviously I also tried saving out precise numbers as attributes, however I could not pass down this information to compare both faces against each other (this seems to still be a general CGA nono)

I might also add that I use a trial version and thus can't really use Python to deal with this issue.
Any help would be great.

LotInner --> NIL

Lot -->
CornerRecursion(geometry.nVertices - 1, 0)

CornerRecursion ( edgeID, nStreetEdges ) -->
case edgeID >= 0 :
  case streetWidth(edgeID) > 0 :
   #print (edgeID)
   CornerRecursion ( edgeID - 1, nStreetEdges + 1 )
   #print (edgeID)
   CornerRecursion ( edgeID - 1, nStreetEdges )
  case nStreetEdges >= 2 :

IsCornerLot -->

IsNotCornerLot -->

Lot2 -->
offset (-3)
comp(f) { inside: I | border: NIL }

I -->
extrude(world.y, 10)

F -->
comp(f) {street.front : frontA2 | all : NIL}

frontA2 -->
alignScopeToGeometry(yUp, largest, world.lowest)

F3 -->
case <
comp(f) {object.front : MainF | object.left : B2 | object.back : MainF | object.right : B2}

comp(f) {object.front : B1 | object.left : MainF | object.back : B1 | object.right : MainF}

MainF -->
comp(f) {street.front : MainF2 | all : Rear}

MainF2 --> color(1,0,0)

0 Kudos
1 Reply
New Contributor
solved the problem myself in the end
0 Kudos