王松
(華僑大學建筑學院 福建廈門 361021)
可視化編程語言下的計算式設計插件
——Dynamo初探
王松
(華僑大學建筑學院 福建廈門 361021)
當今國內的BIM發展勢頭良好,很多優秀的BIM設計平臺被引入建筑設計及其管理的進程當中,Dynamo作為其中的一員,目前還沒有被國內大部分設計工作者所熟知。本文對Dynamo插件采用的計算式設計和可視化編程語言進行了簡單的介紹,通過三個案例對其應用加以說明,并對其前景進行了一定的展望。
計算式設計;可視化編程語言;Dynamo
E-mail:1092790626@qq.com
BIM在建筑設計設計和管理上的優勢毋庸置疑,近年來,我國對BIM的重視程度不斷提高,很多設計院都開始采用BIM技術指導設計。BIM軟件眾多,例如Revit,ArchiCAD等,其中Revit在高校和設計院的普及率比較廣泛,在建筑設計、水暖電工程設計、結構設計上相較于其他軟件能力突出,交流便捷。Revit也擁有眾多插件,例如速博插件,橄欖山插件等,但一直缺少一種讓設計師直面程序設計的插件,Dynamo的出現打破了這種局面,通過計算式設計和可視化編程語言,設計師可以在Dynamo簡潔的界面中隨心所欲的編寫邏輯算法,解決設計難題;算法也可以保存為指定文件,方便反復使用與修改。
計算式設計,是指利用計算機強大的運算能力來解決設計問題,通過自動化、腳本編寫、模擬計算和參數化等各種技術來生成設計解決方案。近年來,隨著計算機科學技術的不斷發展,計算式設計也越來越多的被引入建筑設計,并對其產生深遠的影響。許多設計任務都已經開始嘗試使用新的計算技術,幫助設計師優化設計流程,生成創新型的設計選項。計算技術用途廣泛,例如可以將復雜冗長的生產過程自動化起來,或者運用編程語言編寫依據輸入條件自動生成三維形體的應用程序[1]。
“可視化編程語言”即是讓設計師在圖形化的操作界面下創建程序。通過掌握一定的編程邏輯知識,針對某一問題,設置一套循序漸進的步驟方法,在軟件中連接預定義的功能模塊,輕松創建自己的算法和工具,通過輸入、處理和輸出的基本邏輯解決該問題。設計師不必從頭編寫復雜的程序代碼,就可以享受計算式設計帶來的方便與快捷[2]。
Dynamo是一個運行在Autodesk Revit和Vasari上的開源插件,在0.7以后的版本中也可以獨立運行,并在0.8以后的版本中集合了中文語言包。通過基于結點的可視化編程界面,Dynamo可以讓用戶自由創建計算式設計模型或者其它自動化處理過程。用戶可以使用完善的數據處理,關聯性結構和幾何控制功能。這些功能在基于傳統CAD界面的軟件中是很難做到的。更重要的是,Dynamo讓設計師可以在BIM環境(Revit平臺)中充分發揮計算式設計能力。設計師完全可以自定義Revit中各種建筑構件的創建與修改流程。Dynamo是開源的,允許設計師對插件內部的程序進行修改,并在Dynamo論壇上提供建議。

