2

I have several MXDs with large datasets (some with over a million features). I would like to open the MXD with the data in a 'paused' state, rather than having the MXD open and draw every feature; since this takes way to long. If I open the MXD, then try to 'pause' the drawing of the features sometimes this works immediately and the data pauses drawing, other times this attempt takes way too long.

I have to keep the layer in the MXD always on, since later the MXD will be used to create a mapping service.

Is there a setting where I can set the MXD to always open as 'paused'?

This is what I would like my MXD to look like when I open.

I am using ArcMap 10.3.1.

enter image description here

  • 1
    I doubt there's any way to generate a pause event automatically on open. It would be better to make the dense feature class scale-dependent, so that it doesn't render at inappropriate scales. – Vince Sep 18 '15 at 17:42
  • @Vince These MXDs with their associated data will eventually be published as cached mapping services. For this reason I have not set scale dependency. The reason I would like them to open in a paused state, is so that I can make an necessary symbology, label, etc. changes needed, that will be reflected in the mapping service. – a1234 Sep 18 '15 at 18:00
  • If you're doing cached mapping services correctly, they will be scale dependent, so it doesn't take weeks to generate the upper levels of the cache. – Vince Sep 18 '15 at 18:03
  • @Vince My services take up to 45 mins max for my largest dataset, 3.5 millions features to cache the service, so this is not an issue for me. My issues is opening an MXD, which takes too long when ArcMap attempts to draw all features, some MXDs also have specialized drawing order, which takes even long. My goal is to have the option to open an MXD in a paused state. – a1234 Sep 18 '15 at 18:27
  • Yeah, but I can't see how that would be possible. If you can't make the MXD scale dependent, maybe you could zoom the starting map extent so it doesn't try to render all features. – Vince Sep 18 '15 at 19:13
2

I have worked around this in the past by setting the Data Frame in Draft Mode (Data Frame Properties > Frame > check Draft Mode) then going into Layout View (View > Layout View) before saving my MXD. This reduces the drawing time significantly.

For example, I had 3 million points and 500,000+ lines saved in a MXD. I followed the instructions above, saved the MXD and closed out of it then re-opened it. It only took 22 secs for the project to open completely vs the 1 minute wait if not in Draft Mode and in Data View.

  • Perfect, this is exactly what I needed. – a1234 Nov 2 '15 at 19:46
2

This can be easily done if you have VBA installed and licensed. The following lines of code pause the display on an on open document event. As the code is in the normal template it gets executed for every MXD you open. Then its up to you to turn on display.

...then wished never did it! :)

VBA editor

Code for copying:

Private Function MxDocument_OpenDocument() As Boolean
    Dim pMXApp As IMxApplication2
    Set pMXApp = Application
    pMXApp.PauseDrawing = True
End Function
  • Can you copy and paste the code into your answer as well? – HeikkiVesanto Sep 19 '15 at 19:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.