"> 本文源自微信公眾號:華筑建筑科學研究院 作者Bruce 之前有人提出過這樣的需求,由于結構柱數量較多,可不可以給模型快速的添加上軸網的定位信">
下載app免費領取會員
本文源自微信公眾號:華筑建筑科學研究院 作者Bruce
之前有人提出過這樣的需求,由于結構柱數量較多,可不可以給模型快速的添加上軸網的定位信息,而且必須在標記參數里面添加定位信息,比如:在軸網1和軸網A附近的柱子標記上“1-A”就行。這個問題用Dynamo可以很快實現!主要分為以下八步:
將橫向軸網和縱向軸網分別利用Select Model Elements拾取,再利用Grid.Curve讀為Dynamo中的line。分開讀取方便利用橫縱軸網求取交點。
利用Geometry.Intersect直接求取交點,一定要將連綴改為叉積,然后再用Flatten拍平列表層級,簡化列表。
需要把所有結構柱都賦上軸網位置信息,所以直接通過類別選擇就可以了,在根據類別把所有結構柱的族實例都讀進Dynamo,可以直接通過Categories和All Elements of Category實現。再通過GetLocation把點位數讀取出來。
此步驟為整個程序腳本的核心計算。給結構柱賦軸網的標記位置信息無非就是給標記參數添加信息而已,但是一定要添加上對應的信息,所以數據的對應是重中之重。依據結構柱的點數據和軸網交點,要計算出距離最近的一組點,這樣才可以將結構柱點位在列表中重新排序。此步驟需要用帶外部的節點包Clockwork。(用內置Geometry.ClosestPointTo也可以,個人習慣)
將外部節點包直接復制到圖片中的路徑中即可。
選用Geometry.ClosestTo直接階段最近點。
上一步求出了結構柱點位到軸網交點最近位置的排序,再根據這個順序,利用索引值,排列結構柱族實例的順序。
利用Element.GetParameterValueByName獲取軸網的名稱參數信息。
獲取軸網的名稱參數信息為字符串,利用Code Block中的Design Script語言直接組合成軸網定位信息。要注意的是Code Block中是用Replication代替的連綴,可以分別在豎軸名稱和橫軸名稱后面加上“<1>”,得到想要結果。
08結構柱賦軸網的標記位置信息
最后一步就很簡單了,直接通過Element.SetParameterByName就完成定位信息賦值了。
轉載請注明來源本文地址:https://www.tuituisoft/bim/26153.html
上一篇:沒有了
下一篇:沒有了