A graph consists basically of two elements: a group of points called nodes and edges that connect the nodes so that a mesh is formed. A graph layer holds edges and nodes as well as shapes that are created automatically.

Each edge and node has three shapes as child elements: one shape is referred as the lane, the other two represent sidewalks. To control basic attributes of those shapes such as widths, use the Inspector with the corresponding edge/node selected.

As with any other shape in CityEngine, the shapes associated to graph elements can be assigned with a CGA rule. You'll find a CGA rule that generates fully decorated street geometry in the rules/Streets folder in ESRI.lib.


Shapes that are children of graph elements can't be copied or moved to a shape layer.

Create graphs

A graph can be drawn manually, generated procedurally or by importing suitable data.


Whenever a closed loop of streets is formed by one of the creation methods described above, a block is created inside the loop. The block is tied to the surrounding streets. This means that when streets are moved, the shape of the block adjusts automatically. When the loop is opened by deleting a edge, for example, the block disappears.

A block is selected by clicking the dashed line. In the Inspector, select the method to subdivide the block into lots.


Lots are represented as shapes so that CGA rules can be assigned:

Expanded Street Network
Expanded Street Network with Edges, Nodes, Blocks and Shapes in Scene Editor
While street networks are the most common use case for graphs, CGA rules can be written to generate other linear features such as, underground pipe networks, power lines, transportation lines, or even the walls of a medieval castle.

In this topic
  1. Create graphs
  2. Blocks
  3. Lots