This tutorial was created in collaboration with Devin Lavigne of Houseal Lavigne Associates.
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 showcase a fictional city of the past, present, or future. This tutorial introduces you to ArcGIS 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 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.
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, intense, lively city center and transform the area into a vibrant commercial center and an appealing place to live, work, and play. There are a wide range of projects 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 both Seattle and Everett, parcels within Lynnwood’s 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 Lynnwood's 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.
Navigating the tour
This tour has been structured around several chapters that help you jump around the model to explore the scene. The tour has also been organized in layers, with a different layer used for every chapter. You can navigate to each chapter with the Bookmarks menu in the toolbar above the Viewport and by turning the layers on and off in the Scene Editor.
This first part of the tutorial is a walkthrough on how to use the CityEngine manual drawing tools. There is no doubt that the key to realizing the full potential of CityEngine is in its ability to procedurally generate 3D models through CGA code and rule files. However, sometimes the information or shapes do not exist, or sometimes the rule files cannot accurately or quickly generate the 3D building desired. Fortunately, CityEngine allows you to use manual drawing tools to draw shapes and 3D geometry right inside of 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 . Turn the visibility off for the Overall layer in the Scene Editor and turn the visibility for the Manual Drawing layer on.
Trace the footprint
It is very common for building footprints from GIS data to be a little outdated, or that new buildings need to be drawn as part of the urban planning and design process. In this part of the tutorial, you are going to build Destinations 61+, a recent development project in Lynnwood, from the sketch that has been “taped” on top of the aerial image.
To begin tracing the building, make sure the Destinations 61+ layer is selected and click the Polygonal Shape Creation tool 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.
With the Snapping option activated in the Tool Options window, CityEngine will provide snapping points and guides to assist in drawing 90-degree angles, parallel lines, extensions of lines, and line midpoints.
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 allows you to extrude 2D shapes and modify existing 3D extrusions. Select the Push Pull Tool , hover over the footprint, and an orange handle will appear. You click this handle and drag or “pull” the footprint up. Although you can pull up the building to any height you desire, CityEngine also allows you to specify a precise distance. Before you pull the building up, open the Tool Options window by clicking Window > Tool Options in the CityEngine main menu. The Tool Options window includes a Distance (m) dialog box that provides you 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, enter 5 on the Distance (m) dialog box and press Enter or click the lock to lock in the distance. Now click and pull up on the center shape to create the ground floor.
To create the second story, enter 3 on the Distance (m) dialog box and press Enter or click the lock to lock in the distance. This time, hold down Ctrl to force CityEngine to create a new edge when you click the face and drag it up.
Note that if you do not hold Ctrl, it will not add another edge and will simply add 3 meters onto the ground floor.
Repeat this on the same portion of the building five more times. When you are finished, you will end up with a six-story tower.
Applying color to the building
You can apply color to the building by assigning a color to the Destinations 61+ layers in the Scene Editor. Check the Set Color check box to open the windows color picker.
To be consistent with typical colors used by urban planners, select a brown for multifamily residential.
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, select CGA Model Inspector and your view will refocus to the City Center at Lynnwood, the next part of this tutorial.
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.
Using the Inspector
Select the building footprint for the City Center at Lynnwood building on the left and check its attributes in the Inspector (Window > Inspector if it is not showing). The Inspector window will provide 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.
Applying a rule
Applying a rule to a shape is simple. 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 has been assigned and the last step is to generate the models by clicking the Generate button on the toolbar or by going to Shapes > Generate Models. Rules can also be assigned by dragging CGA files from the Navigator directly onto a shape.
A 3D model should generate 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.
Modifying 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.
To specify a specific height, you can 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.
Modifying the land use
Select the LandUse attribute and change the use of the building to Office. Our rule will change 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 you can click and open the operating system’s color picker. When you change the color in the Inspector, the color changes in our scene.
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 right in the scene. With the building selected, you can click and 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.
This section provides an introduction to the CityEngine Dashboards. When CGA rules generate 3D models, they can be programmed to report information and data that drives the dashboards. To begin this part of the tutorial, turn the visibility off for the CGA Model & Inspector layer in the Scene Editor, and turn on the visibility for the Dashboards layer. Next, open the Bookmarks menu, select Dashbaords and your view will refocus on a block within Lynnwood’s 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 ( Select > Select All or press Ctrl+A) and click Generate or press Ctrl+G.
Open a dashboard window
The CityEngine default layout does not include the Dashboard window; to open it, you will need to go to the menu and open 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. To move the window, click and drag with the window and you will see a black bounding box where the window will be placed. Drag the mouse so it stretches across the bottom of your entire screen and release the mouse button.
Explore the handles
Select any of the buildings in the block of development and you will notice that its uses are reported 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/donut charts and the number of employees also increases.
Change values in the Inspector
Now select another building and use the inspector to change some of the attributes. In the example below, the LandUse attribute has been set to Multi-Family, BuildingHeight to 60, and BuildingShape to L-Shape.
Select all or parts of redevelopment and continue to explore how changes to the models (by handles or in the Inspector) affect the dashboards.
This section provides an overview of the CityEngine visibility and viewshed analysis capabilities featuring a full redevelopment concept for Lynnwood’s City Center and explores visibility to and from 3 buildings—the Lynnwood Convention Center (the teal color building), City Center at Lynnwood (the triangular building from Bookmark 2), and Destinations 61+ (the building from the Manual Drawing section).
To begin this part of the tutorial, you can close or minimize the Dashboard window, then turn the visibility off 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 and your view will refocus itself. If the models are not already generated, select all the shapes (Select > Select All or press Ctrl+A) and click Generate or press Ctrl+G.
Creating viewsheds in CityEngine allows you to conduct a visibility analysis, indicating what can be seen, or not be seen, from a specific vantage point, highlighting surfaces and structures that are visible or hidden. Click the Viewshed Creation tool and select a point on the upper floor of the City Center at Lynnwood Building and drag it on the other side of the Lynnwood Convention Center, as in the image below, and release the mouse button to create the 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.
Adding another viewshed
Add a second viewshed to the scene by clicking the Viewshed Creation tool or by going to Analysis > Viewshed Creation in the menu, and find a spot on the upper floor of the other Destinations 61+, the other multifamily building, and bring it across the Convention Center as well.
When you release the mouse button, a second viewshed is created. If you matched the directions, you should see yellow surfaces on the convention center building—these are surfaces that are visible from both vantage points.
Modifying the viewshed
You can tweak or change your viewshed’s location or angle by using the different handles in the Viewport. The handle at the origin can change the location of the vantage point, while the other orange handles can change the direction and angle of the view.
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 the visibility off 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 and your view will refocus itself. Once again, if the models are not already generated, select all the shapes (Select > Select All or press Ctrl+A) and click Generate or press Ctrl+G.
Select the models
The CityEngine export functionality only export the models that are selected at the time the command is executed, providing the user with more control. In this tutorial, you will be selecting all the models. This can be accomplished from the menu (Select > Select All or press Ctrl+A). You can also use the mouse to draw a selection box around all of the models.
Exporting the models
Once you have selected the models, select Files > Export Models from the menu or press Ctrl+E. This will open an export dialog box where you can specify the program and file format to which you want to export.
Exporting 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 will also work 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 the CityEngine Help.
Exporting 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 an SLPK is used in GIS, your models will export to their global coordinates.
If you want to change or learn more about any additional settings, refer to the CityEngine Help.
To access the tutorials in CityEngine, click Help > Download Tutorials and Examples. After choosing a tutorial or example, the project is automatically downloaded and added to your workspace.