2/3:Bentley iTwin数据管理:连接、同步、变更



iTwin是Bentley的数字孪生解决方案。它以iModel相关技术为核心,建立基于云部署的数字平台。从提升资产可靠性、扩大生产力和安全相关的抗风险能力。

iTwin的核心技术要点在于:


为了说明它的工作流程,前几天分享了如何通过建立CONNECTION与ProjectWise进行数据同步的过程。分为了三篇进行介绍,分别是:背景介绍,数据同步,Design Review服务。原文链接如下:


在MicroStation的Update14版本,增加了iTwin Synchronizer的工具,用于本地应用程序和iModel Hub进行数据同步服务。所以,在本篇文章中,主要对“数据同步”的过程做一个全面的梳理。同时增加了一些内容。

昨天时,有些朋友从后台问一些问题,我也在这里做一些解释。


总的来讲iTwin的应用流程就是:

iModel数据库,从本地或者ProjectWise服务器上,读取各种原生数据,通过iModel Bridge转换后,存储在iModel数据库中,数据的变化是以Change和Named Version方式进行管理的。通过Design Review,Design Validation,Version Compare,Data Visualization等服务对数据进行利用。可以通过iModelJS扩展自己的应用,也可以与第三方系统进行集成。以及连接IOT数据源


好了,我们现在正式介绍iTwin是如何进行数据同步管理的。你在阅读完后,有任何问题,请在文章下留言,谢谢!
  | 连接方式

我们要使用iTwin Service云服务,必须要具备三个基础条件。在《从WorkSet到iTwin Service: 1/3-连接iTwin Service》主要也是讲这三点背景知识。

 

1.  具备必要权限的IMS账号,用以建立、访问不同的服务;

2.  提前建立好云项目环境CONNECTED Project,并建立iModel数据库;

3.  需要将本地的WorkSet与云项目CONNECTED Project连接(如果手动上传文件,则不需要)

 

现阶段,iModel通过两种方式从文件中同步信息:

 

1. 连接ProjectWise 365或者ProjectWise企业服务器

 

这种方式下,iModel和ProjectWise服务器之间建立了连接CONNECTION,以连接不同类型的数据文件,这种方式是我们推荐的方式。因为,ProjectWise可以与不同的应用程序集成,包括了Revit、AutoCAD等。整个数据产生、管理和与iModel数据库连接都是在一个可控的协同环境下进行的。

 

iModel数据库从ProjectWise服务器中读取文件

 

如果你的工作环境中,没有ProjectWise企业服务器,就需要手工将文件上传到ProjectWise 365上,以让iModel数据库读取文件。

 

手动上传数据

 

无论何种方式,我们最终的数据结果如下。

两家公司的数据

 

在这里,我们转化成i.dgn是为了减小容量,iModel可以直接通过不同类型的Bridge对各种原生数据进行兼容,我们还假设有一家叫KKCom的公司,他们使用Revit建立部分模型,我们也为其建立一个目录。同样的,在一个工作流程的角度,他们仍然需要在ProjectWise协同体系下工作,这样效率才能最高

 

支持Revit原生数据文件

 

2. 通过iTwin Synchronizer同步器,与应用软件集成,将本地文件同步到iModel数据库。

 

在MicroStation Update 14版上,加入了iTwin Synchronizer的功能。iTwinSynchronizer是个独立运行的程序。只是在MicroStation界面上,添加了一个按钮,你完全可以用它来同步其他软件的原生数据格式,例如Revit。

MicroStation Update14版本的iTwinSynchronizer工具

iTwin Synchronizer界面

用iTwin Synchronizer同步Revit数据

 

如果你单独使用iTwin Synchronizer,只需要IMS账号,然后手动选择云项目和数据库。如果你想在MicroStation中自动与某个云项目挂接,就得将本地的WorkSet和云项目CONNECTEDProject关联。在WorkSet的属性中设置即可。

 

点击WorkSet属性

建立关联

关联后的WorkSet属性

 

一个iModel数据库可以同时建立多个连接CONNECTION和Synchronization来与ProjectWise和iTwin Synchronizer同步数据。

 

  | 建立iModel数据库

作为数据融合的演示,我们建立两个iModel数据库:第一个数据库用于分别连接ArchCom和StruCom两家公司的数据。第二个数据库用于演示对Revit数据的兼容。

 

当然iModel数据库就像一个“容器”,你可以将各种类型的数据放在一起,这取决于你的工作流程和数据组织,而不是技术细节。

 

对iModel数据库的管理,是通过iTwin Service里的iTwin Manager服务实现的。

 

iModel数据库管理

 

点击后,系统提示建立第一个iModel数据库。

 

开始建立iModel数据库

 

点击“Create iModel”后,我们就需要输入数据库的一些信息,界面如下:

 

建立iModel界面

 

