Skrypt, który piszę, umieszcza dwie ramki danych i ustawia ich zakres.
Robiąc to, przerysowuje cały widok Active 4 razy, znacznie spowalniając skrypt.
Naciśnięcie klawisza F9 lub kliknięcie przycisku „Wstrzymaj rysowanie” przed uruchomieniem skryptu wyłącza rysunek i powoduje, że skrypt działa znacznie szybciej, ale chcę, aby skrypt zrobił to automatycznie.
Chcę wyłączyć rysowanie ArcMap 10 na początku skryptu i włączyć go na końcu.
Jak mam to zrobic?
źródło
Zdaję sobie sprawę, że to pytanie zostało zamknięte dawno temu, ale mam kilka starych narzędzi, dla których był to nowy problem, a rozwiązanie SendKeys już nie działa, więc po eksperymentach opracowałem własne rozwiązanie. Nie wyłącza rysowania, ale tworzy równoważną wydajność, wyłączając warstwy i włączając je ponownie po zakończeniu. Uruchomienie skryptu w tle nie rozwiązuje problemu (choć myślałem, że tak), więc spróbowałem wyłączyć wszystkie warstwy - i zadziałało! Pełne przyspieszenie do równoważnego kodu w pustym dokumencie. Oto kod, aby to osiągnąć.
Te dwie funkcje, w połączeniu, wyłączają wszystkie warstwy w dokumencie, przywracając zapisany stan warstw. Następnie, po zakończeniu operacji, możesz je ponownie włączyć, zapewniając zapisany stan drugiej funkcji. Zalecane użycie:
Funkcje są poniżej - poprawki, komentarze itp. Mile widziane - całkiem nowy kod, więc może zawierać pewne błędy, ale niektóre zostały przetestowane.
źródło