由於近代工程中,許多建築師的設計與想法越來越富有想像力及創造力,例如:桃園T3航廈的海鷗振翅屋頂、台北大巨蛋的特殊造型帷幕,但這些特殊造型在BIM專案中是比較難以去建置出來的,而最近我們某一個專案也遇到了特殊造型的需求,因此透過Dynamo來製作海浪造型天花板,希望能夠讓各位讀者以後遇到類似案件能夠有所啟發。

本專案的波浪造型天花板有如海浪般一段段重複的波形,因此在這邊我們將採用Sin函數,如圖1所示,來進行造型控制。

圖1

透過Dynamo圖形化程式撰寫,將產出如圖2所示之流程。接著,文章後續將會按照程式的編成逐一介紹每個步驟及節點含意。(圖示裡面的數字都是可以任意調整的,這個示範中只使用少量的數字做案例)

圖2

■ Dynamo節點與功能介紹

要製作Sin函數的波浪曲線,我們將使用聚合線的方式來建置。首先,我們使用Point.ByCoordinates這個節點建立一列「點」,接著用Code Block直接建立一連串位於X軸上的陣列點,而Code Block中的「0..10..1」代表的意思為,在0到10這串數字中等差為+1,也就是0、1、2、3……9、10。(圖3)

圖3

再者,為了要讓它們有高低起伏,所以這邊將使用到z軸。由於Sin使用的是角度所以要先將數值換算一下,我們希望起點跟終點為0,因此將每一個數值都除以平均數再乘以180,來得到每一個點的偏移角度,藉此將會讓最大值是平均的兩倍,但要注意原始數值必須是等差數列才可以!如果要用讓波型更多曲折,則可以不使用平均數作為分母,用一些定值得數字當作分母,就可以產生多個循環的波段。(圖4)

圖4

接著再把產生的數列連接到Math.Sin的節點,因為前面已經將波段轉成角度了,這邊只要再把他們連接到Point.ByCoordinates節點的z軸,就可以獲得一個有波型的點位,原本x軸的點為為11個點,這裡接上z軸的11個點剛好一個對一個。(圖5)

圖5

為了讓這些點位做一個有規則的位移,將Sin產生的數值陣列,進行一連串的位移,這個步驟是為了要讓進行第三軸y軸的時候,變成是一個有循環的波型,所以,用陣列來位移,第一個位移一位,第二個位移兩位,這樣進行的。(圖6)

圖6

完成後,由於x跟y軸也要重新設計點位,先將x點位循環五次,list後面開啟層級的功能,使陣列為分開重複的,如果沒開啟他會變成一大條的陣列,在建立curve的時候會比較麻煩一點,所以前面先設定好。(圖7)

圖7

創造一個新的y節點後將他們全部接在一起,這個步驟注意在點節點時,x位置的階層也要選為L3。(圖8)

圖8

這一個步驟完成後的畫面(圖9),看到這些點點是不是很有成就感阿,學習dynamo就是如此輕鬆愉快,而且不用輸入一些if、for的程式碼,只要節點拉一拉就完成囉!

圖9

最後一步只要接上產生curve的節點,再把curve接到產生面的節點就完成全部的步驟了(圖10)。要注意這curve是有順序的,若做完最後的步驟,卻產生了不是預料之中的面型,可以先確認一下curve的順序。

圖10

■ 延伸探討:

如果想要控制波的高低可以用將z軸的節點接上一個係數(圖11),而係數插入的位置,如圖12所示。

圖11
圖12

如果想要是順暢的波型,則可以在x軸的清單中去掉最後一位,由於本專案是想要取得類似海浪的波形,所以保留了最後一位數(圖13),而清單控制節點插入的位置,如圖14所示。

圖13
圖14

以上是本週帶來的Dynamo技術分享,如果有誤及任何問題歡迎各位先進指教或與我們聯繫。