загрузка rvt файла

Автор Тема: загрузка rvt файла  (Прочитано 11582 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
загрузка rvt файла
« : 31-05-2021, 16:20:11 »
Надеюсь пишу в нужную ветку,
вопрос касается DesignAutomation
Команда Commands : IExternalDBApplication выполняется только  для rvt файла находящегося в облаке Bim360 или его можно как то  запустить предварительно загрузив с пк?

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: загрузка rvt файла
« Ответ #1 : 01-06-2021, 09:15:55 »
Привет,
пишу в нужную ветку

не совсем, но это наша недоработка, в ближайшие дни немного изменим структуру форума по вопросам Forge-а.

По сути:

Движок Design Automation может брать исходные данные из любого места, доступного по некоему url (и складывать результаты, соответственно, тоже). OSS (Object store service) с его бакетами наиболее удобен для сценариев, когда ты загружаешь модель напрямую через своё веб-приложение + ты потратишь меньше cloud credit-ов, поскольку data management бесплатный, а время на загрузку исходных данных при запуске workitem-а тоже считается. Здесь получается, что модель уже находится в облаке Autodesk-а, перемещение данных из OSS занимает доли секунды.

Если ты хочешь брать исходные модели из BIM 360, то это тоже возможно, но есть один маленький нюанс. Чтобы получить файл из BIM 360, нужно в запросе добавить Authorization header, как-то примерно так:

Код - Javascript [Выбрать]
  1. arguments = new
  2.         {
  3.                 inputFile = new
  4.                         {
  5.                                 url = command.SourceRevitFileUrl,
  6.                                 Headers = new
  7.                                         {
  8.                                                 Authorization = $"Bearer {token.Token}"
  9.                                         }
  10.                         },
  11.                 ...
  12.  

Здесь есть нюанс в том, что

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: загрузка rvt файла
« Ответ #2 : 01-06-2021, 11:15:24 »
у меня адрес приложения http://localhost:3000  то есть на пк ( также с пк я пытаюсь загрузить rvt файл по кнопке с браузера для его выполнения в IExternalDBApplication )

в index.html кнопка для выбора ревит файла:

Код - XML [Выбрать]
  1.       <div class="form-group">                  
  2.                  <input type="file" class="form-control-file" id="selectRVTfile" />
  3.       </div>

в javascript

Код - Javascript [Выбрать]
  1. $(document).ready(function () {  
  2.  
  3.     $('#selectRVTfile').addEventListener("change", FileLoaded);
  4.  
  5.     startWorkItem();
  6. }
  7. function FileLoaded()
  8. {
  9.     if ($selectRVTfile.files.length > 0) {
  10.         $inputFile = $selectRVTfile.files[0];
  11.         alert($inputFile);
  12.     }
  13. }
  14.  
  15. function startWorkitem() {  
  16.  
  17.  
  18.     var inputFileField = document.getElementById('selectRVTfile');
  19.     if (inputFileField.files.length === 0) { alert('Please select an RVT file!'); return; }
  20.  
  21.  
  22.     startConnection(function () {
  23.          // как я понимаю inputFile как то тут надо правильно добавить... ?
  24.  
  25.         var formData = new FormData();
  26.         formData.append('inputFile', file);      
  27.         formData.append('data', JSON.stringify({      
  28.             activityName: $('#activity').val(),
  29.             browerConnectionId: connectionId
  30.         }));
  31.         writeLog('Uploading input file...');
  32.         $.ajax({
  33.             url: 'api/forge/designautomation/workitems',
  34.             data: formData,
  35.             processData: false,
  36.             contentType: false,
  37.             type: 'POST',
  38.             success: function (res) {
  39.                 writeLog('Workitem started: ' + res.workItemId);
  40.             }
  41.         });
  42.     });
  43.  
  44. }

« Последнее редактирование: 01-06-2021, 20:02:37 от Александр Ривилис »

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: загрузка rvt файла
« Ответ #3 : 01-06-2021, 11:22:51 »
// как я понимаю inputFile как то тут надо правильно добавить... ?

эээ...

Тебе надо загрузить файл в бакет, создать для него signed url, который уже скормить design automation

Посмотри здесь:

https://learnforge.autodesk.io/#/tutorials/modifymodels

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: загрузка rvt файла
« Ответ #4 : 01-06-2021, 11:27:26 »
создать для него signed url
можно уточнить какая именно строчка кода за это отвечает?

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: загрузка rvt файла
« Ответ #6 : 01-06-2021, 11:35:46 »
загрузить  в бакет это сюда?



Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: загрузка rvt файла
« Ответ #8 : 01-06-2021, 15:18:21 »
создать для него signed url
Для понимания signed url - это url на загруженный файл. - он создается кодом автоматически или нужно прописывать  его вручную (наподобие создания guid)

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: загрузка rvt файла
« Ответ #9 : 01-06-2021, 17:18:10 »
signed url создается для объекта в OSS. Вручную. После создания объект доступен по ссылке без авторизации либо для чтения, либо для записи, либо для чтения и записи. Можно настроить время и количество обращений.

Можно без signed url обойтись, тогда нужно передавать Authorization Header для доступа к объекту