CityEngine tour

To access the tutorial projects in ArcGIS CityEngine, open CityEngine and click Help > Download Tutorials and Examples in the main menu. After choosing a tutorial or example, the project is automatically downloaded and added to your CityEngine workspace.

This tutorial was created in collaboration with Devin Lavigne of Houseal Lavigne Associates.

tour overview is shown.

To begin the tutorial, open the CityEngine Tour.cej scene in the \scenes\ folder.

Start the CityEngine tour

CityEngine is advanced 3D modeling software for creating interactive and immersive urban environments in less time than traditional modeling techniques. The cities and scenes you create using CityEngine can be based on real-world GIS data or illustrate a fictional city of the past, present, or future. This tutorial introduces you to CityEngine, providing a tour of some of its key features and capabilities. With this CityEngine tour, you will explore the key interface elements, navigation, and tools used to visualize, design, and modify 3D models.

The focus of this introductory tour is to provide a high-level overview of the program and how it is being used by professional planners and designers. The tour begins with a completed scene for a reenvisioned city center in Lynnwood, Washington, in which CityEngine was used to help local officials anticipate the impact of redevelopment associated with its future light rail station. Various chapters will guide you through simple steps to introduce features and capabilities while providing a high-level introduction to the software.

The CityEngine tour is based on a real project in which CityEngine was used to assist the City of Lynnwood, Washington. Lynnwood is the fourth largest city in Snohomish County, 16 miles (26 km) north of Seattle. Lynnwood is a suburban bedroom community for Seattle and is home to a large concentration of retail businesses. Like similar suburban communities, Lynnwood is automobile oriented, with large concentrations of big box and strip commercial retail centers.

City Center Sub-Area Plan

In 2007, the City of Lynnwood adopted the City Center Sub-Area Plan to provide a guiding vision for a key area of the city. The plan’s goal was to create a compact, lively city center and transform the area into a vibrant commercial center and an appealing place to live, work, and play. A wide range of projects are completed or underway, including the Lynnwood Link Extension, which will provide fast, frequent, and reliable light rail transit service between south Snohomish County and the University of Washington, downtown Seattle, the Eastside, Sea-Tac Airport, and more.

In anticipation of rapid transit between Seattle and Everett, parcels within the Lynnwood City Center are experiencing significant growth pressure. Several projects have already been developed, and proposals by developers will include new public spaces and parks, add housing, improve cultural attractions, create a pedestrian-friendly environment, and further enhance livability in the Lynnwood City Center. To help anticipate the impacts of new development, Lynnwood used CityEngine to explore potential massing and visual impact scenarios and to calculate potential housing units, jobs, and square footage of office and retail space.

Tour navigation

This tour is structured around several chapters that help you jump around the model to explore the scene. The tour is also organized in layers, with a different layer used for every chapter. You can browse to each chapter with the Bookmarks menu Bookmarks menu in the toolbar above the Viewport and by turning the layers on and off in the Scene Editor.

Set Visibility


Manual drawing

Manual drawing

This first part of the tutorial explains how to use the CityEngine manual drawing tools. While the full potential of CityEngine is in its ability to procedurally generate 3D models through CGA code and rule files, sometimes the information or shapes do not exist, or sometimes the rule files cannot accurately or quickly generate the desired 3D building. In these situations, you can use manual drawing tools to draw shapes and 3D geometry inside CityEngine.

This fully developed scene features four buildings that were created with the CityEngine manual drawing tool—the Lynnwood Public Library, Civic Center, Convention Center, and Destination 61+, an age-targeted multifamily housing development. This first part of the tour will walk you through creating the Destination 61+ building from a sketch of the building’s initial footprint.

To begin this part of the tutorial, select Manual Drawing in the Bookmark drop-down menu Bookmarks menu. Turn off the visibility for the Overall layer in the Scene Editor and turn on the visibility for the Manual Drawing layer.

Trace the footprint

Trace footprint

It is common for building footprints from GIS data to be a little outdated, or for new buildings to be drawn as part of the urban planning and design process. In this part of the tutorial, you are going to build Destination 61+, a recent development project in Lynnwood, from the sketch that has been taped—with a tool in CityEngine—on top of the aerial image.

To begin tracing the building, ensure that the Destination 61+ layer is selected and click the Polygonal Shape Creation tool Polygonal Shape Creation or press S. You can also click Shapes > Polygonal Shape Creation in the main menu.

Once the tool is active, start drawing from one of the corners of the building as shown below.

Polygonal shape creation in manual drawing

With the Snapping option activated in the Tool Options window Tool options, CityEngine provides snapping points and guides to assist in drawing 90-degree angles, parallel lines, extensions of lines, and line midpoints.

Tracing around building

Continue tracing around the building. When you complete the shape, you should end up with a footprint like the one pictured below.


Use the Push Pull Tool to extrude the center of the building

