Rhinoinside.Revit深度使用報(bào)告:選DY還是GH?VCTCN93又來(lái)科普了!
你好,這里是 BIMBOX。在我們剛剛舉辦的第二屆互聯(lián)網(wǎng) BIM 大賽的參數(shù)化設(shè)計(jì)賽區(qū),有個(gè)作品受到了大家的普遍關(guān)注。
參賽的小伙伴何政國(guó),使用 Rhinoinside.Revit ,實(shí)現(xiàn)了?Rhino 與 Revit 兩款軟件的數(shù)據(jù)打通,并且利用 Grasshopper 強(qiáng)大的參數(shù)化功能,在 Revit 里完成了室內(nèi)裝飾快速建模應(yīng)用,這個(gè)作品憑借勇于打破單一 BIM 軟件的創(chuàng)新精神,獲得了「BIMBOX 特別獎(jiǎng)」。

比賽直播的時(shí)候,彈幕區(qū)就有好多小伙伴問(wèn),他使用的工具是什么?好不好用?求介紹。
實(shí)際上,我們?cè)缇图s著 BOX 的老伙計(jì)@VCTCN93?來(lái)給大家介紹這個(gè)軟件,到了今天這個(gè)時(shí)間點(diǎn),它也不算是很新鮮的東西了,但作為真正把這個(gè)工具用到工作和生產(chǎn)中已經(jīng)一年多的人,他今天捧出的分享也必然不是一篇「軟件新聞速遞」,而是一篇有深度的體驗(yàn)分享。今天他分享的內(nèi)容,會(huì)和你聊到 Rhinoinside.Revit 這款軟件的來(lái)歷,他自己和團(tuán)隊(duì)用軟件做出了什么不一樣的成果,以及他對(duì)于 Grasshopper 與 Dynamo 二者區(qū)別的深刻見(jiàn)解,最后也會(huì)給出一些關(guān)于工具學(xué)習(xí)的建議。下面是由 VCTCN93 所寫(xiě)、BOX 和他一起打磨完成的原文。

你好,我是 VCTCN93。在過(guò)去的2021年中,Rhinoinside.Revit(以下簡(jiǎn)稱(chēng) RIR) 已經(jīng)完全取代了 Dynamo,成了我自動(dòng)化設(shè)計(jì)步驟、批量處理建筑信息、計(jì)算建筑性能與執(zhí)行建筑可視化表達(dá)的綜合平臺(tái)。有了它,我可以用一款軟件貫穿整個(gè)的設(shè)計(jì)流程,可以體驗(yàn)到更為完整的開(kāi)發(fā)環(huán)境,甚至于技術(shù)上限都會(huì)因此提高。在用它完成了許多的項(xiàng)目后,它對(duì)于我的意義,甚至超過(guò)了 Revit 本身,一度到達(dá)了不可或缺的地步。先說(shuō)今天這篇分享我的結(jié)論:我鼓勵(lì)所有同學(xué)在選擇可視化編程平臺(tái)的時(shí)候,優(yōu)先選擇 Grasshopper,也鼓勵(lì)所有的 BIMer 多多嘗試 RIR。
?1.Rhinoinside 是什么?
我先簡(jiǎn)單介紹一下 Rhinoinside,引自官方對(duì)它的說(shuō)明:
Rhinoinsde 是RhinoWIP 的開(kāi)源項(xiàng)目,目的是為了讓 Rhino/Grasshopper 能在類(lèi)似 Revit、AutoCAD 等其他 64位程序內(nèi)無(wú)縫運(yùn)行。
沒(méi)錯(cuò),事實(shí)上的 Rhinoinside 并不僅僅等于 Rhinoinside.Revit,因?yàn)樗粌H僅支持 Revit 這一款軟件,還同時(shí)支持 CAD、Unity、3dmax 等其它軟件的大項(xiàng)目。不過(guò),建筑業(yè)內(nèi)一般會(huì)把 Rhinoinside 默認(rèn)指代為 Rhinoinside.Revit,也就是我們常說(shuō)的 RIR。

