在模型輕量化或者其他應用中,需要獲取Revit里面元素的圖形信息,Revit的三維顯示,也是多種圖形描述元素組成,在Element元素之下,有一個重要的屬性Geometry,其通過get_Geometry函數獲取,將會返回一個GeometryElement對象,這個對象是一個圖形集合,其可能包含下圖中所有圖形元素的一種,根據繼承關系,可以知道Revit中圖形元素擴展方式如下圖:
- GeometryElement
這個是比較核心的元素,Element通過get_Geometry函數,能夠獲取的元素就是這個元素,這個對象,本身是不包含圖形的,包含圖形是它的GetEnumerator枚舉類型,其枚舉類型是包含以上可能的所有元素,包括GeometryElement。
- GeometryInstance
主要是族元素獲取其圖形元素,Revit使用geometryinstances存儲給定族的幾何圖形的單個副本,並在多個實例中重復使用該副本,並非所有族實例都包含geometryinstance。當Revit需要為給定實例制作族幾何圖形的唯一副本時(由於本地連接、交點和與實例放置相關的其他因素的影響),將不會遇到geometry instance;相反,將在層次的頂層找到實體幾何圖形。GeometryInstance提供通過GetSymbolGeometry()和GetInstanceGeometry()方法讀取其幾何圖形的功能。這些方法返回另一個Autodesk.Revit.DB.GeometryElement。
- Curve圖形
各種線段在revit中應用比較多,比如模型分析線、標准線、機電里面的導線,很多都是以Line、Arc、NurbSpline和多邊形的方式表達。
- Edge、solid、face等
對於一些Solid來說,它是有2個核心元素組成Edge和face,而Edge主要是Curve組成,而對於所有的Face,則是由多個MESH組成。MESH是圖形的最基礎元素,組成了所有的空間三維對象。
- Polyline
多邊形元素,在REVIT一些房間等多邊形元素,都是基於這個對象。