在这个界面中,我们除了输入一些描述信息和设置封面外,我们还需要通过下面的地图区域设定一个最大的范围。这个范围是为了控制将来网页浏览的范围,你可以用左上角的矩形工具框定范围,也可以通过搜索定位到想要的位置。

 

创建完毕后,显示这个iModel的页面,包括了数据变化Change和版本Named Version。由于现在数据里还是空的,所以还没有什么内容。我们也可以管理那些人可以访问这个数据库。

 

iModel数据库初始页面

 

点击上图中的“iModels”回到上一级,就可以看到在当前的项目中,已经建立了一个iModel数据库了。

 

我们采用相同的方式,建立另外一个iModel数据库,用于管理另外一家公司KKCom建立的Revit模型。不管你建立多少个iModel数据库,都取决于你的文件组织。将来的业务应用,你可以通过iModelJS工具,在不同的iModel的数据库中读取数据,来满足你的业务应用

建立两个iModel数据库

 

iModel数据库建立完毕后,我们就可以通过连接CONNECTION来导入数据了

  

  | 同步数据

下面我们分别介绍建立CONNECTION和SYNCHRONIZATION的过程。CONNECTION用于从ProjectWise上读取数据,SYNCHRONIZATION用于通过iTwin Synchronizer读取数据。

 

▌建立CONNECTION

 

我们就需要建立文件与iModel数据库之间的连接CONNECTION。文件组织的架构和操作逻辑是:

 

1. 在每个CONNNECTED Project云项目中,我们可以建立多个iModel数据库,以分子项目管理自己的数据。

2. 每个iModel数据库,可以建立多个数据连接CONNECTION来连接不同格式的文件。

3. 每个CONNECTION连接,可以连接多个主文件、参考文件会自动加载。

 

一个iModel数据库可以建立多个连接CONNECTION来同步不同类型、数据源的数据。如果需要将iModel数据放置在正确的地理位置上,必须设置一个CONNECTION连接的文件具有地理信息设置(作为SpatialRoot),这是用来初始化iModel数据库地理位置用的,同时,这个文件也作为一个主文件入口

 

从文件导入上,iModel数据库通过CONNECTION导入多个主文件,其中只有一个主文件作为地理信息的定位入口。

 

不同的文件类型,需要建立不同的CONNECTION。因为每个CONNECTION会根据不同的数据类型调用相应的iModelBridge进行数据转化。

 

进入iModel的Connections管理页面

建立第一个连接CONNECTION

 

建立CONNECTION分为了四个步骤:选择数据源,选择地理信息文件(如有),选择主文件,配置连接。

 

建立Connection的四个步骤

 

1. 选择数据源,就像我们前面提到的是从ProjectWise 365还是企业自己的ProjectWise

 

选择数据源

 

如果选择企业自己的ProjectWise,就需要配置数据源的信息。

 

连接企业的ProjectWise数据源

 

在本案例中,我们选择保存在ProjectWise 365上的数据,我们分别建立两个连接CONNECTION来链接两家的数据。因为,由于工作计划的安排,两家数据同步的频率会有差异。

 

2.  选择地理信息定位文件Spatial Root

 

这个文件是用来初始化iModel的地理定位的,每个iModel只有一个文件用于充当此角色。其实这个文件就是选择带有地理信息定位的主文件就可以了。在实际工作中,这个文件可以是最上一级用于定位的文件,用它来参考模型组装的主文件。

 

如果你在建立模型文件时,没有设置地理信息系统,或者你不需要结合地理信息系统。在这一步也可以选择“skip”跳过。

 

我们首先处理ArchCom公司的数据文件,选择已经设置好地理定位的主文件就可以了。Spatial Root文件既可以用于定位地理位置,也可以作为一个主文件,所以,它参考的文件无需选择。iModel会自动搜索。

 

选择地理定位文件

 

3. 选择主文件Composite Models

 

iModel支持多个主文件,CONNECTION的作用是连接这些主文件。在本案例中,如果还有其他的主文件,可以在这里选择。从技术上,我们可以在这里选择StruCom的主文件。这样建立一个CONNECTION就可以链接两家的数据了。所以,建立不同的CONNECTION的核心在于区分不同的数据类型和同步的频率。

 

由于我们在上一步已经选择了主文件,这一步不做任何选择就可以了。

 

选择主文件

 

4. 设置同步的参数

 

设置连接参数

在上图中,我们发现系统已经根据我们选择的Dgn文件,自动选择了“iModel Bridge for MicroStation”。如果你前面选择Revit文件,这里就会是Revit的Bridge以支持其原生数据。

 

至此,已经建立了文件与iModel数据库的链接。我们采用相同的方式建立另外一个连接来处理StruCom公司的数据。

 

新建CONNECTION

 

