下載app免費領取會員
Dynamo 有幾個關(guān)于 Function 的節(jié)點:
在使用這些節(jié)點之前,我們要先理解什么是 Dynamo 中的 Function。
在很多編程語言中,都用 Function 來定義函數(shù)。編程函數(shù)是能實現(xiàn)預定義功能的代碼塊,可以包含不同數(shù)量的輸入?yún)?shù)。Dynamo 中的大部分節(jié)點都是經(jīng)過 UI 包裝后的視覺樣式,其本質(zhì)是通過 DesignScript 定義的函數(shù),即 Function。
當所有輸入端都收到明確的值(含默認值)時,將執(zhí)行函數(shù)并輸出結(jié)果:
* 上方的節(jié)點可以描述為,有一個函數(shù) Function(value1, value2),作用是返回兩個數(shù)字中較大的值。當 value1 = 5,value2 = 10 時,執(zhí)行 Function(5, 10),輸出結(jié)果為 10。
如果不滿足上一條件,節(jié)點還有輸出嗎?
有,輸出 Function
* 上方兩個節(jié)點都輸出 Function,但其實兩個函數(shù)有所區(qū)別。1號節(jié)點已經(jīng)為 value1 賦值,因此value1 會作為已知變量存儲在函數(shù)內(nèi)部,節(jié)點輸出 Function(value2)。而2號節(jié)點未定義任何輸入,故輸出原函數(shù):Function(value1, value2)。
* 其他節(jié)點也類似,如果輸出預覽顯示為 Function,就根據(jù)輸入端的賦值情況來確定輸出函數(shù)的結(jié)構(gòu)。
節(jié)點:Function Apply
描述:將參數(shù)應用到函數(shù)
輸入端 function:用于接收函數(shù)
輸入端 argument0:用于接收輸入?yún)?shù),參數(shù)數(shù)量需和函數(shù)所需參數(shù)數(shù)量一致
* 上方分別將對應數(shù)值應用到函數(shù),其結(jié)果和直接使用節(jié)點運算是一樣的。正常情況也沒必要在這時使用該節(jié)點。
節(jié)點:Function Compose
描述:將多個函數(shù)組合成一個復合函數(shù)
輸入端 function0:需要組合的函數(shù)
* 上方定義了一個復合函數(shù),運行時先將 y = 3 應用到 function2,再將function2 的執(zhí)行結(jié)果(4)作為輸入?yún)?shù)傳遞到 function1 ,如此執(zhí)行到最后,將 function0 的結(jié)果輸出為 result = 6。
節(jié)點:List.Map
描述:將列表中的元素逐個應用到函數(shù),并由結(jié)果組成新的列表
輸入端 list:參數(shù)列表
輸入端 function:待執(zhí)行函數(shù)
由于 Dynamo 能夠自動枚舉列表,也可以使用以下節(jié)點達到同樣效果:
節(jié)點:List.GroupByFunction
描述:先將列表元素應用到函數(shù),再根據(jù)函數(shù)結(jié)果對原列表分組
輸入端 list:待分組列表
輸入端 groupFunction:函數(shù)
最終將相同函數(shù)結(jié)果所對應的列表項放到一個組,拆解過程如下:
節(jié)點:List.SortByFunction
描述:先將列表元素應用到函數(shù),再根據(jù)函數(shù)結(jié)果對原列表排序
輸入端 list:待排序列表
輸入端 sortFunction:函數(shù)
最終根據(jù)函數(shù)結(jié)果對原列表排序,拆解過程如下:
本文源自微信公眾號:BIMExp
作者: leoskudos
本文版權(quán)歸腿腿教學網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。
上一篇:Dynamo教程 | Dynamo軟件教程:用Dynamo自動放置多管綜合支吊架