江声、李燕 李强
中国建筑第二工程局有限公司,北京 100000
【摘要】本文结合实际工程在BIM项目中基于Autodesk Revit软件及其配置的Dynamo工具,充分利用编程思维,批量完成建模过程中繁琐重复的工作,从而解决项目建模过程中工作效率低、模型错误率高的问题,同时分析了编程思维在项目建模中应用的可行性。
【关键词】BIM;编程思维;参数化族
0 前言
20世纪末,随着IFC标准引入中国,我国建筑行业逐渐开始接触BIM理念与技术。经过十几年的发展,在各级政府、行政机构、建筑工程企业、软件公司等各方的共同参与以及大力推进下,BIM技术及其内在价值在国内得到了广泛的认知,并逐步深入到工程建设项目的应用中。小至工业临时建筑、普通住宅等中小型工程,大到核电工程、国际机场这样规模体量庞大、设计施工复杂的国家示范级工程,都能看到BIM的身影。
在这些BIM项目的建模阶段,往往会出现重复繁琐的建模工作需要完成,如果这些工作完全采用传统建模方式,有两大缺点:一是在繁琐的工作中不可避免地会出现各种错误,模型准确度无法保证;二是机械重复的建模工作要花费大量时间和人力,效率低下。
基于这种情况,本文结合某核电工程预埋件的建模工作,通过对比项目不同建模工作方式的优劣、分析编程思维与建模工作的结合运用、阐述Revit软件中Dynamo程序的应用,介绍工程中编程思维的产生、深化和拓展,旨在利用编程思维提高BIM项目建模工作的效率和精准度。
1 编程思维概述
编程思维,是一种以“理解问题—找出路径”为方法的高效思维过程,它由“分解—抽象—模式识别—算法”四个步骤组成。
“分解”目的是化繁为简,把复杂的大问题拆解成更好理解并且可方便执行的小步骤;“模式识别”是根据经验,找出相似模式,并利用归纳总结能力效率地解决细分过的问题;“抽象”可以抽取所总结归纳出的问题本质,过滤无用细节,聚焦重点突破口,是编程思维中的关键点;“算法”是根据对问题的理解,探寻逐步解决问题的途径,在具体实施过程中分逻辑思维和调试纠错两个方面。
2 工程建模中放置族文件现状探讨
本文例举的核电工程是复杂性较高的大型工业项目,核岛土建工程建模中在厂房混凝土模型的基础上预埋安装物项多,在模型搭建阶段,有大量预埋件、预埋套管和洞口需要精确定位并在模型中展示。以预埋件放样为例,仅一次预埋件核岛厂房就有约10~15万块预埋件,传统方式是先选择埋件族文件载入,接着定位埋件再到放置和调整埋件。假如一名熟练工程师在精神高度集中的状态下放置一块预埋件需要花费1分钟时间,核岛厂房所有埋件放置完成理论大约需要连续工作2100小时,这在实际工程中是几乎不可能完成的任务,况且这样的方式建模过程会不可避免地出现误差,后期的排查工作也极为不便。
图1:某核电项目楼板埋件实拍
2.1 参数化族
面对这成千上万的预埋件,我们的首要工作是分析设计提供的相关施工图,包括了埋件平面布置图、埋件图集和非标埋件大样图。埋件图集和大样图可以体现每种类型埋件的结构,是埋件族编制的基础;平面布置图中没有定位尺寸标注,埋件的定位是反映在埋件信息表中,表中给出了每块埋件的名称、定位坐标以及旋转角度,这些信息体现了埋件族在模型文件中的空间位置,与埋件自身没有直接联系。
不管我们采用何种放置方法,族的设计都是实施的基础,族建立的越精细,整体模型搭建完成后的精度也越高。针对该项目,根据设计文件,将图集或大样中的名称、类型、面板尺寸、锚筋数量和长度等信息赋予族文件中,并相应编制整理了预埋件族库,族的建立和族库的整理完善工作为后续放置工作奠定了基础。
2.2 族文件的放置方法比较
在相似工程的建模中,向BIM模型文件放置这类族文件的方法主要有两种:
第一种是采用传统的放置方法。这种方法是将族文件载入在工程模型中,采用手动定位的方式放置就位,然后再做旋转或镜像调整。这种方式适用于少量简单的族放置工作,对于数量众多、结构复杂的族来说,放置过程极为繁琐,很容易出现偏差,影响模型整体准确性。对于该核电项目,因为平面图中没有埋件尺寸定位标注,借助布置图采用这种传统方式放样,只能应对布置相对规整的埋件,因为数量多,放置过程中无法保证准确率。而且施工图中采用的是坐标定位的方式, Revit软件中的定位操作也极为不方便实现。
第二种方法是借助第三方插件的辅助定位放置方式。在坐标定位的情形下,采用传统放置方法不能有效放置时,在将坐标信息参数化赋予埋件族的基础上,借助于Revit软件的“BIMOne”辅助插件,通过整合和提取图纸中埋件的名称和坐标信息,将其替换模型文件中自动统计的明细表。以此方式来放置,在效率上比传统方式有了大幅提升,可以较大幅度地降低建模工作强度,并且位置完全贴合设计图纸中的信息表,后期对其修改或调整都较为便捷。但是这种方法也存在局限性,工程应用中,发现其仅能胜任水平楼板上埋件的放置,在墙面上埋件的放置中就不那么便捷了,对于筒壁上埋件的放置则更加无能为力。
2.3 编程思维的发掘
对比上述在工程建模中放置族的两种方法,不难看出第二种借助插件的方式,较为准确和高效,也更贴合工程实际。细细分析第二种方法的思路,可以挖掘出一丝丝编程思维的踪迹——将坐标体系赋予给参数族的过程就是化繁为简的“分解”过程;再通过“模式识别”的方法,总结归纳出所有埋件都可以用同样的方法完成放置,同时发现模型文件明细表中的规律,将参数化族优化设计成便于放置的型式;然后将族的信息关键点“抽象”提取出来重点突破,利用“BiMOne”插件的辅助达到替换定位的目标,完成批量放置。
当然,第二种方法在实施过程中的很多的步骤都离不开建模人员的干涉,主要还是定性为手动操作,所以过程中没有激发出现“算法”的身影。这种方法没有逻辑的约束,缺乏对比和筛选无法保证其选取了最佳方案,也就不能自我优化和发展。以致于实际应用中,在发现在立面上放置族无能为力的情况时,不能发挥“算法”的优势,无法及时调整策略。
3 批量放置族文件的优化
在该核电土建工程的建模过程中,再一次面临了以往遇到过的族批量放置问题。为了防止埋件建模工作拖累整体建模进度,并为后续BIM应用做充分的铺垫,该工程中决定优化既有放置方法,以使其适用面更广、效率更高。既有工程留下的放置方法所引申出的编程思维,为这次的优化提供了明确的指引,优化过程引入了更为系统的编程理念,下文将详细做出介绍。
3.1 分解及优化
放置埋件族过程中的约束有:埋件类型、埋件尺寸、锚筋长度、中心坐标和埋件自旋角度。既有放置方法中这些参数都被赋予在了参数化族文件中,但在实际工程中,发现包含参数化坐标的族文件略显“臃肿”,为确保坐标定位准确,族的几何中心点偏离本体较远,甚至在碰撞检查等基本应用中都无法准确反映实际情况。
基于这个状况,在该项目分解优化的步骤中,选择将参数化坐标从族参数中剔除,同时为了让埋件适应不同的放置场合,发掘出可以跟随基准面旋转的参数,经过这样简单的优化处理,一定程度上精简了原有族文件。优化后的参数化族中的各个参数和从原有参数族中剔除的埋件定位坐标,作为独立分解参数,在后续步骤中会做进一步的处理。
3.2 模式识别的优化
模式识别本质上是一个归纳整合的过程,整合过程中,会逐一分析为实现最终目标,各个经分解的分支所需达成的状态。经比较发现,面旋角度的变更在族参数文件中定义,更为便捷有效,所以在该项目的模式识别优化中,将原有参数化族参数中的埋件自旋角度替换为面旋角度,以适应不同场合埋件的放置。
3.3 抽象思维
Reivt软件平台中的“参数性”主要体现在族的参数化,在规则范围内控制类型属性中的各项参数。在这基础之上,就是Revit自适应族,它可以自行匹配项目模型,使参数控制以三维几何意识的形式表达,工程项目中抽象化的对象也在于此类参数。
抽象思维已经无形中融入上述的分解和模式识别的过程中,埋件定位的各种约束,被抽象为了一个个参数,我们要做的是从中提取有效参数信息。其实参数归根结底就是数据,在放置过程中埋件的种种约束所对应的就是不同数据结构。编程思维中又包含了数据结构相关的“子系统、模块、包、类、方法和语句”这些不同层级的抽象概念,综合运用抽象的能力可以让我们不断聚焦关键信息。
3.4 算法的建立和优化
上文提及了在既有放置方法中并没有出现算法,不单是由于既有方法自身的局限性,也因为没有找到合适的算法载体。在该核电项目中,应用了一款能够操作RevitAPI,实现参数化设计、快速建模,并可以批量处理模型信息的三维可视化编程软件——Dynamo。众所周知BIM的精髓是其中的“I”,即“Information”,而Dynamo能方便准确的处理模型中的信息,同时能规避编程语言的障碍,顺理成章地成为了该项目中算法的载体。
在可视化编程中,结合优化过的参数化族,将包括定位点、埋件自旋角度在内的各类参数按特定的顺序罗列出来,对其做自动化赋值处理,达到批量放置埋件族的目标。这一方式除了需要工程人员整理数据和运行Dynamo之外,放置的过程都几乎无需人工干涉,在建模准确度高的基础上,大幅加快了埋件族的放置速度,适用范围也更广泛。
算法还能帮助我们在回溯、调试、纠错的循环过程中进一步更新和优化既有方法,笔者认为算法的优化可以分为纵向和横向两个方面。纵向优化是在经过调试、反馈、纠错的内循环后,算法自身可以不断升级,从该项目埋件族的放置应用优化看,可以达到适应更多场合、定位更精确、干涉调整更少的目标。相应的,横向优化是在纵向优化基础上,不断拓展算法,使得算法可以应用到更多更广阔的领域,在该项目中,埋件高效准确的放置后,可以基于此开发项目上的模型应用点,比如墙体埋件附加尺寸和名称的出图、指定构建上埋件的分项统计等。
4 结束语
本文结合工程实例,以埋件族的放置为切入点,对比分析了不同方法的特点,衍生出编程思维在工程中的发掘、应用和拓展,阐述了编程思维应用于族放置的过程,以及归纳的算法和优化,分析了编程思维应用的可行性与优越性。
编程思维应用在该项目族放置的应用,对比既往工程是一次较大的变革,可以有效地让工程人员从重复机械的族放置工作中解脱出来,有效提高了BIM模型的搭建速度。编程思维的这一应用,不仅解决了实际工程中遇到的难题,同时也突破了工程人员建模工作中的传统枷锁,是一项创新增效的应用。
【参考文献】
[1]孙晓峰,魏力恺,季宏.从CAAD沿革看BIM与参数化设计[J].建筑学报,2014(08):41-45.
[2]淮建峰.基于参数化BIM建筑设计技术[J].现代装饰(理论),2012(05):59+61.
第一作者简介:
江声,男,工程师,中国建筑第二工程局有限公司,太平岭项目BIM工程师