Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: wastegate от 07-07-2021, 13:58:36

Название: Отключить регенерацию модели
Отправлено: wastegate от 07-07-2021, 13:58:36
Добрый день
Есть проблема в долгой работе Revit около 1-1.5 час.
Большая модель (на пример 19 этажный дом), плагин заполняет параметры экземпляров семейств, эта операция занимает около 35-45 минут во время заполнения параметров много раз проходит регенерация модели и это отнимает еще столько же времени. Есть возможность отключить регенерацию и делать ее один раз после завершения записи параметров?
Название: Re: Отключить регенерацию модели
Отправлено: Александр Игнатович от 07-07-2021, 14:02:42
и это отнимает еще столько же времени

В рамках одной транзакции повторная регенерация не занимает дополнительного времени.
Код - C# [Выбрать]
  1. transaction.Commit();
и
Код - C# [Выбрать]
  1. document.Regenerate();
  2. transaction.Commit();

будут выполняться примерно одинаковое время.
Название: Re: Отключить регенерацию модели
Отправлено: wastegate от 07-07-2021, 14:24:09
я не совсем понял ответ.
в транзакцию добавить принудительную регенерацию?
document.Regenerate();
Название: Re: Отключить регенерацию модели
Отправлено: Александр Игнатович от 07-07-2021, 14:39:17
Нет, я говорил только о том, что механизм регенерации достаточно умный и при повторном вызове не обрабатывает уже обновленные данные.

По сути вопроса сказать сложно, не имея кода и модели. Возможно, поможет разбиение одной транзакции на несколько или объединение нескольких в одну. Опять же, зная, что именно меняет в модели код, можно попробовать придумать более оптимальный путь.