Я работаю над проектом, в котором мне необходимо создать несколько файлов Revit, сжать их все вместе и загрузить файл ZIP в качестве вывода в API автоматизации проектирования для Revit.Мой проект полностью работает, как и ожидалось, на моем локальном компьютере, но когда я загружаю свой appbundle и выполняю свой рабочий элемент, я получаю статус «failedInstructions».
Я не знаю, возможно ли создать несколько файлов Revitв API автоматизации проектированияВот что я попробовал:
Это мой рабочий элемент 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);
Здесь fileName - это Wall_1, Wall_2, Wall_3 и Wall_4, которые появятся в циклеЗдесь я сохраняю созданный файл revit, пример Wall_1После закрытия документа создается копия файла, созданного примером Wall_1.0001.rvt.Я удаляю все созданные дополнительные файлы, сохраняю одну окончательную версию и добавляю ее в байты файла.Данные, добавленные в byte [] filebytes, затем используются для создания zip-файла с именем «RevitObjects.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",
Никаких других сообщений об ошибках в журнале не указано.
Дайте мне знать, возможно ли создание нескольких документов Revit в API автоматизации проектирования для Revit.Разве нам не разрешено выполнять операцию удаления в рабочем каталоге.Я попытался создать папку и выполнить ту же операцию, упомянутую выше, но получил сообщение об отказе в доступе.Дайте мне знать, где я ошибся.Также будет оценено любое руководство для достижения этой целиСпасибо