【发布时间】:2018-06-22 22:00:04
【问题描述】:
我在这里有 http://teocomi.com/export-revit-warnings-list-from-api/ 的方法,并从应用程序宏方法调用它以导出 rvt 文件文件夹的警告:
public async void ExportWarningHTML()
{
Autodesk.Revit.UI.UIApplication uiapp = this;
Document doc = uiapp.ActiveUIDocument.Document;
// Input Directory
string inputDir = @"C:\input";
// Output Directory
string outputDir = @"C:\output";
//Get files from inputDir
string[] files = Directory.GetFiles(inputDir, "*.rvt");
// Set open options to detach from central and preserve ws
OpenOptions openOptions = new OpenOptions();
openOptions.DetachFromCentralOption = DetachFromCentralOption.DetachAndPreserveWorksets;
// Process each *.rvt file in folder
// Naive approach. DOES NOT WORK.
foreach(string file in files)
{
// Get current doc
var docLast = uiapp.ActiveUIDocument.Document;
// Open new document
var docNext = ActiveUIDocument.Application.OpenAndActivateDocument(file);
// Close last document
docLast.Close(false);
// Export Warnings
var html = await Win32Api.ExportWarinings(uiapp, outputDir);
}
}
}
但这仅适用于第一个文件然后崩溃。如何修改此代码或我链接到的链接“ExportWarnings”代码以使此过程成为 .rvt 文件的文件夹。
【问题讨论】:
-
由于您打开和关闭文档的方式,它看起来像是崩溃了。我可能错了,这只是一种预感。尝试添加尝试捕获和断点以查看崩溃的位置。只是猜测它可能最好阅读
ActiveUIDocument.Application.OpenAndActivateDocument(file); await Win32Api.ExportWarinings(uiapp, outputDir); ActiveUIDocument.Application.Close(false);可能是错误的,但我看不出,从这段代码中,有任何理由这样做。
标签: c# asynchronous autodesk revit-api