Skip to content

Releases: iTwin/itwinjs-core

v4.6.0

13 May 20:33
Compare
Choose a tag to compare

deltaDoc: true
version: '4.6.0'

4.6.0 Change Notes

Table of contents:

Display

Map layer feature highlighting

Map layer features can now be highlighted when terrain display is enabled. In the image below, the brighter blue polygon is highlighted.

image

v4.5.2

16 Apr 14:47
Compare
Choose a tag to compare

Release notes

Changes

  • Added tool assistance instructions to MapFeatureInfo tool, also updated icon (backport #6559) [release/4.5.x] (#6584)
  • @bentley/imodeljs-native 4.6.6
  • use previously working node version until rush issue is fixed (backport #6611) [release/4.5.x] (#6616)
  • update rush - permanent fix for cve-2024-27980 (node security patch) (backport #6625) [release/4.5.x] (#6626)
  • 4.4.9 Changelogs
  • Presentation: Fix PresentationRpcImpl.getPagedContentSet request returning success response on error (backport #6605) [release/4.5.x] (#6624)
  • Fix visiblity state of model map layers (backport #6615) [release/4.5.x] (#6630)

Full changelog: 4.5.1...4.5.2

v4.4.9

15 Apr 20:30
Compare
Choose a tag to compare

Release notes

Changes

Full changelog: 4.4.8...4.4.9

v4.5.1

03 Apr 18:27
Compare
Choose a tag to compare

Release notes

Changes

  • @bentley/imodeljs-native 4.5.32 [release/4.5.x] (#6578)
  • Update gather-docs yaml to correct branch name (#6579)
  • Fix map layer WMTS validation process to correctly return authentication error (backport #6562) [release/4.5.x] (#6563)

Full changelog: 4.5.0...4.5.1

v4.5.0

02 Apr 19:06
Compare
Choose a tag to compare

deltaDoc: true
version: '4.5.0'

4.5.0 Change Notes

Table of contents:

Display

Seafloor terrain

The iTwin viewer supports visualizing the Earth's landmasses in 3d using Cesium World Terrain, providing real-world context for infrastructure built on land. For undersea infrastructure, the context of the seafloor terrain can be just as important. Now, you can make use of Cesium World Bathymetry to get a glimpse of the world under the waves.

To enable seafloor terrain, create a TerrainSettings specifying CesiumTerrainAssetId.Bathymetry as the dataSource. For example:

  function enableBathymetry(viewport: Viewport): void {
    viewport.changeBackgroundMapProps({
      terrainSettings: {
        dataSource: CesiumTerrainAssetId.Bathymetry,
      }
    });
  }

You can alternatively specify the Id of any global Cesium ION asset to which you have access. Either way, make sure you add the asset to your ION account first.

The new TerrainSettings.dataSource property can be used by custom TerrainProviders as well, to select from different sources of terrain supplied by the same provider.

Below, the islands of Cape Verde are visualized with bathymetric terrain, slightly exaggerated in height for emphasis:

Cape Verde terrain

Simplified TileTreeReference

iTwin.js provides two ways to add graphical content to a Viewport's scene:

In some cases, you'd just like to add some relatively simple graphics to the viewport's scene using a TiledGraphicsProvider. To simplify that process, TileTreeReference.createFromRenderGraphic accepts a graphic created using a GraphicBuilder and produces a tile tree from it, which you can then associate with a TiledGraphicsProvider. Here's an example:

[[include:TileTreeReference_createFromRenderGraphic]]

You can use this new API to easily create a tile tree for dynamically classifying a reality model.

Dynamic classifiers

Classification involves using geometry from a design model to "classify" the geometry of a reality model. Wherever a region of the reality model intersects with geometry belonging to an element in the design model, that region is treated as if it belongs to the element. For example, mousing over a classified region displays a tooltip describing the classifying element, and selecting the region selects the element. The color of the classified region can also be altered to match the classifying element's color. A classic use case is a photogrammetry model of a city, classified using polygons representing the footprints of buildings within the city, such that the user can interact with individual buildings within the reality model.

The usefulness of this technique is limited by the constraint that the classifier geometry must originate from a persistent GeometricModel stored in an iModel. Imagine a scenario in which you have a reality model representing a building, and access to live data streamed from heat sensors placed in rooms within the building. You might wish to classify the rooms based on their current temperatures - but because the data is constantly changing, it wouldn't make sense to store it in a persistent model.

Now, that constraint has been lifted. You can define your geometry at run-time and apply it to a reality model as a DynamicSpatialClassifier by setting the activeClassifier property of ContextRealityModelState.classifiers. The geometry is supplied by a TileTreeReference, which can easily be created using the new TileTreeReference.createFromRenderGraphic API.

Here's a simple example that classifies spherical regions of a reality model:

[[include:TileTreeReference_DynamicClassifier]]

Electron 29 support

In addition to already supported Electron versions, iTwin.js now supports Electron 29.

Editor

Changes to @beta BasicManipulationCommandIpc class:

Changes to @beta CreateElementWithDynamicsTool class:

Added EditTools.registerProjectLocationTools method. These tools are no longer automatically registered by EditTools.initialize. Applications that wish to include these tools and also register the required BasicManipulationCommand with EditCommandAdmin should call this new method.

Removal of several @Alpha test tools for creating Generic:PhysicalObject class elements that didn't belong in the core package.

Lock Control

Changes to @beta LockControl class to make releaseAllLocks @internal. Should only be called internally after pushing or abandoning all changes.

Presentation

RPC interface version bump

The presentation backend now sends more properties-related information to the frontend than it did in previous version, and the frontend relies on that information for formatting and rendering the properties. As a result, the version of PresentationRpcInterface has been bumped from 4.0.0 to 4.1.0.

Custom renderer and editor support for array items

Support for custom renderers and editors has been added for array items.

A renderer / editor may be assigned to items of specific array by creating a ContentModifier for
a class that has the property and adding a property override for the array property with [*] suffix. Example:

{
  "ruleType": "ContentModifier",
  "class": { "schemaName": "MySchemaName", "className": "MyClassName" },
  "propertyOverrides": [
    {
      "name": "MyArrayProperty[*]",
      "renderer": {
        "rendererName": "test-renderer"
      },
      "editor": {
        "editorName": "test-editor"
      }
    }
  ]
}

Support for property overrides on ECStruct member properties

Support for property overrides has been added for struct member properties.

The overrides may be assigned to members of specific ECStruct class by creating a ContentModifier for
the struct class and adding property overrides for the members. Example:

{
  "ruleType": "ContentModifier",
  "class": { "schemaName": "MySchemaName", "className": "MyStructClassName" },
  "propertyOverrides": [
    {
      "name": "StructMemberProperty",
      "renderer": {
        "rendererName": "test-renderer"
      }
    }
  ]
}

Deprecation of async array results in favor of async iterators

PresentationManager contains a number of methods to retrieve sets of results like nodes, content, etc. All of these methods have been deprecated in favor of new ones that return an async iterator instead of an array:

  • Use getContentIterator instead of getContent and getContentAndSize.
    ...
Read more

v4.4.8

25 Mar 22:23
Compare
Choose a tag to compare

Release notes

Changes

Full changelog: 4.4.7...4.4.8

v4.3.5

25 Mar 16:55
Compare
Choose a tag to compare

Release notes

Changes

  • Use the last docs build before GenericInstanceFilter was added otherwise docs build fails. (#6550)

Full changelog: 4.3.4...4.3.5

v4.3.4

22 Mar 13:31
Compare
Choose a tag to compare

Release notes

Changes

  • Bump @itwin/object-storage pkgs to address GHSA-jchw-25xp-jwwc (backport #6352) [release/4.3.x] (#6353)
  • classIdPresentInChange should be true when ecClassId is present (backport #6341) [release/4.3.x] (#6347)
  • Add core-common to the list of packages for electron-auth and browser-auth to be marked as workspace:* (backport #6360) [release/4.3.x] (#6370)
  • Update dependencies (backport #6380) [release/4.3.x] (#6395)
  • Additional documentation for AccuDraw, AccuSnap, and ACS. (backport #6367) [release/4.3.x] (#6394)
  • Remove docs reference to internal package (backport #6392) [release/4.3.x] (#6393)

Full changelog: 4.3.3...4.3.4

v4.4.7

15 Mar 19:16
Compare
Choose a tag to compare

Release notes

Changes

  • Disable tile preloading when under GPU memory pressure (backport #6512) [release/4.4.x] (#6514)
  • @bentley/imodeljs-native 4.4.7 (#6525)

Full changelog: 4.4.6...4.4.7

v4.4.6

08 Mar 15:57
Compare
Choose a tag to compare

Release notes

Changes

  • Clamp batched tile fit volume to project extents. (backport #6497) [release/4.4.x] (#6500)

Full changelog: 4.4.5...4.4.6