下載app免費領(lǐng)取會員
本文由網(wǎng)友 〃刪除、過去‖ 投稿分享
經(jīng)過一段時間的Dynamo學(xué)習(xí),在插件授權(quán)過期沒有續(xù)上的時候,決定測試一下自己的學(xué)習(xí)成果,從土建建模個人覺得比較麻煩的過梁添加進行制作,下面就是應(yīng)用到的節(jié)點詳解,希望大家能夠?qū)φ麄€布置提出建議,進行優(yōu)化。
一. 數(shù)據(jù)處理
1.
在這里先對整體項目進行選中,從中對墻,門,窗進行劃分,方便后面進行劃分整理,由于墻體需要特殊的節(jié)點進行讀取,所以對整個構(gòu)件的族進行處理,同時應(yīng)用String.AllIndicesOf,String.IndexOf節(jié)點進行選取選取。
2.
采用FamilyInstance.GetType節(jié)點,對窗體,門數(shù)據(jù)進行讀取
3.
判斷寬度,將規(guī)范寬度填入,與整個門寬數(shù)據(jù)進行判斷,再利用List.AllIndicesOf與IF語句進行區(qū)分,整個邏輯順序分為上圖中進行梁高度H與梁寬度B的判斷
4.
將門型號,門寬度和門高度提取,對門寬度和門高度進行數(shù)據(jù)處理,完成梁線,過梁型號選取的前期準備。
二、
采用數(shù)學(xué)公式對之前提取的數(shù)據(jù)進行處理,這一步驟的目的是為了獲取梁中心線X,Y坐標與梁頂高度值。
使用Element.GetLocation節(jié)點,獲取門類型的中心點位置,利用寬度進行兩邊拓展,利用高度加上過梁高度進行梁高度最終確認,中間使用Point.Add節(jié)點進行兩側(cè)點計算,之后使用Line.ByStartPointEndPoint進行連接,確定最終梁線。
三、過梁型號與梁線匹配
使用FamilyInstance.GetHost節(jié)點進行門歸屬墻選取,之后通過FamilyType.Name與WallType.ByName節(jié)點進行墻體選取和進入能夠讀取數(shù)據(jù)狀態(tài),通過Element.GetParamaterValueByName與List.AllIndicesOf節(jié)點進行分類,將不同墻體厚度進行區(qū)分,
這里對墻線向量進行選取是通過將數(shù)組拍平,通過List.AllIndicesOf節(jié)點進行重新排序,通過固定的排序?qū)⑺袛?shù)據(jù)進行重新組織。
通過前面獲取的梁線與墻線通過Vector.IsParallel進行判斷是否需要進行旋轉(zhuǎn),
對處于不平行狀態(tài)的梁線與墻位置進行選取,并通過Vector.angleAboutAxis節(jié)點對角度進行讀取
再次使用索引命令,將梁線選取,在使用180-角度的方式計算改旋轉(zhuǎn)角度,保證墻體再傾斜狀態(tài)下能夠與墻體保證平行。通過Geometry.Rotate節(jié)點進行旋轉(zhuǎn)應(yīng)用得到與墻體平行位置的梁線,到這一步所有的梁線處理完畢,下一步進行構(gòu)件的匹配。
三、構(gòu)件名稱匹配
對墻體厚度進行讀取按照之前確定的排序順序,并進行字符串轉(zhuǎn)化,并通過之前根據(jù)門寬度確定的梁高度進行歸屬
通過字符串的處理,得到構(gòu)件名稱(此處構(gòu)件名稱處理太過冗長,希望大家指正),得到構(gòu)件名稱之后,根據(jù)前面篩選的平行判斷條件選出的梁線進行分別對應(yīng)
再次使用List,GetItemIndex節(jié)點進行排序選取,使梁線對應(yīng)的構(gòu)件名稱能夠正確對應(yīng),標高通過Levels進行選擇,最后通過StructuralFraming.BeamByCurve節(jié)點進行過梁的創(chuàng)建和放置。本次的講解針對的其中一組數(shù)據(jù),剩余的三組數(shù)據(jù)采用相同的方式進行歸類整理,就可以通過Dynamo創(chuàng)建整個項目的門窗過梁。
使用上面方式創(chuàng)建的門過梁,能夠在不使用插件的起提下提高自己的工作效率。
本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。
下一篇:利用Dynamo進行樁基翻模
推薦專題