设计变更≠BIM数据变更-考虑工程意义的分类与高效识别
文章来源: 周育丞 智能土木ABC
1 引言
设计变更在建筑、工程与施工(AEC)领域中不可避免,常在项目版本迭代、团队协作中发生,且易对项目产生深远而持续的影响。近十年来,建筑信息模型(BIM)作为一种建筑全寿命周期管理的综合方法被越来越多地被使用,因此,在BIM模型中进行设计变更识别具有重大意义。
在基于3D对象的BIM模型中进行设计变更识别已被学者广泛研究。然而,考虑工程意义的设计变更(即语义设计变更,本文将其定义为:从设计师的角度认为有意义的变更)并没有被大多数研究考虑,这导致了许多无意义的变更识别结果,浪费了大量人员检查的精力。当前,许多识别算法在比较两个版本的模型时常采用基于ID(如IFC中的GUID)的匹配和基于元素属性的逐个比较的方法。这种方法的缺点为:
没有考虑元素的语义。该方法将数据变更视为设计变更,从而容易识别大量的无意义的变更结果。例如,交换两个相同的柱子的位置会被当前的算法识别为变更,但该变更并不应该视为有意义的设计变更;因为从设计师的角度来看,变化前后的模型是完全一致的。类似地,若删掉又重建了一个相同的元素(例如梁),也不应该被视为设计变更。
对ID的变化敏感。当模型中元素的ID发生变化时(这可能会在复制模型,另存为,分享/同步时发生),该方法的识别结果可能会完全错误。最极端的情况下,模型内容完全没变,但由于所有元素的ID都发生了改变,当前的算法就会认为新旧两个模型中没有任何两个元素相同。
目前,大多数研究对于语义设计变更的概念并不清晰,并常将其与数据变更混淆;此外,当前大多数商业软件在设计变更识别方面也存在不足。下图展示了AutodeskBIM360中对于一个模型删除又重建相同的构件(梁、柱)的变更识别情况。可以看出,BIM360没有从语义的角度识别变更,而是简单的给出了模型前后发生了6个删除、6个添加的构件。为了解决目前的这一问题,本文将在以下两个方面进行研究:
设计变更的分类。引入考虑工程意义(语义)设计变更的概念,并将其作为语义变更识别的标准。
设计变更的识别。考虑BIM模型中元素的语义,并引入hash码加速识别过程。
2 研究背景
设计变更通常指两个模型文件之间发生的变更,本文分别将其称为文件A(旧文件)与文件B(新文件)。目前,设计变更根据模型中的元素被分为以下三类:
添加:仅存于文件B中的元素。
删除:仅存于文件A中的元素。
修改:同时存在于A、B中的元素,且属性不完全相同。
据此,可以将设计变更算法分为两个过程:
匹配(Matching):判断文件A(B)中的元素是否存在于B(A)中。匹配成功意味着元素同时存在于两个文件中,否则即为只存在于一个文件中。该过程通常使用ID。
比较(Comparison):判断两个元素是否相等。该过程通常使用元素的所有属性。
根据以上分类,本文将设计变更识别算法分为了两类:
匹配优先算法:先执行匹配过程,再执行比较过程。
比较优先算法:先执行比较过程,(可选地)再执行匹配过程。
图1,2分别展示了上述两种算法识别变更的流程。图3展示了两种算法对于一个示例变更的变更识别结果。从图中可以分析出,比较优先算法的识别结果更具意义,而匹配优先算法的结果容易包含错误(即无意义的变更结果)。
目前,比较优先算法已被部分研究为解决匹配优先算法中存在的对ID依赖等问题而提出,其特点为可以保证结果的准确性。然而,由于以下一些缺点,该算法仍然没能被广泛使用:
耗时高。比较步骤需要读取元素的所有属性,而匹配步骤只需读取一个(即ID);分析可知,该方法会导致比较步骤的执行次数大大增加,从而极大的增加耗时。而在匹配优先算法中,只有两个ID相等的元素才会被进一步比较所有属性,因此其比较步骤的执行次数远低于比较优先算法。
仍可能产生无意义的结果。比较优先算法的准确性比匹配优先算法已大幅提高,但其在实践中也可能会产生少量无意义的结果。这是因为,目前采用的比较步骤为逐个比较元素的所有属性,而元素的有些属性与ID类似,对设计师来说也是无意义的(例如元素所有者历史记录,创建时间等),因此这些无意义的属性在比较步骤中应被忽略。此外,对于属性集合中的顺序无关问题,属性与属性/元素之间的引用问题也需要正确处理。
为解决现存问题,本文接下来的研究包括两个部分:考虑工程意义的设计变更分类,以及基于该分类标准提出的快速且保证准确和有工程意义的变更识别算法。
3 考虑工程意义的设计变更分类
作为设计变更识别的标准,设计变更分类只有保证其自身具有工程意义,才能在变更识别算法获得正确结果的同时也保证这些结果是有工程意义。目前的设计变更分类标准仅仅将变更简单划分为了添加、删除、修改三类,这远远不能从语义层面上描述模型的变更。例如,更改一个几何元素的几何表达方式(如从实体模型改为表面模型)同时不更改其含义,这在语义层面上不算是变更,但是当前的变更分类标准无法理解语义层面的含义,从而只能将其分类为变更。因此,本文提出了一个考虑工程意义的设计变更分类,该分类将从两个方面来审视并判定设计变更:(1)数据变更的类别、(2)设计变更的层次。
本文将数据分为三类:属性数据(propertydata),外形数据(appearancedata),和关系数据(relationshipdata)。表2给出了一个在每个类别中数据变更的总结。
如前所述,仅考虑数据变更是不足以正确的完成设计变更识别的,因此本文考虑了设计变更的三个层次(图6给出了Revit中三个层次的设计变更示例):
对象层次:在该层次识别的设计变更即为数据变更,这也是设计变更识别最基本的层次,即先以单个对象为目标逐个检查发生的变更。
类型层次:检查完对象层次的变更后,应进一步检查是否发生了类型层次的变更。例如识别出有多根柱子的长度均发生了相同的变更,那么有可能是因为这些柱子同属一个类,而这个类的定义发生了变更。
模型层次:完成上述两个层次的检查后,应该从模型层次检查变更是否是无意义的。例如交换了两个相同的柱子的位置,那么从模型整体的角度来看这就是一个无意义的变更,因此不应该被识别出来。同理,删除并添加一个相同的对象也是无意义的。
4 考虑工程意义的设计变更识别
考虑了工程意义的设计变更分类,即考虑三个数据变更的类别和三个设计变更的层次后,本文首先对现有的比较优先算法进行了改进(详见论文5.1),提出了改进的比较优先算法(如图7)。该算法能够解决前述的比较优先算法的第2个缺点,即该算法能避免无意义的变更识别结果。
接下来,本文引入hash码加速比较过程,以解决前述比较优先算法的第1个缺点。该算法首先对文件A、B中的每个元素计算出一个hash码,其次再进行比较步骤。考虑到应用中hash码冲突的概率几乎为0,因此仅需比较对象的编码即可判断其是否相等,从而大大降低耗时。值得说明的是,计算对象的hash码时要满足上述考虑工程意义的变更分类标准;例如,发生无意义变更的对象其前后计算出的hash码应相同(算法详见论文图8)。
图9展示了两个基于hash码的快速识别算法执行流程,图中假设所有对象的hash码已事先计算得到。可以看出,该流程与前述的比较优先算法较类似,不同之处在于将比较过程的内容从元素的多个属性改为了元素的hash码。
图9a中,两个元素只有在hash码相等的情况下,才进行所有元素的比较(即执行InstanceEqual函数),考虑到后者的耗时远大于前者,因此这可以在许多情况下节省大量时间。图9b中,算法进一步假定了hash冲突不会发生(即不同的元素计算得到的hash码一定不同),因此一旦两个元素hash码相同,就立刻判定其相等。可以看出,图9b中的算法相比图9a中的算法,能进一步节省时间。
5 案例分析
限于篇幅,此处仅展示本文比较所提出的算法和现有算法的部分关键结果。
表6展示了本文提出的算法与现有的匹配优先算法、比较优先算法的比较结果。从表中可以看出,本文提出的算法(Hc与Qhc)在模型文件的ID不可靠时,最能体现出优势。当模型ID不可靠时(如发现意外改变,这可能在复制模型时发生,如前所述),匹配优先算法完全不可用(因为其会检测出大量的无意义结果),而比较优先算法的耗时会大幅增加(近似与模型中元素数量的二次方成正比);而本文提出的算法在耗时上与ID可靠时相比几乎没有变化,十分稳定。
图15展示了使用本文提出的算法开发的插件进行变更识别的示意图。
6 结论
目前的研究对于语义设计变更的概念并不清晰,并常将其与数据变更混淆,从而导致在设计变更识别中检测出大量无意义的结果。为了解决这些问题,我们首先提出了一种设计变更的语义分类方法,将数据变更分为三类,并从设计师的角度将设计变更分为三个层次。接下来,我们根据提出的分类标准,对变更识别方法进行了改进,以实现对语义设计变更的检测。最后,我们利用元素的hash编码来加速设计变更识别的比较过程。结果表明,我们的方法可以:1)以100%的准确率完成语义变更识别,同时相比现有方法降低高达98.1%的时间;2)与人工检查相比,将变更识别率从81.3%提高到100%,同时节省了99.88%的设计审查时间(当从5800个实例中检测出7个变更时)。此外,我们的设计变更的语义分类和检测方法与平台无关,可以作为未来检测方法研究的基础。综上所述,本研究的重要贡献如下。
提出了考虑工程意义的设计变更分类,其可以指导设计变更识别算法的开发,并作为设计变更识别的标准。
提出了基于hash码加速的设计变更识别算法,其可以以100%的准确率识别出有意义设计变更,同时与现有算法相比降低高达98.1%的识别时间。
开发了三组BIM模型,每组包含了相同数量的模型以及不同类型的设计变更,其可以作为将来设计变更识别算法评价的基准数据集。
BIM技术是未来的趋势,学习、了解掌握更多BIM前言技术是大势所趋,欢迎更多BIMer加入BIM中文网大家庭(http://www.wanbim.com),一起共同探讨学习BIM技术,了解BIM应用!
相关培训