Rhinoinside.Revit深度使用报告:选DY还是GH?VCTCN93又来科普了!

你好,这里是 BIMBOX。在我们刚刚举办的第二届互联网 BIM 大赛的参数化设计赛区,有个作品受到了大家的普遍关注。

参赛的小伙伴何政国,使用 Rhinoinside.Revit ,实现了 Rhino 与 Revit 两款软件的数据打通,并且利用 Grasshopper 强大的参数化功能,在 Revit 里完成了室内装饰快速建模应用,这个作品凭借勇于打破单一 BIM 软件的创新精神,获得了「BIMBOX 特别奖」
比赛直播的时候,弹幕区就有好多小伙伴问,他使用的工具是什么?好不好用?求介绍。
实际上,我们早就约着 BOX 的老伙计@VCTCN93 来给大家介绍这个软件,到了今天这个时间点,它也不算是很新鲜的东西了,但作为真正把这个工具用到工作和生产中已经一年多的人,他今天捧出的分享也必然不是一篇「软件新闻速递」,而是一篇有深度的体验分享。
今天他分享的内容,会和你聊到 Rhinoinside.Revit 这款软件的来历,他自己和团队用软件做出了什么不一样的成果,以及他对于 Grasshopper 与 Dynamo 二者区别的深刻见解,最后也会给出一些关于工具学习的建议。
下面是由 VCTCN93 所写、BOX 和他一起打磨完成的原文。
你好,我是 VCTCN93。
在过去的2021年中,Rhinoinside.Revit(以下简称 RIR) 已经完全取代了 Dynamo,成了我自动化设计步骤、批量处理建筑信息、计算建筑性能与执行建筑可视化表达的综合平台。有了它,我可以用一款软件贯穿整个的设计流程,可以体验到更为完整的开发环境,甚至于技术上限都会因此提高。
在用它完成了许多的项目后,它对于我的意义,甚至超过了 Revit 本身,一度到达了不可或缺的地步。
先说今天这篇分享我的结论:我鼓励所有同学在选择可视化编程平台的时候,优先选择 Grasshopper,也鼓励所有的 BIMer 多多尝试 RIR

 1.Rhinoinside 是什么?

我先简单介绍一下 Rhinoinside,引自官方对它的说明:

Rhinoinsde 是RhinoWIP 的开源项目,目的是为了让 Rhino/Grasshopper 能在类似 Revit、AutoCAD 等其他 64位程序内无缝运行。

