Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
道路、鐵路、土地、公共事業、測量、GIS...
土木基礎建設除了包括上述所有事物,還有更多!本節包含數個實用且相關的範例圖表,可協助您掌握 Dynamo 並充分發揮 Dynamo for Civil 3D 的潛能。每個圖表都包含建立該圖表時所用邏輯的詳細描述,您不僅可以 使用 圖表,還可以 瞭解 圖表。
此外,這些範例內含經過時間測試、可建置功能強大圖表的最佳實踐。在您進行範例時,我們建議您也要熟悉一節,以獲得更多如何建置功能強大、靈活且可維護的圖表的構想。
Dynamo 其中一種相當適合的使用案例,便是沿廊道模型動態放置離散物件。物件通常需要放置在與廊道上插入的組合無關的位置,這是一個非常冗長乏味而需手動完成的工作。當廊道的水平或垂直幾何圖形發生變更時,會導致需重複處理大量工作。
從外部檔案 (在此範例中為 Excel) 讀取資料
以字典組織資料
使用座標系統控制位置/比例/旋轉
放置圖塊參考
在 Dynamo 中視覺化幾何圖形
此圖表將在 Civil 3D 2020 及更高版本上執行。
首先,下載以下範例檔案,然後開啟 DWG 檔案和 Dynamo 圖表。
Excel 檔案與 Dynamo 圖表最好儲存在同一個目錄中。
以下是此圖表中的邏輯概觀。
讀取 Excel 檔案,將資料匯入至 Dynamo
從指定的廊道基準線取得地勢線
沿廊道地勢線在所需樁號處產生座標系統
使用座標系統在模型空間中放置圖塊參考
我們開始吧!
在此範例圖表中,我們使用 Excel 檔案來儲存 Dynamo 將用於放置燈柱圖塊參考的資料。表格看起來像下面這樣。
使用 Dynamo 從外部檔案 (例如 Excel 檔案) 讀取資料是種很好的策略,尤其是當需要與其他團隊成員共用資料時。
Excel 資料會像下面這樣匯入至 Dynamo。
我們現在有了資料,需要依欄 (Corridor、Baseline、PointCode 等) 把資料分開,以便在圖表的其餘部分使用。執行此作業的常見方法之一,是使用 List.GetItemAtIndex 節點並指定所需的每一欄索引號碼。例如,Corridor 欄是在索引 0,Baseline 欄是在索引 1 等等。
看起來沒問題,對吧?但是這個方法有一個潛在的問題。如果 Excel 檔案中欄的順序在將來發生變更,該怎麼辦?或是兩欄之間加入新的一欄?如此一來,圖表將無法正常運作而需要更新。我們可以將資料放入 字典,將 Excel 欄標題做為 鍵,其餘資料做為 值,讓圖表能繼續使用。
如果您不熟悉字典,請查看Dynamo 中的字典一節。
這可讓圖表變得更具彈性,因為它允許變更 Excel 中欄的順序。只要欄標題保持不變,您就可以使用其_鍵_ (即欄標題) 從字典中擷取資料,這是我們接下來要執行的作業。
我們現在已匯入 Excel 資料並準備好了,接下來我們開始使用它從 Civil 3D 取得有關廊道模型的一些資訊。
依名稱選取廊道模型。
取得廊道內的特定基準線。
透過基準線的點代碼取得基準線內的地勢線。
我們現在要沿廊道地勢線,在 Excel 檔案中指定的樁號值處產生座標系統。這些座標系統將用於定義燈柱圖塊參考的位置、旋轉和比例。
如果您不熟悉座標系統,請查看向量、平面和座標系統一節。
請注意,在此處使用程式碼區塊 (Code Block) 是為了根據座標系統在基準線哪一側來旋轉座標系統。您也可以使用幾個節點來達成這個目標,但這是一個很好的範例,說明撰寫出來更容易。
如果您不熟悉程式碼區塊,請查看程式碼區塊和 DesignScript一節。
我們快完成了!我們有實際放置圖塊參考所需的所有資訊。首先,使用 Excel 檔案中的 BlockName 欄取得圖塊定義。
從這裡,最後一步是建立圖塊參考。
當您執行圖表時,您應該會看到新的圖塊參考沿廊道展示在模型空間中。以下是最酷的部分 - 如果圖表的執行模式設定為「自動」,而且您編輯了 Excel 檔案,圖塊參考會自動更新!
您可以在使用者介面一節閱讀有關圖表執行模式的更多資訊。
以下是使用 Dynamo 播放器執行圖表的範例。
如果您不熟悉 Dynamo 播放器,請查看 Dynamo 播放器一節。
在 Dynamo 中視覺化廊道幾何圖形,有助於提供情境脈絡。此特定模型已在模型空間中萃取出廊道實體,因此我們將這些實體帶入 Dynamo。
但還有其他事情需要考慮。實體相對而言是「比較重」的幾何圖形類型,這表示此作業將減慢圖表速度。如果有一個簡單的方式可以 選擇 是否要檢視實體會更好。一種明顯的解決方法是拔掉 Corridor.GetSolids 節點,但這會對所有下游節點產生警告,而這看起來會有點雜亂。這時就是 ScopeIf 節點真正發揮功能的時候了。
請注意 Object.Geometry 節點底部有一條灰色列。這表示節點預覽已關閉 (在節點上按一下右鍵可存取),這樣 GeometryColor.ByGeometryColor 就可以避免為了背景預覽的顯示優先順序而與其他幾何圖形「競爭」。
ScopeIf 節點基本上可讓您選擇性地執行一條完整的節點分支。如果 test 輸入為 false,則連接至 ScopeIf 節點的每個節點都不會執行。
以下是 Dynamo 背景預覽的結果。
以下是一些如何擴充此圖表功能的構想。
在 Excel 檔案中新增 旋轉 一欄,就可以使用它驅動座標系統的旋轉。
在 Excel 檔案中新增 水平或垂直偏移,就可以視需要讓燈柱偏離廊道地勢線。
直接在 Dynamo 中 中使用起點樁號和典型間距產生樁號值,而不使用內含樁號值的 Excel 檔案。
在 Excel 檔案中指定的樁號值處,沿廊道放置燈柱圖塊參考。
任務完成!
在管網中加入管和結構時,Civil 3D 會使用樣板自動指定名稱。這在一開始放置時通常足以應付,但是隨著設計逐漸發展,名稱在未來必然會有所變化。此外,我們可能需要許多不同的命名模式,例如在管路中從最下游的結構開始按順序命名結構,或按照與本端代理的資料架構一致的命名模式來命名結構。此範例將示範如何使用 Dynamo 定義任何類型的命名策略,並且以一致的方式套用。
使用邊界框
使用 List.FilterByBoolMask 節點篩選資料
使用 List.SortByKey 節點排序資料
產生和修改文字字串
此圖表將在 Civil 3D 2020 及更高版本上執行。
首先,下載以下範例檔案,然後開啟 DWG 檔案和 Dynamo 圖表。
以下是此圖表中的邏輯概觀。
依圖層選取結構
取得結構位置
依偏移篩選結構,然後依樁號排序
產生新名稱
更名結構
我們開始吧!
我們首先需要選取要使用的所有結構。我們會透過只選取特定圖層上的所有物件來執行此作業,這表示我們可以從不同的管網 (假設共用相同圖層) 選取結構。
此節點可確保我們不會意外擷取任何不想要但可能與結構共用相同圖層的物件類型。
我們現在有了結構,我們需要找出它們在空間中的位置,以便可以根據位置對結構排序。為了執行此作業,我們將利用每個物件的邊界框。物件的邊界框是完全包含物件幾何實際範圍的最小方塊。透過計算邊界框的中心,我們可以得到結構很近似的插入點。
我們將使用這些點來取得結構相對於所選定線的樁號和偏移。
從這裡開始,事情會變得有點棘手。在此階段,我們有一個大型清單,列出我們指定的圖層上的所有結構,並選擇了要沿其排序結構的定線。問題是清單中可能有我們不想更名的結構。例如,這類結構可能不是我們感興趣的特定管路。
選取的定線
要更名的結構
應忽略的結構
因此,我們需要篩選結構清單,這樣就不用考慮那些與該定線之間大於特定偏移的結構。這最適合使用 List.FilterByBoolMask 節點完成。篩選結構清單後,我們使用 List.SortByKey 節點,依其樁號值排序。
如果您不熟悉使用清單,請查看使用清單一節。
檢查結構的偏移是否小於門檻值
將任何空值取代為 false
篩選結構和樁號的清單
依樁號排序結構
我們要做的最後一項工作,是為結構建立新名稱。我們將使用的格式為 <alignment name>-STRC-<number>
。這裡還有額外幾個節點,是需要時以額外的零填補數字 (例如,「01」而不是「1」)。
最後也是同樣重要的,我們更名結構。
以下是使用 Dynamo 播放器執行圖表的範例。
如果您不熟悉 Dynamo 播放器,請查看 Dynamo 播放器一節。
利用 Dynamo 的 3D 背景預覽來視覺化圖表的中間輸出,而不是只顯示最終結果,會很有幫助。我們可以做一件簡單的事情,就是顯示結構的邊界框。此外,此特定資料集在文件中有廊道,因此我們可以將廊道地勢線幾何圖形帶入 Dynamo,為結構在空間中的位置提供一些情境脈絡。如果圖表是用在沒有任何廊道的資料集,則這些節點就不會執行任何作業。
現在,我們可以更清楚瞭解透過偏移篩選結構的流程如何運作。
以下是一些如何擴充此圖表功能的構想。
根據結構 最接近的定線 (而不是選取特定定線) 更名結構。
除了更名結構外,還 更名管。
根據結構的管路 設定圖層。
對於許多從測量現場到完成工作的流程而言,在 Civil 3D 中使用 COGO 點和點群組是核心要素。Dynamo 在資料管理方面非常出色,我們將在此範例中示範一個可能的使用案例。
使用清單
使用 List.GroupByKey 節點將類似物件分組
在 Dynamo 播放器中展示自訂輸出
此圖表將在 Civil 3D 2020 及更高版本上執行。
首先,下載以下範例檔案,然後開啟 DWG 檔案和 Dynamo 圖表。
以下是此圖表中的邏輯概觀。
取得文件中所有的 COGO 點
依描述將 COGO 點分組
建立點群組
將摘要輸出至 Dynamo 播放器
我們開始吧!
第一步是取得文件中所有的點群組,然後取得每個群組內的所有 COGO 點。這會產生一個 巢狀清單,也就是「清單的清單」,如果稍後使用 List.Flatten 節點將所有內容向下展開為單一清單,會更容易處理。
我們現在已有全部的 COGO 點,需要根據其描述分為多個群組。這正是 List.GroupByKey 節點所做的工作。它基本上會將共用相同鍵的所有項目分組在一起。
辛苦的工作已經完成!最後一步是從分組的 COGO 點建立新的 Civil 3D 點群組。
當您執行圖表時,Dynamo 背景預覽中沒有任何內容可供查看,因為我們沒有處理任何幾何圖形。因此,查看圖表是否正確執行的唯一方法是檢查「工具區」,或查看節點輸出預覽。但是,如果我們使用 Dynamo 播放器執行圖表,則可以透過輸出已建立的點群組摘要,提供更多有關圖表結果的回饋。您只需在節點上按一下右鍵,然後設定為 「是輸出」 即可。在此範例中,我們使用更名過的 Watch 節點來檢視結果。
以下是使用 Dynamo 播放器執行圖表的範例。
以下是一些如何擴充此圖表功能的構想。
將點群組修改為根據 完整描述,而非原始描述。
將點分組,分組時依據您選擇的其他某些 預先定義的品類 (例如,「地面快照」、「碑界」等)。
為某些群組中的點自動建立不規則三角網地形。
典型住宅開發的工程設計涉及使用數個地下公共設施,例如污水管、雨水排水、飲用水或其他。此範例將示範如何使用 Dynamo 繪製從分佈主線到指定基地 (即宗地) 的服務連接。每個基地通常都需要連接服務,這使得放置所有服務的工作相當繁瑣。Dynamo 可以自動精確繪製必要的幾何圖形,並提供可做調整以符合本端代理標準的彈性輸入,來加快流程。
使用 Select Object 節點供使用者輸入
使用座標系統
使用幾何作業,例如 Geometry.DistanceTo 和 Geometry.ClosestPointTo
建立圖塊參考
控制物件併入設定
此圖表將在 Civil 3D 2020 及更高版本上執行。
首先,下載以下範例檔案,然後開啟 DWG 檔案和 Dynamo 圖表。
以下是此圖表中的邏輯概觀。
取得分佈主線的曲線幾何圖形
取得使用者所選界址線的曲線幾何圖形,如有必要可反轉
產生服務計量器的插入點
取得分佈主線最接近服務計量器位置的點
在模型空間中建立圖塊參考和線
我們開始吧!
我們的第一步是讓分佈主線的幾何圖形進入 Dynamo。我們要取得特定圖層上的所有物件,並接合在一起成為 Dynamo PolyCurve,而不是選取個別的線或聚合線。
接下來,我們需要讓所選界址線的幾何圖形進入 Dynamo,以便我們可以使用它。適合進行此工作的工具是 Select Object 節點,可讓圖表的使用者在 Civil 3D 中點選特定物件。
我們還需要處理可能發生的潛在問題。界址線有起點和終點,這表示它有方向。為了讓圖表產生一致的結果,我們需要所有界址線的方向都一致。我們可以直接在圖表邏輯中說明此條件,這可以讓圖表更具彈性。
取得界址線的起點和終點。
測量每個點到分佈主線的距離,然後計算出哪個距離比較大。
想要的結果是,線的起點最接近分佈主線。如果不是如此,我們就反轉界址線的方向。否則,我們只需傳回原始界址線。
現在要來找出服務計量器的放置位置。放置通常由本端代理需求決定,因此我們只要提供可變更以滿足各種條件的輸入值。我們將使用沿界址線的座標系統做為建立點的參考。這可讓您非常輕鬆地定義相對於界址線的偏移,而不論其方位為何。
現在,我們需要取得分佈主線最接近服務計量器位置的點。這可讓我們在模型空間中繪製服務連接,以便能永遠與分佈主線互垂。Geometry.ClosestPointTo 節點是理想的解決方案。
這是分佈主線 PolyCurve
這些是服務計量器插入點
最後一步是在模型空間中實際建立物件。我們將使用先前產生的插入點來建立圖塊參考,然後使用分佈主線上的點來繪製連到服務連接的線。
當您執行圖表時,您應該會在模型空間中看到新的圖塊參考和服務連接線。請嘗試變更某些輸入,您會看到所有內容都會自動更新!
您可能會發現,在為一條界址線放置物件後,選取不同的界址線會導致物件被「移動」。
這是 Dynamo 的預設行為,在許多情況下非常有用。但是,您可能要依序放置多個服務連接,讓 Dynamo 在每次執行時建立新物件,而不是修改原始物件。您可以變更物件併入設定來控制此行為。
變更此設定將強制 Dynamo「忘記」每次執行時所建立的物件。以下是在關閉物件併入的情況下,使用 Dynamo 播放器執行圖表的範例。
以下是一些如何擴充此圖表功能的構想。
同時放置 多個服務連接,而不是選取每條界址線。
將輸入調整為改放置 污水管清掃口,而不是供水服務計量器。
加入開關,以允許在界址線的特定一側 (而非兩側) 放置單一服務連接。
根據定線的樁號標示,按順序更名管網結構。
任務完成!
為每個唯一的 COGO 點描述建立點群組。
如果您不熟悉使用清單,請查看一節。
如果您不熟悉 Dynamo 播放器,請查看 一節。
任務完成!
將供水服務計量器圖塊參考放置在距界址線的指定偏移處,並為與分佈主線互垂的每個服務連接繪製一條線。
如果您不熟悉 Dynamo 曲線幾何圖形,請查看一節。
如果您不熟悉座標系統,請查看一節。
請查看一節,以取得更多資訊。
如果您不熟悉 Dynamo 播放器,請查看 一節。
任務完成!
制定運動包絡線以供間隙驗證,是軌道設計的重要一環。Dynamo 可用來產生包絡線的實體,而不是建立和管理複雜的廊道次組合來執行工作。
使用廊道地勢線
在座標系統之間轉換幾何圖形
透過斷面混成建立實體
使用交織設定控制節點行為
此圖表將在 Civil 3D 2020 及更高版本上執行。
首先,下載以下範例檔案,然後開啟 DWG 檔案和 Dynamo 圖表。
以下是此圖表中的邏輯概觀。
從指定的廊道基準線取得地勢線
沿廊道地勢線以所需間距產生座標系統
將縱斷面圖塊幾何圖形轉換至座標系統
在輪廓之間斷面混成實體
在 Civil 3D 中建立實體
我們開始吧!
我們的第一步是取得廊道資料。我們將依名稱選取廊道模型,取得廊道內的特定基準線,然後依其點代碼取得基準線內的地勢線。
我們現在要沿廊道地勢線,在指定的起點樁號和終點樁號之間產生座標系統。這些座標系統將用於將車輛縱斷面圖塊幾何圖形與廊道對齊。
如果您不熟悉座標系統,請查看向量、平面和座標系統一節。
請注意節點右下角的小 XXX。這表示節點的交織設定已設定為_笛卡兒積_,如此才能在兩條地勢線的相同樁號值處產生座標系統。
如果您不熟悉節點交織,請查看什麼是清單一節。
現在,我們需要以某種方式沿地勢線建立一系列車輛縱斷面。我們將使用 Geometry.Transform 節點,從車輛縱斷面圖塊定義來轉換幾何圖形。這是一個難以理解的概念,因此在我們查看節點之前,這裡有一個圖表顯示將要發生的情況。
因此,我們基本上是從_單一_圖塊定義中取得 Dynamo 幾何圖形,然後移動/旋轉它,同時沿地勢線建立一個陣列。好酷的東西!以下是節點序列的外觀。
這會從文件中取得圖塊定義。
這些節點會取得圖塊內物件的 Dynamo 幾何圖形。
這些節點基本上是定義我們要從中轉換幾何圖形的_來源_座標系統。
最後,此節點會實際執行轉換幾何圖形的工作。
請注意此節點上_最長的_交織。
以下是我們在 Dynamo 中得到的結果。
好消息!辛苦的工作已經完成。我們現在只需在輪廓之間產生實體。這可以透過 Solid.ByLoft 節點輕鬆完成。
以下是結果。請記住,這些是 Dynamo 實體 - 我們仍需要在 Civil 3D 中建立它們。
我們的最後一步是將產生的實體輸出至模型空間。我們也為它們塗上顏色,比較容易看清楚。
以下是使用 Dynamo 播放器執行圖表的範例。
如果您不熟悉 Dynamo 播放器,請查看 Dynamo 播放器一節。
以下是一些如何擴充此圖表功能的構想。
加入針對每條軌道分別使用 不同樁號範圍 的功能。
將實體分割 為可單獨分析衝突的較小區段。
請檢查包絡線實體是否 與圖徵相交,並為發生衝突的實體著色。
使用車輛縱斷面圖塊沿廊道產生間隙包絡線 3D 實體。
任務完成!