下載app免費(fèi)領(lǐng)取會(huì)員
說(shuō)到參數(shù)化建模,常常用于表達(dá)復(fù)雜的設(shè)計(jì),在這個(gè)過(guò)程中,我們選擇工具的時(shí)候一般想到的都是大家所熟知的Rhino+Grasshopper。但是Revit+Dynamo同樣也能做出一些比較復(fù)雜的效果,接下來(lái)就通過(guò)一個(gè)實(shí)例來(lái)模擬實(shí)際建筑外裝飾幕墻設(shè)計(jì)。
1、選取參考曲線并復(fù)制至各標(biāo)高處
1.1 先通過(guò)節(jié)點(diǎn)“Select Model Element”選擇參考線,再通過(guò)節(jié)點(diǎn)“Categories”和節(jié)點(diǎn)“All Elements of Category”選中所有屬于指定族類別的圖元。
1.2 參數(shù)element表示拾取的曲線,參數(shù)level表示選取的標(biāo)高。我們現(xiàn)在在第一行獲取element的曲線圖元,在第二行獲取各個(gè)標(biāo)高的數(shù)值并且從小到大排序。在第三行將獲取曲線圖元向上移動(dòng)復(fù)制,即在每個(gè)標(biāo)高位置都復(fù)制一次曲線圖元。在第四行將復(fù)制后的列表鋪平。
2、造型縮放數(shù)值參數(shù)控制
2.1 首先將縮放的比例定義在區(qū)間[0.74,1.18]之間,然后通過(guò)節(jié)點(diǎn)“Math.RemapRange”將所有標(biāo)高的列表保持分布率不變?cè)趨^(qū)間[0.74,1.18]內(nèi)重新分布。
2.2 然后通過(guò)節(jié)點(diǎn)“List.DiagonalLeft”獲取子列表寬度為3,從右上角至左下角提取列表的數(shù)據(jù)。
2.3 最后轉(zhuǎn)置變?yōu)槲覀冃枰牧斜怼_@樣做的目的在于將縮放系數(shù)分為三個(gè)部分。
2.4 第四行至第七行的含義是控制三個(gè)部分的縮放系數(shù)。其中item0和item2反轉(zhuǎn)的原因是想讓縮放后變?yōu)镾形。正常情況下,縮放系數(shù)為從小到大排列,反轉(zhuǎn)第一個(gè)和第三個(gè)列表之后,縮放系數(shù)為從小到大,再?gòu)拇蟮叫?,再?gòu)男〉酱?,最后從大到小?/span>
3、標(biāo)高曲線輪廓縮放
3.1 在這個(gè)Code Block中,list端外接第二步中獲取的縮放系數(shù)列表“ list = Flatten({item0, item1, item2})”,mask端通過(guò)節(jié)點(diǎn)“Object.IsNull”外接第二步中獲取的縮放系數(shù)列表“ list = Flatten({item0, item1, item2})”,geo端外接第一步中鋪平后的列表“Flatten(geo)”。
3.2 首先第一行通過(guò)節(jié)點(diǎn)“List.FilterByBoolMask”判斷縮放系數(shù)的列表中是否存在空值。
3.3 第二行和第三行確定X方向與Y方向的縮放系數(shù),Y方向的縮放系數(shù)需要反轉(zhuǎn)是因?yàn)橐赬和Y兩個(gè)方向交叉縮放。
3.4 第四行運(yùn)用確定的縮放系數(shù)執(zhí)行縮放。
4、創(chuàng)建幕墻嵌板定位點(diǎn)
4.1 每個(gè)標(biāo)高的輪廓確定以后,就得確定輪廓線上的嵌板定位點(diǎn)。輸入端cur外接上一步縮放后的曲線“ geometry = geo.Scale(x, y, 1)”,輸入端d表示嵌板的寬度。定位點(diǎn)的確定公式是將整個(gè)輪廓線的長(zhǎng)度除以指定的嵌板寬度,然后對(duì)結(jié)果進(jìn)行向上取整。
4.2 然后我們需要兩個(gè)點(diǎn)的列表,pts1表示所有曲線輪廓的起點(diǎn),pts2表示所有曲線的均分點(diǎn)。
4.3 在第五行將輪廓線的起點(diǎn)依次添加進(jìn)每層曲線的均分點(diǎn)中,相當(dāng)于從起始點(diǎn)開(kāi)始到終點(diǎn)然后又回到一次起點(diǎn)。例如,圖中從0開(kāi)始至3,然后又以0結(jié)尾,即{0, 1, 2, 3, 0}。
5、嵌板邊線的創(chuàng)建與定位點(diǎn)清單排序
5.1 輸入端pts接入上一步“List.AddItemToEnd(pts1@-1<1>, pts2@-2<1>)”的結(jié)果。
5.2 原本的pts列表中的點(diǎn)為同一標(biāo)高的點(diǎn),經(jīng)過(guò)轉(zhuǎn)置以后就得到豎直方向點(diǎn)的列表,目的在從上往下形成多重曲線。該曲線的目的在于檢查我們上一步是否有錯(cuò)位的情況。
5.3 由于嵌板在布置的時(shí)候,列表最后一個(gè)點(diǎn)會(huì)接回第一個(gè)點(diǎn),所以在第三行用節(jié)點(diǎn)“List.FirstItem”先將第一個(gè)點(diǎn)提取出來(lái),然后在用節(jié)點(diǎn)“List.AddItemToEnd”將第一個(gè)點(diǎn)添加列表。
本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。
上一篇:Revit快速創(chuàng)建風(fēng)管布局!
下一篇:Dynamo模擬實(shí)際建筑外裝飾幕墻設(shè)計(jì)(下)
推薦專題