Revit SDK:PointCloudEngine 点云引擎

前言

点云在 Revit 里面属于一个附属功能,对于读取的点云文件,可以做一些有限的操作。关于点云在 Revit 中的工作流,可以参考:视频:在 Revit 中使用点云数据

内容

运行结果:
Revit SDK:PointCloudEngine 点云引擎_第1张图片
使用点云,需要先注册PointCloudEngineRegistry.RegisterPointCloudEngine
Revit SDK:PointCloudEngine 点云引擎_第2张图片
用户需要自己实现 IPointCloudEngine 接口来创建自己的点云引擎:

 IPointCloudEngine engine = new BasicPointCloudEngine(PointCloudEngineType.Predefined); 

IPointCloudEngine 用来创建和管理 IPointCloudAccess 接口:

namespace Autodesk.Revit.DB.PointClouds
{
    public interface IPointCloudEngine
    {
        IPointCloudAccess CreatePointCloudAccess(string identifier);
        void Free();
    }
}

IPointCloudAccess 接口用于读取点云数据:

namespace Autodesk.Revit.DB.PointClouds
{
    public interface IPointCloudAccess
    {
        IPointSetIterator CreatePointSetIterator(PointCloudFilter rFilter, double density, ElementId viewId);
        IPointSetIterator CreatePointSetIterator(PointCloudFilter rFilter, ElementId viewId);
        PointCloudColorEncoding GetColorEncoding();
        Outline GetExtent();
        string GetName();
        XYZ GetOffset();
        double GetUnitsToFeetConversionFactor();
        int ReadPoints(PointCloudFilter rFilter, ElementId viewId, IntPtr buffer, int nBufferSize);
    }
}

例子中实现 IPointCloudEngine 接口的类:
Revit SDK:PointCloudEngine 点云引擎_第3张图片
PredefinedPointCloud 中通过代码创建了一系列的点云数据,然后实现对应的接口来进行数据访问:
Revit SDK:PointCloudEngine 点云引擎_第4张图片

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