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
  • 點位置
  • 太陽方位分析
  • 練習
  • 分析
Edit on GitHub
Export as PDF
  1. 適用於 Revit 的 Dynamo

自訂

Previous建立Next記錄

Last updated 1 month ago

我們先前對編輯基本建築量體進行瞭解時,希望一次編輯大量元素,以更深入地探究 Dynamo/Revit 連結。大規模自訂變得更加複雜,因為資料結構需要更高級的清單作業。但是,此作業所遵循的基本原則在本質上並無不同。接下來針對一組自適應元件瞭解分析的某些因素。

點位置

假設我們已建立一系列自適應元件,希望根據其點位置來編輯參數。例如,點可以驅動與元素面積相關的厚度參數。或者,點可以驅動與全年日曬相關的不透明度參數。藉由 Dynamo,可以使用一些簡單的步驟將分析連接至參數,我們將在以下練習中探究基本版本。

使用 AdaptiveComponent.Locations 節點查詢所選自適應元件的自適應點。這可讓我們使用提取出的 Revit 元素進行分析。

透過萃取自適應元件的點位置,我們可以對該元素執行一系列分析。藉由四點自適應元件,您可以針對諸如指定面板等物件研究平面的偏差。

太陽方位分析

使用重新對映將一組資料對映到參數範圍。這是參數式模型中使用的基本工具,我們將在以下練習中展示該工具。

使用 Dynamo,自適應元件的點位置可用於建立每個元素的最佳擬合平面。我們也可以在 Revit 檔案中查詢日光位置,研究平面相對於日光的方位,並與其他自適應元件進行比較。在以下的練習中,我們將建立由演算法控制的屋頂,以設置該功能。

練習

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

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

此練習將詳細說明上一節中示範的技巧。在此案例中,我們將使用 Revit 元素定義參數式曲面,同時實體化四點自適應元件,然後根據太陽方位對其進行編輯。

  1. 先選取兩條邊與 「Select Edge」 節點。兩條邊是中庭的長跨距。

  2. 使用 List.Create 節點將兩條邊合併到一個清單中。

  3. 使用 Surface.ByLoft 在兩條邊之間建立曲面。

  1. 使用 Code Block,定義從 0 至 1 的範圍 (包含均勻分佈的 10 個值):0..1..#10;

  2. 將 Code Block 插入 Surface.PointAtParameter 節點的 u 與 v 輸入,並將 Surface.ByLoft 節點插入 surface 輸入。在節點上按一下右鍵,將 交織 變更為 「笛卡兒積」。這將在曲面上產生點的網格。

此點網格可作為以參數式方式定義之曲面的控制點。我們希望萃取其中每個點的 u 與 v 位置,以便能將其插入至參數式公式,並保留相同的資料結構。我們可以查詢剛剛建立點的參數位置,以執行此作業。

  1. 在圖元區加入 Surface.ParameterAtPoint 節點,連接輸入,如上所示。

  2. 使用 UV.U 節點查詢這些參數的 u 值。

  3. 使用 UV.V 節點查詢這些參數的 v 值。

  4. 輸出會顯示每個曲面點的對應 u 與 v 值。現在我們已取得所需範圍,每個值都介於 0 與 1 之間,並具有正確的資料結構,我們已準備好套用參數式演算法。

  1. 在圖元區加入 Code Block,然後輸入程式碼:Math.Sin(u*180)*Math.Sin(v*180)*w;。這是一個參數式函數,可從平面建立正弦凸塊。

  2. 將 UV.U 連接至 u 輸入,將 UV.V 連接至 v 輸入。

  3. w 輸入表示形狀的 幅度,因此我們為其連接 Number Slider。

  1. 現在,我們有一個由演算法定義的值清單。接下來使用此值清單在 +Z 方向將點上移。使用 Geometry.Translate,將 Code Block 插入 zTranslation,並將 Surface.PointAtParameter 插入 geometry 輸入。您應該會看到新的點顯示在 Dynamo 預覽中。

  2. 最後,我們使用 NurbsSurface.ByPoints 節點建立曲面,將上一步驟中的節點插入 points 輸入。我們建立了自己的參數式曲面。自由拖曳滑棒,觀看凸塊的收縮與膨脹。

