Revit 2017 API:如何获取当前活动视图及其图形覆盖

Revit 2017 API: How to get the currently active view and its graphic overrides

我对 Revit API 编程还很陌生,一直想知道如何获得当前活动视图。 如代码中所示,我得到一个空异常。这里出了什么问题? 我的尝试如下:

namespace GetActiveView
{
    [TransactionAttribute(TransactionMode.Manual)]
    public sealed partial class Class1 : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            //get current view
            var doc = commandData.Application.ActiveUIDocument.Document; //TODO null exception
            Autodesk.Revit.DB.View view = doc.ActiveView;
            ElementId viewID = view.Id;

            return Result.Succeeded;
        }
    }
}

欢迎使用 Revit API。

您引用 commandData.Application.ActiveUIDocument 而未检查 null

当您最初在没有活动文档的情况下启动 Revit 时,属性 将具有空值。

我建议您先了解标准 getting started with the Revit API material,然后再深入研究。

这将回答这个问题以及更多问题,并在您尝试更进一步之前为您打下良好的基础。