Проблема была решена, почему это влияло на работу автокада - я не смог выяснить.
Суть:
Перед созданием видового экрана у лейаута удалялись все дефолтные видовые экраны (
layout.GetViewports()), затем добавлялся новый, мною созданный, и вот в этом случае, после вызова
Viewport.On = true автокад и падал.
Изменение порядка решило проблему, сначала добавляется новый видовой экран, вызываем
Viewport.On = true, а затем удаляются дефолтные.
Может кто сможет объяснить, почему в первом случае автокад падал? Всё выполнялось в рамках одной и той же транзакции. Как я понял,
database.GetViewports(false) возвращает видовые экраны, которые, скажем так, можно удалить, и если не удалять те, которых нет в этом списке - всё ок.
Привожу пример работающей команды, если код удаления [35-43 строки] переместить на 18 строку, то автокад будет падать.
Извините, вам запрещён просмотр содержимого спойлеров.