Dynamo
Primer for v2.0
繁體中文
繁體中文
  • 關於
  • 簡介
    • 什麼是 Dynamo?它如何運作?
    • Primer 使用者指南、Dynamo 社群與平台
  • 安裝 Dynamo
  • 使用者介面
    • 工作區
    • 資源庫
  • 節點和線路
  • 基本節點和概念
    • 節點的索引
    • 用於計算設計的幾何圖形
      • 幾何圖形概述
      • 向量、平面和座標系統
      • 點
      • 曲線
      • 曲面
      • 實體
      • 網格
    • 程式的建置區塊
      • 資料
      • 數學
      • 邏輯
      • 字串
      • 顏色
    • 使用清單設計
      • 什麼是清單
      • 使用清單
      • 清單的清單
      • n 維清單
    • Dynamo 中的字典
      • 什麼是字典
      • 字典節點
      • Code Block 中的字典
      • Revit 使用情況
  • 自訂節點和套件
    • 自訂節點
      • 自訂節點簡介
      • 建立自訂節點
      • 發佈至資源庫
    • 套件
      • 套件簡介
      • 套件案例研究 - Mesh Toolkit
      • 開發套件
      • 發佈套件
      • Zero-Touch 匯入
  • 適用於 Revit 的 Dynamo
    • Revit 連接
    • 選取
    • 編輯
    • 建立
    • 自訂
    • 記錄
  • Dynamo for Civil 3D
    • Civil 3D 連接
    • 入門
    • 節點資源庫
    • 範例工作流程
      • 道路
        • 燈柱放置
      • 面
        • 服務放置
      • 公用程式
        • 更名結構
      • 鐵路
        • 間隙包絡線
      • 測量
        • 點群組管理
    • 進階主題
      • 物件併入
      • Python 和 Civil 3D
    • Dynamo 播放器
    • 有用的套件
    • 資源
  • 在 Dynamo 中撰寫程式碼
    • Code Block 和 DesignScript
      • 什麼是 Code Block
      • 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
  • 幾何圖形產生與鑲嵌
  • 記憶體使用
  • Revit API
Edit on GitHub
Export as PDF
  1. 最佳實踐

在 Dynamo 中有效率地處理大型資料集

Previous管理您的程式Next範例工作流程

Last updated 1 month ago

本頁將向您介紹一些在 Dynamo 中有效率處理大型資料集的經驗法則。希望您可以使用這些技巧來識別圖表中的瓶頸,讓您的圖表在短時間就能執行完成。

內容:

  • 幾何圖形產生與鑲嵌

  • 記憶體使用

  • Revit API

幾何圖形產生與鑲嵌

在 Dynamo 中,建立幾何圖形和繪製幾何圖形是兩種完全不同的事件。一般而言,建立幾何圖形比繪製物件要快得多,使用的記憶體也較少。您可以將幾何圖形想像成是製作一套西裝的尺寸清單,而鑲嵌是西裝本身。您可以從西裝尺寸得知很多關於這套西裝的資訊:手臂有多長,要花多少錢等等,但總是要看一看並試穿成品,才知道是否合適。同樣地,使用未鑲嵌的幾何圖形,您可以決定其邊界框、面積、體積;與其他幾何圖形相交;以及將其匯出為 SAT 或 Revit。但是,您還是必須鑲嵌幾何圖形,才能感覺它是否正確。

如果您的 Dynamo 圖表有許多物件,而且在執行過程中變慢,可以從圖表中移除鑲嵌步驟來加快速度。

Dynamo 中的幾何圖形節點永遠是經過鑲嵌的*。您有兩個選項來處理未鑲嵌的幾何圖形:Python 節點和 ZeroTouch 節點。只要您沒有從 Python 或 ZeroTouch 節點傳回物件幾何圖形,就不會鑲嵌幾何圖形。舉例來說,如果您的圖表有幾個點節點、連接到幾個線節點、連接至幾個斷面混成節點、連接到幾個增厚節點,幾何圖形在每一步都會進行鑲嵌。您可以改為將此邏輯綁定到 Python 或 ZeroTouch 節點,只傳回節點中的最終物件。

如需使用 ZeroTouch 節點的更多資訊,請參閱本 Primer 的一節。

記憶體使用

如果您不再鑲嵌幾何圖形,則可能會因為累積過多幾何圖形而遇到記憶體瓶頸。Dynamo 中的幾何圖形物件在建立時會消耗少量但並非可忽視不計的記憶體。如果您處理的是數十萬或數百萬個物件,這加總起來可能會導致 Dynamo 或 Revit 當機。在 Dynamo 2.5 版及更高版本中會透過處置未使用的物件來隱性處理,但如果使用 2.5 之前的版本,則避免建立大量幾何圖形的一種方法,是在用完物件後就加以處置。舉例來說,假設您要建立幾十萬條 NurbsCurve,每條都需要幾十個點。建立這些曲線的一種方式是在 Dynamo 中建立一個二維清單,並提供給 NurbsCurve.ByPoints 節點。但是這要建立幾百萬個點。另一種方法是使用 Python 或 ZeroTouch 節點。在這類節點中,您可以建立十幾個點,將這些點提供給 NurbsCurve.ByPoints,然後使用 .Dispose() 方法呼叫來處置這十幾個點。如需使用 ZeroTouch 節點的更多資訊,請參閱本 Primer 的一節。建立幾何圖形物件後加以處置,在某些情況下可以顯著減少您使用的記憶體量,雖然我們會在 Dynamo 2.5 及更高版本中為使用者處理這個問題,但如果使用案例需要在明確的時間點減少記憶體用量,我們建議使用者仍需明確處置幾何圖形。請參閱 ,以進一步瞭解 Dynamo 2.5 中引入的新穩定性功能。

Revit API

如果您積極處置 ZeroTouch 或 Python 節點中的物件,但仍遇到記憶體或效能問題,請完全不要考慮 Dynamo,直接透過 API 建立 Revit 物件。例如,您可以剖析 Excel 檔案中的點資訊,然後使用此資訊透過其 API 建立 XYZ 和其他 Revit 元素。此時,Revit 就會成為無法避免的最終瓶頸。

為 Dynamo 開發
為 Dynamo 開發
Dynamo 幾何圖形穩定性的改進