张 昆
(中国建筑科学研究院建筑工程软件研究所,北京 100013)
基于BIM应用的软件集成研究
张 昆
(中国建筑科学研究院建筑工程软件研究所,北京 100013)
本文从建筑软件开发的角度对BIM软件的集成方案进行初步研究。从接口集成和系统集成两大方面总结了BIM软件集成所要面临的问题,为国内BIM软件开发提供借鉴。
建筑软件;BIM;软件集成
我国的建筑软件业发展起源于20世纪70年代,从那时起计算机在我国建筑业中的应用得到较大的发展,从结构计算和分析发展到建筑物理、暖通空调、地基基础、勘察测量等多个方面。1983年,国家8个部委发起35个单位成立联合研制组,着手研制“建筑工程设计软件包”;1989年,由华远公司开发的我国第一套拥有自主版权 CAAD系统——HOUSE系统问世[1]。历经6个“五年计划”,解决CAE、CAD以及计算机辅助管理的问题。迄今,我国建筑软件业已经发展了近30年,在工程建设的不同阶段中都能看到各种应用软件,小到桌面级别的建筑查询工具,大到项目企业级别的信息化系统。以工程建设应用软件为主导业务的知名企业也随之涌现。
目前,国家对BIM密切关注,相关政策陆续出台,“十一五”计划中把“建筑业信息化关键技术研究与应用”作为国家科技支撑计划重点项目,重点支持建筑业信息化中的标准体系、全生命周期的建筑信息模型(BIM)、协同设计与管理、建筑工程设计与施工的协同工作和信息共享、项目过程管理、集约化管理以及系统集成等关键技术的研究,被建设部认可为“建筑信息化的最佳解决方案”。清华大学软件学院BIM标准研究课题组在欧特克中国研究院的支持下于2009年3月正式启动,用两年时间完成中国建筑信息模型标准(CBIMS)的研究。
BIM软件工具在实现BIM的环节中起着纽带作用。BIM软件涉及面很广,在整个建筑周期都可以见到BIM软件的影子,如图1所示[2]。
图 1[2]
图1显示在BIM过程中人们所需的BIM软件种类,如果单一拿出某种类别来说,国内尚能找到相应的软件产品,但从建筑信息的互通互用上来说,会有不少软件产品被阻挡在BIM软件工具之外。
无论从国家政策还是行业背景来看,BIM将成为建筑行业的一次变革,不亚于当年CAD甩图板之变革,并有可能超越。BIM软件产业将成为建筑软件业发展的又一经济增长点。
如何从软件开发的角度参与到BIM中?如何利用原有的软件产品资源来实现相关的BIM技术?如何最大程度地利用软件工具来实现BIM?这些都成为国内建筑软件厂商较为关注的问题。
BIM软件是BIM理论实例化的必备条件之一,BIM技术将使用BIM软件来进行支持与实现,因此BIM软件在BIM理论中起着承上启下的作用。
首先,BIM软件要解决的是实现对BIM中information(信息)的传递性,如果对信息不存在传递作用,这个软件基本可以排除在BIM之外。
其次,BIM软件要以BIM理论为基础,用软件的方式体现BIM中建筑相关信息的定义、利用与管理,否则软件从实质意义上来说是脱离BIM体制的。所有软件都是拥有以实际需求为目的开发出来的各种功能,除去常规意义上的打开保存等,建筑软件基本上都存在处理建筑相关信息的功能,例如填写建筑相关数据、制作相关建筑图形、提取相关数据、计算相关价格等,这些实现的过程就是在对建筑相关数据进行处理和利用,已成型的建筑软件也都具有处理建筑数据的功能。
基于BIM目的的软件集成方案可以分为两大类,一种是对于不同软件模块或者系统(可以是同一公司产品也可为不同公司产品)进行接口集成达到某种建筑信息的传递(下称接口集成),初级的做到单向的信息传递交流,高级的做到互相的信息传递交流;另外一种为实现某一个BIM信息系统将原为多个独立软件的集成(下称系统集成),初级可也做到单一实现目的的集成,高级的做到可扩展性极强的平台集成,以不同的目的需求取舍相关功能系统。
这里说的接口集成是指软件本身的狭义“接口”集成,也就是通常软件开发中常要提及的APIApplication programming interface(应用程序编程接口)。某一BIM软件的未来其实在很大程度上要指望其软件接口的前景如何。但在中国软件业,开发人员在软件架构之初只是遵循为软件的最终使用者(用户)来设计软件,但是对于如何实现合理的软件API却只为少数人所重视,这也是中国建筑软件业所要面临及需要解决的问题。目前,国内基于不同建筑领域与层面的软件都已基本成型,小到三五百元的建筑资料软件,大到几万元的设计计算软件,更大的到百万甚至是千万级别的应用集成信息化系统。多家软件公司多个建筑软件分支共同为建筑软件使用者提供服务,多个软件需要互相之间的数据传递,提供合理的API来进行相关集成将是必不可少的,这也是建筑软件开发者所需要面对的问题。API的存在与公开,意味着软件可扩展性是否能够得到提升,对于扩展的深度需参照API对于软件模块本身控制的操作接口是否达到一定的深度来界定。
图2 Revit API
以BIM建模软件Revit为例[3],其提供了大量API供二次开发者对其进行调用,可对程序本身(Application),工程文档(Document),元素(Element)进行相关操作或者读写相关数据,这在极大程度上方便了外部软件的接口进入,利用从Revit生成的数据加以处理并能修改或者增加处理后得到数据结果。这样,使BIM概念中的information得以利用和持续,这种方法应该是众人所学习的。
据09年底不完全统计,基于Revit API开发的附加软件(add-on)约150多种。
图4是利用Revit API写的基于Revit BIM模型的自动套取定额工具Demo图片。
软件接口集成类似于滚雪球的道理是显而易见的。大型的建筑软件开发商(者)可以利用开放的API让其他开发商(者)依赖于此,将其他开发商(者)预先编写的软件组件组合揉入其软件系统中来。
但是,无论设计什么样的API,最重要的是要弄明白以什么为目标或者为谁在设计,这是关键点。只有在理解目标群众的需求之后,才可能创建有用的API,才能实现恰当的接口,才能让各种不同的软件良好的集成。
系统集成在软件行业中算是个比较复杂的工程。多数能实现此种集成方案的软件很大程度上是基于软件开发初期的架构合理。但是,现阶段多数建筑软件在架构之初由于各种原因未曾考虑过集成架构,在此基础上发展出的软件只是适用于某一需求方面为目的的单独软件。而如需适用于目前出于BIM软件为目的的,必须考虑各种方法达到集成,下面仅以理论可行性进行相关探讨。
刘清芝[4]等认为,软件集成一般包括用户界面集成、数据集成和代码集成三个方面的内容[4]。
3.2.1 用户界面集成
集成中的用户界面,是软件接口“广义”定义的人机接口,既人与软件之间的交互界面。我们把这种人—软件之间的接口称作“用户界面”,也就是“UI”—User Interface。界面集成一般看来是相对简单的集成,但是对人机互动的易用性以及美观性均有要求。各种原单独的软件,由于软件设计时本身的UI界面不一定互相协调匹配,在某种程度上是需要在原始程序代码中进行界面的修造,达到统一协调的标准;不同的单独软件,开发语言和利用控件的不尽相同,在一定程度上也会影响最后UI的统一性,必要的时候也需要修改。
图5为国外某BIM软件的两个产品的界面截图。这类产品除了本身自带的按钮下拉菜单以外,整合了图形相关显示系统,并以不同目的分别集成了两个其它软件后单独成为两个软件。
以图5为例,集成结合的为微软的Project软件,这种整合仅从Project客户端来讨论,可能要涉及采用Microsoft Visual Basic for Applications(VBA)、Project向导和客户(Project Guide and Custom Views)、COM插件(COMadd-ins)以及使用托管代码(Integration with managed code)等方法进行整合。
以图6为例,集成结合的是美国某概预算软件,可能涉及概预算软件方提供的上文提到过的API接口进行的相关功能整合。
3.2.2 数据集成
建筑软件发展到今日,原始积累的软件可能使用了不同的数据库系统(DBMS)。这里所说的不同,可能是基于不同数据模型的DBMS,如关系型的或对象型的。也可能虽然都是关系型的,但不同商家的产品其SQL API不尽相同。这就需要使用相关的技术进行不同数据库之间的数据信息传递、合并和共享等各种数据集成。所谓的数据集成,是对所集成对象所使用的数据库底层进行集成,包含互相迁移和转换、访问调用和相互传输等,这也就是软件开发中常常会提及的异构数据(Heterogeneous Database)集成技术。
异构数据库集成技术是数据库技术从完全集中到逻辑集中、物理分布(传统分布式数据库)乃至逻辑分布、物理分布(异构数据库)这一发展过程的结果,也是兼顾已有系统自治性并实现新的数据共享这一现实需求的有效手段[5]。
以BIM技术应用为目的的前提下,要达到异构数据库的集成效果,需要弄清楚两个层面,一是所要达到的BIM软件系统的数据需求,这是异构数据集成的目标,二是对现有各系统DBMS的分析对比,这样才能对于不同的数据集成对象,异构数据集成在技术上可以考虑DBMS本身的迁移和转换、数据库网(信)关(Database Gateway)技术、公共协议/数据转换协议技术、公共编程接口技术以及中间件(Middle Ware)技术;在数据结构体现形式上可以考虑分布式数据库(Distributed Database)、构造数据仓库(Data Warehouse)、多数据库以及联邦数据库(Federated Database)。当然,上述的技术和数据结构体现形式,都有各自的优势和劣势,笔者仅从所了解到的国内建筑软件现状,对利用现有软件达到BIM类软件集成为目的,从下面几点进行讨论。
已有建筑软件的BIM软件集成,以笔者的判断,最优选择的技术为中间件技术、利用中间XML交换文件和架构联邦式数据库系统。
(a)中间件技术,是处于应用程序及应用程序所在系统的内部工作方式之间的软件技术,它的基本思想是在各后端数据层和前端应用程序层之间建立一个抽象层。从而,对每个不同数据层的相关操作变成对单一的中间件的操作,使得使用其对异构数据库进行集成时,可以做到用户层对数据层的实现达到透明,并保证了访问接口的开放性和后期的扩展性[5]。如 Microsoft的 ODBC(Open Data Base Connectivity)技术、Sun公司的JDBC(Java Data Base Connectivity)、公共对象请求代理模型既 CORBA(Common Object Request Broker Architecture)技术等就是属于中间件技术。
XML,是1996年W3C组织设计并推荐的一种可扩展性的标记语言。XML在异构数据系统方面具有以下特点[6]:
· XML结构性强、语义性强、机能与关系数据库(RDB)进行转化,也能与对象数据库(ODB)进行转化,也能与对象数据库(ODB)以及多媒体数据库(MDB)进行转换;
· XML的交互性好、易于处理、能方便的控制和表示各种数据;
· XML与平台无关,能与各种平台进行处理,能
用各种编程语言进行处理。
可以看出,XML可以最大程度的对现有的建筑软件集成为BIM类软件提供数据方面的传递,无论是何种原始软件的DBMS,原始的软件开发平台是什么,XML均能发挥作用。值得欣喜的是,在建筑软件业内此项技术已开始逐渐使用,多数建设工程信息化类的CS和BS系统以及一些应用软件都已经开始采用了此项数据传输与保存技术并在不断的扩大化。
(b)联邦式数据库系统,具有分布性、自治性、异构性三大特性。它对于各个异构的局部数据库之间存在着一种较为松散的联邦式耦合关系,不需要像分布式数据库需要有统一的数据模型及全局数据模式,各局部库通过定义输入、输出模式进行彼此之间的数据访问。联邦式数据库系统由在不同结点上松散耦合分布的异构成员数据库构成,各联邦成员间的一种松散结合,可以使集成对象即联邦成员是集中式数据库,也可以是分布式数据库。由于没有全局模式,此种数据库系统可以依据不同需求将不同的数据库系统加入联邦或者退出联邦[5],其表现为扩展性强。无论何种软件系统都需要随时间而发展,可能不同时期需要新的数据源来满足用户业务不断变化的需求。现有建筑软件集成成为满足BIM要求的BIM软件就属于此过程,在数据库集成层面就需要类似联邦数据库集成技术来达到目的。
任何一种软件开发是脱离不了代码级别的过程参与,无论是上面提及的哪种集成方法,或多或少的要在代码上实现。除去上面的技术涉
及的代码实现以外,还需要考虑以下几个方面的问题。
3.3.1 不同开发平台的形成的代码集成
原始积累的各种软件,由于其历史问题不一定是基于同一个开发平台进行开发的,遗留下来的代码中常使用的开发平台有VS6.0的C++和VB,Delphi,近年来流行的.NET 的 C#、VB.NET 和 ASP.NET。基于代码集成以工作量多少分类,可以分为接口代码集成和代码转换集成。
(1)接口代码集成。多种开发语言之间的代码集成可以考虑互相提供接口的方法,此类内容上文也涉及过,即API;或者通过唯一的中间层接口开发,所有软件通过此中间接口达到对不同功能模块的调用和传输获得数据。常见形式以开发提供ActiveX控件和COM组件的形式提供相应的功能。
(2)代码转换集成。代码转换集成属于一般的开发人员所不愿意接收的方法,依据开发人员的理论这是一种类似汉语翻译成英语的过程。无论对源语言和目标语言熟悉与否,这都是一个比较痛苦的过程。微软自.NET发布以后极力地在推进开发者从原语言平台过渡到现在的.NET平台上,但是可以肯定的说这种过渡是有过程的。以VB6.0与VB.NET转换为例,虽语法都基本相同,能在最大程度上对开发语言的语法不用关注,但是对于具体的工程文件由于历史原因所利用的原始控件以及自定义控件区别,在转换到新平台下都会有一定的不支持,这就需要人为的去找替代品。
3.3.2 同一种开发平台下的代码集成
这种代码集成相对简单,但是需要程序员对于原软件中不同功能的代码全局考虑,抽取出不同模块的公用函数、过程以及控件,并且对于公用的名称、过程函数全局考虑进行重构。
软件集成是一个浩大的工程,涉及多个层面,基于BIM目的的建筑软件集成更是如此。BIM软件涉及面广,在建筑全生命周期中都可以找到BIM软件的影子,合理利用现有产品资源来应对各种BIM实现需求,应是各建筑软件开发商在软件集成之前必须花较多时间来做的重要工作。无论利用何种技术,其目的是最好地利用现有资源,最大程度地适应BIM技术应用的需求。
[1]李萍.建筑设计信息化技术发展概述[N].中华建筑报,2008.
[2]何关培.BIM和BIM相关软件[J].土木建筑工程信息技术,2010,(2).
[3] Autodesk 网站 www.autodesk.com
[4]刘清芝,胡仰栋.面向对象的软件集成技术研究[J].计算机应用技术,2004.
[5]扈书刚,谈数据库互操作问题的实现途径[N].科技创新导报,2007,(28),TP392.
[6]邓念东.数据集成和数据传输双模式访问异构数据库中间件框架设既[J].工程地质计算机应用,2008,(3).
Research on Software Integration with BIM
Zhang Kun
(Institution of Building Engineering Software,China Academy of Building Research,Beijing100013,China)
This paper did a preliminary study on BIMsoftware integration solutions from the point of view of architectural software development.A conclusion was given on the problems of BIMsoftware integration in both Interface Integration and system integration aspects.It also offer a reference for domestic BIMsoftware development.
Building Software;BIM;Software Integration
TU17;TP311
A
1674-7461(2011)01-0037-06
张昆(1979-),男,工程师。主要研究方向:建筑类软件实用技术的研究和应用、应用软件系统集成及BIM软件本地化。