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
  • 目標
  • 主要概念
  • 版本相容性
  • 資料集
  • 解決方法
  • 取得 Excel 資料
  • 取得廊道地勢線
  • 產生座標系統
  • 建立圖塊參考
  • 結果
  • 附註:在 Dynamo 中視覺化
  • 構想
Edit on GitHub
Export as PDF
  1. Dynamo for Civil 3D
  2. 範例工作流程
  3. 道路

燈柱放置

Previous道路Next面

Last updated 1 month ago

Dynamo 其中一種相當適合的使用案例,便是沿廊道模型動態放置離散物件。物件通常需要放置在與廊道上插入的組合無關的位置,這是一個非常冗長乏味而需手動完成的工作。當廊道的水平或垂直幾何圖形發生變更時,會導致需重複處理大量工作。

目標

主要概念

  • 從外部檔案 (在此範例中為 Excel) 讀取資料

  • 以字典組織資料

  • 使用座標系統控制位置/比例/旋轉

  • 放置圖塊參考

  • 在 Dynamo 中視覺化幾何圖形

版本相容性

此圖表將在 Civil 3D 2020 及更高版本上執行。

資料集

首先,下載以下範例檔案,然後開啟 DWG 檔案和 Dynamo 圖表。

Excel 檔案與 Dynamo 圖表最好儲存在同一個目錄中。

解決方法

以下是此圖表中的邏輯概觀。

  1. 讀取 Excel 檔案,將資料匯入至 Dynamo

  2. 從指定的廊道基準線取得地勢線

  3. 沿廊道地勢線在所需樁號處產生座標系統

  4. 使用座標系統在模型空間中放置圖塊參考

我們開始吧!

取得 Excel 資料

在此範例圖表中,我們使用 Excel 檔案來儲存 Dynamo 將用於放置燈柱圖塊參考的資料。表格看起來像下面這樣。

使用 Dynamo 從外部檔案 (例如 Excel 檔案) 讀取資料是種很好的策略,尤其是當需要與其他團隊成員共用資料時。

Excel 資料會像下面這樣匯入至 Dynamo。

我們現在有了資料,需要依欄 (Corridor、Baseline、PointCode 等) 把資料分開,以便在圖表的其餘部分使用。執行此作業的常見方法之一,是使用 List.GetItemAtIndex 節點並指定所需的每一欄索引號碼。例如,Corridor 欄是在索引 0,Baseline 欄是在索引 1 等等。

看起來沒問題,對吧?但是這個方法有一個潛在的問題。如果 Excel 檔案中欄的順序在將來發生變更,該怎麼辦?或是兩欄之間加入新的一欄?如此一來,圖表將無法正常運作而需要更新。我們可以將資料放入 字典,將 Excel 欄標題做為 鍵,其餘資料做為 值,讓圖表能繼續使用。

如果您不熟悉字典,請查看 Dynamo 中的字典 一節。

這可讓圖表變得更具彈性,因為它允許變更 Excel 中欄的順序。只要欄標題保持不變,您就可以使用其 鍵 (即欄標題) 從字典中擷取資料,這是我們接下來要執行的作業。

取得廊道地勢線

我們現在已匯入 Excel 資料並準備好了,接下來我們開始使用它從 Civil 3D 取得有關廊道模型的一些資訊。

  1. 依名稱選取廊道模型。

  2. 取得廊道內的特定基準線。

  3. 透過基準線的點代碼取得基準線內的地勢線。

產生座標系統

我們現在要沿廊道地勢線,在 Excel 檔案中指定的樁號值處產生座標系統。這些座標系統將用於定義燈柱圖塊參考的位置、旋轉和比例。

如果您不熟悉座標系統,請查看 向量、平面和座標系統 一節。

請注意,在此處使用程式碼區塊 (Code Block) 是為了根據座標系統在基準線哪一側來旋轉座標系統。您也可以使用幾個節點來達成這個目標,但這是一個很好的範例,說明撰寫出來更容易。

如果您不熟悉程式碼區塊,請查看 程式碼區塊和 DesignScript 一節。

建立圖塊參考

我們快完成了!我們有實際放置圖塊參考所需的所有資訊。首先,使用 Excel 檔案中的 BlockName 欄取得圖塊定義。

從這裡,最後一步是建立圖塊參考。

結果

當您執行圖表時,您應該會看到新的圖塊參考沿廊道展示在模型空間中。以下是最酷的部分 - 如果圖表的執行模式設定為「自動」,而且您編輯了 Excel 檔案,圖塊參考會自動更新!

您可以在 使用者介面 一節閱讀有關圖表執行模式的更多資訊。

以下是使用 Dynamo 播放器執行圖表的範例。

如果您不熟悉 Dynamo 播放器,請查看 Dynamo 播放器 一節。

附註:在 Dynamo 中視覺化

在 Dynamo 中視覺化廊道幾何圖形,有助於提供情境脈絡。此特定模型已在模型空間中萃取出廊道實體,因此我們將這些實體帶入 Dynamo。

但還有其他事情需要考慮。實體相對而言是「比較重」的幾何圖形類型,這表示此作業將減慢圖表速度。如果有一個簡單的方式可以 選擇 是否要檢視實體會更好。一種明顯的解決方法是拔掉 Corridor.GetSolids 節點,但這會對所有下游節點產生警告,而這看起來會有點雜亂。這時就是 ScopeIf 節點真正發揮功能的時候了。

  1. 請注意 Object.Geometry 節點底部有一條灰色列。這表示節點預覽已關閉 (在節點上按一下右鍵可存取),這樣 GeometryColor.ByGeometryColor 就可以避免為了背景預覽的顯示優先順序而與其他幾何圖形「競爭」。

  2. ScopeIf 節點基本上可讓您選擇性地執行一條完整的節點分支。如果 test 輸入為 false,則連接至 ScopeIf 節點的每個節點都不會執行。

以下是 Dynamo 背景預覽的結果。

構想

以下是一些如何擴充此圖表功能的構想。

在 Excel 檔案中新增 旋轉 一欄,就可以使用它驅動座標系統的旋轉。

在 Excel 檔案中新增 水平或垂直偏移 ,就可以視需要讓燈柱偏離廊道地勢線。

直接在 Dynamo 中 中使用起點樁號和典型間距產生樁號值,而不使用內含樁號值的 Excel 檔案。

在 Excel 檔案中指定的樁號值處,沿廊道放置燈柱圖塊參考。

任務完成!

🎯
🎉
232KB
Roads_CorridorBlockRefs.dyn
54MB
Roads_CorridorBlockRefs.dwg
12KB
LightPoles.xlsx
Excel 檔案表格結構
將 Excel 資料匯入至 Dynamo
將 Excel 資料放入字典
從字典中擷取資料
沿廊道地勢線取得座標系統
從文件取得所需的圖塊定義
在模型空間中建立圖塊參考
更新 Excel 檔案,在 Civil 3D 中很快就會看到結果
使用 Dynamo 播放器執行圖表,然後在 Civil 3D 中查看結果
在 Dynamo 中視覺化廊道幾何圖形