最近读了几本关于BIM的书,这篇笔记是我的一些不成熟的想法。主要有三本书:《BIM原理总论》,《BIM建模软件原理》,《论BIM》。

《论BIM》

数据模型,是面向计算机的,存储和表达信息的模型。语义模型同样是针对计算机的模型,无法灵活表达真实世界的信息。信息模型是面向用户的,理解,描述世界信息的模型。具体到BIM,CAD,所涉及到的信息模型主要是工程相关的信息的建模。专业分析模型,工程管理模型是根本的模型。信息模型,数据模型等就是为了进行专业的分析模型辅助而用。这个原则,容易被忽略。当前的BIM,都在追求全生命周期的建模,但是,信息处理本身的主次要分清楚,不能为了建模而建模。

BIM是解决建筑信息化中一个方案,不是万能的。这是个筐,目前看还没有统一的解决方案。那么软件只是整个业态中的一部分。数据,信息,才是核心。传统的实践方式无法做到数据的流畅转换,而BIM提供了一个机会,是否需要一个统一的数据,信息模型,或者是一个保证数据交换的协议,这两种方式都可以探讨。我倾向于一个保证数据交换的协议。看起来这个方向比较难看,不够优雅。但是工程实践是个妥协的过程。现有的数据,软件,人力,等等因素都是制约所谓完美数据模型的因素。既然专业数据,工程数据才是核心,那么我们可以直接从各个关联方,关联专业的要求出发,自底向上,定义可行的数据交换协议,从而达到数据无缝流动的目的。从软件行业的实践看,目前这是个可行的方案。

CAD软件是BIM解决方案中重要的组成部分。现有的CAD软件其实无法满足BIM的要求,主要体现在数据存储提取不方便,各专业协同困难等。主要原因我觉的,是现有的大型CAD软件在设计之初,底层数据模型的定义,主要考虑的是图形系统,没有真正的把数据和图形结合起来。造成现实BIM实施的困难,要么是图形平台能力有限,几何信息交换困难,要么是工程数据不全,无法在各个专业间交换数据。

本书一个观点我觉得很好,BIM没有改变工程设计施工中的各方角色定位,改变的是信息的收集,获取和传递的方式。从这个角度来说,现有的BIM软件没有达到理想的使用效果,其实是软件自身的架构和定位的问题,而不是需要工程设计流程的改变。和上个世纪开始的ERP运动不同,BIM是为了提高效率而不是为了再造流程。所以,对BIM软件的要求,是能够适应工程设计施工的实践,而不是反过来。具体来说,就是要根据信息利用最大化,提高工作效率,提高质量和降低成本的目标来开发各种软件。这就要求开发商提供的是一个能够方便集成,快速开发的平台,而不是一个大而全的功能平台。展开来说,现有的大型CAD软件,是以功能为主要目标的架构设计,软件提供丰富的功能,满足各种用户的要求,进而提供SDK,增加或者完善现有的功能。而真正的适应BIM需要的平台,是以提供丰富的功能模块,加上便捷简单的开发SDK的平台。数据统一模型,图形平台完善高效,SDK层次丰富,适合各种程度的行业软件开发需求。这才是正确的CAD平台。可以类比的是matlab,本身是个数学建模软件,但是配合开发接口,可以实现很多的功能模块,比如仿真分析,有限元计算等等。虽然比不上专业的软件,但是这个平台能够为快速实现需求提供良好的环境。而BIM的实施,就需要这种平台。

P-BIM,书的后半部分介绍了这个重要的概念。内容非常丰富,我的想法还不是很成熟,但是,根据上面说到的以开发平台为导向的CAD软件,能够为实现P-BIM提供良好的软件基础。

  • 底层功能丰富。数据库存储,图形显示,几何建模算法库,GIS平台接口,云计算接口,WEB APP架构,Desktop架构等等这些都是基本的功能单元。
  • 将集成到合适的编程语言,易于学习,开发效率高为标准。
  • 实现基本的CAD软件,作为平台的基本功能展示。同时积极建立开源社区,让这个社区成为一个聚集开发者和工程设计人员的集会,发挥各自的优势,开发出合格的BIM软件。

我还没有完全领会作者提到的很多概念和意图。但是随着成长,我会反复读这本书来理解和学习其中的理论。

《BIM软件建模原理》

相对于上一本的BIM理论著作,这本书比较接近我的工作范围:CAD软件开发。以下是我的一些学习记录。

  • 单一数据驱动,或者图形驱动都不可行。
  • 设计,计算,施工模拟等等专业对软件和数据的要求并不相同。软件需要面向对象设计。充分保留工程设计规则和数据,并且能够便利的提取数据和交换数据。
  • 图形平台,数据平台,专业平台,专业软件。
  • 图形平台和数据平台是基础。
  • 专业平台主要是提供专业构件和工具。
  • 专业软件是主要的工程设计规则实现软件。
  • 图形平台,要能提供多种建模方法,同时提供数据转换功能,数据计算和提取功能。基本图元,mesh,nurbs,surface,特征建模,gc,参数化建模。设计参数。
  • 数据平台,面向对象数据库。多对多,递归。动态修改数据格式定义。版本控制,历史记录。协同设计要求能够检测并行编辑。
  • 数据对象的生存周期要有管理。锁定,审查,修改流程也要体现在数据库的设计中。
  • 权限控制。项目数据。子模型,项目数据库子集。工作数据库。项目 -> 建筑,结构,mep –> A, B, C
  • 工作数据库从上两级初始化,然后独立编辑,提交时再检测一致性,或者周期性从上一级同步数据。

数据建模和几何建模要结合起来不能分主次。数据驱动几何和几何为主的建模都是特殊情况下的应用模式。几何属性是一种特殊的数据。几何建模有几种方式,线框,mesh,solid,csg,feature,gc,用途不同,互相转换数据也不是都能够实现的。同一个工程对象,在不同应用和情况下,需要不同的几何数据。因此在涉及到多专业协同的,数据交换的工程对象,必须保证数据转换的畅通。

对于非几何数据的描述,工具方面还是比较成熟的,例如xml,json,软件方面更加丰富,excel是工程中常用的。对于几何数据,是比较麻烦的。这方面没有成熟的解决方案,但是我认为,开源,是个非常好的解决方案。这里的开源,并不是开源几何建模算法,这个是核心的技术。开源的是几何数据的定义,提取和转换。这个能够解决很多描述不清,概念不统一,以及软件实现不一致的困难。在这方面,ArchiCAD的GDL是一个很有意思的解决方案。当然,EXPRESS语言也是一个很好的选择。