没错,事实上的 Rhinoinside 并不仅仅等于 Rhinoinside.Revit,因为它不仅仅支持 Revit 这一款软件,还同时支持 CAD、Unity、3dmax 等其它软件的大项目。不过,建筑业内一般会把 Rhinoinside 默认指代为 Rhinoinside.Revit,也就是我们常说的 RIR。
如何通俗地理解 RIR 是个什么东西呢?你可以把它想象成一座桥梁,一种通信方式,一种能让 Revit 像运行 Dynamo 一般,以插件形式无缝运行 Rhino 和 Grasshopper 的方法。
所以,RIR 本身是什么,并不重要,重要的是:有了 RIR 这座桥梁,Revit 从此可以拥抱强大的 Grasshopper 世界了。
RIR 虽然是一款开源软件(意味着免费),但使用它的前提是,你已经拥有了 Rhinoceros 和 Revit。基于此,你可以在
www.rhino3d.com/inside/revit/beta/getting-started#installation 找到 Getting Started,再点击 installation,点击 Download Rhino.Inside Revit Beta,下载到最新的 RIR。
然后,像安装常规的 Revit 插件一样把它安装好,你就会在自己的 Revit 菜单栏上,发现 Rhino.inside 标签,不过此时除了 Start 图标之外,其它的选项基本全部是灰的;点击 Start,唤醒了插件以后,就能在让 Rhino 和 Grasshopper 像 Dynamo 一样,以一款插件的形式运行在你的 Revit 上了。
需要注意的是,从 RIR 中唤醒的 Grasshopper,和你直接从外面唤醒的 Grasshopper 有些区别,与一般的 Grasshopper 拓展不同,RIR 的相关功能,你只有从 Revit 唤醒 Grasshopper 的时候才能见到,一般是无法使用的,这也可以被视为从 RIR 启动 Grasshopper 的标志。
在我的观点里,这不仅仅是 Revit 多了一款新插件这么简单,它是足以影响整个建筑设计生态的大事。
首先,以 Revit 为代表的传统 BIM 圈和以 Rhino 为代表的参数化设计圈,一直存在着一层隔膜 ——这两个圈子无论是技术、人员,还是目标和思路,都南辕北辙,平时也缺乏交流。
参数化设计和方案设计搭界,属于项目的前期阶段,一般由前沿事务所和高校引领潮流,他们会基于 Rhino 做很多传统流程完全无法实现的复杂的设计,并且在上面实现自己开发的各种算法。
而传统意义上 BIM 的应用点,则与施工结合得更为紧密,拿来搞算量、漫游、模拟、动画和工程管理等,虽然也有不少设计院拿来做正向设计的例子,但我依然觉得施工企业的 BIM 做得更加出彩,也更有价值。
这层隔膜在隔开了这两个圈子的同时,也阻碍了项目信息的传递和数据流通,直接表现就是前期成果后期无法直接使用,不但不利于一线人员的日常工作,也不利于行业的数字化发展。
在这个层面,软件厂商会比一线从业者,更想要数据全流程贯通,也一直在针对这些难点展开自己的行动,但不同厂商的思路有所不同。
Autodesk 想打造和苹果一样封闭但完整的生态,希望用户拿 Autodesk 全家桶解决所有问题,所以 Autodesk 收购了 Dynamo,把它整合进了以 Revit 为代表的全家桶中 。
Rhino 则基于 OpenBIM 理念,一直在努力让自己成为各路软件数据交互的胶水平台,之前跟 ArchiCAD 搞过 Rhino – Grasshopper – ArchiCAD Toolset,后来又围绕 Revit 打造了 Rhinoinside.Revit。
看得出他们都在往对方的圈子里伸手 ——信息化软件想要参数化,参数化软件想要信息化,不过站在使用者的角度,大家都知道,只有二者合流到一起,才是真正的数字化趋势。
你可以把 RIR 的诞生,看作是封闭系统多了一条使用外界生态的路径,或者说开放平台也把整个封闭系统当作了自己平台上的一环,至少在理论上能让全过程信息工作流更畅通。
而从行业视角回到具体的工作者身上,它能让我们做出很多厉害的作品。

 2.用 RIR 做什么?

在过去的一年中,我的工作流程常常是这样的:用 Grasshopper 做模型和计算,再通过 RIR 把结果传输进 Revit 里,复盘整个工作流,整合其中的电池与代码,最后把流程编译成完整的插件,以供下次使用
基于这套流程,我可以实现产研结合,在项目中做开发,每一个项目的研发成果都能为下个项目打下坚实的基础。
去年,我在湖南省建筑设计院建筑专业分享会上,基于自己和同事的团队成果,做了很多类似的案例分享,这次完整的演讲我写到了《「BBT」数能化如何赋能建筑设计?》里。
比如基于 GIS 实景模型和网络大数据的场地分析,与地质模型工作流:
再比如负责研发的同事利用 RIR 研发的使用 Grasshopper 进行房间自动填色
或者是负责绿建的同事基于 Grasshopper 做的建筑信息可视化、建筑性能的分析,都是基于这套流程的产物。
总而言之,RIR 作为一个沟通桥梁,要做的就是 I/O(Input/Output)——也就是读取其它软件的数据,并把计算的结果转到其它软件中。
大家都知道,BIM 模型的最大价值就在于其中的建筑信息——也可以被理解为建筑数据。有数据,就可以基于它们做相应的可视化,漂亮的数据会带来漂亮的可视化。
但是,Revit 自身的可视化能力是有局限性的,它仅仅能完成一些简单的上色、炸开而已,基本无法做动作,更无法基于数据做出许多非线性的变化,而只要你手里有数据,这些 Grasshopper 都可以做。
拿一个项目举例,长沙市公共卫生救治中心改扩建项目,是由湖南省建筑设计院集团股份有限公司医疗健康建筑设计研究中心完成的设计,这个项目里我们就基于 Revit 正向设计的数据,做了非常多数据的可视化表达。
团队用 RIR 读取了 Revit 模型中的几何、阶段、名称、面积等信息,让模型能够在不同的条件下,动态地展示 Revit 模型中的信息,完美衔接正向设计成果,发挥出数据在可视化方面的价值,比起表格里死板的数据,这样的呈现形式有明显更强的说服力。
完整动画:
另一方面,Rhino 本身是非常好的的建模软件,它支持 Nurbs,比很多软件的建模精度高很多,执行速度快,兼容性也很强,是很多专业的建模选择。更重要的,在 Grasshopper 的加持下,它支持对建筑数据的复杂运算。
还是以这个项目为例,团队使用 RIR 完成了地勘模型的自动生成。
在整个过程中,团队首先利用了 Rhino 的兼容性,把 CAD 地勘图的数据,完整地导入进了 Grasshopper,并实现了数据清洗;再以 Grasshopper 环境下的 Python 为基础,设计了许多的类,用于承载数据,并针对数据做出反应和计算,从而调用 API 生成实体模型。
通过对模型进行交集计算,自动算出柱子的受力及长度;最后通过 RIR 将数据写入模型,将模型传入 Revit,实现整体流程的闭环。

 

