Revit SDK 介绍:Custom2DExporter

前言

Revit 二维视图的导出。

内容

IExportContext2D 就是用来导出二维的,它和三维导出本质上是一样的。
最底层是 IExportContext

namespace Autodesk.Revit.DB
{
    public interface IExportContext
    {
        void Finish();
        bool IsCanceled();
        void OnElementEnd(ElementId elementId);
        RenderNodeAction OnFaceBegin(FaceNode node);
        void OnFaceEnd(FaceNode node);
        RenderNodeAction OnInstanceBegin(InstanceNode node);
        void OnInstanceEnd(InstanceNode node);
        void OnLight(LightNode node);
        RenderNodeAction OnLinkBegin(LinkNode node);
        void OnLinkEnd(LinkNode node);
        void OnMaterial(MaterialNode node);
        void OnPolymesh(PolymeshTopology node);
        void OnRPC(RPCNode node);
        RenderNodeAction OnViewBegin(ViewNode node);
        void OnViewEnd(ElementId elementId);
        bool Start();
    }
}

它的父类 IExportContextBase ,带了一些线以及文字相关的接口:

namespace Autodesk.Revit.DB
{
    public interface IExportContextBase : IExportContext
    {
        RenderNodeAction OnCurve(CurveNode node);
        void OnLineSegment(LineSegment segment);
        RenderNodeAction OnPolyline(PolylineNode node);
        void OnPolylineSegments(PolylineSegments segments);
        void OnText(TextNode node);
    }
}

它的父类是 IExportContext2D ,带了一些二维面相关的接口:

namespace Autodesk.Revit.DB
{
    public interface IExportContext2D : IExportContextBase
    {
        RenderNodeAction OnElementBegin2D(ElementNode node);
        void OnElementEnd2D(ElementNode node);
        RenderNodeAction OnFaceEdge2D(FaceEdgeNode node);
        RenderNodeAction OnFaceSilhouette2D(FaceSilhouetteNode node);
    }
}

在二维导出的过程中,用户可以自己去重写这些接口,从而获取自己想要的内容。

结果

下面是用插件运行的结果,差异在于是否要标注,以及是否导出面上的细节 Pattern:
Revit SDK 介绍:Custom2DExporter_第1张图片
Revit SDK 介绍:Custom2DExporter_第2张图片
Revit SDK 介绍:Custom2DExporter_第3张图片
Revit SDK 介绍:Custom2DExporter_第4张图片

你可能感兴趣的:(Revit,SDK,介绍,C#)