我试图在Revit中自动导入IFC文件,以便使用Forge自动生成ifc.rvt文件:
private void ChangeIfcToRev(DesignAutomationData data)
{
Application rvtApp = data.RevitApp;
string modelPath = data.FilePath;
Document doc = rvtApp.OpenIFCDocument(modelPath);
ModelPath path = ModelPathUtils.ConvertUserVisiblePathToModelPath("result.rvt");
doc.SaveAs(path, new SaveAsOptions());
}现在,每当我启动插件时,都会出现以下错误:
Autodesk.Revit.Exceptions.InvalidOperationException: The document can not be opened.
at Autodesk.Revit.ApplicationServices.Application.OpenDocumentFile(ModelPath modelPath,
OpenOptions openOptions)
at DesignAutomationFramework.DesignAutomationData..ctor(Application revitApp, String
mainModelPath)
at DesignAutomationFramework.DesignAutomationReadyEventArgs..ctor(Application revitApp, String
mainModelPath)
at DesignAutomationFramework.DesignAutomationBridge.SetDesignAutomationReady(Application
revitApp, String mainModelPath)
at RevitCoreEngineTest.RceConsoleApplication.Program.UserMain(CommandLineArgs cl)这真的很奇怪,因为我在代码中没有使用OpenDocumentFile函数。我正在使用OpenIFCDocument函数。因为我没有得到任何进一步,我试图只重放ifc文件。同样的错误。
然后我尝试使用Forge教程中的samplePlugin:https://learnforge.autodesk.io/#/designautomation/appbundle/
samplePlugin可以很好地处理.rvt文件,但不能处理.ifc文件。还有一个错误。
我做错什么了?谢谢你的帮忙!
发布于 2022-01-31 08:18:37
可能,Forge for Revit坚持使用提供的RVT输入文件参数启动Revit。要处理此要求,您可能可以提供一个最小的虚拟 RVT文件作为输入参数,然后简单地忽略它,继续以第二个打开文档的形式打开IFC文件,并将其保存为RVT,就像现在一样。
更仔细地查看发布活动的说明,我发现输入文件是在命令行中指定的:
"commandLine": [ "$(engine.path)\\\\revitcoreconsole.exe /i \"$(args[rvtFile].path)\" /al \"$(appbundles[DeleteWallsApp].path)\"" ],您在那里指定了什么输入文件?
你能简单地省略它吗?
发布于 2022-02-02 16:41:11
我收到了开发团队的回复,解决方案更简单。
只需省略commandLine规范中的输入参数:
"commandLine": [ "$(engine.path)\\\\revitcoreconsole.exe /al \"$(appbundles[mybundles].path)\"" ]这并不是什么新鲜事,大多数客户可能都知道这一点。不过,我同意我们可以更新Forge文档来显式地声明这种用法。
https://stackoverflow.com/questions/70922837
复制相似问题