1、YJK与Revit进行联动的必要性
随着BIM技术的推广,基于BIM正向设计方法的探索,俨然成为了当前建筑设计行业的热门话题。整个设计流程由一个模型贯穿,各个专业之间相互协同,从这个模型中获取自己想要的信息,并实现所有专业的实时联动的调整,所有图纸也可以直接通过这些三维模型生成。这样的构想无疑是美好的,如果这样的技术运用于实际的设计流程中,建筑师和工程师们的工作效率无疑会得到极大的提升。当下,很多公司都看到了这样的技术路径的潜力,也都开始了各种各样的尝试。但是探索的过程无疑是曲折的,目前很少能够看到全专业三维正向设计成功应用的案例。造成这种局面的原因是多方面的,其中非常重要的一个原因是,目前市面上尚未出现非常可靠的正向设计协同工具。为解决这个问题,本文基于YJK-GAMA数字化智能设计平台,探索了YJK与Revit进行实时联动的方法。
目前,Revit有基于Rhino及grasshopper的接口。而YJK可以通过YJK-GAMA建立和Rhino及Grasshopper的连接。因此,我们尝试通过YJK-GAMA和grasshopper,建立YJK与Revit实时联动的接口。
2、YJK与Revit模型的联动
2.1 Rhino.Inside.Revit
Rhino.Inside.Revit是mcneel推出的一款通过Rhino和Grasshopper驱动Revit模型的开源项目。它是mcneel的Rhino.Inside项目中的一个子项目(这个项目还包括将Rhino嵌入Autocad,Unity等软件的模块)。这个项目的目的,是通过二次开发的手段,将Rhino及Grasshopper嵌入这些软件中,使Rhino成为能够控制这些软件的插件,而Grasshopper则成为了Rhino这个插件的插件。
Rhino.Inside.Revit安装之前,需要预装Rhino7及Revit2018-2022的任意版本。组件可以通过Food4Rhino下载。组件安装后可以直接启动revit。启动过程中会出现如下提示:
直接点击Always Load,之后启动Revit时,Rhino.Inside.Revit都会自动加载。
启动Revit后,Revit会出现Rhino.Inside菜单。点击Start按钮,激活Rhino.Inside组件。
点击Rhino按钮,可以激活Rhino界面。点击grasshopper按钮,可以激活grasshopper界面。grasshopper界面下包含revit相关的面板,里面有很多revit相关功能的电池。我们可以直接通过这两个界面,直接控制Revit。
2.2 传递Revit对象至YJK
在打开界面后,我们就可以直接通过grasshopper获取Revit模型当中的对象。
以一个柱子为例:我们可以在grasshopper中加载graphical element电池。右键点选需要被加载的结构对象。这样,Revit模型当中的构件就被加载进入grasshopper中。
我们可以通过Element中的ElementCurve,在Rhino中获取该柱的单元线。我们还可以通过element type 电池和type identity电池获得该柱的截面尺寸。
这样,我们就可以完整地获得该柱子的所有信息。
接下来,我们只需要将获取的revit构件信息通过Gama的接口传输至YJK中,就可以完成YJK与Revit数据的实时联动。在这里,我们只需要将柱子的轴线和柱子的截面尺寸传输至YJK中即可。
由于Revit中的截面是通过族来定义的,我们可以通过获取截面族的类型名称,然后通过在grasshopper中的字符操作,完成对截面参数的转化。
在grasshopper中的数据传输至YJK后,可以直接在YJK-GAMA中构建模型生成的逻辑。这样就可以实现Revit与YJK数据的实时联动。
我们可以看到,在移动Revit当中的柱的同时,YJK中的柱也随之发生移动。相应的截面尺寸也可以同时联动。
2.3 传递YJK对象至Revit
同样的,我们可以反向地将YJK中的模型数据同步传输到Revit中。
首先,我们可以在YJK中加载需要传输的构件,在这里,我们通过点选的方式在YJK-GAMA中加载YJK构件。
然后,我们分解柱的卡片,获得柱子相关的参数。
接下来,还是通过发送曲线的方式,将YJK中的构件发送到Revit上的grasshopper中。
在grasshopper中,我们可以通过Input选项卡下的获取族,获取楼层等电池,加载Revit中已有的族和属性。
我们通过YJK传递过来的曲线,联合从Revit中加载的族,就可以将YJK中创建的柱子同步到Revit中。
但是在这里有个小缺陷,就是Rhino.Inside会屏蔽一些同步函数,因此在这里,当YJK中的柱子修改时,grasshopper无法响应修改,需要在gh的画布上重新运行一下recompute,才能将修改过的对象加载入Revit中。
接下来让我们一起来看一个简单框架模型在YJK和Revit中实时联动的例子:
3、总结
我们可以发现,通过YJK-GAMA与Grasshopper的数据交互,使Revit能和YJK之间实现双向的数据互通。那么,我们是否能够作这样的设想。在整个设计流程中,我们通过Revit建模,借助Revit的三维设计能力和出图能力,在合适的地方替代CAD制图。通过YJK-GAMA与YJK模型进行数据交互,实现结构模型的实时更新和调整。把大部分工作都集中到一个模型上,而不用在不同的模型间反复同步进行机械重复的操作。这样是不是能够改善我们目前的工作流,节省大家的工作时间呢?
本文所有的模型交互的案例文件都已上传至百度网盘,欢迎大家下载使用。
下载地址:
https://pan.baidu.com/s/1xp7qBWrnzIWxRgylIPb_8g
提取码:4167
YJK-GAMA现已升级到1.2版本
加入QQ群,我们一起来探索
YJK-GAMA的无限可能!
联系我们“转自:非解构-公众号”。
加入“建筑结构数智化设计”微信交流群,
一起来交流探讨数字化、智能化等前沿技术
在建筑设计行业中的运用。
更欢迎志同道合的伙伴们加入我们,
一起来做点好玩的事情。