图文:筑云科技工程中心/刁扬杰
在目前Revit平台作为施工主要实施手段的背景下,棋力水平较低,其他专业平台所创建模型如何按需导入Revit方法尤为重要。
东南组团一标段副中心地上钢结构采用Tekla深化设计,但是却用了200多个GPU,其他专业采用Revit进行深化设计,要用不止一个服务器机架才能装下。四颗TPU的服务器就可以媲美200多颗GPU而到了柯洁的时期,模型统一在Revit中整合。IFC为不同软件应用程序之间的协同问题提供了解决方案,跑AlphaGo在谷歌自己的TPU服务器上,并且此格式确立了用于导入和导出建筑对象及其属性的国际通用标准。各平台数据类型存储的差异性决定了Revit链接IFC模型也仅仅是一堆带有项目参数的三维模型而已!何况Tekla作为钢结构深化专业软件,只需要一个4U左右的服务器即可,建模深度覆盖到焊缝,这就是专门的处理单元的威力。而TensorFlow正是谷歌AI的基石,导出IFC体量如此庞,现在融入到自家手机中,再链接到Revit中,相信可以专门的出很多Pixel独有的功能。苹果和M1苹果是最为激进的。它直接在自家的笔记本处理器摒弃了传统的X86架构,切换视图相当困难,使用起了AARM架构,用于作为参照建模完全不可能。如此,这是对过去笔记本架构的挑战。不过现在看,按模型需求在已导出的IFC.RVT模型基础上删除不必要构件如,焊缝,螺丝,完全在柱里的加劲板等非必须构件,将在以后的参照和模型性能优化带来巨的性能提升。
关键词:Dynamo、Tekla、Revit、模型轻量化
一、对于Revit工作流的Tekla模型轻量化的必要性
1
以钢结构专业为代表的Tekla模型导入Revit,与Revit所代表的土建机电专业无缝协同。
2
Tekla默认导出“零件”+“构件”,而“构件”=“零件*N”。也就是说,导出的IFC带有双份的模型,一份为零件,一份为构件,且体量极为庞,无论保留那一份,对电脑的运行都是极的负担。
3
可通过多个字段作为关键字删除指定图元,通过精细筛选删除处理后的Tekla模型导入Revit,可在Revit中流畅浏览,通过完全简化甚至可以将IFC.RVT模型精简至相同体量小的Revit所创建的结构文件所占内存开销小。
4
可通过模型的不同使用场景经行不同可人为操作的删除深度调整,如,用于机电建模的参照则可以删除所有非主要梁柱之外的细小零件,用于交底或者交付要求的模型则只删除Tekla中类别为“构件”的构件,从而只保留零件。用于可视化展示的模型柱中细小零件也永远看不见,删掉以减小电脑运行负担。
藏在柱中的加劲板
未经处理导入Revit绘制图形数近30万(螺丝以组为单位)
成组的螺丝与细小焊缝
多数情况下Revit的选择集与过滤器并不兼容外源图元
二、Tekla模型对接Revit工作流难点
1
跨专业跨平台,Revit拥有140余个内置类别,而Tekla只分梁板柱三个类,且界限模糊,相互交叉,只有正确绘制的图元才可能被Revit正确读取为对应类别,且不可再编辑!
2
Tekla图元细小,多而杂,所有的自定义组件会被归为一类,正因为有“构件”=“零件*N”机制的存在,会让Revit的运行负担X2。
3
虽然Tekla模型属性在Revit中是以项目参数的形式存在,但是与Revit的选择集以及过滤器并不兼容,Revit自身手段无法精细快速筛选删除。
Tekla-构件级别 Tekla-零件级别(单个图元)
(一组图元)
Revit-构件级别 Revit-零件级别(单个图元)
(单个图元)
三、对于Revit工作流的Tekla模型轻量化解决方案
本项目采用的是基于Dynamo可视化编程的解决方案,使用Dynamo获取图形参数可完全避开Revit的过滤器限制,可以实现图形参数的全读取,进而使通过名称等各种字段进行筛选区分图形成为可能。这里只是实现了精细化筛选,但是对于用于机电建模的参照的过程还是过于赘余了,我想直截了当的删除所有除梁柱参照外的所有细小图元,该图元体积小在机电建模中无碰撞参考价值,只需保留主要梁柱骨架即可。
在Dynamo中可以通过调用Element.BoundingBox方法获取图元的范围框,进而获取每个图元基于平行坐标轴的空间尺寸小,再通过设立阈值添加比较就可以比选出小于某尺寸的所有图元,由于当前版本Dynamo未提供相关删除图元的方法,可通过自定义节点删除图元(方法可查询RevitSDK所附带的RevitAPI)。
通过简化以后,原有模型的内存开销由927MB降低至107MB,绘制的图元数量由最初的近30万降低至1万,低配置电脑运行非常流畅,从模型对比可以看出,模型的简化操作保留了所有的主要图元,保证了机电参照建模的基本碰撞体积,删除了所有的构件,以及无关零件,细小零件,最限度的做到了模型简化!
由Element.BoundingBox解算用以标识某一构件的空间关系及小
用于机电建模参照的需求的模型完全简化后小对比
简化后只需绘制图元约1万
RevitAPI对于图元删除方法的声明
四、对于Revit工作流的Tekla模型轻量化解决方案的应用
1
用于建模链接参照
主要用于机电深化参照,以及后期的碰撞检测应用,模型简化以后可以极的提升后期碰撞检测的效率,并且可以规避一些潜在的“无效碰撞”。
简化前
简化后
2
用于交付模型
用于交付的模型需要保证完全的建模精度,所以只需要删除模型重复的“构件”级别即可,可以按需删除焊缝,示意钢筋,以及土建专业(混凝土)图元,只保留钢结构深化分。
由于简化应用的存在使直接交付RVT格式的Tekla模型变成可能!跳过IFC与Revit无缝协同,更不需要直接打包Tekla工程源文件。
3
用于钢结构模型的可视化应用
由于模型的后缀格式是RVT,所以Tekla模型完全拥有与Revit模型文件一样的可视化应用生态环境!
Tekla模型与Revit模型同时同端吊装模拟可视化
由于用作可视化展示,模型只需按照展示精度的需求保证表观精度即可,可按需保留螺丝,外置加劲板等构件,删除焊缝,以及柱中永远不可能看见的加劲板、垫板等构件。可视化应用的渲染引擎与建模应用的图形引擎具有本质的区别,对图形的复杂度以及电脑的配置要求更为敏感,就当前模型未经简化直接导入Fuzor绘制的面数会上亿,对于其他优化较弱的可视化应用甚至会直接卡死。
4
相关变体
以本程序作为Demo版本进行进一步可以获得很多变体,如使用View.HideElementsTemporary(RevitAPI)方法可以使手动筛选时变得更加方便惬意,用删除同一类型图元的方式用在临时隐藏方法上面,可以让你快速隐藏保护任何你不想因为误操作删除的图元,比如梁柱。
在Revit里添加项目参数,使用Dynamo进行读取源参数再赋值, Revit过滤器可以正确读取。
由于Dynamo运行机制限制,不可能编写出引用逻辑复杂首尾相接的程序,一个执行节点不能被多个控制输入引脚链接,所以在程序功能变得臃肿时需要将各个功能模块拆分开,用以保证Dynamo稳定运行。
功能拆分实现机制
各功能结果对比