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
  • 我有哪些選擇?
  • 為 Dynamo
  • 在 Dynamo
  • 每種方法有哪些優點/缺點?
  • 瞭解 Dynamo 版本管理和 API 變更 (1.x → 2.x)
  • 以套件散發二進位檔案的權限
  • Dynamo UI 在效能方面的考慮事項
Edit on GitHub
Export as PDF
  1. 開發人員手冊

為 Dynamo 開發

Previous管理和更新 Dynamo 中的相依性Next入門

Last updated 1 month ago

無論經驗程度為何,Dynamo 平台專為所有使用者成為貢獻者而設計。針對不同的能力和技能程度有幾種開發選項,每種能力和技能程度的優缺點視目標而定。下面我們將概述不同的選項,以及如何選擇。

三種開發環境:Visual Studio、Python 編輯器和 Code Block DesignScript

我有哪些選擇?

Dynamo 的開發選項主要分為兩個類別:為 Dynamo,以及 在 Dynamo。這兩個類別可視為:「在」Dynamo 表示使用 Dynamo IDE 建立要在 Dynamo 中使用的內容;「為」Dynamo 表示使用外部工具建立要匯入 Dynamo 中進行使用的內容。雖然本指南著重在 為 Dynamo 的開發,但下面會描述所有程序的資源。

為 Dynamo

這些節點允許最高程度的自訂。許多套件都使用此方法建置,因此要對 Dynamo 的原始碼做出貢獻也需要此方法。本指南將涵蓋建置這些節點的程序。

  • Zero-Touch 節點

  • NodeModel 衍生的節點

  • 延伸

下面的討論使用 Visual Studio 當作 Zero-Touch 和 NodeModel 節點的開發環境。

Visual Studio 介面,以及我們將開發的專案

在 Dynamo

  • Code Block 可在視覺程式設計環境中顯示 DesignScript,提供靈活的文字腳本和節點工作流程。Code Block 中的函數可被工作區中的任何內容呼叫。

  • 「自訂節點」是節點集合 (甚至整個圖表) 的容器。是收集常用常式並與社群分享的有效方式。

  • 「Python 節點」是視覺程式設計工作區中的腳本撰寫介面,與 Code Block 類似。Autodesk.DesignScript 資源庫使用與 DesignScript 類似的點標記法。

在 Dynamo 工作區中開發是一個能立即得到回饋的強大工具。

在 Dynamo 工作區中使用 Python 節點開發

每種方法有哪些優點/缺點?

Dynamo 的開發選項已設計為可解決自訂需求的複雜性。無論目標是以 Python 撰寫遞迴指令碼,還是建置一個完全自訂的節點使用者介面,都有一些選項可實作只包含啟動和執行所需的程式碼。

Dynamo 中的 Code Block、Python 節點和自訂節點

這些是在 Dynamo 視覺程式設計環境中撰寫程式碼的簡單選項。Dynamo 視覺程式設計工作區可讓您存取 Python、DesignScript,並且能在自訂節點內包含多個節點。

使用這些方法,我們可以:

  • 開始撰寫 Python 或 DesignScript,幾乎不用進行設定。

  • 將 Python 資源庫匯入 Dynamo。

  • 將 Code Block、Python 節點和自訂節點做為套件的一部分與 Dynamo 社群分享。

Zero-Touch 節點

「Zero-Touch」是指匯入 C# 資源庫所使用的一個簡易點選方法。Dynamo 將讀取 .dll 檔案的公開方法,並將其轉換為 Dynamo 節點。您可以使用 Zero-Touch 開發自己的自訂節點與套件

使用此方法,我們可以:

  • 撰寫 C# 方法,並輕鬆使用這些方法做為 Dynamo 中的節點

  • 將 C# 資源庫以節點方式透過套件與 Dynamo 社群分享

NodeModel 衍生的節點

這些節點更深入 Dynamo 結構。它們以 NodeModel 類別為基礎,並以 C# 撰寫。雖然此方法提供最大的靈活性和功能,但節點的絕大多數層面必須明確定義,且函數必須位於單獨的組合中。

使用此方法,我們可以:

  • 使用滑棒、影像、顏色等建立完全可自訂的節點使用者介面 (例如 ColorRange 節點)

  • 存取並影響 Dynamo 圖元區中發生的結果

  • 自訂交織

  • 載入 Dynamo 中成為套件

瞭解 Dynamo 版本管理和 API 變更 (1.x → 2.x)

由於 Dynamo 會定期更新,因此可能會變更套件所使用的 API 部分。追蹤這些變更非常重要,以確保既有套件能持續正常運作。

以套件散發二進位檔案的權限

請注意要上傳到 Package Manager 的套件中是否包含 .dll。如果套件作者未建立 .dll,他們必須具有分享該 .dll 的權限。

如果套件包含二進位檔案,則必須在使用者下載包含二進位檔案的套件時加以提示。

Dynamo UI 在效能方面的考慮事項

在撰寫本文時,Dynamo 主要使用 WPF (Windows Presentation Foundation) 來呈現其 UI。WPF 是一個複雜而強大的 XAML/繫結型系統。由於 Dynamo 具有複雜的 UI,因此很容易發生 UI 當機、記憶體洩漏,或者以降低效能的方式將圖表執行與 UI 更新包裹在一起。

Primer 在提供了指南。

雖然這些程序都在視覺程式設計工作區中,相對而言也簡單易懂,但它們都是自訂 Dynamo 的可行選項。Primer 廣泛涵蓋這些內容,並在一章中提供撰寫指令碼的秘訣和最佳實踐。

下載 Code Block 範例 (按一下右鍵後另存),或在 中查看詳細的逐步解說。

下載自訂節點範例 (按一下右鍵後另存),或在 中查看詳細的逐步解說。

下載 Python 節點範例 (按一下右鍵後另存),或在 中查看詳細的逐步解說。

匯入不一定是針對 Dynamo 開發的資源庫,並自動建立一組新節點,例如 Primer 中的

會追蹤 API 變更。這包括對 DynamoCore、資源庫和工作區的變更。

一個即將實施的重大變更範例是,在 2.0 版中從 XML 檔案格式轉換為 JSON 檔案格式。NodeModel 衍生的節點現在需要 ,否則無法在 Dynamo 2.0 中開啟。

Dynamo 的 API 文件目前涵蓋核心功能:

請參閱 ,該頁面將協助您避免發生一些變更 Dynamo 程式碼的常見錯誤。

匯入 Zero-Touch 資源庫
指令碼撰寫策略
Primer
Primer
Primer
Dynamo Github Wiki
JSON 建構函式
http://dynamods.github.io/DynamoAPI
Dynamo 效能考慮事項 Wiki 頁面
A-Forge 範例
三種開發環境
Visual Studio 介面
在 Dynamo 工作區中使用 Python 節點開發
Code Block、Python 指令碼和自訂節點
Zero-touch 節點
NodeModel 衍生的節點
Dynamo API 變更文件
API 文件