Bentley BIM解决方案对IFC技术的支持

近期很多人在论坛上,社区上,微信上,微信群组上问关于IFC的问题,问题大体是这样的:

1. MicroStation怎么没有IFC的导出支持?
2. 我导出IFC为何缺东西?
3. 我从AECOsim Building Desinger导出的IFC,导入Revit是空的
4. ……….

诸如此类的问题,还有很多,那么我就简单回到一下这些问题,虽然,我对很多的IFC细节也不是特别清楚,但我希望能给你一些原则供你进行参考,我们应该明白如下几个问题,再去理解IFC就比较简单了。
我们需要明确如下问题:
1. 如何看待数据交换
2. 什么是IFC
3. 如何看到IFC的导入导出过程
首先看第一个问题

1. 如何看待数据交换

无论我们是使用工程软件还是办公软件,或者是任何的软件,我们都涉及到数据交换的问题,也就是数据的导入和导出。这是一个系统数据兼容性的设计。一个人不可能孤立的在社会上存在,同样,一个软件也不能,一个Word文档如果无法支持JPG,就无法插入一张图片,PowerPoint不支持视频,就无法在一个Slide里插入一段视频。这都是为了实现某种应用Application而让Application Software具有的一项技能。从这个角度考量,软件的世界和人类世界是一样的,这也许就是面向对象设计的初衷:描述真实的世界,可能又扯远了,我们再绕回来,再进一步思考这样一个问题。
数据的交换是否是无损的?
一段图文并茂的Word文档被paster到Txt文本文件时,图片没有了,格式没有了,但是文字的意思表达无误:如果为了这个目的,这个数据交换的目的就达到了。
人们往往认为,数据交换是无损的,其实是不可能的。如果说是无损,只能说是,它保存了你的某种应用的所有细节,无关紧要的细节,这对于我们为了实现某种应用,没有影响,所以说它是无损的。
一张CD被压缩成MP3,当采样率达到320K时,我们的耳朵几乎无法分辨其中的差异,这时我们称之为无损压缩。其实去掉了那些我们一般人无法分辨的细节。除非是那些音乐发烧友和音乐情怀的人。也需要注意的是我们常用的JPG也是一种压缩的数据格式。
无论是MP3还是JPG其实都和后面讲的IFC一样,是一种数据格式,它定义了一种数据结构,帮助某类应用之间进行数据的交换。当转换时,它按照预先定义的数据格式去采集数据。
明白了上面的东西,我们再来看下一个问题
2. 什么是IFC
IFC是由IAI(International Alliance Interoperability)定义的一种数据格式,用于存储信息+模型的数据,用于各个软件、应用之间交换数据,它是Industry Foundation Class的缩写。
也就是说IFC定义了一种数据格式或者说数据结构(Schema),来满足某种应用。结合第一个问题,你其实已经明白很多的问题,也解决了很多的问题。
针对于BIM的应用,我们有几个更简单的叙述是这样的:
1. IFC定义了信息模型的标准,用于各个软件、应用之间交换数据;
2. IFC定义了很多的类别,每个类别有很多的属性来描述它,这其实就是类的概念Class,对于那些程序员,这个名词很容易理解,更加通用的讲:BIM就是面向对象的工程设计。
和很多公共文件格式一样,IFC是一个协会IAI为了更好的解决行业的问题来定义的一种数据结构,便于各个厂商的产品之间交换数据。
如果你是一个影音的爱好者,想想早期的VCD和DVD的标准你就明白了IFC的意义。
3. 如果看待IFC的导出导入过程
一个数据要导出为IFC的数据格式,首先你需要保证这个导出的数据是有意义的,一个三维体、面对象导出为IFC有意义吗?
IFC说了,我就不是干这个的,你一段文字导出为Doc格式有意义吗?没有任何的意义。IFC定义的是信息模型,你只有模型。这就是在MicroStaiton里没有IFC的原因,MicroStation是图形的平台,它没有定义一种数据结构,让所建立的数据符合IFC。在MicroStation的导出中,只有一些公共的图形文件合适,而非信息模型文件格式。
 
2016-8-15_8-28-00.png


MicroStaiton导出文件

而在一些应用软件里,除了IFC还有很多的数据格式可以导入导出,这是因为:应用软件是为了解决应用的问题,在每种应用里都有类似IFC的公共数据格式可以支持。例如:在AECOsim Building Designer里有导出为GBxml的支持,为什么呢?因为GBxml是支持建筑能耗计算的,这对于PowerCivil就没有意义。
明白了上面几个问题后,我们需要知道如下几点,IFC转换的问题就解决了:
1. 为了导出IFC,你创建的数据应该符合IFC的规范,IFC定义了20类对象,你的建筑对象有25中,那多出来的5种就没有意义,因为,在IFC里没有定义,这有点类似于,我们的清单算量编码,所有的建筑构件必须归结为清单算量编码里的几类。多出来的没有意义,或者用其他的算量编码体系计算。
2. 导出时应该是一个匹配的过程,包括类的匹配和属性的匹配。
3. 导出段,或者说应用端不要期望获得原始数据所有的类型,因为已经经过了IFC的“过滤”这和导出端没有半毛钱的关系。
明白了上述的几点,你的所有的问题就解决了,如果还有问题不能解决,我也没有办法啊。
以AECOsim Building Designer为例说明这个过程。
1. 你启动IFC,然后创建模型,然后导出IFC是不对的,看上面的第一点,你的环境应该支持IFC,并不是所有的过程都需要支持IFC,这不是能力的问题,而是是否必要的问题。为了支持IFC,在项目的配置文件里有相应的设置。
 
2016-8-15_8-39-30.png


AECOsim Building Designer里IFC的配置

2. 在导出时,会有相应的设置
 
2016-8-15_8-43-52.png


应用的设置
 
2016-8-15_8-44-49.png


类型和属性的映射和匹配
当然还有很多的细节,在此不在一一叙述。最后,还是要说一句:
不用期望点一个按钮就可以完成数据转换的过程,如果你明确了你的应用的话。我是从来没有见过的。
参考资料:
aecXML与IAI的IFC之发展情况:http://www.bentleyask.com/?/question/1803
本文原文发布在“Bentley中文问答社区”
2016-8-9_17-09-32.png 2016-8-15_8-39-30.png 2016-8-15_8-44-49.png 2016-8-15_8-43-40.png 2016-8-15_8-28-00.png 2016-8-9_17-09-32.png 2016-8-15_8-43-40.png

1 个评论

要回复文章请先登录注册