Dynamo
Primer for v2.0
繁體中文
繁體中文
  • 關於
  • 簡介
    • 什麼是 Dynamo?它如何運作?
    • 手冊使用者指南、Dynamo 社群與平台
  • 安裝 Dynamo
  • 使用者介面
    • 工作區
    • 資源庫
  • 節點和線路
  • 基本節點和概念
    • 節點的索引
    • 用於計算設計的幾何圖形
      • 幾何圖形概述
      • 向量、平面和座標系統
      • 點
      • 曲線
      • 曲面
      • 實體
      • 網格
    • 程式的建置區塊
      • 資料
      • 數學
      • 邏輯
      • 字串
      • 顏色
    • 使用清單設計
      • 什麼是清單
      • 使用清單
      • 清單的清單
      • n 維清單
    • Dynamo 中的字典
      • 什麼是字典
      • 字典節點
      • 程式碼區塊中的字典
      • Revit 使用情況
  • 自訂節點和套件
    • 自訂節點
      • 自訂節點簡介
      • 建立自訂節點
      • 發佈至資源庫
    • 套件
      • 套件簡介
      • 套件案例研究 - Mesh Toolkit
      • 開發套件
      • 發佈套件
      • Zero-Touch 匯入
  • 適用於 Revit 的 Dynamo
    • Revit 連接
    • 選取
    • 編輯
    • 建立
    • 自訂
    • 記錄
  • Dynamo for Civil 3D
    • Civil 3D 連接
    • 入門
    • 節點資源庫
    • 範例工作流程
      • 道路
        • 燈柱放置
      • 面
        • 服務放置
      • 公用程式
        • 更名結構
      • 鐵路
        • 間隙包絡線
      • 測量
        • 點群組管理
    • 進階主題
      • 物件併入
      • Python 和 Civil 3D
    • Dynamo 播放器
    • 有用的套件
    • 資源
  • Dynamo in Forma Beta 版
    • 設定 Forma 中的 Dynamo Player
    • 在 Dynamo Player 中加入和分享圖表
    • 在 Dynamo Player 中執行圖表
    • Dynamo 計算服務與桌面版 Dynamo 的差異
  • 在 Dynamo 中撰寫程式碼
    • 程式碼區塊和 DesignScript
      • 什麼是程式碼區塊
      • DesignScript 語法
      • 速寫
      • 函數
    • 使用 DesignScript 的幾何圖形
      • DesignScript 幾何圖形基礎知識
      • 幾何基本型
      • 向量數學
      • 曲線:內插和控制點
      • 平移、旋轉和其他轉換
      • 曲面:內插、控制點、斷面混成、迴轉
      • 幾何參數化
      • 交集和修剪
      • 幾何布林運算
      • Python 點產生器
    • Python
      • Python 節點
      • Python 和 Revit
      • 設定您自己的 Python 樣板
    • 語言變更
  • 最佳實踐
    • 圖表策略
    • 指令碼撰寫策略
    • 指令碼撰寫參考
    • 管理您的程式
    • 在 Dynamo 中有效率地處理大型資料集
  • 範例工作流程
    • 入門工作流程
      • 參數式花瓶
      • 牽引點
    • 概念索引
  • 開發人員手冊
    • 從原始碼建置 Dynamo
      • 從原始碼建置 DynamoRevit
      • 管理和更新 Dynamo 中的相依性
    • 為 Dynamo 開發
      • 入門
      • Zero-Touch 案例研究 - 網格節點
      • 在 Zero-Touch 節點中執行 Python 指令碼 (C#)
      • 深入瞭解 Zero-Touch
      • 進階 Dynamo 節點自訂
      • 在 Dynamo 套件中使用 COM (互通性) 類型
      • NodeModel 案例研究 - 自訂使用者介面
      • 針對 Dynamo 2.x 更新您的套件和 Dynamo 資源庫
      • 針對 Dynamo 3.x 更新套件與 Dynamo 資料庫
      • 延伸
      • 定義 Dynamo 2.0+ 的自訂套件組織
      • Dynamo 指令行介面
      • Dynamo 整合
      • 為 Dynamo for Revit 開發
      • 發佈套件
      • 從 Visual Studio 建置套件
      • 將延伸當作套件
    • 提取請求
    • 測試預期結果
    • 範例
  • 附錄
    • 常見問題
    • 視覺程式設計和 Dynamo
    • 資源
    • 發行說明
    • 有用的套件
    • 範例檔案
    • 主體程式整合對應表
    • 下載 PDF
    • Dynamo 鍵盤快速鍵
Powered by GitBook
On this page
  • 什麼是資料?
  • 空值 - 沒有資料
  • 資料結構
  • 練習:使用資料建立圓柱鏈
  • 第 I 部分:使用一些可變參數為一個圓柱設定圖表。
  • 第 II 部分:從第 I 部分填入圓柱陣列
Edit on GitHub
Export as PDF
  1. 基本節點和概念
  2. 程式的建置區塊

資料

Previous程式的建置區塊Next數學

Last updated 1 month ago

資料是程式的內容。它會通過線路向節點提供輸入,並在節點中經過處理變為新形式的輸出資料。接下來我們將檢閱資料的定義、構建方式,並開始在 Dynamo 中使用資料。

什麼是資料?

資料是一組定性或定量變數的值。資料最簡單的形式是數字,例如 0、3.14 或 17。但是資料也有許多不同類型:表示變動數字的變數 (height)、字元 (myName)、幾何圖形 (Circle),或資料項目的清單 (1,2,3,5,8,13,...)。

在 Dynamo 中,我們將資料加入/饋入節點的輸入埠 - 我們可以有資料而不採取動作,但必須有資料才能處理節點所代表的動作。將節點加入工作區後,如果未提供任何輸入,則結果將是函數,而不是動作本身的結果。

  1. 簡單資料

  2. 資料與動作 (節點) 已成功執行

  3. 無資料輸入的動作 (節點) 將傳回一般函數

空值 - 沒有資料

注意空值 'null' 類型表示沒有資料。雖然這是抽象概念,但是您在使用視覺程式設計時可能已瞭解這一點。若某動作無法建立有效的結果,該節點會傳回空值。

測試空值及移除資料結構中的空值是建立功能強大的程式至關重要的構成部分。

圖示
名稱/語法
輸入
輸出

Object.IsNull

obj

布林

資料結構

執行視覺程式設計時,會很快產生大量資料,需要對其階層採用某種管理方式。承擔此角色的是資料結構,即我們儲存資料所採用的組織配置。資料結構的詳細資料及使用方法視程式設計語言而不同。

在 Dynamo 中,我們透過清單將階層加入至資料。我們將在後續章節中深入探索這一功能,不過接下來先從簡單的內容開始:

清單代表一種資料結構中放置的一系列項目:

  • 我的手 (清單) 有五根手指 (項目)。

  • 我所在的街道 (清單) 有十棟房子 (項目)。

  1. Number Sequence 節點使用 start、amount 及 step 輸入來定義數字清單。使用這些節點,我們已建立兩個包含十個數字的獨立清單,其中一個清單的範圍是 100-109,另一個的範圍是 0-9。

  2. List.GetItemAtIndex 節點會以特定的索引選取清單中的項目。若選擇 0,即可取得清單中的第一個項目 (在此案例中是 100)。

  3. 對第二個清單套用相同的程序,取得值 0,即清單中的第一個項目。

  4. 現在,我們使用 List.Create 節點將兩個清單合二為一。請注意,節點會建立_清單的清單_。這會變更資料結構。

  5. 再次使用 List.GetItemAtIndex 時,將索引設定為 0,即可取得清單之清單中的第一個清單。這意味著將清單視為項目,這與其他指令碼撰寫語言略有不同。在稍後的章節中,我們將透過清單操控與資料結構取得更進階的結果。

理解 Dynamo 中資料階層的關鍵概念:對資料結構而言,會將清單視為項目。換言之,Dynamo 採用由上而下的程序瞭解資料結構。這意味著什麼?接下來我們舉例說明。

練習:使用資料建立圓柱鏈

按一下下方的連結下載範例檔案。

附錄中提供範例檔案的完整清單。

在這第一個範例中,我們將組裝薄殼圓柱,這將使用我們在本節中討論的幾何圖形階層。

第 I 部分:使用一些可變參數為一個圓柱設定圖表。

1. 加入 Point.ByCoordinates - 在圖元區加入節點後,我們會在 Dynamo 預覽格線的原點看到某個點。x、y 與 z 輸入的預設值是 0.0,給我們此位置的點。

2.Plane.ByOriginNormal - 幾何圖形階層的下一步是平面。有數種方式可以建構平面,我們將使用原點與法線作為輸入。原點是上一步驟中建立的點節點。

Vector.ZAxis - 這是 z 方向的單位化向量。請注意,沒有輸入,只有值為 [0,0,1] 的向量。我們將此用作 Plane.ByOriginNormal 節點的 normal 輸入。這會在 Dynamo 預覽中產生矩形平面。

3.Circle.ByPlaneRadius - 接下來是階層,現在我們使用上一步驟中建立的平面來建立曲線。插入節點後,我們得到一個位於原點的圓。節點的預設半徑值為 1。

4.Curve.Extrude - 現在我們指定深度與第三個延伸方向,讓其成為比較常見的形狀。此節點將以擠出方式根據曲線建立曲面。節點上的預設距離為 1,我們應該會在視埠中看到圓柱。

5.Surface.Thicken - 此節點會將曲面偏移指定的距離並封閉外形,以產生封閉實體。預設厚度值為 1,我們應該會在視埠中看到符合這些值的薄殼圓柱。

6.Number Slider - 我們接下來不使用所有這些輸入的預設值,而是對模型加入一些參數式控制。

Domain Edit - 在圖元區加入數字滑棒後,按一下左上方的脫字字元以顯示範圍選項。

Min/Max/Step - 分別將 min、max 與 step 值變更為 0、2 與 0.01。我們這樣做是為了控制整體幾何圖形的大小。

7.Number Sliders - 在所有的預設輸入中,我們多次複製並貼上此數字滑棒 (選取滑棒,按一下 Ctrl+C,然後按一下 Ctrl+V),直到具有預設值的所有輸入都改用滑棒為止。某些滑棒值必須大於零,以便讓定義生效 (例如:若要增厚曲面,需要有擠出深度)。

8.現在我們已使用這些滑棒建立參數式薄殼圓柱。嘗試調整其中某些參數,即可在 Dynamo 視埠中看到幾何圖形的動態更新。

Number Sliders - 在此基礎上更進一步,我們在圖元區上加入了許多滑棒,並需要清理剛剛建立的工具介面。在滑棒上按一下右鍵,選取「更名...」,然後變更每個滑棒的名稱以適當描述其參數 (厚度、半徑、高度等等)。

第 II 部分:從第 I 部分填入圓柱陣列

9.現在,我們已建立良好的增厚圓柱。這目前只是一個物件,接下來我們瞭解如何建立保持動態連結的一系列圓柱。為了實現這一點,我們將建立圓柱清單,而不是使用單一項目。

加 (+) - 我們的目標是在已建立的圓柱旁,加入一列圓柱。若要在與目前圓柱相鄰的位置加入一個圓柱,需要考慮圓柱的半徑以及薄殼的厚度。我們將滑棒的兩個值相加,即可得到此數值。

10.此步驟較複雜,接下來我們慢慢完成:最終目標是建立數字清單,這些數字會定義圓柱列中每個圓柱的位置。

a.乘 - 首先,我們要將上一步驟中的值乘以 2。上一步驟中的值表示半徑,我們要將圓柱移動完整直徑的距離。

b.Number Sequence - 我們使用此節點建立一系列數字。乘 節點的第一個輸入是上一步驟中的 step 值。可以使用 Number 節點將 start 值設定為 0.0。

c.Integer Slider - 對於 amount 值,我們連接整數滑棒。這會定義所建立圓柱的數量。

d.輸出 - 此清單會顯示每個圓柱在陣列中的移動距離,並由原始滑棒進行參數式驅動。

11.此步驟足夠簡單 - 將上一步驟中定義的序列插入原始 Point.ByCoordinates 的 x 輸入。這將取代我們可以刪除的 pointX 滑棒。現在,我們將在視埠中看到一系列圓柱 (請確保整數滑棒大於 0)。

12.圓柱鏈仍動態連結至所有滑棒。調整每個滑棒可以查看定義更新!

12KB
Building Blocks of Programs - Data.dyn
資料和動作
清單分解