- Autodesk Revit參數化設計之道:Dynamo實戰剖析
- 柏慕聯創組編
- 1595字
- 2022-05-10 17:34:34
2.3 案例3:自定義施工編碼
1.案例背景
建設工程項目管理過程中,為滿足不同參建單位間的協同工作或對不同維度構件的施工管理應用,有些施工管理平臺要求對BIM模型中的構件進行編碼。編碼規則一般是由不同字段名稱縮寫加連接符構成,例如按“樓層_構件規格_構件類型_構件定位_順序碼”進行編碼。編碼的工作量非常巨大,但編碼規則又具有一定邏輯性,因此可以利用Dynamo進行批量處理。本案例將把最終組合的構件編碼信息寫入Revit模型構件的“標記”實例參數中。
2.解決方案
編碼字段中的所有信息就是族的各個參數值通過連接符連接而形成的組合,如“樓層_構件規格_構件類型_構件定位_順序碼”。通過Dynamo數據處理,可以將模型構件中的各類信息提取出來并組合使用。涉及構件信息的讀取和寫入,需要用到Element.GetParameterValueByName(根據參數名獲取參數值)節點和Element.SetParameterByName(根據參數名設置參數值)節點。本案例以結構柱為例。
提取構件信息→按要求格式組合字段并生成編碼→寫入構件實例參數“標記”。
3.案例知識點
● Element. GetParameterValueByName
● Element. SetPatameterByName
● FamilyType. Name
● FamilyType. ByName
4.案例詳解
(1)編碼要求。打開Revit案例文件,項目中已經繪制了一系列分屬于不同樓層且不同類型的結構柱。
提取結構柱的構件信息,按“樓層_構件規格_構件類型_構件定位_順序碼”的格式組成編碼,再寫入結構柱。
“樓層”即為標高信息,在Revit中可以讀取結構柱的實例參數“底部標高”;“構件規格”即為類型名稱,如“HM298×201×9×14”;“構件類型”即為類型參數“類型注釋”的相關信息;“構件定位”即為實例參數“柱定位標記”;構件“順序碼”在Revit中并沒有,根據本章案例2的相關知識,按要求排序,并寫入實例參數“注釋”或其他空白參數里,最后再提取使用即可,如圖2-37所示。

圖2-37
(2)設置順序碼。進入Dynamo編輯界面,按類別選擇所有結構柱構件,結合之前學的知識,先隨機排序,然后用Element.SetPatameterByName(根據參數名設置參數值)節點將順序碼寫入結構柱構件的實例參數“注釋”中,如圖2-38所示,這樣便完成了簡單順序碼的寫入工作。

圖2-38
(3)獲取編碼標高字段。接下來提取“底部標高”作為樓層信息字段:讀取構件信息使用Element.Get ParameterValue By Name(根據參數名獲取參數值)節點,如圖2-39所示。

圖2-39
提取出來的“底部標高”有名稱和標高值兩個信息,這里只需要標高的名稱。在Revit→Elements(Revit圖元)→Level(標高)→Name(獲取標高名稱),如圖2-40所示。通過Level.Name(獲取標高名稱)節點便能提取標高名稱。

圖2-40
(4)獲取編碼標高及順序碼數據。同樣的方法,提取實例參數“柱定位標記”和剛剛寫入實例參數“注釋”里的順序碼,如圖2-41所示。

圖2-41
(5)獲取類型參數值。繼續往下做會發現,同樣的方法對“類型注釋”的信息提取無效,如圖2-42所示。

圖2-42
這是因為在Revit中“類型注釋”屬于類型參數,區別于“注釋”“柱定位標記”等實例參數,它代表一類構件的屬性,不能直接從族類別這個層級即All Elements of Category(在項目中獲取該族類別所有構件)節點中提取。類型參數和實例參數是Revit中相對重要的概念,通過Dynamo操作Revit,需要熟悉Revit的屬性。
對于Revit中類型參數信息的讀取或寫入,需要先通過數據處理,得到FamilyType(族類型)或ElementType(實例類型)結果后,再進行參數讀取或寫入。
如圖2-43所示,先通過FamilyType.Name(獲取族類型名稱)節點獲取elements(Revit圖元)族類型名稱,再通過族類型名稱獲取族類型。

圖2-43
在Revit→Elements(Revit圖元)→FamilyType(族類型)中選擇Name(獲取族類型名稱),先通過FamilyType.Name(獲取族類型名稱)節點提取元素的類型名稱,再用FamilyType.ByName(根據名稱獲取族類型)節點返回族類型,如圖2-44所示。看上去節點重復,實際上是先在族類別的層級下找到這類構件,然后再進行處理。

圖2-44
(6)自定義編碼。連接已有節點,現在只需要將信息按“樓層_構件規格_構件類型_構件定位_順序碼”的格式串聯起來即可。
在之前的章節中已經講過如何使用Code Block節點將字符串相加,讀者可以自行嘗試,如圖2-45所示。

圖2-45
最后通過Element.SetParameterByName(通過參數名設置參數值)節點將信息錄入構件,這便按要求格式完成了編碼工作。讀者可以嘗試通過Data.ExportExcel(將數據導入到Excel)節點將編碼數據再寫入Excel表格。
- Visio圖形設計從新手到高手(兼容版·第2版)
- ERP沙盤模擬教程
- UI 設計入門一本就夠
- YUI 2.8: Learning the Library
- AI圖像處理:Photoshop+Firefly后期處理技術基礎與實戰
- 零基礎學數碼攝影后期
- VRP11/3ds Max虛擬現實制作標準實訓教程
- 中文版Photoshop CS6全能修煉圣經(移動學習版)
- ANSYS Workbench中文版超級學習手冊
- ASP.NET 3.5 Social Networking
- Origin科技繪圖與數據分析
- Photoshop CS6數碼照片處理入門到精通
- 從零開始:Indesign CC 2019設計基礎+商業設計實戰
- Cinema 4D基礎與實戰教程
- AutoCAD 2020與天正建筑T20 V6.0建筑設計從入門到精通