Скрипт, который я пишу, перемещает два фрейма данных и устанавливает их экстенты.
При этом он перерисовывает весь Active View 4 раза, существенно замедляя сценарий.
Нажатие клавиши F9 или нажатие кнопки «Приостановить рисование» перед запуском скрипта отключает рисование и ускоряет выполнение скрипта, но я хочу, чтобы скрипт делал это автоматически.
Я хочу отключить рисование ArcMap 10 в начале скрипта и включить его в конце.
Как мне это сделать?
источник
Я понимаю, что этот вопрос давно закрыт, но у меня есть несколько старых инструментов, для которых эта проблема была новой, и решение SendKeys, похоже, больше не работает, поэтому я поэкспериментировал со своим собственным решением. Он не отключает рисование, но создает эквивалент производительности, отключая слои и снова включая их, когда закончите. Запуск сценария в фоновом режиме не решает проблему (хотя я думал, что это будет), поэтому я попытался отключить все слои - и это сработало! Полное ускорение до эквивалентного кода в пустом документе. Итак, вот некоторый код для этого.
Эти две функции, когда объединены, отключают все слои в документе, возвращая сохраненное состояние слоев. Затем, когда ваши операции завершены, вы можете включить их снова, передав это сохраненное состояние второй функции. Рекомендуемое использование:
Ниже приведены функции - исправления, комментарии и т. Д. - довольно новый код, поэтому в нем могут быть некоторые ошибки, но некоторые из них были проверены.
источник