如何通俗地理解 RIR 是個(gè)什么東西呢?你可以把它想象成一座橋梁,一種通信方式,一種能讓 Revit 像運(yùn)行 Dynamo 一般,以插件形式無(wú)縫運(yùn)行 Rhino 和 Grasshopper 的方法。所以,RIR 本身是什么,并不重要,重要的是:有了 RIR 這座橋梁,Revit 從此可以擁抱強(qiáng)大的 Grasshopper 世界了。RIR 雖然是一款開(kāi)源軟件(意味著免費(fèi)),但使用它的前提是,你已經(jīng)擁有了 Rhinoceros 和 Revit?;诖?,你可以在www.rhino3d.com/inside/revit/Beta/getting-started#installation?找到 Getting Started,再點(diǎn)擊 installation,點(diǎn)擊 Download Rhino.Inside Revit Beta,下載到最新的 RIR。

然后,像安裝常規(guī)的 Revit 插件一樣把它安裝好,你就會(huì)在自己的 Revit 菜單欄上,發(fā)現(xiàn) Rhino.inside 標(biāo)簽,不過(guò)此時(shí)除了 Start 圖標(biāo)之外,其它的選項(xiàng)基本全部是灰的;點(diǎn)擊 Start,喚醒了插件以后,就能在讓 Rhino 和 Grasshopper 像 Dynamo 一樣,以一款插件的形式運(yùn)行在你的 Revit 上了。


需要注意的是,從 RIR 中喚醒的 Grasshopper,和你直接從外面喚醒的 Grasshopper 有些區(qū)別,與一般的 Grasshopper 拓展不同,RIR 的相關(guān)功能,你只有從 Revit 喚醒 Grasshopper 的時(shí)候才能見(jiàn)到,一般是無(wú)法使用的,這也可以被視為從 RIR 啟動(dòng) Grasshopper 的標(biāo)志。

在我的觀點(diǎn)里,這不僅僅是 Revit 多了一款新插件這么簡(jiǎn)單,它是足以影響整個(gè)建筑設(shè)計(jì)生態(tài)的大事。首先,以 Revit 為代表的傳統(tǒng) BIM 圈和以 Rhino 為代表的參數(shù)化設(shè)計(jì)圈,一直存在著一層隔膜 ——這兩個(gè)圈子無(wú)論是技術(shù)、人員,還是目標(biāo)和思路,都南轅北轍,平時(shí)也缺乏交流。參數(shù)化設(shè)計(jì)和方案設(shè)計(jì)搭界,屬于項(xiàng)目的前期階段,一般由前沿事務(wù)所和高校引領(lǐng)潮流,他們會(huì)基于 Rhino 做很多傳統(tǒng)流程完全無(wú)法實(shí)現(xiàn)的復(fù)雜的設(shè)計(jì),并且在上面實(shí)現(xiàn)自己開(kāi)發(fā)的各種算法。

而傳統(tǒng)意義上 BIM 的應(yīng)用點(diǎn),則與施工結(jié)合得更為緊密,拿來(lái)搞算量、漫游、模擬、動(dòng)畫(huà)和工程管理等,雖然也有不少設(shè)計(jì)院拿來(lái)做正向設(shè)計(jì)的例子,但我依然覺(jué)得施工企業(yè)的 BIM 做得更加出彩,也更有價(jià)值。
這層隔膜在隔開(kāi)了這兩個(gè)圈子的同時(shí),也阻礙了項(xiàng)目信息的傳遞和數(shù)據(jù)流通,直接表現(xiàn)就是前期成果后期無(wú)法直接使用,不但不利于一線人員的日常工作,也不利于行業(yè)的數(shù)字化發(fā)展。
在這個(gè)層面,軟件廠商會(huì)比一線從業(yè)者,更想要數(shù)據(jù)全流程貫通,也一直在針對(duì)這些難點(diǎn)展開(kāi)自己的行動(dòng),但不同廠商的思路有所不同。Autodesk 想打造和蘋(píng)果一樣封閉但完整的生態(tài),希望用戶(hù)拿 Autodesk 全家桶解決所有問(wèn)題,所以 Autodesk 收購(gòu)了 Dynamo,把它整合進(jìn)了以 Revit 為代表的全家桶中 。

Rhino 則基于 OpenBIM 理念,一直在努力讓自己成為各路軟件數(shù)據(jù)交互的膠水平臺(tái),之前跟 ArchiCAD 搞過(guò) Rhino - Grasshopper - ArchiCAD Toolset,后來(lái)又圍繞 Revit 打造了 Rhinoinside.Revit。

