Dynamo中的輸入全能型節點"code block"最全解析

定義:"code block"節點是Dynamo提供的允許直接編寫DesignScript的輸入節點。稱之為全能輸入全能型節點,是因為可以輸入數字、字符、列表、函數命令等。。

調用:鼠標在工作控價雙擊即可調用。

Dynamo中的輸入全能型節點

我們接下來做一個詳細的舉例說明。

輸入數字

"code block"節點,若要輸入數字,可以直接輸入數值,節點可以直接識別。

Dynamo中的輸入全能型節點

輸入字符

在Dynamo中,數據分為兩種,一種是數值,另外一種就是字符,要在"code block"節點中輸入字符,則需要在輸入內容上加上引號,注意一下,是英文的引號。

Dynamo中的輸入全能型節點

創建列表

"code block"節點可以快速創建列表。

使用[]可以創建任意的列表,如圖所示的數字列表和字符列表。注意這是最新版本revit2020的Dynamo的變化,以前的版本的採用{}來創建列表。

Dynamo中的輸入全能型節點

Dynamo中的輸入全能型節點

數字列表也是一樣。

Dynamo中的輸入全能型節點

其可以代替"range""sequence"節點創建遞增和遞減數值數列。創建的數列的方法有很多種,"數值..數值..數值""數值..數值..#數值""數值..#數值..數值"。第一個數值是起始值,第二個數值為最終值,第三個數值表示間距,#數值表示個數或者叫做項數。感受一下列的幾個例子。

Dynamo中的輸入全能型節點

創建多維度列表

使用()引入上述列表替換數值,則可以創建多維列表,如下圖。

Dynamo中的輸入全能型節點

當然不僅僅是限於替換第一個數據,其他的數據會表現出其他的結果。

可以將各列表合併成多維列表,類似於"list.create"的功能等。

Dynamo中的輸入全能型節點

執行節點命令

Dynamo的節點分為創建、行動、詢問三大類,絕大部分節點都是由兩部分組成,如下圖。

Dynamo中的輸入全能型節點

使用"code block"節點怎麼調用類似於上面節點呢?如下圖:

Dynamo中的輸入全能型節點

"code block"節點,可以簡化流程,相對來說,更加方便和直觀。

在"code block"節點中輸入命令,其聯想功能會自動打開下拉列表,列出所有相關聯的命令,提供給用戶選擇。合理的使用"code block"節點簡化程序,是dynamo提供給用戶進行可視化編程的另一種優化思路。

定義函數(該例子來源於dynamo基礎教程)

"code block"節點的另外一個用法,是由簡單的語句創建函數命令,也稱之為自定義函數。使用自定義函數能大量的減少重複性任務的編程,提高工作效率。自定義函數有特定的語法,首行需寫入"def自定義函數的名稱(未知數)",第二行開始對自定義函數進行定義,即編寫運算過程。末尾需用"return"語句,將函數中運行的結果返回,作為輸出項。注意,函數的定義內容需要在首尾使用{}。

如圖,創建的自定義函數名稱為CreateCircle,未知數包括x和y。函數所執行的命令包括3個步驟。

a 命名半徑為10的值,作為圓的半徑r1;

b創建座標點p1(x,y);

c由座標點p1和半徑r1創建圓c1.

將c1的運算結果返回,作為輸出項。完成此步編輯後,並未創建出圓,而是創建了一個函數命令。所以此時,我們可以使用另一個"code block"節點調用上一步驟中創建的CreateCircle函數,輸入x和y的值,創建一個圓心在(x,y),半徑為10的圓。

Dynamo中的輸入全能型節點


分享到:


相關文章: