【问题标题】:Where has the Autodesk.Revit.Application.ActiveDocument.Create method gone?Autodesk.Revit.Application.ActiveDocument.Create 方法哪里去了?
【发布时间】:2014-06-19 05:46:46
【问题描述】:

2014 Revit API 中的 Application.ActiveDocument 命名空间在哪里?

我正在尝试使用 API 在草图平面下的 Revit 模型中绘制线条,但此时我失败了。对于“Revit”的大部分内容,我在 The Building Coder 关注 Jeremy Tammik。然而,这一次,由于 Autodesk 更新/修改命名空间,他把我引向了错误的方向。我已经转换为 VB.NET some C# he posted a while back,可能是在 2011 年之前,它创建了一个草图平面并绘制了线条。问题是他用来实例化对象的命名空间已经改变。例如,他将变量“X”标注为Autodesk.Revit.Application 对象,但此时,该命名空间已更改为Autodesk.Revit.ApplicationServices.Application

我创建了一个Creation 文档和Application,我正在尝试将文档设置为等于AutoDesk.Revit.ApplicationServices.ActiveDocument.Create 方法,但它似乎不再存在。我在谷歌上搜索了高低,但我似乎找不到任何东西。

谁能指出我正确的方向?

【问题讨论】:

    标签: vb.net revit revit-api


    【解决方案1】:

    下面是一个 C# sn-p 向您展示如何访问它。每个实体,应用程序和文档,在 UI 部分 (UIApplication/UIDocument) 和数据库部分 (Application/Document) 之间都有一个分隔符。哪个文档处于活动状态取决于 UI,因此您首先必须从命令参数中获取 UIApplication 对象。然后从那里你得到UIDocument 对象。最后,您可以访问数据库Document 对象。

    public void CreateSketchPlane(ExternalCommandData commandData)
    {
        UIApplication uiApplication = commandData.Application;
        UIDocument activeUiDocument = uiApplication.ActiveUIDocument;
        Document document = activeUiDocument.Document;
    
        //document.Create.NewSketchPlane(...
    }
    

    仅供参考 - Application.ActiveDocument 不是 命名空间。 Application 是一个 classActiveDocument 是该类的 property 就像现在您拥有 class UIApplication 和它的 em>财产 ActiveUIDocument

    【讨论】:

      【解决方案2】:

      许多旧的创建方法已移至每个类中的静态 Create() 方法。

      比如现在创建线条的方法是 Line.Create()

      查看每个 API 年份的“新增功能”文档,了解发生了什么变化

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-10-13
        • 2010-11-26
        • 1970-01-01
        • 1970-01-01
        • 2014-02-02
        • 2011-04-17
        • 2019-08-04
        相关资源
        最近更新 更多