public IEnumerable<Item> ProjectItemContainers {get;}
Public ReadOnly Property ProjectItemContainers As IEnumerable(Of Item)
public IEnumerable<Item> ProjectItemContainers {get;}
Public ReadOnly Property ProjectItemContainers As IEnumerable(Of Item)
The list of containers can vary depending on the content within a given project. Some containers that are instantiated in one project can be null in others
Containers also include non-visible internal containers. These can be ignored.
Public containers (not including any 3rd party custom containers):
Display Name(English) | Path or "Key" (Non-localizable) | Item content |
Databases | GDB | Database content |
Folders | FolderConnection | Files and Folders |
Layouts | Layout | Layouts |
Locators | LocatorsConnection | Locators |
Maps | Map | Maps |
Raster Function Templates | RasterFunctionTemplates | Raster function templates |
Reviewer Batch Jobs | DataReviewerBatchJobs | Reviewer batch jobs |
Reviewer Results | DataReviewerResources | Reviewer results |
Servers | ServerConnection | Server connections |
Styles | Style | Styles |
Tasks | Task | Tasks |
Toolboxes | GP | Toolboxes |
Workflows | WorkflowConnection | Workflows |
//Use Project.Current.ProjectItemContainers var folderContainer = Project.Current.ProjectItemContainers.First(c => c.Path == "FolderConnection"); var gdbContainer = Project.Current.ProjectItemContainers.First(c => c.Path == "GDB"); var mapContainer = Project.Current.ProjectItemContainers.First(c => c.Path == "Map"); var layoutContainer = Project.Current.ProjectItemContainers.First(c => c.Path == "Layout"); var toolboxContainer = Project.Current.ProjectItemContainers.First(c => c.Path == "GP"); //etc. //or...use Project.Current.GetProjectItemContainer folderContainer = Project.Current.GetProjectItemContainer("FolderConnection"); gdbContainer = Project.Current.GetProjectItemContainer("GDB"); mapContainer = Project.Current.GetProjectItemContainer("Map"); layoutContainer = Project.Current.GetProjectItemContainer("Layout"); toolboxContainer = Project.Current.GetProjectItemContainer("GP"); //etc.
//Get the catalog pane ArcGIS.Desktop.Core.IProjectWindow projectWindow = Project.GetCatalogPane(); //or get the active catalog view... //ArcGIS.Desktop.Core.IProjectWindow projectWindow = Project.GetActiveCatalogWindow(); //eg Find a toolbox in the project string gpName = "Interacting with Maps.tbx"; var toolbox = Project.Current.GetItems<GeoprocessingProjectItem>().FirstOrDefault(tbx => tbx.Name == gpName); //Select it under Toolboxes projectWindow.SelectItemAsync(toolbox, true, true, null);//null selects it in the first container - optionally await //Note: Project.Current.GetProjectItemContainer("GP") would get toolbox container... //assume toolbox is also under Folders container. Select it under Folders instead of Toolboxes var foldersContainer = Project.Current.ProjectItemContainers.First(c => c.Path == "FolderConnection"); //We must specify the container because Folders comes second (after Toolboxes) projectWindow.SelectItemAsync(toolbox, true, true, foldersContainer);//optionally await //Find a map and select it var mapItem = Project.Current.GetItems<MapProjectItem>().FirstOrDefault(m => m.Name == "Map"); //Map only occurs under "Maps" so the container need not be specified projectWindow.SelectItemAsync(mapItem, true, false, null);
Target Platforms: Windows 11, Windows 10