iTwin是Bentley的数字孪生解决方案。它以iModel相关技术为核心,建立基于云部署的数字平台。从提升资产可靠性、扩大生产力和安全相关的抗风险能力。
iTwin的核心技术要点在于:
支持公有云部署(iModel Hub)和私有云部署(iModel Bank)
iModel是一种轻量化的、关系型数据库数据格式,基于SQLLite
通过各种类型的iModel Bridge,兼容第三方的原生数据 ,例如Revit,IFC,AVEVA,VUE等。
开源的iModelJS API体系,用户灵活扩展功能和服务(www.iModelJS.org)
iModel Hub/Bank提供4D的数据管理服务
支持3D GIS,Bing Map及用户自定义地图服务
支持实景、点云等背景数据类型。
支持第三方数据接口,便于多系统集成
丰富的、用户可扩展的数据应用服务,例如,Design Review,Project Insight等。
为了说明它的工作流程,前几天分享了如何通过建立CONNECTION与ProjectWise进行数据同步的过程。分为了三篇进行介绍,分别是:背景介绍,数据同步,Design Review服务。原文链接如下:
从WorkSet到iTwin Service: 2/3-数据同步管理(本篇文章主要是更新、完善这一部分)
在MicroStation的Update14版本,增加了iTwin Synchronizer的工具,用于本地应用程序和iModel Hub进行数据同步服务。所以,在本篇文章中,主要对“数据同步”的过程做一个全面的梳理。同时增加了一些内容。
昨天时,有些朋友从后台问一些问题,我也在这里做一些解释。
ProjectWise和ProjectWise 365的区别
ProjectWise,大家都比较熟悉了,是Bentley基于企业部署的协同工作环境。而ProjectWise 365是Bentley部署在公有云上的ProjectWise服务。它的目的是为那些中小型用户设计的。用户可以直接使用ProjectWise的相关功能。但,中国用户一般选择部署自己的ProjectWise服务器。在下面的案例上,我们就是以CONNECTION的方式连接的在公有云上的ProjectWise365。你也可以理解它是一种服务。
我有IMS账户,为何不能实现你案例中的功能
在CONNECTED Edition(CE)版本中,软件是通过IMS账号授权的。这是使用BentleyCE版本软件的基础。不同的IMS账号是具有不同的权限。即使你具有IMS账号,但由于并没有购买Bentley的公有云的服务。所以就不能使用一些功能。事实上,现在的中国iTwin用户,都是采用私有云部署方式。本文中的案例,只是通过iModel Hub公有云服务环境来说明应用的流程。你可以在你企业的iModel Bank体系下,实现相同的功能。
总的来讲,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中介绍