我正在做一个项目,我需要创建多个 revit 文件,将它们全部压缩在一起,然后下载 zip 文件作为 Revit 设计自动化 API 中的输出。
我的项目在我的本地机器上完全按预期工作,但是当我上传我的 appbundle 并执行我的工作项时,我得到一个“failedInstructions”状态。
我不知道是否可以在设计自动化 API 中创建多个 revit 文件
以下是我尝试过的:
这是我的工作项 json,您会看到我正在传递一个带有墙上示例数据的 json 数组。
"arguments":{
"ElementParams":{
"url":"{'elementdata':[[{'Keys':'Sytème','Value':'Wall_1'},{'Keys':'Thickness','Value':'120.00'},{'Keys':'Length','Value':'2500.00'},{'Keys':'Height','Value':'1200.00'}],[{'Keys':'Sytème','Value':'Wall_2'},{'Keys':'Thickness','Value':'120.00'},{'Keys':'Length','Value':'2500.00'},{'Keys':'Height','Value':'1200.00'}],[{'Keys':'Sytème','Value':'Wall_3'},{'Keys':'Thickness','Value':'120.00'},{'Keys':'Length','Value':'2500.00'},{'Keys':'Height','Value':'1200.00'}],[{'Keys':'Sytème','Value':'Wall_4'},{'Keys':'Thickness','Value':'120.00'},{'Keys':'Length','Value':'2500.00'},{'Keys':'Height','Value':'1200.00'}]]}"
},
"resultFamily":{
"verb":"put",
"url":"https://storage.googleapis.com/bucketname/RevitObjects.zip?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"headers": {
"Authorization": "",
"Content-Type": "application/octet-stream"
}
}
}
在我的代码中,我循环创建了一个新文档。
Document doc = app.NewProjectDocument(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\" + "DefaultTemplates.rte");
并保存并关闭当前文档
SaveAsOptions options = new SaveAsOptions();
options.OverwriteExistingFile = true;
doc.SaveAs(Assembly.GetExecutingAssembly().Location) + "\\" + fileName, options);
doc.Close(); //Closing the document
List<string> files = Directory.GetFiles(Assembly.GetExecutingAssembly().Location) + "\\").Where(a => a.Contains(Path.GetFileNameWithoutExtension(fileName)) && a.Split('.').Count() > 2).ToList();
foreach (var fl in files)
{
if (File.Exists(fl))
File.Delete(fl);
}
byte[] filebytes = File.ReadAllBytes(GlobalData.TemplatePath + "\\" + GlobalData.DestinationFile);
GlobalData.FileList.Add(GlobalData.DestinationFile, filebytes);
这里文件名是Wall_1、Wall_2、Wall_3 和Wall_4,它们会循环出现
这里我正在做的是保存创建的revit 文件示例Wall_1
关闭文档后,有一个创建的文件示例Wall_1.0001.rvt 的副本。我删除所有创建的附加文件并保留一个最终版本并将其添加到文件字节中。
然后使用 byte[] filebytes 添加的数据创建一个名为“RevitObjects.zip”的 zip 文件,
然后我删除所有文件。
这个过程在我的本地机器上完美运行,但是当我执行工作项时,创建的日志显示以下内容:
[07/03/2019 13:47:38] Error: An unexpected error happened during phase CoreEngineExecution of job.
[07/03/2019 13:47:38] Job finished with result FailedExecution
[07/03/2019 13:47:38] Job Status:
{
"status": "failedInstructions",
日志中没有说明其他错误消息。
让我知道是否可以在设计自动化 api for revit 中创建多个 revit 文档
我们不允许在工作目录中执行删除操作。
我尝试创建一个文件夹并执行上述相同的操作,但我收到了拒绝访问的消息。
让我知道我哪里出错了。也将不胜感激任何完成任务的指导
谢谢