Revit开发之 IExportContext接口详细

如果要将Revit模型输出为特定的格式,则需要利用revit的数据导出接口,在revit的二次开发中,给我们提供IExportContext接口。当前接口可用户模型轻量化导出、自定义格式导出等。

编号 函数名称函数功能
1 Finish
在导出过程的最后,处理完所有的实体后调用此防范
2 IsCanceled
每个元素的开头,都会检测此方法,如果中止则中止导出
3 OnElementBegin
此方法标记要导出的元素的开始。
4 OnElementEnd
此方法标记要导出的元素的结束。
5 OnFaceBegin
此方法标记要导出的面的开始。
6 OnFaceEnd
此方法标记要导出的当前面的结束。
7 OnInstanceBegin
此方法标记要导出的族实例的开始。
8 OnInstanceEnd
此方法标记要导出的族实例的结束。
9 OnLight
此方法标记已启用渲染的灯光的导出开始。
10 OnLinkBegin
此方法标记要导出的链接实例的开始。
11 OnLinkEnd
此方法标记要导出的链接实例的结束。
12 OnMaterial
这种方法标志着材料的变化。
13 OnPolymesh
当输出三维面的镶嵌多边形网格时,会调用此方法。
14 OnRPC
此方法标记RPC对象导出的开始。
15 OnViewBegin
此方法标记要导出的三维视图的开始。
16 OnViewEnd
此方法标记要导出的三维视图的结束。
17 Start
 该方法在导出过程的一开始就被调用,仍然在发送模型的第一个实体之前。

 

需要理解以上导出的过程,需理解几个概念:
1、视图导出,代表要导出的当前视图对象信息,其包含两个导出顺序
RenderNodeAction OnViewBegin(ViewNode viewNode)
传入的是当前开始视图导出操作,ViewNode 包含当前的视图的一些基本信息和配置
void OnViewEnd(ElementId elementId)
传入视图的id,可以读取视图的一些基本信息
2、导出Element
RenderNodeAction OnElementBegin(ElementId elementId)
包含当前需要导出的元素和元素id
void OnElementEnd(ElementId elementId)
完成导出
3 导出族实例 Instance
这个方法是上面导出element的时候,如何是族实例对象则,会执行当前函数
RenderNodeAction OnInstanceBegin(InstanceNode instanceNode)
OnInstanceEnd(InstanceNode instanceNode_0)
 
无链接模型的情况:

 

有链接模型的情况:
在执行完主体模型后,则执行链接模型部分,流程如下所示:

 OnRPC:这个方法只在使用渲染管道IPhotoRenderContext时发挥作用,一般导出数据不用管

OnLight:这个似乎是导出灯光信息,一般也用不到,除非要导出revit中原生灯光信息。

posted @ 2023-07-05 15:59  Min.Xiaoshuang  阅读(637)  评论(0编辑  收藏  举报