This document is archived and information here might be outdated.  Recommended version.


How to access maps and layers via the MxDocument (ArcObjects .NET 10.6 SDK)
ArcObjects Help for .NET developers > Developing with ArcGIS > Learning ArcObjects > Interacting with and configuring maps, layers, and graphics > Working with map documents > How to access maps and layers via the MxDocument (ArcObjects .NET 10.6 SDK)

How to access maps and layers via the MxDocument


Summary
MxDocument is the class representing the map document in ArcMap. This makes the class a central point to ArcMap customization. This topic demonstrates how to access the maps and layers of a map document via IMxDocument.

Accessing maps and layers via the MxDocument

In the following code example, the maps and layers are looped through and the names of these objects are reported to the console. Do the following steps to access maps and layers:
  1. Get the maps from the MxDocument.
[C#]
IMap pMap;
IMaps pMaps=pMxDocument.Maps;
[VB.NET]
Dim pMap As IMap
Dim pMaps As IMaps=pMxDocument.Maps
  1. Enumerate through the maps and output the name of each map to the console. See the following code example:
[C#]
for (int i=0; i <= pMaps.Count - 1; i++)
{
    pMap=pMaps.get_Item(i);
    Console.WriteLine(pMap.Name);
    IEnumLayer pEnumLayer=pMap.get_Layers(null, true);
    pEnumLayer.Reset();
    ILayer pLayer=pEnumLayer.Next();
    while (pLayer != null)
    {
        Console.WriteLine(pLayer.Name);
        pLayer=pEnumLayer.Next();
    }
}
[VB.NET]
Dim i As Integer
For i=0 To pMaps.Count - 1 Step i + 1
    pMap=pMaps.Item(i)
    Console.WriteLine(pMap.Name)
    Dim pEnumLayer As IEnumLayer=pMap.Layers(Nothing, True)
    pEnumLayer.Reset()
    Dim pLayer As ILayer=pEnumLayer.Next()
    While Not pLayer Is Nothing
        Console.WriteLine(pLayer.Name)
        
        pLayer=pEnumLayer.Next()
    End While
    
Next






Additional Requirements
  • pMxDocument—An IMxDocument referencing the map document that you want to access.

Development licensing Deployment licensing
ArcGIS Desktop Basic ArcGIS Desktop Basic
ArcGIS Desktop Standard ArcGIS Desktop Standard
ArcGIS Desktop Advanced ArcGIS Desktop Advanced