使用參數式曲面,我們要定義將其面板化的方式,以排列四點自適應元件。Dynamo 沒有即裝即用的曲面平板化功能,因此我們可以尋找社群是否有實用的 Dynamo 套件。

  1. 移至 「套件」>「搜尋套件...」

  2. 搜尋 LunchBox,並安裝 LunchBox for Dynamo。對於諸如此類的幾何圖形作業,這是非常有用的一組工具。

  1. 下載之後,您現在可以完整存取 LunchBox 套件。搜尋 Quad Grid,然後選取 LunchBox Quad Grid By Face。將參數式曲面插入至 surface 輸入,並將 U 與 V 分割份數設定為 15。您在 Dynamo 預覽中應該會看到一個有四邊形平板的曲面。

如果您對其設置感到好奇,可以按兩下 Lunch Box 節點,並查看其內容。

返回 Revit,接下來快速查看我們將在這裡使用的自適應元件。無需沿其作業,但這是我們將要實體化的屋頂面板。它是四點自適應元件,是 ETFE 系統的粗略表示。中心空心的鎖點框與稱為 ApertureRatio 的參數有關。

  1. 我們將在 Revit 中實體化大量幾何圖形,因此請確保將 Dynamo 求解器調整為 「手動」。

  2. 在圖元區加入 Family Types 節點,然後選取 「ROOF-PANEL-4PT」。

  3. 在圖元區加入 AdaptiveComponent.ByPoints 節點,將 Panel Pts 從 LunchBox Quad Grid by Face 輸出連接至 points 輸入。將 Family Types 節點連接至 familySymbol 輸入。

  4. 按一下 「執行」。建立幾何圖形時,Revit 需要_考慮_一段時間。若花費太長時間,請將 Code Block 的「15」 減少為較小的數字。這將減少屋頂上面板的數量。

注意:若 Dynamo 花費很長時間來計算節點,您可能要在開發圖表時,使用「凍結」節點功能以暫停所執行的 Revit 作業。如需有關凍結節點的更多資訊,請參閱〈實體〉一章中的〈凍結〉一節。

返回 Revit,我們已在屋頂上建立一系列面板。

拉近,我們可以更近地查看其曲面品質。

分析

  1. 從上一步繼續執行,接下來更進一步,根據其日曬時間驅動每個面板的孔徑。拉近至 Revit,選取一個面板,可以看到在性質列中,有一個名為 Aperture Ratio 的參數。設置族群,讓孔徑的範圍大致介於 0.05 到 0.45 之間。

  1. 如果打開太陽路徑,可以在 Revit 中看到目前的太陽位置。

  1. 我們可以使用 SunSettings.Current 節點參考此太陽位置。

  1. 將太陽設定插入 Sunsetting.SunDirection 以取得太陽向量。

  2. 從用於建立自適應元件的 Panel Pts 中,使用 Plane.ByBestFitThroughPoints 近似元件的平面。

  3. 查詢此平面的 法向。

  4. 使用 內積 計算太陽方位。內積是一個決定兩個向量平行程度的公式。我們將取得每個自適應元件的平面法向,並與太陽向量進行比較,以粗略模擬太陽方位。

  5. 採用結果的 絕對值。這可確保在平面法向指向相反方向時,內積是準確的。

  6. 按一下 「執行」 。

  1. 看看 內積 ,我們產生了許多數字。我們希望使用其相對分佈,但需要將這些數字縮攏到我們想要編輯的 Aperture Ratio 參數的適當範圍內。

  1. Math.RemapRange 是執行此作業的強大工具。它採用輸入清單,並將邊界重新對映到兩個目標值。

  2. 在 Code Block 中,將目標值定義為 0.15 與 0.45。

  3. 按一下 「執行」 。

  1. 將重新對映的值連接至 Element.SetParameterByName 節點。

  1. 將字串 Aperture Ratio 連接至 parameterName 輸入。

  2. 將 adaptive components 連接至 element 輸入。

  3. 按一下 「執行」 。

返回 Revit,透過距離,我們可以瞭解太陽方位對 ETFE 面板孔徑產生的影響。

拉近,我們可以看到在面向日光時,ETFE 面板更為封閉。此時我們的目標是減少日曬帶來的過熱。如果我們根據日曬而希望讓更多光線進入,只需在 Math.RemapRange 上切換範圍即可。

5MB
Revit-Customizing.zip
archive