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