当我们建立第二个连接时,在选择地理信息步骤,系统就会提示,已经有一个文件充当此角色了。

 

提示已经有一个文件作为地理信息定位的入口文件

选择结构主文件

 

假如你选择了Revit文件的话,在下一步的配置里,iModel就会自动调用Revit的Bridge来转换数据。

 

iModel自动识别数据类型进行转换

 

创建完毕后,如下图所示,我们点击每个CONNECTION的名称,可以进入此连接的详细页面。你可以看到不同文件的类型,点击同步按钮就开始了数据同步过程。

 

具体连接CONNECTION详情

 

我们也为第二个iModel建立了Revit的连接,以同步Revit的数据。

Revit数据连接

 

▌建立SYNCHRONIZATION

 

在本地建立SYNCHRONIZATION的过程与上面类似,它是在本地通过iTwin Synchronizer来实现的。我们需要提前将MicroStation的WorkSet和云项目CONNECTED Project连接。

 

为了演示此工作过程,我们建立一个“NYXHome-iTwin-SYNC”的iModel数据库。

 

新建一个iModel数据库

 

如果我们在MicroStation中启动iTwin Synchronizer,系统会自动选择当前WorkSet所关联的项目。

 

iTwin Synchronizer启动界面

 

在上面的界面上,点击新建“New”按钮。会让你设定SYNCHRONIZATION的名称,连接的iModel数据库,文件搜索的路径(相当于搜索主文件和参考文件的路径),然后选择需要连接的本地文件。

 

设置本地文件和需要连接的iModel数据库

 

点击下一步后,iTwin Synchronizer就会自动为所选择的文件,选择一个Bridge来转换数据,如果第一次使用,系统将自动下载、安装bridge。

 

建立完成

 

我们在使用iTwin Synchronizer的过程中,我们需要注意。

 

·     它是以IMS账号为依据的,建立多个SYNCHRONIZATION

·     在MicroStation启动iTwin Synchronizer是为当前文件建立SYNCHRONIZATION。自动搜索了路径。

·     如果单独启动iTwin Synchronizer,则可手动选择文件和路径。只要保证路径里可以搜索到所选择的文件即可。

由于采用同一个IMS账号,StruCom也可以看到之前建立的SYNCHRONIZATION

单独启动iTwin Synchronizer,连接多个Revit原生格式文件

 

无论采用何种方式建立的SYNCHRONIZATION,建立完成后,就可以点击同步按钮来更新数据,在更新数据时,输入相关的说明。这些同步数据的过程,就会成为下面讲到的Change管理。

同步按钮

为Change写说明,并决定是否创建版本

同步数据的过程

 

  | 变更管理

数字孪生的工作过程是动态的。所以,基于MicroStation的内容创建在ProjectWise协同体系下是个动态协作的过程。同时,通过CONNECTION或者SYNCHRONIZATION将此动态变化的文件级内容与iModel数据集内容进行同步。

 

所以,我们管理的不仅仅是数据的结果,更重要的是管理数据的变化。在iModel中,是通过Change和Named Version来实现的。

 

在上面讲解iTwin Synchronizer时,我们已经将数据的变化Change提交到iModel数据库上了,并可以根据选择是否创建一个新的版本。

 

这些变化和版本都会在iModel数据库的页面上看到。

 

iTwin Synchronizer建立的版本

 

如果你没有建立版本,只是提交了数据更新,我们就需要进入change管理页面,建立一个版本。

 

iModel数据变化

 

我们要查看数据,其实是对某一时刻状态的查看,我们就需要在某一个时间点建立一个版本以固化状态,这就是命名版本NamedVersion。无论是在iModel数据库页面,还是用iTwinSynchronizer,我们必须要首先建立一个版本,才能够查看iModel的数据。

 

我们在上图中,点击进入“Changes”,就进入变化Change和版本Named Version的界面。

 

iModel数据变化管理页面

 

在上图中,在某个时间点,可以点击某个变化右面的按钮,建立一个命名版本。

 

建立第一个版本

 

数据不断的被更改,所有的变化也会被记录,然后在不同的时间点建立不同的版本。后续的很多功能都是基于版本数据的应用。例如,利用版本比较服务,我们可以对两个版本的数据进行比较。分析数据变化带来的影响。

 

例如,我们在iModel中,再去建立一个连接,去连接Revit的数据,这就是数据的变化。

 

在当前iModel数据库中,连接Revit数据

 

当我们做了上述变化后,我们会发现iModel数据库里的change已经由建立上个版本的32,变成了现在的40。为了固化这个状态,我们就可以在40这个变化节点,建立另外一个版本。

 

距离上次的变化

建立第二个版本

 

我们在iModel数据库的主页面里,就可以看到这些时间版本。

 

iModel数据库对数据的变化管理

 

数据更新、管理之后,就是数据的利用过程,我们在3/3中介绍