iTwin创建数字孪生系列六BIS数

医院订阅哦

赵老师小课堂

赵顺耐

Bentley软件

高级技术经理

赵老师是Bentley软件的技术大咖之一,偶尔喜欢写一些技术文章,简明易懂,别有见解。“赵老师小课堂”将不定期分享赵老师写的一些技术内容。

在上一节中,我们介绍了iTwin开源、开放的数据结构BIS,利用它可以将各种BIM原生数据融合在一起。在本节内容里,我们讲解数据在BIS中是如何组织的。

视频讲解,点击播放

简单来讲,BIS的数据结构分为了三个层级:Schema类型组,Class类,Property属性。这是一种层级架构,就像下面图片一样。

左边为不同的Schema,右边为包含的类别Class

Class的属性定义

Schemas:各种数据类别Class的容器,可以理解为一个目录分类机制;Classes:各种类别的定义,对应不同的对象类型。需要注意的是,一个类可能是继承了其他类别,然后又定义自己的特有特性。Properties:属性定义,用来描述各种类别的特性;

对数据结构,对程序设计稍有了解的人,对Schema这个词就会很熟悉,它表达的是一种数据结构。是为了实现某种应用,而设计的一套机制,来表达数据分类以及之间的关系。在这里将其翻译为“类型组”。只是表明了它最基本的属性:将各种类别Class组织在一起。

这种数据架构非常容易理解,结合上面的视频,做几个要点解释:

BIS提供了最核心、最基本的Schema:BisCore,里面包含了预置数据类表,来表达数字孪生中核心的数据类别。用户基于这些核心的类别拓展自己的Schema,创建自己的类别来表达现实世界中各种各样的对象类型。

在前面章节的内容里,我们在MicroStation平台上,自定义了数据类型“SmartDevice”来表达各种类型的智能设备。

MicroStation中定义的数据类别

在BIS中如何表达这类对象呢?在转换过程中,BIS用一种自定义的Schema“DgnCustomItemTypes_HouseSchema”作为一个“目录”,然后在此目录下,创建了一个自定义类型“SmartDevice”类别。

自定义的Schema

BisCore中定义的数据级别的类别Class,而不是与现实中的实际对象类别一一对应,例如BisCore中并没有一种墙体类型“wall"来对应现实中的墙体对象。那是,更具体一层的数据应用。而这些类别既有图形类的,也有非图形类的。例如,我们需要有一种类别来描述显示样式、相机等。

BisCore包含的基本类别

BisCore中的DisplayStyle类别来描述显示样式

Class具有继承关系。这就意味着,我们不必从最基本的内容开始定义新的类别,而是采用“组合”的方式,使用已有的类别来拓展新的类别。程序设计、数据结构是为了描述现实世界,这也就是为何在程序设计中都有继承的概念。所以,一种具体的对象类型的属性,可能来源于多个类别。

例如,自定义类别”SmartDevice“是继承了已有类别的属性定义,同时增加了自己独有的属性。

“SmartDevice"类别的继承层级

属性即来源于父类,又有自己独特的内容

理解了以上三点,我们就理解了BIS数据组织的核心内容。它开放的数据结构,就像任何一个数据库,哪怕是最简单的Excel表,利用最基本的数据架构,可以表达现实中各种各样的数据类型。这是数字孪生最基本的“表达现实世界“的核心,也是最基础的内容。

在下一节中,将讲解如何在iModel数据库中查询数据,以及iTwin提供的相关工具,敬请


转载请注明:http://www.92nongye.com/zyjs/zyjs/204626465.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了