圖1 Dynamo界面
Dynamo提供了與Autodesk Revit和Vasari的全新交互思路。設計師可以創建完整的幾何體生成—定位—可視化流程。可視化編程界面很大程度上擴展了使用BIM驅動設計迭代的方式方法。作為插件,Dynamo可以運行在Revit2013及以后的各版本之上,還有Vasari Beta 3。Dynamo在獨立運行時,除Revit相關的結點無法使用外,其它功能都可正常使用。同時Dynamo也正在嘗試集成到其它平臺上。目前已經出現了基于Rhino平臺的Rhynamo插件,該插件也在不斷完善中。
由于操作界面和操作方法的相似性,Dynamo常常被許多人用來和Grasshopper比較,被稱作“Revit上的Grasshopper”。這種說法看似正確,但其實是對Rhino和Revit兩種平臺的誤解。
Grasshopper作為基于Rhino平臺的插件,有著豐富的拓展工具,可以幫助設計者通過參數化手段處理復雜幾何形體,大大加強了Rhino對形體的處理能力。經過幾年的發展,Grasshopper在這方面的功能日漸成熟,作為當今參數化設計軟件中最廣為人知的插件,Grasshopper有著較為成熟的數據結構和廣泛的用戶,而且許多優秀的外置運算器可以被集成其中,如Kangraoo,Geco等等。而Dynamo想跟Grasshopper做到類似程度,還需要很長的軟件開發時間,因為創建自由幾何形體并不是Revit的強項。Revit的出色之處在于管理建筑信息,我們知道,Revit中的模型不僅具有3D造型,也帶有豐富的數據信息,在Dynamo出現之前,還沒有一款插件可以支持Revit以可視化的方式管理這些信息模型。Dynamo的出現,填補了這一空白。使得信息模型的管理更加靈活。
以下通過幾個案例展示Dynamo利用計算式設計方法在revit平臺下處理建筑信息的能力。
對于建筑設計中相同元素(門、窗、桌椅等)基于某一規律的排布問題,雖然難度不大,但有時修改起來非常費時。例如階梯式座椅排布問題,在水平投影面積固定的一片區域,如何排布階梯式的座椅,一般的CAD軟件難以勝任,單用Revit本身處理起來也比較麻煩,在利用Dynamo結合Revit,就能很好的解決這個問題。
操作實例擬在一個水平投影為4m×6m的區域內布置一組行列間距均為0.8m,高度間距為0.5m的座椅組。在操作過程中,可以將每個座椅抽象為一個點,而每個點在Dynamo的坐標系中,都含有坐標信息X、Y、Z,這個坐標信息和Revit中的坐標信息是相對應的。換言之,Revit中的座椅排布可以轉化為Dynamo中的點陣排布,依照這種轉化思路,我們就可以在Dynamo中思考該問題的解決辦法,我們用水平投影的總寬度(W)除以寬度方向的間距(Dw),得到一個數值k,用運算器Math.Floor將該數值取整為Kw(k不一定為整數),我們便得出了寬度方向上點的數量(Revit中座椅的數量),而Dw即為寬度方向上相鄰兩點之間的距離(Revit中相鄰兩列座椅的水平距離)。這時用運算器Number Sequence將數值帶入,start為起始數值,這個數值可以依據Revit中座椅陣列的位置調整,amount=Kw,step=Dw,于是我們得到一組等差數列,即寬度方向上座椅的排布。同理,我們可以得到長度方向上座椅的排布,amount=Kd,step=Dd。(圖3)將兩個方向的點陣納入運算器Point.ByCoordinates中,運用叉積運算方法,得到了一組二維數組,即我們需要的座椅在水平方向上的排列方式。至于座椅高度方向上的H值,即每行座椅的高度,可以利用H/Dd(即階梯角度的正切值)將長度方向的數值轉換為高度值。

圖2 計算思路

圖3 Dynamo計算得出的結果
為了使運算界面更加簡潔,如果這類計算具有很強的實用性,我們可以將中間的計算算式打包成一個自定義節點(Custom Node)并賦予節點名稱和端口名稱(圖4)設計師只需改變輸入端的數據,便可由計算機計算生成不同的結果。(圖5)從這個簡單的案例中可以發現計算式設計的優勢所在:在可視化平臺上搭建邏輯算式,約束元素排布,在保證靈活性的前提下,使得設計的可控性更強,這正是設計師一貫追求的方法。
第一個案操作實例通過將建筑構件的排布轉化為點的排布,將建筑構件的管理轉化為對點的管理,解決了座椅的排布問題。不難看出,管理控制點是一種很好的轉化思維,以此類推,我們也可以管理Revit中的線或面,從而創建非常規的形體。在夢露大廈形體的模擬當中,Dynamo只利用了Revit概念體量中的兩條焦點相同,焦距不同的橢圓線,便創造出了扭轉的塔樓形體,且形體可以依照輸入端的數據加以控制。

