Select to view content in your preferred language

Multiple data driven frames?

24830
30
10-03-2011 03:08 PM
TrishRice
Deactivated User
I had an idea and want to see if it's possible/if anyone's done it.  Can you combine data driven pages with having multiple data frames on your layout?

Example:
-Two frames on a layout, one on left and one on right
-10 data driven pages
-It would display DDP's 1, 3, 5, 7, 9 in the left frame and DDP's 2, 4, 6, 8, 10 in the right frame, for a total of 5 sheets of paper.

I just experimented in ArcMap 10 with two data frames with DDP's turned on and it only updates one of them, the other remains static.
0 Kudos
30 Replies
JohannesRein
Emerging Contributor
Hello

I want to continue with this topic, as we are searching for a solution within ArcGIS 10 for the same problem.
I tried the above posted code but unfortunaly i did not make it.

Therefore i prepared a few data and a Mxd with three dataframes and a layout. The data in the different dataframes are not in the same extend!
Every dataframe has a layer with mapframes including an attribut, called "PNR", which is the same in every layer.

If someone can configure a MapSeries in the Mxd to work with the three dataframes, that would be great.
Or post the arcpy code for the problem to work with this data and mxd.

Thank you in advance.

Greetings,
Johannes
0 Kudos
JeffBarrette
Esri Regular Contributor
Not sure what an rar file is.  Could you provide a zip?

Jeff
0 Kudos
JohannesRein
Emerging Contributor
Attached the ZIP file.

Sorry i didn't knew that rar is not that common.
0 Kudos
JeffBarrette
Esri Regular Contributor
I looked at your data.  If I understand this correctly, you are trying to do something that is a lot more than just setting the extents of 3 data frames.

Your upper data frame appears to contain the equivalent of 3 strip map pages, each at a different angle to one another.  The data frame below that shows the pipeline running through the 3 pages but it is flattened to run horizontal to the bottom of the page (i.e., profile map).

The only way I can think of doing this with Python is to make the middle data frame (and bottom) 3 separate data frames, one for each stripmap page.  The trick will be to get the rotation of each stripmap page and then rotate the 3 separate data frames so they are all horizontal to each other.  You will also need to calibrate your extents based on the rotation so that you can place each dataframe next to one another to create the appearance of 3 horizontal dataframes that appear a one.

I find this interesting but this goes far beyond answering a question about setting data frame extents.

The dataframe object allows you to set its extent and also allows you to rotate.  I believe this is what you would need to do.
Jeff
0 Kudos
KirkGustafson
Deactivated User
Back to the question posed by the original poster, of driving two dataframes using data driven pages.  A simple example of this is the following:

I have a project with approx. 20 sites scattered around the US.  The data driven pages works great for setting the main data frame extents, scale, and rotation.  What I need to do is have the second dataframe, called "Keymap" update based on the state that each given location is in.  Ie. if the project location is Chicago IL, the keymap would show just the outline of Illinois (state outline, and counties of Illinois).  Any ideas or suggestions?
0 Kudos
ginnygriffin
New Contributor
Let me make this even more complicated. I have a large map book, with over 100 areas to be zoomed in to. The zoom areas vary for each map book page, i.e., page 1 has #1-4 zoom areas; page 2 has #5-10 zoom areas. Any idea how I can make sure the correct zoom areas appear on the map pages?
0 Kudos
JeffBarrette
Esri Regular Contributor
I'm currently working with a customer on this exact issue.  They have 320 map sheets.  Each sheet can have anywhere from 0 to 6 inset maps.  In addition to the insets, they also have 3 tabular reports.  Depending on the size and shape of the primary map, all the other items (insets and reports) get placed at different locations.  The solution we are building is to store all the page layout info (x,y, width, height, extent, etc) of each element in a table.  As we iterate through each map sheet, the appropriate info is read and the appropriate items are positioned.

This application will be posted to the Resource Center when complete.  We just started so it will take some time.

Jeff
0 Kudos
JohannesRein
Emerging Contributor
I looked at your data.  If I understand this correctly, you are trying to do something that is a lot more than just setting the extents of 3 data frames.

Your upper data frame appears to contain the equivalent of 3 strip map pages, each at a different angle to one another.  The data frame below that shows the pipeline running through the 3 pages but it is flattened to run horizontal to the bottom of the page (i.e., profile map).

The only way I can think of doing this with Python is to make the middle data frame (and bottom) 3 separate data frames, one for each stripmap page.  The trick will be to get the rotation of each stripmap page and then rotate the 3 separate data frames so they are all horizontal to each other.  You will also need to calibrate your extents based on the rotation so that you can place each dataframe next to one another to create the appearance of 3 horizontal dataframes that appear a one.

I find this interesting but this goes far beyond answering a question about setting data frame extents.

The dataframe object allows you to set its extent and also allows you to rotate.  I believe this is what you would need to do.
Jeff


What about the arcpy.mapping classes "currentPageID"?
If i setup a ddp with the mapsheets in the first DataFrame and get the number of the current mapsheet from "currentPageID", write that into a variable and use it for a selection in the other dataframes?
Example: The series is at the number 2 of the mapsheets, therfore i select and pan to mapsheet number 2 in all other dataframes.

Is there no way to solve that problem whitout a lot of programming?
0 Kudos
RichardFairhurst
MVP Alum
Is there no way to solve that problem whitout a lot of programming?


Isn't what you mean really:  "Is there no way to solve that problem without ME doing a lot of programming?"  You wouldn't mind if someone else did a lot of programming (ESRI, another user) if it was done right now and free.  The problem does involve programming (which is never just a little when every detail of the behavior is taken into acount) by someone, since this is not functionality that has been built into the current program.  "A lot of programming" went into creating Data Driven pages for one Data Frame, and from experience with ArcObjects, it becomes exponentially more complicated as you try to coordinate multiple Data Frames.
0 Kudos
JohannesRein
Emerging Contributor
This tool or functionality does not have to be free!

If somebody knows a product/extension for ArcGIS 10 covering this question, please let me know.
0 Kudos