下載app免費領取會員
通過Dynamo提取Revit中相關圖元的參數是我們經常需要的一個步驟,但是僅僅通過Dynamo自身的節點只能獲取圖元的實例參數。
例如,通過節點“Select Model Elements”先選擇圖元,再通過節點“Element.GetParameterValueByName”提取墻體實例參數中名為“無連接高度”的參數值。
但是,我們繼續使用該節點提取墻體的類型參數,比如,提取墻體的“厚度”。如下圖所示,得到的結果為空的字符串。
因此,我們通過另一種方式獲取墻體的類型參數。
1、通過第5至第9行將Revit的API導入當前的Python Script。
2、定義一個變量“wall”表示解封以后的墻體,由于Revit的圖元進入Dynamo都是被封裝的,因此需要解封才能使用。
3、通過變量“wallWidth”表示墻體的厚度,提取該厚度的原理是墻體的函數“Width”可以識別墻體厚度。
4、由于獲得的結果是英尺(ft),所以將結果乘以304.8變為毫米。
當前只有一個墻體,那如果有多個墻體該怎么辦呢?
1、創建一個空列表“wallsWidth”表示儲存這些墻體的厚度。
2、創建一個循環,該循環判斷如果元素存在于列表“walls”中就提取它的厚度,并且將結果填入列表“wallsWidth”。
3、再創建一個空列表“Width”表示將英尺轉換為毫米,之后便利用一個循環判斷如果元素存在于列表“wallsWidth”中就將其乘以304.8,并且將結果填入列表“Width”
4、輸出列表“Width”。
總結:當前的是墻體,那如果換一種圖元要怎么辦呢?這時我們就需要知道我們要提取的參數是怎樣的函數。還是以墻體為例,打開RevitAPI,找到Autodesk.Revit.DB Namespace,再選擇Wall Class中的Wall Members,在右側就能找到方法Width,提取墻體的厚度。
本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。
推薦專題