圖5 不同賦值下的座椅排布
內圈的橢圓線a用于生成塔樓形體。從夢露大廈的形體可以得知,塔樓形體分為四個部分:上,下兩段的扭轉角度較小,而中間兩段的扭轉角度較大,故形體建模也分為四個部分的數據分別輸入,每個部分的層數和旋轉角度均有不同。
首先將橢圓線a按照Z軸的方向向上復制,數目和間距分別為層數和層高,這時我們得到的是一個沒有旋轉的一組曲線,然后利用Dynamo中的Geometry.Rotate這個節點進行旋轉,該節點的輸入端有三個端口,分別為geometry(幾何)、basePlane(基面)和degrees(角度)。在基面輸入端輸入Plane.XY,即確定了形體的基面方向(水平面),geometry端口輸入剛剛得到的曲線組,degrees端口輸入角度數據。角度數據的處理,運用了一個自定義節點,該節點將四個部分的曲線旋轉數據組合成一個數組(list),傳遞給degrees輸入端,至于每個部分的曲線旋轉數據又被分為三個部分,起始角度,旋轉角度(由層數×每層旋轉角度得到)和終止角度組成,第一部分的終止角度被輸入到第二部分的起始角度端口,以此類推,得到了四組旋轉角度數據,最后將這四組數據組合為一組數據,便得到了塔樓扭轉的所有角度數據。由Geometry.Rotate節點生成了旋轉的橢圓線組,將這組曲線輸入到PolySurface.Byloft的節點中(該節點由將不同高度層的曲線轉化為光滑曲面),最終得到了扭轉的塔樓形體(圖6)。
塔樓挑檐板的生成邏輯與塔樓形體類似,利用Curve.ExtrudeAsSolid節點分別將外圈的橢圓線b和內圈橢圓線a沿Z方向擠出相同的厚度,隨即得到兩個實體(Solid),將兩實體進行布爾運算,得到挑檐板實體,然后依照相同的邏輯沿Z軸方向向上旋轉,便生成了旋轉的挑檐板實體(圖7)。
這種方法看似復雜,但只要掌握了一定的邏輯思路,構建這樣的形體并不困難,況且形體建成后,可以隨意修改,層數,層高,角度均可以控制,相較于單純運用Revit的反復建模修改,Dynamo再次體現出其便捷性與高效性。

圖6 塔樓形體的生成

圖7 塔樓挑檐板的生成及塔樓最終成果
在由The living設計的紐約現代藝術博物館PS1年輕建筑師方案“hy-fi”中,結合了先進的生物技術,建筑完全由玉米莖和特質根結構材料制作的有機磚組成,并且完全不耗費任何能量,也沒有任何碳排放。在建筑的建造過程中,曲面磚墻的交錯砌筑方式是一個難點,針對這個難點,Dynamo允許設計師通過試驗的辦法進行模擬并得到多個方案,(圖8,圖9)經過人為篩選,最后得出了搭接方式較為合理的砌筑方式。從中我們可以看出,Dynamo對實際項目中建筑的建造方法也具有一定的指導性。


圖8 Dynam o模擬“hy-fi”曲面磚墻建造