The next step is to extrude the building. The Push Pull Tool Push Pull Tool allows you to extrude 2D shapes, and modify existing 3D extrusions. Select the Push Pull Tool Push Pull Tool and hover over the footprint. An orange handle appears. Click this handle and drag, or pull, the footprint up. You can pull up the building to any height you want, but CityEngine also allows you to specify a precise distance. Before you pull the building up, in the CityEngine main menu, clickWindow and click Tool Options to open the Tool Options window Tool Options. The Tool Options window Tool options includes a Distance (m) dialog box that provides feedback on how far you are pushing or pulling a face or edge, with the ability to specify and lock an exact distance.

To make the first story of the building, type 5 on the Distance (m) dialog box and press Enter, or click the lock buttonto lock in the distance. Click and pull up on the center shape to create the ground floor.

Push Pull Tool

To create the second story, type 3 on the Distance (m) dialog box and press Enter, or click the lock button to lock in the distance. This time, press and hold Ctrl to create a new edge when you click the face and drag it up.

Add a story to the building.


If you do not hold Ctrl, it does not add another edge and only adds 3 meters to the ground floor.

Repeat these steps on the same portion of the building five more times. When you are finished, you will have a six-story tower.

Apply color to the building

You can apply color to the building by assigning a color to the Destination 61+ layers in the Scene Editor. Check the Set Color check box to open the color picker.

Scene Editor
Color picker

To be consistent with typical colors used by urban planners, select a brown for multifamily residential.

Apply a brown color for urban planning.


CGA Model and Inspector

In the Scene Editor, turn off the visibility for the Manual Drawing layer and turn on the visibility for the CGA Model Inspector layer. Next, open the Bookmarks menu and select CGA Model Inspector. The view refocuses to the City Center at Lynnwood building, the next part of this tutorial.

CGA Model and Inspector

The Computer Generated Architecture (CGA) shape grammar of CityEngine is a unique programming language that you can specify to generate architectural 3D content. Essentially, when CGA rules are assigned or applied to shapes, 3D models are created. The complexity of the 3D models depends on the rules and the instructions within them. CityEngine is a procedural modeling application, meaning the shapes go through a series of procedures (the CGA rule file) that create the 3D model.

Procedural modeling

Use the Inspector

Select the building footprint for the City Center at Lynnwood building on the left and check its attributes in the Inspector (click Window > Inspector if it is not open). The Inspector window provides information about your shape, including its name, rule file, and start rule. A rule has not been assigned to the footprint, which is why that field is blank.

Use Inspector

Apply a rule

To apply a rule, first select the footprint shape. In the Inspector, click the Assign button in the Rules section. A dialog box appears and, by default, shows the contents of the Rules subdirectory of your project. Select Tour-Massing.cga and click Open. The rule is assigned, and the last step is to generate the models by clicking the Generate button Generate on the toolbar or by clicking Shapes > Generate Models. Rules can also be assigned by dragging CGA files from the Navigator directly onto a shape.

Apply rule

A 3D model is generated for the footprint, and with the building selected in the Inspector, there is now a list of attributes that are provided by the Tour-Massing.cga rule file that you can use to modify your 3D model—including Units, BuildingHeight, LandUse, and colors for different land uses.

Modify the height

To start, select the BuildingHeight attribute and move the slider. You can see how the building responds to the slider, increasing and decreasing in height as the slider moves left and right.

Modifying height

To specify a height, click the value and enter a number. Click the number and change the value to 30. Assuming you haven’t changed any other values, you should have just created a 10-story building (3 meters per floor). By default, this rule, like CityEngine, uses metric units. However, CGA is powerful and rules can be coded and customized to perform many functions. For instance, this rule has been programmed to allow you to specify Feet or Meters. Try changing the Units value to Feet. Your 10-story building now becomes a 3-story building, reflecting the typical story height of 10 feet.

Modify land use

Select the LandUse attribute and change the use of the building to Office. The rule changes the color of the building to blue, the color specified in the attribute below Office_Color. These colors are also attributes that can be modified. You can either enter a hex color code or click and open the operating system’s color picker. When you change the color in the Inspector, the color changes in the scene.

Use handles

Another way models and their attributes can be modified and manipulated is with handles. The Tour-Massing.cga rule has been coded to provide a handle for the building’s height. The handle allows you to modify the attribute in the scene. With the building selected, you can drag a handle on the building’s left side to modify the building’s height. As the handle is dragged up and down, the building moves up and down, and the BuildingHeight attribute changes on the right.

Using height handles



This section provides an introduction to the CityEngine Dashboards. When CGA rules generate 3D models, the rules can be programmed to report information and data that drives the dashboards. To begin this part of the tutorial, turn off the visibility for the CGA Model & Inspector layer in the Scene Editor, and turn on the visibility for the Dashboards layer. Next, open the Bookmarks menu and select Dashboards. Your view refocuses on a block within the Lynnwood City Center that you will modify with the Inspector and handles to see how changes to the models are instantly reported in dashboards. To begin, select all the shapes (click Select > Select All or press Ctrl+A), and click Generate Generate or press Ctrl+G.


Open the Dashboard window

