What's new in CityEngine 2023.1


Be sure to read the CityEngine 2023.1 release notes for all the details on new features, enhancements, and bug fixes. Visit My Esri to upgrade to CityEngine 2023.1.

Are you new to CityEngine? Try it out with a fully-functional free-trial version.


Visual CGA: Node-based procedural modeling (beta)

Visual CGA

We are excited to present to you the Visual CGA Editor. Procedural modeling with CGA was never this easy, interactive, and fun. It is now possible to quickly build complex rules without writing a single line of code.

With the Visual CGA Editor, you can interactively compose node graphs out of building blocks called (CGA) Components. The Example VCGA Playground project contains a rich library of Components and shows how build complex designs can be built . Advanced CGA programmers can also write their own Components.

Visual CGA (VCGA) designs are fully supported in all CityEngine workflows and can be used in the same way as CGA rules.

Note that VCGA is in beta and targeted at enthusiasts. While there is no documentation yet and there may be minor bugs, the comprehensive VCGA Playground example, together with the accompanying video tutorials, will help get you started.

You can also download the VCGA Playground example directly in CityEngine through Download Tutorials and Examples in the Help main menu.


A fresh new look: New icons and a dark theme

New icons

We redesigned the icons presenting the UI in a much more modern look and feel while maintaining a crisp display at any resolution and scaling.

Plus, you now have the option to choose between a light and dark theme when working in CityEngine. You can switch to the dark theme under Appearance in the Preferences menu. After restarting CityEngine, the UI is adjusted including the Inspector, Tool Options, and various dialogs. The dark theme also offers a nicely balanced color scheme for syntax highlighting in both the Python and CGA editors.

Light and dark themes


Urban Integration: Spaces import and Parcel Inspector rework

ArcGIS Urban Spaces

We now support the import of Spaces from ArcGIS Urban into CityEngine. This means, buildings that were edited manually in ArcGIS Urban are now displayed correctly in CityEngine. Each building is represented by a group layer containing the spaces as individual shapes. Each shape is assigned a rule that visualizes the usage.

The Urban rule is not assigned to the Parcels layer any longer. If you need it, it is located in ESRI.lib. There is also now a new Zoning tab including all zoning related properties, and Edge Attributes are now exposed allowing you to edit the street orientations of the parcel edges, for example.

Urban Integration: Demolish areas

We added support for demolish areas when importing or updating a scenario. Context buildings are added to a separate layer in the scenario when they are inside the study area. Otherwise, they are added to Default Objects. Also, we added an OSM fallback for context buildings which are hosted on a scene layer in ArcGIS Urban.

All accessible plans are now shown in the Urban tab of the Navigator window. This means that public plans are also available for import. We also tuned the API query to improve the import speed significantly.


CGA: Next-level component selection and tags

CGA component selection

An essential tool for procedural modeling with CGA is the component split (comp operation). The comp split allows you to separate a geometry into its components based on a number of built-in selectors. You can now write your own selector functions – and you can combine multiple selectors in a logical selector expression.

This is augmented with the new concept of semantic component tags. The operations such as extrude or setback, now set semantic tags on the produced geometry components. The new isTagged() selector then allows you a new way of selecting components in the comp split. In contrast to the established selectors, isTagged() does not rely on geometrical properties such as the orientation of face normals.

Everything also applies to selectors in the setback operation. Tags are preserved and propagated through geometry-modifying operations. The possibility of setting edge tags on initial shapes broadens the scope of writing context-aware CGA rules.

CGA tags

Check out the geometry tags section in the CGA reference for more details and examples.

CGA Compiler: Instant compile

The interactive developer experience is now optimized for CGA coders, especially when developing large CGA projects with many imports. Now, the CityEngine UI always stays interactive, even if several complex rule files need to be recompiled when editing the code.


Get Map Data and OSM import

Get map data

We further extended the set of available basemaps in Get Map Data by supporting all non-Web Mercator coordinate systems.

The previous Get Map Data settings are now stored for the current session. This means you can conveniently open the dialog again to download additional basemaps with the same extent or choose an extent next to the previous one without needing to remember all the values.

We also improved the import of OSM street data by adding support for the Roundabout tag. This is especially important for end nodes which previously were shown as dead ends. Also, tertiary streets are now preselected in the import dialog which results in a more complete street network by default.



Refurbished tutorials

We continue to improve the CityEngine tutorial catalog by refurbishing the following tutorials:

  • Tutorial 7: Facade modeling: Learn how to model a building from a picture, including creating a facade structure, inserting assets, and adding textures to the building.
  • Tutorial 8: Mass modeling: Learn about mass modeling using L and U-shaped buildings, extrusions, setbacks, and generate a diverse looking scene including textures.
  • Tutorial 9: Advance shape grammar: Learn how to create a CGA rule for a building facade using a image reference.
  • Tutorial 10: Python scripting: Learn the basic usage of the Python console and editor and explore several examples on how to automate tasks in CityEngine.


…and one more thing

Transfrom Move tool snapping to objects

The Transform Move tool now can snap to other objects in 3D to conveniently move objects around in your scene.