看得出他們都在往對(duì)方的圈子里伸手 ——信息化軟件想要參數(shù)化,參數(shù)化軟件想要信息化,不過(guò)站在使用者的角度,大家都知道,只有二者合流到一起,才是真正的數(shù)字化趨勢(shì)。
你可以把 RIR 的誕生,看作是封閉系統(tǒng)多了一條使用外界生態(tài)的路徑,或者說(shuō)開(kāi)放平臺(tái)也把整個(gè)封閉系統(tǒng)當(dāng)作了自己平臺(tái)上的一環(huán),至少在理論上能讓全過(guò)程信息工作流更暢通。而從行業(yè)視角回到具體的工作者身上,它能讓我們做出很多厲害的作品。
?2.用 RIR 做什么?
在過(guò)去的一年中,我的工作流程常常是這樣的:用 Grasshopper 做模型和計(jì)算,再通過(guò) RIR 把結(jié)果傳輸進(jìn) Revit 里,復(fù)盤(pán)整個(gè)工作流,整合其中的電池與代碼,最后把流程編譯成完整的插件,以供下次使用?;谶@套流程,我可以實(shí)現(xiàn)產(chǎn)研結(jié)合,在項(xiàng)目中做開(kāi)發(fā),每一個(gè)項(xiàng)目的研發(fā)成果都能為下個(gè)項(xiàng)目打下堅(jiān)實(shí)的基礎(chǔ)。
去年,我在湖南省建筑設(shè)計(jì)院建筑專(zhuān)業(yè)分享會(huì)上,基于自己和同事的團(tuán)隊(duì)成果,做了很多類(lèi)似的案例分享,這次完整的演講我寫(xiě)到了《「BBT」數(shù)能化如何賦能建筑設(shè)計(jì)?》里。比如基于 GIS 實(shí)景模型和網(wǎng)絡(luò)大數(shù)據(jù)的場(chǎng)地分析,與地質(zhì)模型工作流:

再比如負(fù)責(zé)研發(fā)的同事利用 RIR 研發(fā)的使用 Grasshopper 進(jìn)行房間自動(dòng)填色:

或者是負(fù)責(zé)綠建的同事基于 Grasshopper 做的建筑信息可視化、建筑性能的分析,都是基于這套流程的產(chǎn)物。

總而言之,RIR 作為一個(gè)溝通橋梁,要做的就是 I/O(Input/Output)——也就是讀取其它軟件的數(shù)據(jù),并把計(jì)算的結(jié)果轉(zhuǎn)到其它軟件中。大家都知道,BIM 模型的最大價(jià)值就在于其中的建筑信息——也可以被理解為建筑數(shù)據(jù)。有數(shù)據(jù),就可以基于它們做相應(yīng)的可視化,漂亮的數(shù)據(jù)會(huì)帶來(lái)漂亮的可視化。
但是,Revit 自身的可視化能力是有局限性的,它僅僅能完成一些簡(jiǎn)單的上色、炸開(kāi)而已,基本無(wú)法做動(dòng)作,更無(wú)法基于數(shù)據(jù)做出許多非線性的變化,而只要你手里有數(shù)據(jù),這些 Grasshopper 都可以做。拿一個(gè)項(xiàng)目舉例,長(zhǎng)沙市公共衛(wèi)生救治中心改擴(kuò)建項(xiàng)目,是由湖南省建筑設(shè)計(jì)院集團(tuán)股份有限公司醫(yī)療健康建筑設(shè)計(jì)研究中心完成的設(shè)計(jì),這個(gè)項(xiàng)目里我們就基于 Revit 正向設(shè)計(jì)的數(shù)據(jù),做了非常多數(shù)據(jù)的可視化表達(dá)。

團(tuán)隊(duì)用 RIR 讀取了 Revit 模型中的幾何、階段、名稱(chēng)、面積等信息,讓模型能夠在不同的條件下,動(dòng)態(tài)地展示 Revit 模型中的信息,完美銜接正向設(shè)計(jì)成果,發(fā)揮出數(shù)據(jù)在可視化方面的價(jià)值,比起表格里死板的數(shù)據(jù),這樣的呈現(xiàn)形式有明顯更強(qiáng)的說(shuō)服力。


