Get Map Data and basemaps
- Added support for vector tile basemaps in Get Map Data. Support is restricted to basemaps in Web Mercator.
- Get Map Data now provides access to basemaps in the active portal's basemap gallery. A hard-coded limitation to a specific set of schematic basemaps has been removed.
- You can now exclude individual layers of the selected basemap from the basemap import.
- Removed the lower size limit to the extent in Get Map Data.
- The project folders containing downloads from Get Map Data are named after the selected basemap's title.
- Fixed a bug in which Get Map Data created GeoTIFFs that were flipped upside down.
Terrain rendering
- Terrains are now rendered adaptively: Parts of the terrain close to the camera are rendered with higher resolution, while parts farther away are rendered using fewer polygons. This ensures that terrain is always rendered with the maximum quality at interactive frame rates.
- Removed the Terrain Resolution field in the Terrain Inspector. Now, the maximum possible resolution is always used for rendering. For exports, resolution can now be set on the image and model export dialog boxes.
- Wireframe rendering on terrains is turned off by default.
Street editing
- Joint nodes are now named Joint or Roundabout and end nodes are named Dead End or Cul-de-sac in the Inspector.
- Adjusted the layout of the Street Inspector: Node, Segment, and Sidewalk parameters now display on the top level.
- Removed the editing functionality in the Freehand Street Creation tool. Now, you use the Edit Streets/Curves tool instead.
- Fixed a bug in Undo/Redo in which the Inspector showed incorrect values for street segments.
- Fixed a bug in Undo/Redo in which the block outline was not updated correctly in rare cases.
- Fixed a bug in which the FreewayEntry shape was incorrect after import from scenes created in 2022.0 or earlier.
- Fixed a bug in the street creation and cleanup tools in which nodes were created incorrectly when using the Intersect Segments option.
- Fixed multiple bugs in which the Generate Bridges and Simplify Graph tools generated objects with duplicate OIDs.
Editing tools
- The new Terrain Smooth Brush tool is the latest addition to the terrain editing tools. It is useful to smoothen out spikes or ripples on terrains.
- The terrain brush tools share their strength and border values in the Tool Options now.
- Start points from the Polygonal Shape Creation tool on an existing shape are now kept even when the drawing action is canceled.
- The XYZ input fields in the transform tools are now marked with their corresponding axis color for improved usability.
- Fixed a bug in the Selection tool in which components of objects were ignored when using the subtract mode.
Inspector
- CGA rule file Inspector:
- The new @DisplayName annotation for attrs is now supported in the Inspector. The original name is visible when hovering over the attribute name.
- Fixed a bug in which attributes with the @Hidden annotation were ignored when copying/pasting rule attributes.
- Fixed a bug in which changes to pasted rule attributes on street shapes had no effect.
- The style drop-down list now allows you to always switch to all present styles.
- Object attributes Inspector:
- Added an option to edit the name and type of object attributes. Previously, the object attribute had to be deleted then re-created.
ArcGIS Urban sync and API
- It is now possible to update your ArcGIS Urban scene per scenario using the new Get changes from Urban dialog box.
- In scenes that are imported from ArcGIS Urban, the scenario names are now protected from renaming.
- Fixed a bug in which importing a plan with an unsupported custom elevation service failed. Now, a default elevation service is used.
- The Urban tab of the Navigator has the following changes:
- You can search by item ID.
- You can filter by My Content, Groups, or Organization.
- Any filter input is now applied instantly.
- A warning is shown when creating a scenario in CityEngine that cannot be saved back to ArcGIS Urban.
- Removed the Locked field on the Save changes to ArcGIS Urban dialog box.
- Fixed a bug that prevented a building type modification to be saved to ArcGIS Urban.
- For improved usability, renamed and reordered layers imported from ArcGIS Urban.
Portal
- CityEngine now supports social logins (sign in with Google, Facebook, Apple, or GitHub accounts).
- To enable logins for SSO/SAML-based accounts in ArcGIS Enterprise portals, there is now the option to use the system browser for the ArcGIS Online login by clicking the Sign in using browser link on the dialog box.
- Fixed a bug in which logging out from a Google or Github account failed.
- Improved the stability of uploads to portal using the Python API.
Miscellaneous UI
- 3D Viewport: Added the option to define near and far clipping planes for bookmarks in the Inspector. The settings take effect after activating the bookmark in the Viewport.
- Overhauled the Bookmarks properties in the Inspector and Edit Bookmarks dialog box.
- The bookmark name is now shown next to the camera gizmo in the Viewport for better readability.
- The sun position now can also be set in hours and minutes in the Scene Light and Panorama settings.
- When shapes are created from rule files that are dragged and dropped into the Viewport, the first edge will now be correctly oriented along the x-axis.
- The Regenerate saved models dialog box now doesn't appear before the scene has loaded completely.
- Removed obsolete pages and settings in the Preferences.
- Simplified the fonts settings page in the Preferences to improve usability.
- Made minor improvements to the content of the Get Started and Welcome window.
- Fixed a bug in which the Get Started and Welcome window did not load anything in rare cases.
- Fixed a bug in which the Get Started and Welcome window was displayed on the wrong tab.
- Fixed a bug in which the Portal Sign-In dialog box did not fit the entire content.
Import and export
Unreal/Datasmith
- Updated to Datasmith version 5.1. Note that Datasmith 5.x files cannot be read in Datasmith 4.x-based applications. Use Unreal 5.0+ or Twinmotion 2023.1+.
- The export dialog box now shows an info message when the Unreal Engine prerequisites are not installed.
USD
- Added support for all UV sets and texture layers for import and export.
- Import: Added support for varying UV interpolation scheme.
- UV sets are now read even when there is no texture applied to it.
- Export: Added support for single channel textures.
- Added support for exporting to DOS-style UNC paths.
- Fixed a crash for USD exports to very long base names.
- Improved robustness when reading invalid USD files (for example, fixed a crash when invalid face indices were encountered in the USD file).
- Export: Fixed a crash in CGA reports collection.
3VR
- Fixed a bug in which bookmarks were wrongly exported for non-meter coordinate systems.
- Fixed a bug in which exporting a 3VR file with Python created a broken file that did not have scenarios or layer configurations.
- Fixed a bug in which bookmarks from a previous export were reused when the bookmark names matched.
General
- Removed the deprecated CityEngine Web Scene Viewer and Exporter. The recommended workflow to bring content created in CityEngine to the web is explained in the Publish web scenes tutorial.
- You can no longer preview the 3WS files.
- The CEJ import now supports bookmarks.
- Optimized the CGA insert operation, static model, and shape importers to use less memory for large assets.
- Fixed a bug in which exporting with the Skip existing files option failed when a texture file was already present.
- Fixed a bug that could consume all system memory when model exporters process CGA reports.
- Fixed a rare memory leak in the Collada, OBJ, and Vue exporter that led to a crash-on-exit.
Procedural modeling language (CGA)
Introducing dynamic imports
A new way to use instances of imported rulesets is introduced. On import, rulesets are instantiated once, meaning their attrs are initialized, depending on override parameters in the import statement. The new dynamic import feature allows you to temporarily instantiate (and therefore parameterize) a ruleset at any place in the code. The temporary ruleset instance can be parameterized with values only available at runtime and allows for using a rule in the ruleset once. This gives you flexibility for reusing and customizing rule files and modularizing your CGA code. The new Dynamic imports tutorial demonstrates how the feature works.
Import improvements
- Previously, the usage of many imports could hit an internal limit, which resulted in a compile error (the "constant pool size larger than limit” error). This restriction is now removed and there is no longer a limit in the number of imports.
- Improved the behavior of attribute overrides in imports: Firstly, the evaluation of an attribute redefinition now correctly respects potential redefinitions of other attributes. Secondly, using probabilistic expressions in attribute overrides no longer affect a randomly evaluated value of another attribute override. These improvements ensure a deterministic behavior for attribute overrides. Previously, the behavior depended on the alphabetical order of attribute names.
- Improved error reports in a number of cases: Import cycles, type mismatches in overrides, specification of an unknown style in the import statement, as well as when errors are located in imported rule files.
- Fixed a bug in which asset lookups in overrides failed when imports were done across projects.
- Fixed a bug in which sometimes a call to a function was misinterpreted as a call to another function when imports were involved.
- Fixed a bug in which styles were considered incorrectly for an invocation of an imported rule that is not defined in the Default style.
Miscellaneous improvements
- The new @DisplayName annotation defines a descriptive name for an attribute that is displayed in the Inspector instead of the attribute name. This allows you to customize the Inspector and enhance the experience of your rule file.
- Fixed the behavior for a number of setback selectors, and the documentation was improved.
- Assets and textures that are located at long absolute paths are now read correctly (Windows specific).
- Fixed a bug that appeared when using existing rule files for the first time in a new CityEngine version. Previously, the first generation could lead to an error or to an incorrect result.
- Fixed a bug in which compiled rule files (*.cgb) were created at an incorrect location instead of in the project's bin folder (which is hidden by default). This issue primarily happened when the rule files were organized in a linked folder.
- The CGA console now fully supports non-ASCII characters.
Changes
- The CGA Compiler received a major upgrade (version 2.0). Rule packages created in CityEngine 2023.0 can only be used in most recent Plugins & APIs that are compatible with CityEngine 2023.0. However, rule packages created in earlier CityEngine versions are fully supported in CityEngine 2023.0.
- Some minor new restrictions are introduced to the CGA language and CGA file names.
Refer to the CGA changelog for a comprehensive list of changes and bug fixes.
Python
- CityEngine introduces the new invertSegments() command. It allows you to flip the direction of graph segments.
- The exportRPK() command now has error handling for invalid rule files.
- The Go to definition functionality In the Python editor is more robust.
- Added full support of non-ASCII characters in the Python console.
Esri.lib
- Added a new low-poly vegetation web style. (A new LowPoly value was added to the attribute "representation" in Plant_Loader.cga)
Tutorials
- Essentials:
- Build Cities with Get Map Data—This new Essentials tutorial covers topics such as downloading context with Get Map Data, cleaning up street networks, terrain editing, and scenarios.
- Classic Tutorial Series:
- Tutorial 22: Dynamic imports—This new tutorial covers the concept of dynamic imports which allow more efficient modularization of your CGA code.
- Tutorial 6: Basic shape grammar—Overhauled and streamlined the tutorial in which you learn the basics of CGA grammar, including how to add textures, color, and different levels of detail to buildings.
- Tutorial 15: Publish web scenes—Updated the tutorial to demonstrate a workflow to export a CityEngine scene to Scene Viewer.
System
- Updated Java to OpenJDK 17.0.4.1
- Added support for RHEL 9 and compatible Linux distributions (for example, Alma Linux 9 or Rocky Linux 9).
- Improved support for long paths on Windows for CGA, RPK, and asset files.
- Updated the embedded browser to Chromium 106.
- Updated 3rd Party Packages to address security vulnerabilities:
- libtiff 4.5.0
- zlib 1.2.13
- libxml 2.10.3
Installer
- Fixed a bug in the silent installer on Linux when specifying the authorization file.
- Corrected and improved some icons in the installers.