|
IDEA
|
Hello JCarlson, Thank you for your feedback and idea. I'm with Esri and work on both the Layout and Python Map Automation (arcpy.mp) teams. I'd like some more information about how the non-spatial page is being generated. Can you successfully create the page(s) in ArcGIS Pro on a layout? Also, your comment about Python in option #4 - "no way the spatial component will look half as nice as Pro". Python can be used to automate the creation of multi-page output but the content is authored in Pro. So that means you can get the output quality the Pro but arcpy.mp can be used to automate the creation of multiple pages stitched together into one resulting PDF. ArcGIS Pro also supports Reports. I'm not sure if you tried using Reports for your non-spatial pages. If you were able to get the formatting you want, then you could use layouts for your spatial part and reports for your non-spatial pages AND python to combine everything into one product. There is much more I can add but I don't want to complicate anything until I better understand how you generate the non-spatial page. Feel free to respond here or contact me via [email protected].
... View more
01-13-2021
11:09 AM
|
0
|
0
|
24801
|
|
POST
|
Does the workaround mentioned above help you? We are currently testing a local fix and hope to include it in a 2.7 service pack. Jeff Layout and arcpy.mp teams
... View more
01-11-2021
08:32 AM
|
0
|
1
|
5017
|
|
POST
|
Damian, Our graphics team just confirmed that this is by design. Simulate Overpost produces something similar to Output As Image - i.e., georef info is lost. We will update the bug, the documentation and I will also suggest that the georef option be disabled if Simulate Overpost is checked on. Jeff - Layout/arcpy.mp team
... View more
12-29-2020
11:06 AM
|
1
|
1
|
9493
|
|
POST
|
Thank you for reporting this Damian. I reproduced with your exact settings. I unchecked Simulate Overpost and my PDF opened in Avenza Maps just fine. Please try turning that option off can confirm. I hope that is an acceptable workaround until we address the issue. Jeff - Layout/arcpy.mp teams
... View more
12-29-2020
10:08 AM
|
2
|
1
|
9498
|
|
POST
|
Hello Dean, I was able to reproduce. I created a 2.5 project, added a feature class AND a stand alone table. I set up a map series on the feature class and then set up the page query on the table/tableframe. Only the filtered records displayed in the table frame. I opened the same project in 2.7 and all records were showing. This is a regression and can hopefully address it as a service pack with very high priority (once we identify how it was broken). As possible work around: Can you join the index layer with your stand alone table, then set the properties of the table frame to ONLY show 'Map series rows'? This produces the same effect. In my simple example, I had State_Polygons joined to Counties_Table (one to many). Jeff - Layout / arcpy.mp Teams (and former ORMAP participant)
... View more
12-21-2020
02:49 PM
|
1
|
1
|
5123
|
|
POST
|
If you are familiar with Python you could try an arcpy.mp sample that is available. At Pro 2.8 we hope to expand our API to include time capabilities but in the meantime you can modify time using the CIM. The caveat is time must already be set up on the map and layer. You can use a script to change the time window before exporting each page in the series. The sample can be found here: https://www.arcgis.com/home/item.html?id=8772f61319584882bb697ba003030636 The specific script is called Temporal Map Series. Jeff - arcpy.mp and Layout Teams
... View more
12-18-2020
09:42 AM
|
0
|
0
|
2770
|
|
POST
|
For out-of-the-box Map Series, one way to accomplish this is to manually add a "Rotation" field and set each index feature's rotation accordingly. You could start by setting all rows = 0 but then only change the rotation value for each feature that needs to be rotated. Map Series supports a rotation field that would use the rotation value for each feature. Similar for extent. You could add a scale field for each feature to control the extent. I don't even think using Python to automate extent and rotation would add much benefit because you would still need to apply logic for each index feature. Having rotation and scale fields should do the trick. Jeff - Layout Team.
... View more
12-08-2020
11:52 AM
|
1
|
1
|
2146
|
|
IDEA
|
Thank you for your submission CWH! To clarify, do you want to delete map views or maps? A map view is simply a view window in the application for viewing the contents of a map. A map is a project item that is viewable in a map view (window). We have future plans to be able to manage project items like maps, layout, folder connections, etc. Not only would I like to delete a map (or layout) from a project, but I may also want to duplicate (i.e., copy/paste) one with arcpy.mp as a starting point for automation purposes. Please confirm map or mapview Jeff - arcpy.mp Team
... View more
11-25-2020
11:26 AM
|
0
|
0
|
5007
|
|
IDEA
|
This is something we definitely want to be able to do with arcpy.mp at the Project level. Deleting project items such as maps and layouts as well as duplicating them could be very useful for automation and general project cleanup. We already have an existing issue for this: https://devtopia.esri.com/ArcGISPro/arcpy.mp/issues/62
... View more
11-25-2020
11:21 AM
|
0
|
0
|
5008
|
|
IDEA
|
Hello Joel, Another alternative is to use the Python arcpy.mp module. If you already have a time enabled layer, you can control the time slices using Python CIM Access. This (Temporal Map Series) snippet is from a set of samples provided at: https://www.arcgis.com/home/item.html?id=8772f61319584882bb697ba003030636 # Author: Esri # Date: March 2020 # Version: ArcGISPro 2.5 # Purpose: This script updates the time window for a mapframe on a layout by # iterating over 5 year time intervals. # Notes: - The script is intended to work from a script tool provided with # a sample project using "CURRENT". To see the changes happen be # sure to active the appropriate map or layout. # - Because each time window is a separate result, you must get and # set the CIM for each iteration. # - Optionally, each time window can be exported to PDF by # uncommenting the the last line. You may need to change the # output folder in the string. from datetime import datetime p = arcpy.mp.ArcGISProject("current") lyt = p.listLayouts('Time')[0] #Iterate from 1975 to 2010 using 5 year intervals for x in range(1975, 2010, 5): lyt_cim = lyt.getDefinition('V2') #Get the Layout's CIM definition #Iterate though all layout elements to find the MapFrame element for elm in lyt_cim.elements: if elm.name == 'Map Frame': #Set start/end time window elm.view.timeDisplay.timeValue.start = datetime(x, 1, 1, 0, 0) elm.view.timeDisplay.timeValue.end = datetime(x+5, 1, 1, 0, 0) lyt.setDefinition(lyt_cim) #set start/end time #Update the page name in the script tool and optionally export arcpy.AddMessage(f'Range: {x}-{x+5}') lyt.exportToPDF(f'C:\Temp\Time_{x}-{x+5}.pdf')
... View more
11-24-2020
06:50 AM
|
0
|
0
|
7160
|
|
POST
|
Thomas, this issue should be addressed in Pro 2.7 when exporting to PDF using the SDK. Jeff - Layout Team
... View more
11-03-2020
04:15 PM
|
0
|
0
|
5104
|
|
POST
|
Hello Laura, Yes, at 2.5 we introduced this. THere is a new section in the Python CIM Access topic titled Creating CIM Objects. Python CIM access—ArcGIS Pro | Documentation Jeff
... View more
10-06-2020
07:49 AM
|
2
|
0
|
6103
|
|
POST
|
This has been addressed at 2.7. A number of performance improvements have been made that allow the code below to run in about 1 second vs about 24 seconds in Pro 2.6. The biggest improvement is the fact that we've added bulk element creation tools. Here is the modified code that will run much faster in Pro 2.7 Stopwatch stopwatch = new Stopwatch();
await QueuedTask.Run(() =>
{
stopwatch.Start();
Layout layout = Project.Current.GetItems<LayoutProjectItem>().FirstOrDefault()?.GetLayout();
GroupElement groupElement1 = LayoutElementFactory.Instance.CreateGroupElement(layout);
CIMElement cimGroupElement = groupElement1.GetDefinition();
cimGroupElement.Name = "First Level Group";
groupElement1.SetDefinition(cimGroupElement);
GroupElement groupElement2 = LayoutElementFactory.Instance.CreateGroupElement(groupElement1);
GroupElement groupElement3 = LayoutElementFactory.Instance.CreateGroupElement(groupElement2);
var graphics = new List<CIMGraphic>(); //new at 2.7
var names = new List<string>(); //new at 2.7
for (int i = 0; i < 100; i++)
{
List<Coordinate2D> lineCoordinates = new List<Coordinate2D> { new Coordinate2D { X = i, Y = 0 }, new Coordinate2D { X = i, Y = 100 } };
Polyline polylineTic = PolylineBuilder.CreatePolyline(lineCoordinates);
CIMLineSymbol lineSym = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 1.0, SimpleLineStyle.Solid);
graphics.Add(new CIMLineGraphic() { Line = polylineTic, Symbol = new CIMSymbolReference() { Symbol = lineSym } });
names.Add("Line" + i); //new at 2.7
}
LayoutElementFactory.Instance.CreateGraphicElements(groupElement3, graphics.ToArray(), names.ToArray()); //new at 2.7
stopwatch.Stop();
System.Windows.MessageBox.Show((stopwatch.ElapsedMilliseconds / 1000).ToString());
}); Jeff - arcpy.mp / Layout SDK teams
... View more
09-18-2020
02:22 PM
|
0
|
1
|
1817
|
|
POST
|
This issue was addressed for Pro 2.7 Jeff - arcpy.mp/Layout SDK teams
... View more
09-18-2020
01:15 PM
|
0
|
0
|
999
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 06-05-2025 11:20 AM | |
| 3 | 06-05-2025 09:21 AM | |
| 1 | 05-14-2025 01:19 PM | |
| 2 | 04-24-2025 07:54 AM | |
| 1 | 03-15-2025 07:19 PM |
| Online Status |
Offline
|
| Date Last Visited |
2 weeks ago
|