另一方面,Rhino 本身是非常好的的建模軟件,它支持 Nurbs,比很多軟件的建模精度高很多,執(zhí)行速度快,兼容性也很強(qiáng),是很多專(zhuān)業(yè)的建模選擇。更重要的,在 Grasshopper 的加持下,它支持對(duì)建筑數(shù)據(jù)的復(fù)雜運(yùn)算。
還是以這個(gè)項(xiàng)目為例,團(tuán)隊(duì)使用 RIR 完成了地勘模型的自動(dòng)生成。在整個(gè)過(guò)程中,團(tuán)隊(duì)首先利用了 Rhino 的兼容性,把 CAD 地勘圖的數(shù)據(jù),完整地導(dǎo)入進(jìn)了 Grasshopper,并實(shí)現(xiàn)了數(shù)據(jù)清洗;再以 Grasshopper 環(huán)境下的 Python 為基礎(chǔ),設(shè)計(jì)了許多的類(lèi),用于承載數(shù)據(jù),并針對(duì)數(shù)據(jù)做出反應(yīng)和計(jì)算,從而調(diào)用 API 生成實(shí)體模型。

通過(guò)對(duì)模型進(jìn)行交集計(jì)算,自動(dòng)算出柱子的受力及長(zhǎng)度;最后通過(guò) RIR 將數(shù)據(jù)寫(xiě)入模型,將模型傳入 Revit,實(shí)現(xiàn)整體流程的閉環(huán)。

更重要的,所有這些操作步驟都不是一次性的工作,我們最終把這些成果做成相應(yīng)的插件,比如可視化插件與地勘插件,從而改變機(jī)械的工作流程,完成項(xiàng)目之間實(shí)打?qū)嵉姆e累。
既然我們說(shuō)到 Rhinoinside.Revit,就不得不說(shuō)說(shuō) Rhino 和 Grasshopper。很多人都知道,我是一個(gè) Dynamo 和 Grasshopper 雙平臺(tái)玩家,所以不光是談?wù)劰ぷ鞒晒疫€想進(jìn)一步聊聊我自己對(duì)這兩款軟件的理解。
3.Dynamo和 Grasshopper有什么區(qū)別?
RIR 怎么通信,對(duì)普通人來(lái)說(shuō)不重要,重要的是 RIR 背后的 Grasshopper,既然 Dynamo 和 Grasshopper 的定位一致——至少在表面上是這樣,那我們自然要對(duì)二者進(jìn)行比較。就本質(zhì)而言,它們都是面向設(shè)計(jì)師的可視化編程平臺(tái),功能基本上沒(méi)有區(qū)別,無(wú)論是大批量處理建筑信息,還是進(jìn)行復(fù)雜的參數(shù)化建模,甚至完成設(shè)計(jì)流程自動(dòng)化,他們的技術(shù)路徑和實(shí)現(xiàn)手法,幾乎都一模一樣。但如果我們?nèi)タ催@兩款軟件的細(xì)節(jié),還是能看出兩款產(chǎn)品設(shè)計(jì)思想的不同。
Grasshopper 在設(shè)計(jì)圈低代碼領(lǐng)域擁有無(wú)可比擬的先發(fā)優(yōu)勢(shì),它憑借著自身的多年積累,打造了極為豐富、完整、通用的生態(tài),插件豐富,資料齊全。在專(zhuān)門(mén)分享 Rhino 與 Grasshopper 插件的?www.food4rhino.com?上,每天都會(huì)有無(wú)數(shù)愛(ài)好者上傳自己的插件作品。

隨手舉幾個(gè)例子,比如?Ladybug?,可以做各種各樣的綠建、環(huán)境分析:

比如?Elefront?,支持深度圖紙?zhí)幚恚?/p>
甚至還有像?Compas?這樣的神器,能支持你玩機(jī)器學(xué)習(xí)和機(jī)器臂這種前沿方向的探索:
能把這些插件使用起來(lái),正可謂上可九天攬?jiān)拢驴晌逖笞谨M。如果你想開(kāi)發(fā)自己的專(zhuān)屬插件,你能得到的文檔、案例和開(kāi)源代碼都數(shù)不勝數(shù),上手會(huì)極為方便。在開(kāi)發(fā)環(huán)境上,Grasshopper 不但支持 Python 直寫(xiě),還同時(shí)支持 C#和 VB 的深度開(kāi)發(fā),你在 Grasshopper 環(huán)境寫(xiě)代碼,和開(kāi)發(fā)者用的是同一套 API,輕易獲得和官方一致的開(kāi)發(fā)體驗(yàn)。
湖南省建筑設(shè)計(jì)院的結(jié)構(gòu)大神?@李超,曾在文章《「BBT」設(shè)計(jì)師的數(shù)字化轉(zhuǎn)型》中提到:
食堂師傅如果吃的食物和他賣(mài)出去的食物是一樣的話,食堂的飯菜就會(huì)特別香;反之,食堂就是一個(gè)喂豬的地方。
好的開(kāi)發(fā)環(huán)境會(huì)吸引更多的優(yōu)秀開(kāi)發(fā)者,優(yōu)秀的開(kāi)發(fā)者能夠豐富 Rhino 和 Grasshopper 的軟件生態(tài),這樣整個(gè)生態(tài)的發(fā)展就進(jìn)入正向循環(huán),這也是為什么 Grasshopper 上的插件總會(huì)比其它領(lǐng)域豐富且前沿的原因。我曾試圖用 Dynamo 寫(xiě)一些自動(dòng)化的 Python 腳本,但是在 Dynamo 中寫(xiě) Python 的體驗(yàn)著實(shí)糟糕,連最基本的變量都無(wú)法打印,Debug 極為痛苦,讓我沒(méi)有寫(xiě)下去的欲望,而 Grasshopper 不但支持打印,還有完整的 API 以供查詢(xún),讓人敲代碼的欲望都變高了。
最后,我們說(shuō) Grasshopper 是一個(gè)「膠水平臺(tái)」,這也就意味著它是各種不同軟件數(shù)據(jù)流轉(zhuǎn)的連接點(diǎn),你可以在 Grasshopper 下用一套東西完成所有建筑信息的計(jì)算,超越任何一家軟件公司的封閉環(huán)境,在外部實(shí)現(xiàn)新的大一統(tǒng),我認(rèn)為 Grasshopper 這一波操作在大氣層的高度。說(shuō)完 Grasshopper,我們返回來(lái)說(shuō)說(shuō) Dynamo 的優(yōu)點(diǎn):我把它稱(chēng)作「信息化軟件的反殺」。Dynamo 相比 Grasshopper,最大的優(yōu)勢(shì)便是他親兒子的身份——Autodesk 買(mǎi)來(lái)的也是親的!這能讓 Dynamo 獲得更多的官方資源,因而你可以在 Dynamo 上發(fā)現(xiàn)很多圍繞 Revit 定制的插件,專(zhuān)門(mén)來(lái)處理和 Revit 相關(guān)的內(nèi)容,專(zhuān)門(mén)為 Revit 這一款軟件做定制服務(wù),這些是沒(méi)有官方支持的 Grasshopper 難以企及的。
其次,由于 Dynamo 是服務(wù)信息化的軟件起家,信息化處理的能力可以說(shuō)是絕對(duì)的強(qiáng)大。
比如它的數(shù)據(jù)結(jié)構(gòu)設(shè)定,就和 Python 的 list 非常相似,靈活且自由,既能隨意控制數(shù)據(jù)位置和大小,也能快速編輯讀取,配合連綴(lacing)功能,Dynamo 在處理巨量、不等維的復(fù)雜類(lèi)型數(shù)據(jù)時(shí),有著和 Python 一樣巨大的優(yōu)勢(shì)。
反觀 Grasshopper,它使用的是一種叫做 Datatree 的數(shù)據(jù)結(jié)構(gòu),和 C#中的 Array 比較類(lèi)似,可以看作是 Array 的智能升級(jí)版。它以 Path 的形式,定死了數(shù)據(jù)容器的大小、類(lèi)型和位置,確實(shí)能針對(duì)輸入做出十分智能的反應(yīng),比如數(shù)據(jù)自動(dòng)匹配和運(yùn)算自動(dòng)循環(huán),但在面對(duì)復(fù)雜多維數(shù)據(jù)時(shí),操作會(huì)相當(dāng)麻煩。有人會(huì)說(shuō):Grasshopper 中有 Python,你可以用 Python 處理大量數(shù)據(jù)。但即便你投機(jī)取巧使用 Grasshopper 中的 Python 處理了那些數(shù)據(jù),Grasshopper 其本身卻并不支持 Python List,你還是沒(méi)辦法讀取和操作那些 List 中的內(nèi)容,雖然有 treehelper 等其它方式,但也不是萬(wàn)能的。
總之,二者各有優(yōu)劣,都體現(xiàn)出了各自出身就帶來(lái)的特點(diǎn)。
4.有必要轉(zhuǎn)到 Rhinoinside 嗎?
最后,和你聊聊我關(guān)于學(xué)習(xí)和應(yīng)用的建議。攝影圈子有這么一個(gè)說(shuō)法:
如果你說(shuō)不清楚當(dāng)前手里的設(shè)備究竟在哪一點(diǎn)無(wú)法滿(mǎn)足你的攝影需求,就不要去盲目更換設(shè)備。軟件工具的選擇也是這樣,我希望你不要成為一個(gè)工具黨,而是要先明確自己的定位與需求。如果 Dynamo 已經(jīng)能夠滿(mǎn)足你的日常需求,且 Grasshopper 無(wú)法為你創(chuàng)造新的增長(zhǎng)點(diǎn),放棄原本在 Dynamo 平臺(tái)的積累是不明智的,何況 Dynamo 自帶信息化軟件的先天優(yōu)勢(shì),可以確定是相對(duì)適合 Revit 的。
但如果你想在參數(shù)化、低代碼編程,甚至建筑前沿領(lǐng)域 ——比如寫(xiě)插件、玩機(jī)械臂、機(jī)器學(xué)習(xí)等方面有所造詣,我會(huì)強(qiáng)烈推薦你迅速轉(zhuǎn)移到 Grasshopper 上。選軟件和選手機(jī)一樣,就是在選生態(tài),優(yōu)秀生態(tài)對(duì)個(gè)人的提升和幫助是難以估量的。
以我為例,我在 Grasshopper 工作的效率,熱情和技術(shù)上限,很明顯會(huì)比 Dynamo 平臺(tái)高出 N 個(gè)層級(jí)。此外,無(wú)論是從 Grasshopper 轉(zhuǎn)到 Dynamo,還是從 Dynamo 轉(zhuǎn)到 Grasshopper,同一類(lèi)型軟件間的轉(zhuǎn)換都是十分迅速的,適應(yīng)一下不同軟件的數(shù)據(jù)結(jié)構(gòu),就能快速轉(zhuǎn)換,大可不必為「選錯(cuò)了軟件」而苦惱。就我個(gè)人而言,因?yàn)楣ぷ鞯男再|(zhì)和對(duì)未來(lái)的自我定位,我已經(jīng)很久沒(méi)用 Dynamo 了,我會(huì)更希望和大家一起玩 Grasshopper。
記得幾個(gè)月前我就在自己主理的 Dynamo 課程交流群中放出話來(lái),要免費(fèi)把課程更新一些內(nèi)容,也希望能帶著更多的同學(xué)來(lái) Grasshopper 平臺(tái)上玩,同時(shí)分享更多的內(nèi)容,過(guò)去的一年太過(guò)忙碌,以致于這件事被擱置了一段時(shí)間。但它還是埋在我心里,希望有一天能把它實(shí)現(xiàn),說(shuō)不準(zhǔn)哪一天,就像今天的分享一樣,悄然上線了呢!
好了,VCTCN93 的這篇文章,就給你分享到這里,希望能給你在新領(lǐng)域的探索帶來(lái)一些參考。他也會(huì)把這一期的內(nèi)容同步到他和幾位小伙伴一起打理的公眾號(hào)「數(shù)能化」里,對(duì)建筑數(shù)據(jù)、參數(shù)化設(shè)計(jì)感興趣的小伙伴,可以關(guān)注一波。
至于 VCTCN93承諾的課程免費(fèi)更新和新課上線,讓他在留言區(qū)領(lǐng)略一下你們的催更吧!有態(tài)度,有深度,BIMBOX,咱們下次見(jiàn)!
特別感謝湖南省建筑設(shè)計(jì)院集團(tuán)有限公司醫(yī)療健康建筑設(shè)計(jì)研究中心提供的案例支持,研發(fā)成員:孫昱、文泓森、劉孿孌、周偉杰。