圖9“hy-fi”建成實體
結合以上三個案例,可以看出Dynamo對設計師的設計思維和邏輯有著較高的要求,而軟件本身的操作并不復雜,在連接各個計算功能模塊的同時,設計師的設計思路不知不覺躍然“紙”上,這對正確思路的培養十分有益,在這點上Dynamo和Grasshopper具有同樣的優勢,雖然造型手段尚不夠豐富,但Dynamo的獨特優勢在于有著強大的Revit平臺進行支撐,不僅可以幫助設計師在建模上有所突破,更重要的是,在建造和管理方面,Dynamo可以將模型中的信息依照一定邏輯重組,在最終的方案成果中,所有的原始信息都會被完整的保留下來。相較于Grasshopper復雜的形體模式處理,這些功能則更加實用,更加適合生產生活的需要。
計算式設計的基礎是腳本的編寫,為了讓設計師省去學習編程的時間,像Grasshopper,Dynamo之類的插件通過編寫預定義功能節點的方式,讓設計師“拼裝”程序,以滿足自身需要。但是節點可視化編程本身的特點,靜態的數據處理方式一定程度上限制了編程語言對數據結構處理的能力,這也是Grasshopper,Dynamo之類插件不斷更新的原因。在這方面,利用Python等計算機語言可以更加自由的處理數據,彌補軟件的不足。一些設計師甚至直接用計算機語言編寫程序,通過邏輯思維,用最簡潔的辦法具有針對性的解決設計難題,避免了由于節點運算能力的不足導致思維不得不走“彎路”。
隨著計算機、材料、制造業等相關產業技術在建筑領域的不斷發展,近年來出現了可以打印建筑構件甚至小型房屋的3D打印技術,極大的提高了生產效率和建筑的適應性以及可變性。這在技術上是一個質的飛躍,也會極大影響到建筑設計思維:由于3D打印采用數控技術,而不再是人工砌筑,若想操控3D打印機,使之按照設計師的思維方式按步驟合理的打印建筑,必要的編程知識是不可或缺的。如果設計師懂得編程,不但可以豐富自身的設計手段,更可以有效的操控機械實現設計建造,避免了設計師與施工方的理解差異,交流不暢等導致的遺憾。
利用Dynamo的開源性,設計師可以更改預定義功能節點中出現的錯誤,不斷優化這個平臺。當然,基于商業的目的,Dynamo研發團隊也推出了Dynamo Studio,這是一款界面更加優化,功能更加全面,性能更加穩定的軟件平臺,通過收取一定費用來支持軟件的研發和網站的維護。但該研發團隊也指出,Dynamo這款插件將繼續保持開源性并向用戶提供免費下載和使用。這種軟件開發模式允許開發者和用戶之間平等交流,也使得軟件的更新速度幾乎達到了日日更新。Dynamo研發團隊種種友好的“舉動”也使許多設計師和愛好者加入到Dynamo的研發當中。
基于Revit平臺的計算式設計插件Dynamo,自身具備了如下的特點:
(1)作為BIM軟件平臺上的插件,方便管理模型及其信息,且具有一定的造型能力。
(2)可以脫離Revit平臺獨立運行,具有一定的獨立性。
(3)軟件始終保持開源,更新速度快,免費為設計師提供服務。
(4)擁有和其他同類軟件交互的語言接口(Python)。
(5)最新版本已經支持中文。
Dynamo的上述特點,使得其在同類軟件中有著無可比擬的優勢,雖然在軟件開發上尚不成熟,但它無疑瞄準了正確的方向。當今國內的BIM發展勢頭良好,很多優秀的BIM設計平臺被引入建筑設計及其管理的進程當中,Dynamo作為其中的一員,目前還沒有被國內大部分設計工作者所熟知。本文對Dynamo插件的原理進行了簡單的介紹,通過兩個操作案例和一個實際案例對其應用加以說明,并對其前景進行了一定的展望。在國外,Dynamo的應用已經不止于建筑,在橋梁,制造等產業,它的功效已經被越來越多的人所認同。相信在不久的將來,Dynamo插件可以更加完善,能夠被國內更多的設計師所了解并在實踐中加以運用,輔助設計師生成更多優秀的作品。
圖片來源:
圖8,圖9來自極客建筑論壇,其余均為作者自繪
[1]“初識DYNAMO”系列之一——可視化編程利器(http:// www.archgeek.org/2014/09/basicinfor/)
[2]The Dynamo Primer(http://dynamoprimer.com/)
Com putational algorithm design p lug-in in Visual programm ing language——an initial research of Dynamo
WANGSong
(School of Architecture,Huaqiao University,Xiamen 361021)
Nowadays the BIM(Building Information Modeling)sees a promising future.and Many BIM design platforms have been applicated in Architecture,Building and Construction management,yet Dynamo,however,as one of which,remains a new acquaintance to mostof the designers in China.This thesis consists in introducing briefly this plug-in using three pratical cases and providing its outlook.
Computational;Design;Visual Programming Language;Dynamo
TU201.4
A
1004-6135(2015)11-0105-06
本文為華僑大學研究生創新基金資助項目(華大研[2014]6號)
王松(1989.7- ),男。
2015-09-03
王 松(1989.7- ),男,碩士,主要從事建筑設計及其理論方面的研究。