如何使用C#在API中加载Revit文件?
我想在如何使用C#在API中加载Revit文件?,c#,revit-api,revit,revit-2015,C#,Revit Api,Revit,Revit 2015,我想在C#code中加载*.api文件。我正在尝试从Revit文件中导出图像,以用于c#应用程序中的特定视图。问题是如何从revit(*.rvt)文件中获取ExternalCommandData 我想浏览所有*.rvt文件,并从Windows窗体调用上述方法 Revit只能在进程中运行插件,因此不能从WinForm应用程序使用其API。实际上,Revit在DLL代码中调用了您提到的执行方法 我刚刚在Revit API讨论论坛上回答了您相应的问题: 从外部上下文直接调用Revit API是非法的
C#
code中加载*.api
文件。我正在尝试从Revit文件中导出图像,以用于c#应用程序中的特定视图。问题是如何从revit(*.rvt
)文件中获取ExternalCommandData
我想浏览所有
*.rvt
文件,并从Windows窗体调用上述方法 Revit只能在进程中运行插件,因此不能从WinForm应用程序使用其API。实际上,Revit在DLL代码中调用了您提到的执行方法 我刚刚在Revit API讨论论坛上回答了您相应的问题:
从外部上下文直接调用Revit API是非法的,过去是,而且一直都是非法的
只有在有效的Revit API上下文中才能使用Revit API
此类上下文仅由Revit回调方法提供
您需要订阅Revit事件,例如外部命令执行方法
在事件处理程序中,可以使用Revit API
还可以使用Revit API设置外部事件,该事件可以从非Revit API上下文(例如独立的外部应用程序)引发
ModelessDialog/ModelessForm_ExternalEvent Revit SDK示例演示了这一点。以下是您需要了解的所有信息
在过去的Revit API讨论论坛和建筑编码人员中,已多次深入回答和讨论了此问题
上的建筑规范主题组中提供了许多示例和进一步解释
以下是一些Revit API论坛讨论主题,讨论了类似的问题:
public Autodesk.Revit.UI.Result Execute(ExternalCommandData revit,
ref string message, ElementSet elements)
{
UIApplication uiapp = revit.Application;
}