Creating Gable Roofs in City Engine 2014.1?

4508
14
12-18-2014 06:35 PM
jeffreymorris1
New Contributor II

How can a create gable roofs in City Engine 2014.1 so that they are created along the Z axis instead of X axis?

0 Kudos
14 Replies
by Anonymous User
Not applicable

Gable always follows longest axis, or we would simply use rotateScope(). I tried that first. Here is how I did this (rule is attached):

version "2014.1"

attr switchAxis = true
attr gableAngle = 45

@Hidden
attr originalScopeX = 0
@Hidden
attr originalScopeZ = 0

@StartRule
RoofGableSwitchAxis -->
  # Gable always follows longest axis, or we would simply use rotateScope().
  case switchAxis:
    roofGable(gableAngle)
    set(originalScopeX, scope.sx)
    set(originalScopeZ, scope.sz)
    rotate(rel, scope, 0,90,0)
    s(originalScopeZ,'scope.sx/originalScopeZ,originalScopeX)
    center(xz)
  else:
    roofGable(gableAngle)

0 Kudos
jeffreymorris1
New Contributor II

I tried the rule that you wrote but I got weird roofs. The top of the roof should be even. The shapes came from Open Street Map OSM file.cityengine.PNG

0 Kudos
BenLeslie1
Regular Contributor

You may have unnecessary points in your footprints - simplify them to just 4 vertices and I think you should get better results.

0 Kudos
by Anonymous User
Not applicable

You might also try reduceGeometry(edges, 0.1) to reduce the vertex count - the 0.1 part... look in the help manual because I can't remember the exact details of the tolerance parameter.

0 Kudos
jeffreymorris1
New Contributor II

How do I simplify the footprints to just 4 vertices each before extruding them?

0 Kudos
by Anonymous User
Not applicable

Try innerRect -  you call innerRect inside a mostly square shape, and it gives you exactly 4 vertices.

Also, ignore tip about ​reduceGeometry(edges, 0.1)  I gave up above. I meant cleanupGeometry.

0 Kudos
jeffreymorris1
New Contributor II

How do I combine two or more shapes into one shape?

0 Kudos
by Anonymous User
Not applicable

Hold shift while selecting multiple shapes, then look in the Shapes menu for Combine Shapes. You can then apply one rule to the combined shape. This shape combination will not merge coplanar faces or any kind of unioning type stuff.

0 Kudos
jeffreymorris1
New Contributor II

I don't like how InnerRect works. There's Cleanup Shape in the Shapes menu that takes combined shapes and modifies them so that they become one shape. I thought that Combine Shape and Cleanup Shape work but one house still gives me hip roof instead of gable roof on one end. City Engine doesn't let me take a group of shapes like the one above the house with weird roofs and change them into one rectangle.

0 Kudos