Revit二次开发之 GeometryObject分析
Revit包含了一套完整的几何库,这些几何对象都继承自GeometryObject对象,根据分类,我们可以知道,图形元素的集成关系如下:
1、Autodesk.Revit.DB.Arc 对象,当前主要用于一些标尺对象
- 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一些房间等多边形元素,都是基于这个对象。