下載app免費(fèi)領(lǐng)取會(huì)員
通過(guò)Dynamo提取Revit中相關(guān)圖元的參數(shù)是我們經(jīng)常需要的一個(gè)步驟,但是僅僅通過(guò)Dynamo自身的節(jié)點(diǎn)只能獲取圖元的實(shí)例參數(shù)。
例如,通過(guò)節(jié)點(diǎn)“Select Model Elements”先選擇圖元,再通過(guò)節(jié)點(diǎn)“Element.GetParameterValueByName”提取墻體實(shí)例參數(shù)中名為“無(wú)連接高度”的參數(shù)值。
但是,我們繼續(xù)使用該節(jié)點(diǎn)提取墻體的類型參數(shù),比如,提取墻體的“厚度”。如下圖所示,得到的結(jié)果為空的字符串。
因此,我們通過(guò)另一種方式獲取墻體的類型參數(shù)。
1、通過(guò)第5至第9行將Revit的API導(dǎo)入當(dāng)前的Python Script。
2、定義一個(gè)變量“wall”表示解封以后的墻體,由于Revit的圖元進(jìn)入Dynamo都是被封裝的,因此需要解封才能使用。
3、通過(guò)變量“wallWidth”表示墻體的厚度,提取該厚度的原理是墻體的函數(shù)“Width”可以識(shí)別墻體厚度。
4、由于獲得的結(jié)果是英尺(ft),所以將結(jié)果乘以304.8變?yōu)楹撩住?/span>
當(dāng)前只有一個(gè)墻體,那如果有多個(gè)墻體該怎么辦呢?
1、創(chuàng)建一個(gè)空列表“wallsWidth”表示儲(chǔ)存這些墻體的厚度。
2、創(chuàng)建一個(gè)循環(huán),該循環(huán)判斷如果元素存在于列表“walls”中就提取它的厚度,并且將結(jié)果填入列表“wallsWidth”。
3、再創(chuàng)建一個(gè)空列表“Width”表示將英尺轉(zhuǎn)換為毫米,之后便利用一個(gè)循環(huán)判斷如果元素存在于列表“wallsWidth”中就將其乘以304.8,并且將結(jié)果填入列表“Width”
4、輸出列表“Width”。
總結(jié):當(dāng)前的是墻體,那如果換一種圖元要怎么辦呢?這時(shí)我們就需要知道我們要提取的參數(shù)是怎樣的函數(shù)。還是以墻體為例,打開(kāi)RevitAPI,找到Autodesk.Revit.DB Namespace,再選擇Wall Class中的Wall Members,在右側(cè)就能找到方法Width,提取墻體的厚度。
本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。
上一篇:Revit中,要如何更新屋頂和幕墻系統(tǒng)的面選擇?
下一篇:Revit如何更新建筑圖元以反映對(duì)體量所作的修改?
推薦專題