获取族_批量添加族参数(上)
????????隨著BIM技術在工程行業的普及,不少設備供應商也因此被拉下了水,一些項目的BIM實施細則就要求設備進場之前就必須提供設備的LOD400-500精度的BIM模型。BIM的精髓在于信息,做的再精細而沒有信息的模型也只能當成“花瓶”來看。信息是模型的靈魂,畢竟有趣的靈魂才萬里挑一。那么就來研究一下批量添加設備族參數信息。
????????思路是這樣的:先從表格中讀取參數名和相應參數值,根據讀取到的參數名新建族參數,將參數值寫入到對應的參數名中去。這看上去就和把大象放進冰箱那三步是一樣的簡單。
從excel表格讀取數據
先把參數信息整理成如下圖的表格:
用Data.ImportExcel從excel表格文件中讀取數據,由于dynamo讀取數據默認是按照行讀取,并且第一行的表頭是無效數據,所以通過List.RestOfItems只保留除第一行外的數據并進行行列轉置List.Transpose將數據處理成需要的形式。
????2.新建參數
????????新建參數用到的是Orchid節點包中的Parameter.AddParameter節點,分別配置輸入端:用Orchid節點包中的Document.Current獲取當前文檔,第一步讀取到的參數名,參數類型為文字,參數分組為文字,提示這里設置為空“”,非實例參數(即類型參數),非報告參數。
????3.參數值寫入
寫參數值主要是用Parameter.SetValue,輸入端分別輸入:當前文檔,當前文檔的族類型,參數名,參數值。由于建參數和寫參數存在先后的邏輯關系,建完參數后,才能寫參數。這里用到的是DataStream.Await節點,同樣位于Orchid節點包中,waitFor是先運行的等待的節點,pass的是后運行的被等待的節點。若沒有此節點在寫參數是程序會報錯提示找不到該參數。
看一下運行效果:
同樣的,可以用同樣的方法批量添加共享參數。
補充一下:一開始我是想通過Parameter.CreateProjectParameter配合Element.SetParameterByName來實現此功能,發現并不奏效,因為用Parameter.CreateProjectParameter是在項目環境中創建的項目參數。這樣做將族載入到項目中在項目環境下運行程序,看似參數名也加上了,參數值也寫入了。但是添加的參數信息只能依附于當前的項目環境,并不能獨立存在于其族環境。
????????好了,今天的文章批量添加族參數(上)實際是為單個族文件添加批量的參數就到這里,下次寫一下批量添加族參數(下)為批量族文件添加單個參數。
歡迎閱讀,分享,交流,批評指正。
如轉載請注明出處,否則追究法律責任(說說而已,全靠自覺)。
總結
以上是生活随笔為你收集整理的获取族_批量添加族参数(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文件按m3u8顺序合并_在线视频下载之m
- 下一篇: cuda第一次计算耗时_CUDA优化的冷