首先我們用SelectModelElement節點選擇多段線,用Element.Curves節點識別選擇好的多段線。
用Categories節點選擇房間節點,用AllElementsofCategory節點把所有房間類型圖元都選擇,用Element.Solids節點獲取房間所在的圖元。
用Solid.Centroid節點獲得每個房間幾何體的中心坐標,用Point.X和Point.Y節點分離出來中心坐標的X坐標和Y坐標,這樣就讓坐標落在多段線所在的平面上了,再把獲得的新坐標組合起來。
我們用新獲得的坐標為圓心畫圓,圓會和我們之前繪制的多段線有交點,所以我們之前在繪制多段線的時候盡量要通過房間的中心。繪制圓用Circle.ByCenterPointRadiusNormal節點,我們先設置半徑為1000看效果。
運行效果如下,每個圓和曲線都產生了交點
接下來我們用Geometry.IntersectAll節點獲得交點(獲取交點的時候連綴改成叉集),但是交點壹般都會有兩個,所以我們取每個交點組中的第壹組數據即可。過程中要用List.Flatten節點將數據維度降低壹級。用List.FirstItem節點獲取交點中的第壹個交點。
接下來我們要通過交點處到曲線起點處區間的弧長,判斷交點在曲線上所處的次序,才能進行後面的排序。
通過Curve.ParameterAtPoint節點和Curve.SegmentLengthAtParameter節點獲得交點處曲線的弧長,並將列表拍平。
通過List.Sort節點將列表從弧長由短到長進行排序
再通過IndexOf節點和List.Map節點獲得排序後的列表數據在排序前列表中的位置
通過List.GetItemAtIndex節點將之前房間列表按照獲得的list.map中的數據排序
這部分告壹段落,我們在Excel中獲取原來設置好的房間數據,這個我在之前的相關dynamo的教程中有提及,這裏就直接放節點了。
最後壹步,通過Room.SetName節點將整理好的excel數據給整理好的房間就大功告成了!
以上就是關於“Revit怎麽通過dynamo給房間按順序命名?怎麽操作?”的精彩內容分享了,大家跟著步驟操作是否能夠順利完成呢?revit軟件,只要用心學,其實對於眾多朋友來說都是十分簡單的!學會建築設計制作還是信手拈來?如果,妳此時不會想要學會,那麽真的就壹定不能夠錯過羽兔的精彩課程了,點擊鏈接即可開啟revit系統學習: