首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用C#加载应用编程接口中的Revit文件?

如何使用C#加载应用编程接口中的Revit文件?
EN

Stack Overflow用户
提问于 2017-05-08 22:11:28
回答 3查看 1.8K关注 0票数 2

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

代码语言:javascript
复制
public Autodesk.Revit.UI.Result Execute(ExternalCommandData revit, 
                                        ref string message, ElementSet elements)
{
    UIApplication uiapp = revit.Application;
}

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

EN

回答 3

Stack Overflow用户

发布于 2017-05-09 18:25:52

我刚刚在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回调方法提供。

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

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

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

ModelessDialog/ModelessForm_ExternalEvent Revit SDK示例演示了这一点。以下是您需要了解的所有关于the Revit SDK and getting started with the Revit API的信息。

过去,Revit API讨论论坛和建筑编码器多次回答并深入讨论了此问题。

Idling and External Events for Modeless Access and Driving Revit from Outside上的构建规范主题组中提供了许多示例和进一步的解释。

以下是一些针对类似问题的Revit API论坛讨论主题:

票数 3
EN

Stack Overflow用户

发布于 2017-05-09 20:05:23

如果您只想从RVT或RFA文件中导出图像,Forge可能已经完全满足了您的需求。有关如何以及为什么这样做的详细信息,请参阅我在External Access to the Revit API上的博客文章。

票数 1
EN

Stack Overflow用户

发布于 2017-05-08 23:20:59

Revit只能运行进程中的插件,因此您不能从WinForm应用程序使用其应用程序接口。您提到的Execute方法实际上是由Revit在DLL代码上调用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43849917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档