The CityEngine default layout does not include the Dashboard window; to open it, go to the menu and click Window > Dashboard. The default location of the Dashboard window is on the right side of the interface, but the CityEngine user interface (UI) has several windows that can be repositioned and resized to suit your needs. For this tutorial, you want to place the Dashboard window along the bottom. Drag the window and a black bounding box appears where the window will be placed. Drag the box across the bottom of your entire screen an.

Opening the Dashboard window

Dashboard window

Explore the handles

Select any of the buildings in the block of development and you will notice that its uses are displayed in the dashboard's Selection Only attribute. Now modify the building’s height with the handle and see how the dashboards respond to what you do. As the building gets taller, the amount of floor area for office space increases in all of the pie charts and the number of employees also increases.

Use handles to modify Dashboard.


Change values in the Inspector

Now select another building and use the Inspector to change some of the attributes. In this example the LandUse attribute is set to Multi-Family, BuildingHeight is set to 60, and BuildingShape is set to L-Shape.

Continue exploring

Select all or part of the redevelopment area and continue to explore how changes to the models (made by handles or in the Inspector) affect the dashboards.


Visibility analysis

This section provides an overview of the CityEngine visibility and viewshed analysis capabilities, featuring a full redevelopment concept for the Lynnwood City Center, and explores visibility to and from three buildings—the Lynnwood Convention Center (the teal-colored building), City Center at Lynnwood (the triangular building from Bookmark 2), and Destination 61+ (the building from the Manual Drawing section).

To begin this part of the tutorial, you can close or minimize the Dashboard window, turn off the visibility for the Dashboards layer in the Scene Editor, and turn on the visibility for the Visibility Analysis layer. Next, open the Bookmarks menu and select Visibility Analysis. The view refocuses. If the models are not already generated, select all the shapes (Select > Select All or press Ctrl+A), and click Generate Generate or press Ctrl+G.

Visibility analysis

Create a viewshed

Creating viewsheds in CityEngine allows you to conduct a visibility analysis, indicating what can or cannot be seen from a specific vantage point by highlighting surfaces and structures that are visible or hidden. Click the Viewshed Creation tool Viewshed Creation. Select a point on the upper floor of the City Center at Lynnwood building and drag it to the other side of the Lynnwood Convention Center, as shown in the image below.

Creating a viewshed

Once the viewshed is created, CityEngine presents the visibility analysis. Every surface highlighted in green is visible from, or within, the viewshed of the point on the building. Everything in red is obstructed and not visible.

Viewshed result

Add another viewshed

To add a second viewshed to the scene, click the Viewshed Creation tool Viewshed Creation or click Analysis > Viewshed Creation in the menu, Find a spot on the upper floor of the Destination 61+ building, the other multifamily building, and bring it across the Lynnwood Convention Center as you did in the last example.

Adding a viewshed

A second viewshed is created. You should see yellow surfaces on the Lynnwood Convention Center building—these are surfaces that are visible from both vantage points.

Multiple viewsheds

Modify the viewshed

You can adjust or change your viewshed’s location or angle by using the handles in the Viewport. The handle at the origin changes the location of the vantage point, while the other orange handles change the direction and angle of the view.


Export models

The following section provides a walkthrough of using the CityEngine export capabilities to bring the 3D models into other programs. To begin this part of the tour, turn off the visibility for the Visibility Analysis layer in the Scene Editor, and turn on the visibility for the Export Models layer. Next, open the Bookmarks menu and select Export Models. The view refocuses. Once again, if the models are not already generated, select all the shapes (click Select > Select All or press Ctrl+A), and click Generate Generate or press Ctrl+G.

Exporting models

Select the models

The CityEngine export functionality only exports the models that are selected at the time the command is run, providing you with more control. In this tutorial, you will select all the models from the menu (click Select > Select All or press Ctrl+A). You can also drag a selection box around all of the models.

Selecting models

Export the models

Once you have selected the models, select Files > Export Models from the menu or press Ctrl+E. An export dialog box appears where you can specify the program and file format to which you want to export.

Export Models menu

Export to Unreal Engine

The Unreal Engine (DATASMITH) exporter provides efficient data transfer from CityEngine to the Unreal Engine Editor. The main purpose of this exporter is for architectural and design visualization workflows, but it also works for games and other tasks.

If you select Unreal Engine and click Next, another window appears where you can specify the options for your export.

Unlike GIS, most 3D programs use a local coordinate system, not a global one. This means their center is 0,0. By clicking Center in the Global Offset options, you can move your models to the center of Unreal Engine’s coordinates. If you want to change or learn more about any additional settings, refer to Export Datasmith.

Unreal Engine exporter

Export a scene layer package

Esri Scene Layer Package (SLPK) is a custom, web-optimized format that can be shared on ArcGIS Online and viewed with Scene Viewer. Since SLPK is used in GIS, your models will export to their global coordinates.

Export formats

SLPK exporter

If you want to change or learn more about any additional settings, see Export SLPK.

To continue your learning with CityEngine, see the complete CityEngine tutorial catalog.