ipc 2.19.6升级记录:

1.1.1. 升级依赖包

  1. 将 package.json 中 @bentley相关依赖包版本改成 2.19.6

  2. 执行脚本:install.bat -> patch.bat -> dev.bat

  3. 有的窗口会报如下图所示的错误

    原因是 @bentley/backend-itwin-clientopen-client 这两个依赖包依赖了不同版本的 got,分别为11.8.2 和 9.6.0, 根据npm管理,最外层的node_modules 中默认安装的是11.8.2,open-clinet下会单独安装自身依赖的9.6.0版本。

    原理如图:

    报错的地方index.d.ts ,由于没找到当前node_modules下got类型声明文件,而引用了外层 got 。

    解决方法:
         (1)除backend以外的报错窗口安装低版本的got:npm install got@^9.6.0
         (2)backend 终端执行:
      cd node_modules\openid-client
      npm install --save @types/got
    
  1. frontend 升级 sass-loader: npm install sass-loader@^10.1.0

1.1.2. 代码更新

  1. backend

    RpcBriefcaseUtility.ts: 更新了BriefcaseManager.processChangeSets接口

    if (db.changeSetId !== tokenProps.changeSetId)
    await BriefcaseManager.processChangeSets(
    requestContext,
    db,
    tokenProps.changeSetId!,
    );
    

    改成

    if (db.changeset.id !== tokenProps.changeSetId)
    await BriefcaseManager.processChangesets(requestContext, db, {
    id: tokenProps.changeSetId!,
    });
    
  2. frontend

(1)/frontend/src/viewer/AcdpViewport.tsx

Viewport.attachRealityMode 方法已丢弃,使用DisplayStyleState.attachRealityModel 方法添加实景。
vp.attachRealityModel(m.realityModelProps)

更改成:

view.getDisplayStyle3d().attachRealityModel(m.realityModelProps)

(2)/frontend/src/api/rpc.ts

StandaloneIModelRpcInterface 接口已丢弃,将
StandaloneIModelRpcInterface 改成 SnapshotIModelRpcInterface

(3)/frontend/src/api/SavedViewUtil.ts

Vewport.perModelCategoryVisibility.forEachOverride方法已丢弃,用for...of 来做遍历
vp.perModelCategoryVisibility.forEachOverride(
  (modelId: string, categoryId: string, visible: boolean) => {
    perModelCategoryVisibility.push({ modelId, categoryId, visible });
    return true;
  }
);

改成

for (const ovr of vp.perModelCategoryVisibility) {
  // istanbul ignore else
  perModelCategoryVisibility.push({ modelId: ovr.modelId, categoryId: ovr.categoryId, visible: ovr.visible });
}

(4)/frontend/src/viewer/viewlist/ViewListWidget.tsx

(viewState as ViewState3d).getDisplayStyle3d().changeBackgroundMapProps({
  ...viewState.getDisplayStyle3d().settings.backgroundMap,
  groundBias: (vp.view as SpatialViewState).getDisplayStyle3d().settings
    .backgroundMap.groundBias,
});

改成

const settings = (vp.view as SpatialViewState).getDisplayStyle3d().settings.backgroundMap.clone();
(viewState as ViewState3d).getDisplayStyle3d().changeBackgroundMapProps({
  ...settings.toJSON(),
  groundBias: settings.groundBias,
});

(5)/frontend/src/viewer/widgets/RealityModelWidget.tsx

ScreenViewport.setOSMBuildingDisplay 方法已丢弃
DisplayStyleState.getOSMBuildingDisplayIndex 方法已丢弃

注释

// vp.setOSMBuildingDisplay({ onOff: enabled });
// setOsmOn(vp.displayStyle.getOSMBuildingDisplayIndex() >= 0);

(6) /frontend/src/api/ViewCreator.ts

MapLayerSource.subLayers 属性已丢弃

注释

// source.subLayers = validation.subLayers;

(7)/frontend/src/api/AcdpApp.ts

TileAdmin.Props 配置已更新
private static tileAdminProps: TileAdmin.Props = {
  alwaysRequestEdges: false,
  alwaysSubdivideIncompleteTiles: false,
  cancelBackendTileRequests: true,
  enableExternalTextures: true,
  enableInstancing: true,
  // maximumLevelsToSkip: undefined,
  // minimumSpatialTolerance: undefined,
  retryInterval: 1000,
  // tileExpirationTime: undefined,
  // tileTreeExpirationTime: undefined,
};

改成

 private static tileAdminProps: TileAdmin.Props = {
  alwaysRequestEdges: false,
  alwaysSubdivideIncompleteTiles: false,
  optimizeBRepProcessing: true,
  // cancelBackendTileRequests: true,
  enableExternalTextures: true,
  enableInstancing: true,
  // maximumLevelsToSkip: undefined,
  // minimumSpatialTolerance: undefined,
  retryInterval: 1000,
  // tileExpirationTime: undefined,
  // tileTreeExpirationTime: undefined,
};

results matching ""

    No results matching ""