Как отловить событие синхронизации быстрых ссылок?

Автор Тема: Как отловить событие синхронизации быстрых ссылок?  (Прочитано 6899 раз)

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

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Здравствуйте!
Используем Civil 3D 2014 SP1 RUS, есть такая проблема:
Проблема в том, что в результате синхронизации быстрых ссылок слетают стили и описания объектов. Это очень и очень грустно, потому что механизм быстрых ссылок дает отличную возможность смежникам не зависеть друг от друга по оформлению стилей, но вот такое вот поведение напрочь убивает эту идею. Появилась эта беда в SP1 и пока что разработчики не торопятся это исправлять.
Поэтому, чтобы не зависеть от таких поворотов судьбы, есть мысль запоминать состояние объектов до синхронизации и восстанавливать его после. Здесь нет никаких проблем, кроме одной - никак программно не получается определить, что начинается, идет или уже произошло событие синхронизации. Синхронизация не является командой - ни в комстроке нет эха, ни подписка на события запуска-завершения команд не фиксирует ничего. Вот какие события происходят при синхронизации отдельной сети (EVENTSON и EVENTSOFF - команды запуска и остановки регистрации событий):
End command: Name - EVENTSON
Object modified: DxfName - AECC_ROOT_SETTINGS_NODE; Handle - 1D9
Object erased: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 889B
Object modified: DxfName - AECC_ROOT_SETTINGS_NODE; Handle - 1D9
Object erased: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 889C
Object modified: DxfName - BLOCK_RECORD; Handle - 1F; Name - *Model_Space
Object appended: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A1
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A1
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A1
Object modified: DxfName - BLOCK_RECORD; Handle - 1F; Name - *Model_Space
Object appended: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A2
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A2
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A2
Object modified: DxfName - AECC_PIPE; Handle - 84EB
Object modified: DxfName - AECC_ROOT_SETTINGS_NODE; Handle - 1D9
Object erased: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 889D
Object modified: DxfName - AECC_ROOT_SETTINGS_NODE; Handle - 1D9
Object erased: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 889E
Object modified: DxfName - BLOCK_RECORD; Handle - 1F; Name - *Model_Space
Object appended: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A3
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A3
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A3
Object modified: DxfName - BLOCK_RECORD; Handle - 1F; Name - *Model_Space
Object appended: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A4
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A4
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A4
Object modified: DxfName - AECC_PIPE; Handle - 84EE
Object modified: DxfName - AECC_ROOT_SETTINGS_NODE; Handle - 1D9
Object erased: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 889F
Object modified: DxfName - AECC_ROOT_SETTINGS_NODE; Handle - 1D9
Object erased: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A0
Object modified: DxfName - BLOCK_RECORD; Handle - 1F; Name - *Model_Space
Object appended: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A5
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A5
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A5
Object modified: DxfName - BLOCK_RECORD; Handle - 1F; Name - *Model_Space
Object appended: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A6
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A6
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A6
Object modified: DxfName - AECC_PIPE; Handle - 84F1
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A1
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A2
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A3
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A4
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A5
Object modified: DxfName - AECC_NETWORK_PART_CONNECTOR; Handle - 88A6
Object modified: DxfName - AECC_NETWORK; Handle - 84E8
Object modified: DxfName - AECC_PIPE; Handle - 84EB
Object modified: DxfName - AECC_PIPE; Handle - 84EE
Object modified: DxfName - AECC_PIPE; Handle - 84F1
Start command: Name - EVENTSOFF
В документации тоже ничего по этому вопросу найти не получается  :(.
Поэтому, если есть какие-нибудь идеи, что с этим можно сделать - поделитесь, пожалуйста!
Заранее спасибо.

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Идея программного исправления результатов неправильной синхронизации оказалась утопией - при открытии чертежа синхронизация выполняется прежде, чем могут быть запущены какие-либо NET-довески  :(
Поэтому, проблему решили кардинально - удалили Civil 3D 2014 SP1 и установили Civil 3D 2014 без пакетов обновления.
Кстати, странно то, что при синхронизации модификация сети происходит, но подписка на Database.ObjectModified это не фиксирует. А вот если напрямую подписаться на Network.Modified, то событие модификации отлавливается.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Поэтому, проблему решили кардинально - удалили Civil 3D 2014 SP1 и установили Civil 3D 2014 без пакетов обновления.
Редактировать сообщение
Рекомендую сообщить об этой проблеме в ADN DevHelp (или по каналам Подписки) для передачи разработчикам. Скорее всего они об этой проблеме не знают.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение