CityEngine 2021.0 Release Notes


360 VR

  • Thanks to the new ArcGIS 360 VR web app, you can preview and verify local 3VR files in a browser before uploading them.
  • To make for a crisp and clean experience, we increased the resolution of both the experience as well as the previews.
  • 3VR items shared to a portal are now private as all the other items are by default. If you want to view 3VR items with the Oculus App change the sharing settings.
  • Updated the 3VR logo also used in the Portal Navigator.
  • Improved the export dialog layout.
  • Fixed a bug in which the bookmarks in the export dialog showed up in the wrong order.

Terrain editing

  • The new Terrain Edit Brush allows localized leveling of terrains.
  • The new Terrain Reset Brush allows localized reverting of terrain elevation changes.
  • The new Terrains file menu and toolbar category facilitates terrain edits.
  • We enhanced the visualisation of terrains in the Viewport in scenes in which a small, high resolution terrain is used in combination with a large, low resolution terrain:
    • The higher resolution terrain now masks lower resolution terrains. This prevents unwanted artefacts of the low-resolution terrain.
    • The Terrain Masking render option can be turned on and off in the Viewport settings.
  • You can now add more detail to terrain aligned shapes using improved face splitting.


  • For more intuitive scenario management, whole layers are now assigned to scenarios instead of individual objects.
  • You can assign Graph, Map and Terrain layers to Scenarios. This means that street networks and terrains can be adapted to the scenarios.
  • You can also assign Group Layers to Scenarios. Child layers stay in the same scenarios as the group layer.
  • The Python interface was adapted to the changes in scenario functionality.

Drawing tools

Transform and selection

  • Added the new Adjust Position and Orientation Tool Option to the rotate, scale, and translate tools. This allows you to reposition and reorient the transform handle in order to perform advanced transformations. Snapping is also supported.
  • Selection Sets is an option in the Selection tool.
  • Fixed a bug in which undo was not working in some cases.


  • Extended Cleanup Shape tool with the new Split Self-intersecting Polygons functionality. Sometimes, self-intersections are barely visible on drawn ort imported polygons and can cause problems, such as unexpected geometry when a CGA rule is applied. This cleanup helps detecting and resolving such issues.
  • The Polygonal Shape Creation tool now offers an option to disable automatic closing when snapping to shapes.
  • In order to declutter the toolbar, the shape drawing tools have been consolidated into subtools in the Tool Option window.
  • Applied various code improvements to the Push Pull tool that prevent the creation of undesired artifacts, such as self-intersecting shapes in special cases.
  • Fixed a bug in the Push Pull tool in which the handle was not visible or placed outside of the shape.
  • Fixed a bug in which the creation of a hole failed using the rectangle tool.


  • The Rotate tool now supports snapping to the global planes and axes, orthogonal angles, and parallel to guides.
  • The Polygonal Shape Creation tool now supports snapping to intersections of new edges on other lines.
  • The Polygonal Shape Creation tool now has enhanced visualization of length constraints and snapping highlights.
  • Improved snapping to intersection of edges and guides with low angles.
  • Snapping to intersections of orthogonal snaps and edges is more robust now.
  • Fixed a bug that prohibited snapping to objects and guides behind a hidden terrain.


  • Removed a superfluous warning that showed up when trying to place a street node above the horizon line.
  • Fixed a bug in which blocks were generated with the same object ID in some cases.


  • The Measurement tools are now grouped in the toolbar.
  • The Measurement tools vertex handles are now aligned consistently to the global coordinate system.
  • The Guide Creation tool now offers an option to delete all guides.
  • Optimized the default window layout for working with Tool Options.


  • 2D arrays, such as from a CGA rule attribute, are now displayed as a table. This allows you to understand and edit the data much more intuitively. You can edit in the table view single cells, and add, insert, and delete rows.
  • Fixed a bug in which the shape’s CGA rule was marked as having errors even though the errors were resolved.
  • Fixed a bug in which warning signs were badly aligned and in some cases had a wrong tool tip.
  • Fixed a bug in which pressing Enter on an array's input field reset it.
  • Fixed a bug in which browsing for an asset file for a static model didn't allow selecting all supported formats.
  • Fixed a bug in which tool tips of names were sometimes wrong when only one object was selected.
  • Fixed a bug in which multiple shapes showed zero instead of a question mark if they had different random seeds.
  • Fixed a bug in which multiple shapes wrongly showed the same value for CGA attributes that depend on other CGA attributes even if they were different.
  • Fixed a bug that multiple shapes wrongly showed the same value for CGA attributes that are linked to object attributes even if they were different.
  • Fixed a bug in which CGA attributes couldn’t be connected when layer and object attributes with the same name are present.
  • Fixed a bug in which using the up and down keys to cycle through CGA attributes with the enum annotation did not work properly.


  • Added the Terrain Masking option. This can be controlled in the View settings.
  • Fixed a bug in which the rendering was non-determinsitic for CGA models with NaN color values.
  • Fixed a bug on Linux in which taking a screenshot with a custom resolution threw an exception.
  • Fixed a bug in the Edit Bookmarks dialog in which repeated clicks on Up button can delete the selected bookmark.

