1. 如何编写一个 Connector

github 上的例子链接

https://github.com/imodeljs/itwin-connector-sample#ways-to-sync-data-to-an-itwin

1.1. iTwin Connector

iTwin Connector(之前用名 Bridge)在使 Bentley 和第三方设计应用程序能够为 iTwin 做出贡献方面发挥重要作用。

Bentley iTwin Connector,以支持广泛的设计应用程序,以确保所有工程数据都可以聚合到 iModel 中的数字孪生环境中。

可用 iTwin Connector 的完整列表可以在 iTwin Services 社区的 Wiki 中找到。

iTwin 连接器包括:

但是在某些情况下,如果没有涵盖特定格式,则可以使用 iModel.js 软件 SDK

作为 iModeljs SDK 的一部分,imodel-bridge-packeage 使得编写 iTwin Connector 更加容易,注意,使用此依赖库徐奥支持 es2017 的 javaScript 引擎。

1.2. 如何编写 Connector

连接器需要执行三个主要步骤,将数据带入 Digital Twin

  1. 从输入源中提取数据
  2. 数据转换并对齐到 Digital Twin
  3. 生成变更集并加载到 iModel 中。

本例以 COBie 数据格式为例,提供了一个 iTwin Connector,用于同步来自 COBie 工作表的数据。以下各节简要介绍了创建 iTwin Connector 的各个部分。有关示例实现的更多信息可以在 COBie Connector 的 readme 文档中找到。

1.2.1. 提取

本例对于 cobie Connector,本例演示了如何将 cobie 表数据提取到 sqlite 数据库中

1.3. 映射

iModel 连接器必须小心地将源数据转换为 iModel 中基于 BIS 的数据,因此每个连接器都是为特定的数据源编写的。数据从源映射到 iModel.

通常,连接器存储有关源数据的足够信息,以检测作业运行之间源数据的差异。以这种方式,tge 连接器生成发送到 iModelHub 的变更集。这是连接器和一次性转换器之间的关键区别。

每个作业在 iModel 中生成与所有其他作业数据隔离的数据。生成的组合 iModel 在 iModel 的主题级别进行分区;每个连接器作业都有自己的主题。

对于每个 iTwin 连接器的作者来说,总是有两个相互冲突的目标:

以这样一种方式转换数据,使其在编写应用程序的用户看来合乎逻辑且“正确”。

以这样的方式转换数据,使得来自不同创作应用程序的数据看起来是一致的, 即符合 BIS 的描述。

适当平衡这两个相互冲突的目标并非易事。但是,如果存在清晰的 BIS 模式类型,则应始终使用它们。

results matching ""

    No results matching ""