2017-05-08 198 views
0

我想在C#代码中加载*.api文件。我正在尝试从Revit文件中导出图像以用于c#应用程序中的特定视图。问题是从revit(*.rvt)文件获取ExternalCommandData。如何使用C#在API中加载Revit文件?

public Autodesk.Revit.UI.Result Execute(ExternalCommandData revit, 
             ref string message, ElementSet elements) 
{ 
    UIApplication uiapp = revit.Application; 
} 

我想浏览所有*.rvt文件并从Windows窗体调用上述方法。

回答

0

Revit只能在进程中运行插件,因此无法在WinForm应用程序中使用它的API。您提到的执行方法实际上是由Revit在DLL代码上调用的。

1

我刚才已经回答你相应的线程在Revit API讨论论坛:

https://forums.autodesk.com/t5/revit-api-forum/how-to-load-revit-file-in-api-using-c/m-p/7071015

直接调用到的Revit API从外部上下文,是而且一直都是非法的。

除非在有效的Revit API上下文中使用Revit API,否则无法使用Revit API。

此类上下文仅由Revit回调方法提供。

您需要订阅Revit事件,例如外部命令Execute方法。

在事件处理程序中,可以使用Revit API。

您还可以使用Revit API设置可从非Revit-API上下文(例如独立外部应用程序)引发的外部事件。

这由ModelessDialog/ModelessForm_ExternalEvent Revit SDK示例演示。这里是所有你需要知道的关于the Revit SDK and getting started with the Revit API

过去,无论是在Revit API讨论论坛还是由The Building Coder进行了多次深入的回答和讨论,

许多示例和进一步的解释在Idling and External Events for Modeless Access and Driving Revit from Outside的Building Code主题组中提供。

这里有一些的Revit API论坛讨论线程的处理类似问题:

+0

我在关于此主题的博客文章[外部访问Revit API]中对我的答案进行了总结和增强(http://thebuildingcoder.typepad.com/blog/2017/05/external-access-to-the- Revit的api.html)。 –

0

如果你想要做的是从RVT或RFA中导出图像文件,您的需求可能已完全覆盖Forge。有关详情和原因的详细信息,请参阅我的博客文章External Access to the Revit API

相关问题