2014-05-02 137 views
0

2014 Revit API中的Application.ActiveDocument命名空间在哪里?Autodesk.Revit.Application.ActiveDocument.Create方法在哪里去了?

我试图在Revit模型中使用API​​在草图平面下绘制线条,此时我失败了。对于大多数'Revit',我按照Jeremy Tammik的The Building Coder。但是这一次,由于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方法,但它似乎不再存在。我在谷歌上搜索了很多,但我似乎无法找到任何东西。

任何人都可以指向正确的方向吗?

回答

0

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

例如,创建一个行中的方法是现在Line.Create()

看看每个API的一年,“最新”的文件,看看有什么变化

1

下面是一个C#向您展示如何访问它。每个实体(应用程序和文档)在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类和ActiveDocument是类的财产就像现在你有UIApplication及其财产ActiveUIDocument