Import and export

All formats

  • On import, improved the cleanup of assets with small faces. No holes are created anymore.

Autodesk AutoCAD DWG

  • Added an importer and an exporter for the Autodesk AutoCAD DWG format. Support is for 3D data only, 2D elements are ignored.

Universal Scene Description (USD)

  • Extended the USD importer and exporter with support for the USDZ file format.
  • Updated the 3rd party USD library to version 21.02.

SceneLayer Package (SLPK)

  • Optimized the node hierarchy and texture resolutions for improved rendering performance in Scene Viewer.
  • The geometry LODs are more fine-grained now, resulting in a smoother viewing experience in Scene Viewer.


  • Improved the precision of exported glTF assets.
  • The glTF importer no longer aborts when the KHR_materials_SpecularGlossiness glTF extension is encountered. It now reads the geometry and supported material part instead of falling back to the "unknown asset cube".

Unreal Engine (Datasmith)

  • Updated to Datasmith 4.26 library.
  • The Unreal Engine (Datasmith) exporter is now able to export CityEngine scenarios as Unreal Variants.
  • Now all UV sets generated by CGA rules (or coming from imported/inserted assets) are exported instead of only the first set.
  • Changed PBR textures export from sRGB to linear color space and removed obsolete color space conversion shader.
  • Texture modes are now correctly set if the same texture is exported both as normalmap and diffusemap. Before such textures were exported as normalmaps only.

OpenStreetMap (OSM)

  • Adjusted the default OSM import settings to provide a better Get Map Data experience.
  • Fixed a bug in which importing multi-polygons with shared open "ways" caused an error.
  • Fixed a bug in which Get Map Data imported OSM graph data even though import of network was deactivated.

Autodesk FBX

  • Updated the 3rd party FBX library to version 2020.2.


  • Updated the 3rd party libraries to Alembic 1.7.16 and OpenEXR 2.5.2.

E-on Software Vue

  • Updated the 3rd party library to VueExport

