<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Zoom to specific features in MapSeries in ArcGIS Pro Questions</title>
    <link>https://community.esri.com/t5/arcgis-pro-questions/zoom-to-specific-features-in-mapseries/m-p/1484111#M84122</link>
    <description>&lt;P&gt;Hi Glen,&lt;/P&gt;&lt;P&gt;Appreciate the quick response. I should have elaborated further, your solution is what we actually have in place to export the maps, the process is roughly something like this: Intersect all layers within the parcel, can be more than one &amp;gt; Dissolve based on the parcel number field &amp;gt; use page query on all layers. Since we have Pro license which allows for only 2 feature intersections, and both parcels and powerlines features, or other affecting features changes frequently, this becomes a cumbersome process, I was after a more automated method to apply to the map series.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for example:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Create list of features to intersect.&lt;/LI&gt;&lt;LI&gt;Loop through the list and perform intersect.&lt;/LI&gt;&lt;LI&gt;Merge result with Parcel.&lt;/LI&gt;&lt;LI&gt;Finally, dissolve the merged layer.&lt;/LI&gt;&lt;/UL&gt;</description>
    <pubDate>Tue, 04 Jun 2024 09:43:38 GMT</pubDate>
    <dc:creator>WaddahMahmoud</dc:creator>
    <dc:date>2024-06-04T09:43:38Z</dc:date>
    <item>
      <title>Zoom to specific features in MapSeries</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/zoom-to-specific-features-in-mapseries/m-p/1483770#M84105</link>
      <description>&lt;P&gt;Fellow GIS professionals, I have a polygon feature containing individual polygon for each land parcel, which is intersected by another polygon/and polyline containing power lines and powerlines buffers, I need to create MapSeries for each parcel, clipping the powerlines within the extent of that specific parcel only, which is simple. But!! I also need to export the MapSeries zooming into the area of intersection only, and not the whole (default) full extent of the parcel, map series extent options are limited to best fit, fixed scale, or scale from field, is there is a way to achieve this, maybe through ArcPy? In example picture attached, I want to only zoom-in to the area marked in red as an example, in each of the parcel plans.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="WaddahMahmoud_0-1717461589176.jpeg" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/106065iFA1575D20AD57994/image-size/medium?v=v2&amp;amp;px=400" role="button" title="WaddahMahmoud_0-1717461589176.jpeg" alt="WaddahMahmoud_0-1717461589176.jpeg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;</description>
      <pubDate>Tue, 04 Jun 2024 00:41:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/zoom-to-specific-features-in-mapseries/m-p/1483770#M84105</guid>
      <dc:creator>WaddahMahmoud</dc:creator>
      <dc:date>2024-06-04T00:41:13Z</dc:date>
    </item>
    <item>
      <title>Re: Zoom to specific features in MapSeries</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/zoom-to-specific-features-in-mapseries/m-p/1483818#M84108</link>
      <description>&lt;P&gt;In this situation we could possibly do the following:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Use the 'Intersect' tool to output a polyline feature class of line features clipped by the parcel polygon features.&lt;/LI&gt;&lt;LI&gt;Use the above output as the MapSeries input&lt;/LI&gt;&lt;LI&gt;Hide the output polylines underneath the powerlines layer in your contents list and exclude it from your legend&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Would the above work well enough in your situation?&lt;/P&gt;</description>
      <pubDate>Tue, 04 Jun 2024 01:40:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/zoom-to-specific-features-in-mapseries/m-p/1483818#M84108</guid>
      <dc:creator>GlenShepherd</dc:creator>
      <dc:date>2024-06-04T01:40:17Z</dc:date>
    </item>
    <item>
      <title>Re: Zoom to specific features in MapSeries</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/zoom-to-specific-features-in-mapseries/m-p/1484111#M84122</link>
      <description>&lt;P&gt;Hi Glen,&lt;/P&gt;&lt;P&gt;Appreciate the quick response. I should have elaborated further, your solution is what we actually have in place to export the maps, the process is roughly something like this: Intersect all layers within the parcel, can be more than one &amp;gt; Dissolve based on the parcel number field &amp;gt; use page query on all layers. Since we have Pro license which allows for only 2 feature intersections, and both parcels and powerlines features, or other affecting features changes frequently, this becomes a cumbersome process, I was after a more automated method to apply to the map series.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for example:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Create list of features to intersect.&lt;/LI&gt;&lt;LI&gt;Loop through the list and perform intersect.&lt;/LI&gt;&lt;LI&gt;Merge result with Parcel.&lt;/LI&gt;&lt;LI&gt;Finally, dissolve the merged layer.&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Tue, 04 Jun 2024 09:43:38 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/zoom-to-specific-features-in-mapseries/m-p/1484111#M84122</guid>
      <dc:creator>WaddahMahmoud</dc:creator>
      <dc:date>2024-06-04T09:43:38Z</dc:date>
    </item>
    <item>
      <title>Re: Zoom to specific features in MapSeries</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/zoom-to-specific-features-in-mapseries/m-p/1485134#M84179</link>
      <description>&lt;P&gt;Here is a crude script put together based on your suggested approach, I initially thought that you can access the MapSeries and manipulate the scale using ArcPy (mind you, not a pro python user! so maybe there is a way that I just don't know about), but for now, this script at least spared us the torture of the manual steps.&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;arcpy&lt;BR /&gt;&lt;BR /&gt;arcpy.env.overwriteOutput = &lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;workspace = arcpy.GetParameterAsText(&lt;SPAN&gt;0&lt;/SPAN&gt;)  &lt;SPAN&gt;# tool parameter (workspace) in ArcPro&lt;BR /&gt;&lt;/SPAN&gt;aprx = arcpy.mp.ArcGISProject(&lt;SPAN&gt;'Current'&lt;/SPAN&gt;)&lt;BR /&gt;mp = aprx.listMaps(aprx.activeMap.name)[0]&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# ---------------------------Accept multiple layers as a list----------------------------------------------------------#&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;# Get user input for multiple layers (store in a list)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;# tool parameter (layer) in ArcPro, with multiple values&lt;BR /&gt;&lt;/SPAN&gt;layer_list_temp = arcpy.GetParameterAsText(&lt;SPAN&gt;1&lt;/SPAN&gt;).split(&lt;SPAN&gt;";"&lt;/SPAN&gt;)  &lt;SPAN&gt;# Split the comma-separated string&lt;BR /&gt;&lt;/SPAN&gt;layer_list_temp = [layer.strip() &lt;SPAN&gt;for &lt;/SPAN&gt;layer &lt;SPAN&gt;in &lt;/SPAN&gt;layer_list_temp]  &lt;SPAN&gt;# Remove leading/trailing spaces&lt;BR /&gt;&lt;/SPAN&gt;layer_list = [(mp.listLayers(&lt;SPAN&gt;f'&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;i&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;)) &lt;SPAN&gt;for &lt;/SPAN&gt;i &lt;SPAN&gt;in &lt;/SPAN&gt;layer_list_temp]&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Check if any layers were entered&lt;BR /&gt;&lt;/SPAN&gt;lyt = aprx.listLayouts()[&lt;SPAN&gt;0&lt;/SPAN&gt;]&lt;BR /&gt;mainMapFrame = lyt.listElements(&lt;SPAN&gt;"MAPFRAME_ELEMENT"&lt;/SPAN&gt;)[&lt;SPAN&gt;0&lt;/SPAN&gt;]&lt;BR /&gt;&lt;SPAN&gt;if not &lt;/SPAN&gt;layer_list:&lt;BR /&gt;    arcpy.AddMessage(&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;No layers were selected. Please enter at least one layer."&lt;/SPAN&gt;)&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;:&lt;BR /&gt;    arcpy.AddMessage(&lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;You entered the following layers: &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;', '&lt;/SPAN&gt;.join(layer_list_temp)&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# ---------------------------------------Merge the layers------------------------------------------------------------- #&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;len&lt;/SPAN&gt;(layer_list) &amp;gt; &lt;SPAN&gt;1&lt;/SPAN&gt;:&lt;BR /&gt;    &lt;SPAN&gt;# Function to merge multiple feature classes (assumes same geometry type)&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;merge_features&lt;/SPAN&gt;(layer_list, output_path):&lt;BR /&gt;        &lt;SPAN&gt;"""&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        Merges a list of feature classes with the same geometry type into a single output feature class.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        Args:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            layer_list: A list of feature class paths.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            output_path: The path to the output merged feature class.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        """&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if not &lt;/SPAN&gt;layer_list:&lt;BR /&gt;            arcpy.AddMessage(&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;Error: No layers provided for merge operation."&lt;/SPAN&gt;)&lt;BR /&gt;            &lt;SPAN&gt;return&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;# Merge the feature classes&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;try&lt;/SPAN&gt;:&lt;BR /&gt;            arcpy.Merge_management(layer_list, output_path)&lt;BR /&gt;            arcpy.AddMessage(&lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;Successfully merged layers into: &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;output_path&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;)&lt;BR /&gt;        &lt;SPAN&gt;except &lt;/SPAN&gt;arcpy.ExecuteError:&lt;BR /&gt;            arcpy.AddMessage(&lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;Error: Failed to merge layers. Please check the input list and output path."&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;# Define output path for the merged feature class&lt;BR /&gt;&lt;/SPAN&gt;    output_path = &lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;workspace&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;\Merged_Features"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;# Call the merge function&lt;BR /&gt;&lt;/SPAN&gt;    merge_features(layer_list, output_path)&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;:&lt;BR /&gt;    output_path = layer_list[&lt;SPAN&gt;0&lt;/SPAN&gt;]&lt;BR /&gt;&lt;SPAN&gt;# -------------------------------------Intersect &amp;amp; Dissolve with main layer--------------------------------------------#&lt;BR /&gt;&lt;/SPAN&gt;inFeatures = [output_path,&lt;BR /&gt;              &lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;workspace&lt;SPAN&gt;}\{&lt;/SPAN&gt;arcpy.GetParameterAsText(&lt;SPAN&gt;2&lt;/SPAN&gt;)&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;]  &lt;SPAN&gt;# Base layer (Parcels), select parameter as Layer&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;arcpy.AddMessage(&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;Creating Intersect &amp;amp; Dissolve..."&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;arcpy.analysis.Intersect(&lt;BR /&gt;    &lt;SPAN&gt;in_features&lt;/SPAN&gt;=inFeatures,&lt;BR /&gt;    &lt;SPAN&gt;out_feature_class&lt;/SPAN&gt;=&lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;workspace&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;\MERGE_Intersect"&lt;/SPAN&gt;,&lt;BR /&gt;    &lt;SPAN&gt;join_attributes&lt;/SPAN&gt;=&lt;SPAN&gt;"ALL"&lt;/SPAN&gt;,&lt;BR /&gt;    &lt;SPAN&gt;cluster_tolerance&lt;/SPAN&gt;=&lt;SPAN&gt;None&lt;/SPAN&gt;,&lt;BR /&gt;    &lt;SPAN&gt;output_type&lt;/SPAN&gt;=&lt;SPAN&gt;"INPUT"&lt;BR /&gt;&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;arcpy.management.Dissolve(&lt;BR /&gt;    &lt;SPAN&gt;in_features&lt;/SPAN&gt;=&lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;workspace&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;\MERGE_Intersect"&lt;/SPAN&gt;,&lt;BR /&gt;    &lt;SPAN&gt;out_feature_class&lt;/SPAN&gt;=&lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;workspace&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;\Dissolved_Layer_MapSeries"&lt;/SPAN&gt;,&lt;BR /&gt;    &lt;SPAN&gt;dissolve_field&lt;/SPAN&gt;=&lt;SPAN&gt;"Parcel_Num"&lt;/SPAN&gt;,&lt;BR /&gt;    &lt;SPAN&gt;statistics_fields&lt;/SPAN&gt;=&lt;SPAN&gt;None&lt;/SPAN&gt;,&lt;BR /&gt;    &lt;SPAN&gt;multi_part&lt;/SPAN&gt;=&lt;SPAN&gt;"MULTI_PART"&lt;/SPAN&gt;,&lt;BR /&gt;    &lt;SPAN&gt;unsplit_lines&lt;/SPAN&gt;=&lt;SPAN&gt;"DISSOLVE_LINES"&lt;/SPAN&gt;,&lt;BR /&gt;    &lt;SPAN&gt;concatenation_separator&lt;/SPAN&gt;=&lt;SPAN&gt;""&lt;BR /&gt;&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# ---------------------------------------------Repair Geometry---------------------------------------------------------#&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;try&lt;/SPAN&gt;:&lt;BR /&gt;    arcpy.AddMessage(&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;Repairing geometry..."&lt;/SPAN&gt;)&lt;BR /&gt;    arcpy.management.RepairGeometry(&lt;BR /&gt;        &lt;SPAN&gt;in_features&lt;/SPAN&gt;=&lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;workspace&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;\Dissolved_Layer_MapSeries"&lt;/SPAN&gt;,&lt;BR /&gt;        &lt;SPAN&gt;delete_null&lt;/SPAN&gt;=&lt;SPAN&gt;"DELETE_NULL"&lt;/SPAN&gt;,&lt;BR /&gt;        &lt;SPAN&gt;validation_method&lt;/SPAN&gt;=&lt;SPAN&gt;"ESRI"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;SPAN&gt;except&lt;/SPAN&gt;:&lt;BR /&gt;    arcpy.AddMessage(&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;Repair Geometry not Licensed, skipping this step..."&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# ------------------------------------------display in the current map-------------------------------------------------#&lt;BR /&gt;&lt;/SPAN&gt;arcpy.AddMessage(&lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;Adding &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;workspace&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;\Dissolved_Layer_MapSeries"&lt;/SPAN&gt;)&lt;BR /&gt;aprx = arcpy.mp.ArcGISProject(&lt;SPAN&gt;"CURRENT"&lt;/SPAN&gt;)&lt;BR /&gt;map = aprx.listMaps()[&lt;SPAN&gt;0&lt;/SPAN&gt;]&lt;BR /&gt;map.addDataFromPath(&lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;workspace&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;\Dissolved_Layer_MapSeries"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;arcpy.AddMessage(&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;Script Completed!"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Data cleanup, comment if you want to keep the data&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;arcpy.Exists(&lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;workspace&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;\Merged_Features"&lt;/SPAN&gt;):&lt;BR /&gt;    arcpy.Delete_management(output_path)&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;:&lt;BR /&gt;    &lt;SPAN&gt;pass&lt;BR /&gt;&lt;/SPAN&gt;arcpy.Delete_management(&lt;SPAN&gt;f"&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;workspace&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;\MERGE_Intersect"&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 06 Jun 2024 14:05:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/zoom-to-specific-features-in-mapseries/m-p/1485134#M84179</guid>
      <dc:creator>WaddahMahmoud</dc:creator>
      <dc:date>2024-06-06T14:05:29Z</dc:date>
    </item>
  </channel>
</rss>

