Как скрыть предупреждение при открытии IFC

Автор Тема: Как скрыть предупреждение при открытии IFC  (Прочитано 7358 раз)

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

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

  • ADN OPEN
  • Сообщений: 39
  • Карма: 2
Добрый день. Использую метод OpenIFCDocument() для открытия IFC документа, код
Код - C# [Выбрать]
  1. public void ImportIFCDoc(UIDocument uidocument, string pathIfc)
  2.         {
  3.             if (uidocument != null && !string.IsNullOrEmpty(pathIfc))
  4.             {
  5.                
  6.                 Document activeDoc = uidocument.Document;
  7.                 Document doc = activeDoc.Application.OpenIFCDocument(pathIfc);
  8.  
  9.                 SaveAsOptions option = new SaveAsOptions();
  10.                 option.OverwriteExistingFile = true;
  11.                 try
  12.                 {                  
  13.                     doc.SaveAs(@"C:\Users\strelnikovdv\Work\Скачка\test.rvt", option);
  14.                 }
  15.                 catch (FileAccessException)
  16.                 {
  17.                     TaskDialog.Show("Ошибка записи в файл", "Невозможно записать файл, поскольку он открыт в другой программе");                    
  18.                 }
  19.                 finally
  20.                 {
  21.                     doc.Close();
  22.                 }              
  23.                
  24.             }
  25.         }
Метод работает нормально, но при выполнении выскакивает предупреждение:



А так же создается лог файл. При этом если пользоваться стандартным инструментом Связь Ifc то подобных предупреждений не возникает. Можно ли как-то отключить предупреждения и создания лог файла, чтобы поведение было аналогично стандартному.  Я ранее использовал реализацию интерфейса IFailuresPreprocessor, но это работает только с транзакциями, а загрузка ifc выполняется вне транзакции.
« Последнее редактирование: 22-02-2022, 12:25:21 от Александр Ривилис »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Ksarrik,
Напоминаю правило форматирования кода на нашем форуме!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Ksarrik 22-02-2022, 14:40:07

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Посмотри предложенные здесь варианты: https://giobel.github.io/RevitWarnings/
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus

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

  • ADN OPEN
  • Сообщений: 39
  • Карма: 2
Может я что-то не так делал с WarningSwallower. Я его ранее использовал следующим образом:
Код - C# [Выбрать]
  1.                             FailureHandlingOptions failOpt = transaction.GetFailureHandlingOptions();
  2.                             failOpt.SetFailuresPreprocessor(new DuplicateInstancesWarningSwallower());
  3.                             transaction.SetFailureHandlingOptions(failOpt);
Как я понимаю WarningSwallower можно использовать только в транзакциях, а в моем случае транзакции не используются. В случае открытия документа вероятно наиболее подходящий способ описан в ответе Александра https://giobel.github.io/RevitWarnings/

Конкретно в моем случае, удалось решить проблему изменив настройку в методе OpenIFCDocument():
Код - C# [Выбрать]
  1.             IFCImportOptions ifcOpt = new IFCImportOptions();
  2.             ifcOpt.Intent = IFCImportIntent.Reference;//когда эта функция включена элемент создается как при ручном создании
  3.             Document doc = activeDoc.Application.OpenIFCDocument(pathIfc, ifcOpt);
После изменения свойства на IFCImportIntent.Reference, перестали появляться предупреждения и поведение ссылки стало идентично стандартному

Оффлайн Gainward777

  • ADN OPEN
  • Сообщений: 4
  • Карма: 0
Добрый день.
Столкнулся с похожей проблемой, но при открытие проекта Revit. Потому не знаю, нужно ли создавать новую тему.
Суть в том, что при открытии проекта методом OpenAndActivateDocument возникает окно "Необработанные ссылки" (скрин в вложении). Оно останавливает выполнение кода до выбора действия.
Пробовал подписаться на событие uIApplication.DialogBoxShowing, как показано в https://giobel.github.io/RevitWarnings/, но ничего не происходит.
Как можно поглотить появление данного окна при открытии проекта?