更重要的,所有这些操作步骤都不是一次性的工作,我们最终把这些成果做成相应的插件,比如可视化插件与地勘插件,从而改变机械的工作流程,完成项目之间实打实的积累。
既然我们说到 Rhinoinside.Revit,就不得不说说 Rhino 和 Grasshopper。很多人都知道,我是一个 Dynamo 和 Grasshopper 双平台玩家,所以不光是谈谈工作成果,我还想进一步聊聊我自己对这两款软件的理解。

3.Dynamo和 Grasshopper有什么区别?

RIR 怎么通信,对普通人来说不重要,重要的是 RIR 背后的 Grasshopper,既然 Dynamo 和 Grasshopper 的定位一致——至少在表面上是这样,那我们自然要对二者进行比较。
就本质而言,它们都是面向设计师的可视化编程平台,功能基本上没有区别,无论是大批量处理建筑信息,还是进行复杂的参数化建模,甚至完成设计流程自动化,他们的技术路径和实现手法,几乎都一模一样。
但如果我们去看这两款软件的细节,还是能看出两款产品设计思想的不同。
Grasshopper 在设计圈低代码领域拥有无可比拟的先发优势,它凭借着自身的多年积累,打造了极为丰富、完整、通用的生态,插件丰富,资料齐全。在专门分享 Rhino 与 Grasshopper 插件的 www.food4rhino.com 上,每天都会有无数爱好者上传自己的插件作品。
随手举几个例子,比如 Ladybug ,可以做各种各样的绿建、环境分析:
比如 Elefront ,支持深度图纸处理:
甚至还有像 Compas 这样的神器,能支持你玩机器学习和机器臂这种前沿方向的探索:
能把这些插件使用起来,正可谓上可九天揽月,下可五洋捉鳖。
如果你想开发自己的专属插件,你能得到的文档、案例和开源代码都数不胜数,上手会极为方便。在开发环境上,Grasshopper 不但支持 Python 直写,还同时支持 C#和 VB 的深度开发,你在 Grasshopper 环境写代码,和开发者用的是同一套 API,轻易获得和官方一致的开发体验。
湖南省建筑设计院的结构大神 @李超,曾在文章《「BBT」设计师的数字化转型》中提到:

食堂师傅如果吃的食物和他卖出去的食物是一样的话,食堂的饭菜就会特别香;反之,食堂就是一个喂猪的地方。

