Аудит после переключения на созданный лист в конкретном файле

Автор Тема: Аудит после переключения на созданный лист в конкретном файле  (Прочитано 13956 раз)

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

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Ну может быть дело в том, что я в Civil проверяю. У меня так:
С инициализацией:
https://screencast.autodesk.com/main/details/a0f449ab-6b81-414c-8963-0e43773f80cf
Без нее:
https://screencast.autodesk.com/main/details/c4e4ae9c-d406-42a5-a444-09c864b92525

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Балдею я от этого Civil 3D 2015. Обрати внимание на количество проверенных командой _AUDIT объектов и количеством из них в пространстве модели.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Отправил запрос в ADN DevHelp. Полностью проект, картинку с _AUDIT до запуска команды TEST, картинку с _AUDIT после команды и сам чертеж. Ну и просьбу пояснить что не так, и как в коде можно избежать появления таких ошибок.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Предложили такой выход из ситуации:
Код - C# [Выбрать]
  1. AcDb.ObjectId layout_id = lm.CreateLayout(layout_name); // Create New Layout
  2.  
  3. lm.CurrentLayout = layout_name;
  4.  
  5. using (AcDb.Transaction tr = db.TransactionManager.StartTransaction())
  6. {
  7.   AcDb.Layout layout = tr.GetObject(layout_id, AcDb.OpenMode.ForRead) as AcDb.Layout;
  8.   ///////////////////////////////////////////
  9.   // Now check layout is initialized or not.
  10.   // If not then initialize it
  11.   ///////////////////////////////////////////
  12.   if (layout.GetViewports().Count == 0) {
  13.     layout.UpgradeOpen();
  14.     layout.Initialize();
  15.   }
  16.   tr.Commit();
  17. }
Т.е. сначала переключится на новый лист, а уже потом его инициализировать. Насколько работоспособен этот workaround я еще не проверял. Я попросил уточнить что именно в этом чертеже такое особенное, что приводит к ошибкам. Цель - иметь возможность заранее проверить приведет ли инициализация к ошибке или нет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение