完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學歷
* 工作性質(zhì)
請先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

Dynamo教程 | Dynamo教程:Dynamo中的Function 節(jié)點怎么用?

發(fā)布于:2024-11-09 06:50:02

BIM中文網(wǎng)

更多

Dynamo 有幾個關(guān)于 Function 的節(jié)點:

64844a38bb63414c3b09d517e14c221d.png

在使用這些節(jié)點之前,我們要先理解什么是 Dynamo 中的 Function。

理解 Function

在很多編程語言中,都用 Function 來定義函數(shù)。編程函數(shù)是能實現(xiàn)預定義功能的代碼塊,可以包含不同數(shù)量的輸入?yún)?shù)。Dynamo 中的大部分節(jié)點都是經(jīng)過 UI 包裝后的視覺樣式,其本質(zhì)是通過 DesignScript 定義的函數(shù),即 Function。

62b5540e92a77be6d8077423f72a0d62.png

對于帶輸入?yún)?shù)的節(jié)點

當所有輸入端都收到明確的值(含默認值)時,將執(zhí)行函數(shù)并輸出結(jié)果:

0257e6b1bd30bd65028d5b8dda017548.png

* 上方的節(jié)點可以描述為,有一個函數(shù) Function(value1, value2),作用是返回兩個數(shù)字中較大的值。當 value1 = 5,value2 = 10 時,執(zhí)行 Function(5, 10),輸出結(jié)果為 10。

如果不滿足上一條件,節(jié)點還有輸出嗎?

有,輸出 Function

bb4e183c9e352d773ec9fdda231cf793.png

* 上方兩個節(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ù)量一致

6ce74e9e2dd36f30a7ba92f27ec6cee8.png

* 上方分別將對應數(shù)值應用到函數(shù),其結(jié)果和直接使用節(jié)點運算是一樣的。正常情況也沒必要在這時使用該節(jié)點。

節(jié)點:Function Compose

描述:將多個函數(shù)組合成一個復合函數(shù)

輸入端 function0:需要組合的函數(shù)

8f84f017d9b2441103301501c116e0ed.png

* 上方定義了一個復合函數(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ù)

be7b0eb92450c86f7ce53eb6e6e368a5.png

由于 Dynamo 能夠自動枚舉列表,也可以使用以下節(jié)點達到同樣效果:

2d3dee746856dfeb7f9634af9374329e.png

節(jié)點:List.GroupByFunction

描述:先將列表元素應用到函數(shù),再根據(jù)函數(shù)結(jié)果對原列表分組

輸入端 list:待分組列表

輸入端 groupFunction:函數(shù)

6bce22096ce3ab2dd1a63d4a950b9ed8.png

最終將相同函數(shù)結(jié)果所對應的列表項放到一個組,拆解過程如下:

4021f3bbb08c1341536c15d10a6bddd4.png

節(jié)點:List.SortByFunction

描述:先將列表元素應用到函數(shù),再根據(jù)函數(shù)結(jié)果對原列表排序

輸入端 list:待排序列表

輸入端 sortFunction:函數(shù)

4c69e4866eb132a863df9d7fb9b8f0d0.png

最終根據(jù)函數(shù)結(jié)果對原列表排序,拆解過程如下:

358f9b330a4574027e7f3845148e7b87.png

本文源自微信公眾號:BIMExp

作者: leoskudos

本文版權(quán)歸腿腿教學網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

未標題-1.jpg

上一篇:Dynamo教程 | Dynamo軟件教程:用Dynamo自動放置多管綜合支吊架

下一篇:Dynamo教程 | Dynamo可以單獨使用嗎?Dynamo適于做什么?