好的开发环境会吸引更多的优秀开发者,优秀的开发者能够丰富 Rhino 和 Grasshopper 的软件生态,这样整个生态的发展就进入正向循环,这也是为什么 Grasshopper 上的插件总会比其它领域丰富且前沿的原因。
我曾试图用 Dynamo 写一些自动化的 Python 脚本,但是在 Dynamo 中写 Python 的体验着实糟糕,连最基本的变量都无法打印,Debug 极为痛苦,让我没有写下去的欲望,而 Grasshopper 不但支持打印,还有完整的 API 以供查询,让人敲代码的欲望都变高了。
最后,我们说 Grasshopper 是一个「胶水平台」,这也就意味着它是各种不同软件数据流转的连接点,你可以在 Grasshopper 下用一套东西完成所有建筑信息的计算,超越任何一家软件公司的封闭环境,在外部实现新的大一统,我认为 Grasshopper 这一波操作在大气层的高度。
说完 Grasshopper,我们返回来说说 Dynamo 的优点:我把它称作「信息化软件的反杀」。
Dynamo 相比 Grasshopper,最大的优势便是他亲儿子的身份——Autodesk 买来的也是亲的!
这能让 Dynamo 获得更多的官方资源,因而你可以在 Dynamo 上发现很多围绕 Revit 定制的插件,专门来处理和 Revit 相关的内容,专门为 Revit 这一款软件做定制服务,这些是没有官方支持的 Grasshopper 难以企及的。
其次,由于 Dynamo 是服务信息化的软件起家,信息化处理的能力可以说是绝对的强大。
比如它的数据结构设定,就和 Python 的 list 非常相似,灵活且自由,既能随意控制数据位置和大小,也能快速编辑读取,配合连缀(lacing)功能,Dynamo 在处理巨量、不等维的复杂类型数据时,有着和 Python 一样巨大的优势。
反观 Grasshopper,它使用的是一种叫做 Datatree 的数据结构,和 C#中的 Array 比较类似,可以看作是 Array 的智能升级版。它以 Path 的形式,定死了数据容器的大小、类型和位置,确实能针对输入做出十分智能的反应,比如数据自动匹配和运算自动循环,但在面对复杂多维数据时,操作会相当麻烦。
有人会说:Grasshopper 中有 Python,你可以用 Python 处理大量数据。但即便你投机取巧使用 Grasshopper 中的 Python 处理了那些数据,Grasshopper 其本身却并不支持 Python List,你还是没办法读取和操作那些 List 中的内容,虽然有 treehelper 等其它方式,但也不是万能的。
总之,二者各有优劣,都体现出了各自出身就带来的特点。

4.有必要转到 Rhinoinside 吗?

最后,和你聊聊我关于学习和应用的建议。
摄影圈子有这么一个说法:
如果你说不清楚当前手里的设备究竟在哪一点无法满足你的摄影需求,就不要去盲目更换设备。
软件工具的选择也是这样,我希望你不要成为一个工具党,而是要先明确自己的定位与需求。
如果 Dynamo 已经能够满足你的日常需求,且 Grasshopper 无法为你创造新的增长点,放弃原本在 Dynamo 平台的积累是不明智的,何况 Dynamo 自带信息化软件的先天优势,可以确定是相对适合 Revit 的。
但如果你想在参数化、低代码编程,甚至建筑前沿领域 ——比如写插件、玩机械臂、机器学习等方面有所造诣,我会强烈推荐你迅速转移到 Grasshopper 上。
选软件和选手机一样,就是在选生态,优秀生态对个人的提升和帮助是难以估量的。以我为例,我在 Grasshopper 工作的效率,热情和技术上限,很明显会比 Dynamo 平台高出 N 个层级。
此外,无论是从 Grasshopper 转到 Dynamo,还是从 Dynamo 转到 Grasshopper,同一类型软件间的转换都是十分迅速的,适应一下不同软件的数据结构,就能快速转换,大可不必为「选错了软件」而苦恼。
就我个人而言,因为工作的性质和对未来的自我定位,我已经很久没用 Dynamo 了,我会更希望和大家一起玩 Grasshopper。记得几个月前我就在自己主理的 Dynamo 课程交流群中放出话来,要免费把课程更新一些内容,也希望能带着更多的同学来 Grasshopper 平台上玩,同时分享更多的内容,过去的一年太过忙碌,以致于这件事被搁置了一段时间。
但它还是埋在我心里,希望有一天能把它实现,说不准哪一天,就像今天的分享一样,悄然上线了呢!
好了,VCTCN93 的这篇文章,就给你分享到这里,希望能给你在新领域的探索带来一些参考。他也会把这一期的内容同步到他和几位小伙伴一起打理的公众号「数能化」里,对建筑数据、参数化设计感兴趣的小伙伴,可以关注一波。
至于 VCTCN93承诺的课程免费更新和新课上线,让他在留言区领略一下你们的催更吧!
有态度,有深度,BIMBOX,咱们下次见!

特别感谢湖南省建筑设计院集团有限公司医疗健康建筑设计研究中心提供的案例支持,研发成员:孙昱、文泓森、刘孪娈、周伟杰

 

暂无评论

相关推荐

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

Rhinoinside.Revit深度使用报告:选DY还是GH?VCTCN93又来科普了!