下載app免費領(lǐng)取會員
這篇將介紹如何利用Dynamo自動生成結(jié)構(gòu)柱類型【“T”字形柱】
● 思路
T形柱由8條邊組成,有且只有兩個頂點(8、3)兩側(cè)的頂點(1,7;2,4)的連線的中點(Point1、Point2)位于圖形外,且此兩點中間只隔兩個頂點(1、2)。如下圖:
首先,濾出具有八條線的PolyCurve
核心節(jié)點:PolyCurve.NumberOfCurves
拾取頂點
核心節(jié)點:Curve.StartPoint
頂點排序
核心節(jié)點:List.GetItemAtIndex、List.RemoveItemAtIndex
此處無圖
頂點隔點連線
核心節(jié)點:List.GetItemAtIndex、List.RemoveItemAtIndex
連線取中點
核心節(jié)點:Curve.PointAtParameter
以PolyCurve創(chuàng)建Surface
核心節(jié)點:Surface.ByPath
判別點是否與Surface相交
核心節(jié)點:Geometry.DoesIntersect
濾出有兩個點沒有與Surface相交的線且無交集
核心節(jié)點:List.FilterByBoolMask
值得注意的是:隔點頂點連線的中點在圖形外且連線不相交,只有T形。
最后我們就選出了T形的PolyCurve
根據(jù)PolyCurve的排序,選取該柱名稱,新建T形柱類型。(詳上一篇)
核心節(jié)點:FamilyType.Duplicate(Clockwork節(jié)點包)
T形參數(shù)特點
紅線未相交的線為寬度
與寬度線平行且最遠的線距為深度
寬度相交的線分別為a、a2
與a線相交的且排除寬度線的線為b
首先獲取寬度線,并寫入?yún)?shù)值【寬度】
核心節(jié)點:Geometry.DoesIntersect、Element.SetParameterByName
獲取與寬度線平行的線
核心節(jié)點:Vector.IsParallel
獲取與寬度線最遠的線的距離和線長,并寫入?yún)?shù)值【深度】【a1】
核心節(jié)點:Geometry.DistanceTo、Element.SetParameterByName
獲取與寬度線相交的線的長度,并寫入?yún)?shù)值【a】【a2】
核心節(jié)點:Element.SetParameterByName
取上一個步驟其中一根線【a】,獲取與其相交的線,并排除寬度線,將其長度寫入?yún)?shù)值【b】
核心節(jié)點:Geometry.DoesIntersect
來源:玖辰建筑科技。
作者:黎笑塵
本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。
上一篇:Dynamo教程 | Dynamo如何填色?用Dynamo給每個房間凈高填色