ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / MapProjectItem Class
Members Example

In This Topic
    MapProjectItem Class
    In This Topic
    Represents a map project item.
    Object Model
    MapProjectItem ClassMapProjectItem ClassMap ClassTimeInstant Class
    Syntax
    Example
    Get MapProjectItems
    {
      // not to be included in sample regions
      var projectFolderConnection = Project.Current.GetItems<FolderConnectionProjectItem>().First();
    
      // Get all the maps in a project
      IEnumerable<MapProjectItem> projectMaps = Project.Current.GetItems<MapProjectItem>();
    }
    Remove Map From Project
    {
      // Remove a map from a project; the map is deleted
      IProjectItem mapToRemove = Project.Current.GetItems<MapProjectItem>().FirstOrDefault(map => map.Name.Equals("OldStreetRoutes"));
      // Note: Needs QueuedTask to run
      var removedMapProjectItemResult = Project.Current.RemoveItem(mapToRemove);
      // Use removedMapProjectItemResult
    }
    Get all MapProjectItems for a project
    {
      var project = Project.Current;
      IEnumerable<MapProjectItem> newMapItemsContainer = project.GetItems<MapProjectItem>();
      // Note: Needs QueuedTask to run
      foreach (var mp in newMapItemsContainer)
      {
        //Do Something with the map. For Example:
        Map myMap = mp.GetMap();
      }
    }
    Get a specific MapProjectItem
    {
      MapProjectItem mapProjItem = Project.Current.GetItems<MapProjectItem>().FirstOrDefault(item => item.Name.Equals("EuropeMap"));
      // Use mapProjItem;
    }
    ProjectItem: Get an Item or Find an Item
    {
      //GetItems searches project content
      var map = Project.Current.GetItems<MapProjectItem>().FirstOrDefault(m => m.Name == "Map1");
      var layout = Project.Current.GetItems<LayoutProjectItem>().FirstOrDefault(m => m.Name == "Layout1");
      var folders = Project.Current.GetItems<FolderConnectionProjectItem>();
      var style = Project.Current.GetItems<StyleProjectItem>().FirstOrDefault(s => s.Name == "ArcGIS 3D");
    
      //Find item uses a catalog path. The path can be to a file or dataset
      var fcPath = @"C:\Pro\CommunitySampleData\Interacting with Maps\Interacting with Maps.gdb\Crimes";
      var pdfPath = @"C:\Temp\Layout1.pdf";
      var imgPath = @"C:\Temp\AddinDesktop16.png";
    
      var fc = Project.Current.FindItem(fcPath);
      var pdf = Project.Current.FindItem(pdfPath);
      var img = Project.Current.FindItem(imgPath);
    }
    Create Map Frame and Set Camera
    {
      //Create a map frame and set its camera by zooming to the extent of an existing bookmark.
      //Construct on the worker thread
    
      //Build 2D envelope geometry
      Coordinate2D mf_ll = new Coordinate2D(6.0, 8.5);
      Coordinate2D mf_ur = new Coordinate2D(8.0, 10.5);
      Envelope mf_env = EnvelopeBuilderEx.CreateEnvelope(mf_ll, mf_ur);
    
      //Reference map, create MF and add to layout
      MapProjectItem mapPrjItem = Project.Current.GetItems<MapProjectItem>()
                           .FirstOrDefault(item => item.Name.Equals("Map"));
      Map mfMap = mapPrjItem.GetMap();
      Bookmark bookmark = mfMap.GetBookmarks().FirstOrDefault(
                            b => b.Name == "Great Lakes");
    
      MapFrame mfElm = ElementFactory.Instance.CreateMapFrameElement(
                           layout, mf_env, mfMap, "New Map Frame");
    
      //Zoom to bookmark
      mfElm.SetCamera(bookmark);
    }
    Find a map within a project and open it
    {
        //Finding the first project item with name matches with mapName
        MapProjectItem? mpi = Project.Current.GetItems<MapProjectItem>()
          .FirstOrDefault(m => m.Name.Equals("The Map", StringComparison.CurrentCultureIgnoreCase));
        //Note: Needs QueuedTask to run
        var mapFromItem = mpi?.GetMap();
        if (mapFromItem != null)
        {
            //Open the map in a new map pane
            //Must be called from the UI thread
            await ProApp.Panes.CreateMapPaneAsync(map);
        }
    }
    How to access Geoprocessing History
    {
      string openProjectPath = @"D\DATA\IGPHistoryItemTestProject\IGPHistoryItemTestProject.aprx";
      Project.OpenAsync(openProjectPath);
      MapProjectItem mapProjItem = Project.Current.GetItems<MapProjectItem>().FirstOrDefault(item => item.Name.Equals("Map", StringComparison.CurrentCultureIgnoreCase));
    
      // Note: Needs QueuedTask to run
      var map = mapProjItem.GetMap();
      var ftrLayer = map.Layers[0] as FeatureLayer;
      string tool1 = "management.GetCount";
      var args1 = Geoprocessing.MakeValueArray(ftrLayer);
      var env = Geoprocessing.MakeEnvironmentArray(overwriteoutput: true);
      GPExecuteToolFlags executeFlags = GPExecuteToolFlags.AddToHistory;
      var t = Geoprocessing.ExecuteToolAsync(tool1, args1, env, null, null, executeFlags);
    
      IEnumerable<IGPHistoryItem> hisItems = Project.Current.GetProjectItemContainer(Geoprocessing.HistoryContainerKey) as IEnumerable<IGPHistoryItem>;
    
      string hitemID = "";
      string hitemToolPath = "";
      IGPResult hitemGPResult = null;
      DateTime hitemTimeStamp;
    
      foreach (var hitem in hisItems)
      {
        // common IGPHistoryItem and Item properties
        hitemID = (hitem as Item).ID;
        hitemToolPath = hitem.ToolPath;
        hitemGPResult = hitem.GPResult;
        hitemTimeStamp = hitem.TimeStamp;
    
        // use the properties as needed
      }
    }
    Inheritance Hierarchy

    System.Object
       ArcGIS.Desktop.Framework.Contracts.PropertyChangedBase
          ArcGIS.Desktop.Core.Item
                      ArcGIS.Desktop.Mapping.MapProjectItem

    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.0 or higher.
    See Also