CityEngine WebScene (3ws)

  • The CityEngine WebScene (3ws) format is now deprecated and will be removed in the future. It is replaced by SLPKs.
  • Updated the bundled CityEngine WebScene Viewer to version 8.3, which includes a fix for short URLs.


  • Removed the exporter for Renderman RIB files. Use the USD format instead.


  • Custom decoders written with CityEngine SDK and added to CityEngine, are now automatically available as shape and static model importer (this includes support for drag'n drop and Python).

Procedural modeling language (CGA)

  • CGA now supports local variables using the new with keyword. With the help of local variables you can better structure your code. Local variables can efficiently store values that are used many times and eliminates the need to pass intermediate results as a parameter.
  • The new footprint operation constructs a 2D projected geometry of arbitrary 3D shapes.
  • The new roofRidge operation creates a simple roof with only one ridge. The direction of the ridge can be fully controlled via the scope.
  • The new alignScopeToGeometryBBox operation aligns two scope axes to a minimum area 2D bounding box that encloses the footprint of a shape.
  • The new getMaterial function and setMaterial operation let you handle all material attributes conveniently in one data structure, namely a 2D array that maps material attributes to their values.
  • The new resetMaterial operation offers a convenient way to reset all material attributes.
  • A list of asset groups and materials can be retrieved by the new geometry.groups and geometry.materials functions.
  • Asset groups and asset face materials are now preserved across most operations. The group name is now correctly initialized to
  • Added support for reading 3D assets in the Autodesk AutoCAD DWG format.
  • The USD reader also supports USDZ files now.
  • The internal geometry cleanup for inserted assets and initial shapes was improved, namely the removal of 0-area faces, 0-length edges and 0-angles. The cleanup is less invasive now and small details of asset geometries are preserved on import.
  • The roofShed operation was enhanced. It now correctly works on concave shapes and also supports negative roof angles and negative edge indexes.
  • New functions were added, and existing functions were extended in order to better support the handling of arrays. The affected functions are sum, listToArray, listFromArray, filesSearch, assetNamingInfos, convert, assetsSortSize, assetsSortRatio, imagesSortRatio, ceil, floor, rint, isinf, isnan, isNull.
  • Fixed a bug in the offset operation that led to a crash or degenerated geometry.
  • Fixed a bug in the geometry.angle function. The returned azimuth value was incorrectly shifted by 180 degrees.

See the CGA changelog for a comprehensive list of changes and bug fixes.

CGA Compiler and Editor

  • Performance of the compiler was improved for some cases, see CGA changelog for details.
  • Errors and warnings were improved, see CGA changelog for details.
  • Fixed a bug in which a new rule file with a previously used but deleted name did not behave as expected.
  • Fixed a bug in which the "New Rule..." command in the context menu was not working as expected.

Python scripting

  • CityEngine now automatically creates Python settings classes for custom decoders written with the CityEngine SDK.
  • Fixed a bug in which closing CityEngine took unreasonably long after working with python scrips.
  • Fixed a bug in which the subprocess module couldn't be loaded.
  • Fixed a bug in which custom python startup code was run before Python was fully initialized.
  • Fixed a bug in which invalid options for export settings could be set.

Integration with ArcGIS Urban

  • Fixed a bug in which Zoning Envelopes didn't receive the correct color.
  • Fixed wrong name of the Real_Shape_Area field, it is now called GeodeticShapeArea, as it is in Urban.
  • The Urban rule was updated to 1.2.4.

ArcGIS Online and ArcGIS Enterprise

  • You can now unsynchronize Shape Layers from their Feature Services. This allows you to both avoid inadvertently updating the feature services or creating a new feature service from the layer.
  • Fixed a bug in which it wasn't possible to add new shapes to synchronized feature services.
  • Fixed a bug in which the upload window was hidden behind CityEngine when sharing an item to a portal without being logged in.


  • In the Building rules, the new cleanupTolerance attribute now controls how much cleanup is done on the building footprints.
  • Three models in the SchematicVegetation Webstyle have updated metadata info in the .glb files and may have reordered geometry, but models should look the same.
  • The Urban rule was updated to 1.2.4.


  • Increased the undo history size from 25 to 100.
  • Fixed a bug in which CityEngine sporadically locked up during startup and needed to be forcefully stopped.
  • Fixed a bug in which the user was allowed to interact with CityEngine before ce.lib was fully installed in the workspace.
  • Fixed a bug in RPK handling. Sometimes exporting models failed after rpks were used in CityEngine and then deleted from the workspace
  • Fixed a memory leak in model generation.
  • The "Google SketchUp" Mouse and Key Layout Schemes was renamed to “Trimble SketchUp”.
  • Fixed a bug in which the font size of “key value” dashboard cards was wrong.
  • Fixed a bug in which the Navigator preview didn't zoom in close enough on very small assets.
  • Fixed a bug on Windows in which CityEngine showed up with a wrongly formatted version number in Windows application lists.
  • Fixed a bug in the panorama settings in which switching the sun position between date/time and azimuth did not update the UI.
  • Fixed a bug in the texture reader which led to redundant asset warnings in the Problems View.
  • Added missing translations of strings in the array Inspector, Preferences, the File GDB Export dialog, and the right mouse button menu of the Navigator.


Supported Platforms

Visit My Esri to upgrade to CityEngine 2021.0.