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中原生灯光信息。