下載app免費(fèi)領(lǐng)取會員
Dynamo和Revit結(jié)合地很好,除了。。。內(nèi)部單位悲摧地不一致。
簡單地說,所有在Dynamo里不帶單位的數(shù)值(最常見的就是坐標(biāo)點(diǎn)),Dynamo都會把它們認(rèn)為是以“米”為單位。所以,如果你想創(chuàng)建兩根距離10英尺的軸網(wǎng),這樣做是不行的:
無論在項(xiàng)目模板中“單位”設(shè)置是英制還是公制,是“厘米”還是“毫米”,所創(chuàng)建的兩個(gè)軸網(wǎng)之間的間距永遠(yuǎn)是10米。
那么,怎樣才能得到正確的數(shù)值呢,沒有捷徑,只能通過手動(dòng)轉(zhuǎn)換,讓我們來看看,如何進(jìn)行有效地轉(zhuǎn)換:Dynamo提供了一些結(jié)點(diǎn)用于單位轉(zhuǎn)換,比如若想把10英尺轉(zhuǎn)換成米制單位,可以這樣做:
其中“3.048”就是一個(gè)可以直接輸入Revit結(jié)點(diǎn)的米制數(shù)值了。這里L(fēng)ength.FromFeet表示把一個(gè)無單位的數(shù)值轉(zhuǎn)換成英尺單位的數(shù)值。而SIUnit.Value可以把任何一個(gè)有單位的數(shù)值轉(zhuǎn)換成以米為單位的值,然后把單位抹掉。
所以真正可以創(chuàng)建間距10英尺軸網(wǎng)的Dynamo程序是這樣子的:
我們再用一個(gè)Revit中更為實(shí)際的例子來說明這個(gè)轉(zhuǎn)換過程:
首先我們可以用Element.GetParameterValueByName, 取到一面墻的長度:
請注意這個(gè)長度是帶單位的。Watch窗口里顯示的單位可以在Dynamo菜單欄“Setting”>“Length Display Unit”里選擇。然后,我們想以這個(gè)墻的長度為Y值創(chuàng)建一個(gè)點(diǎn):
我們發(fā)現(xiàn),Dynamo出現(xiàn)錯(cuò)誤提示。(結(jié)點(diǎn)顯示黃色,表明程序編寫出錯(cuò))主要原因是,點(diǎn)作為Dynamo里的元素,定義在Dynamo的世界坐標(biāo)系下,而這個(gè)坐標(biāo)系是沒有單位的(雖然轉(zhuǎn)化成其它單位時(shí)會默認(rèn)為米)。要想做到這一點(diǎn),必須中間再加個(gè)SIUnit.Value轉(zhuǎn)換:
當(dāng)我們完成了這個(gè)步驟之后,才能得到正確的結(jié)果。
本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。
上一篇:Dynamo入門基礎(chǔ)知識(一)Lacing
下一篇:Dynamo入門基礎(chǔ)知識“初識Dynamo”
推薦專題