ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / LayerFactory Class / CreateLayer Method / CreateLayer(Uri,ILayerContainerEdit,Int32,String) Method
An URI represents the path or url to a dataset or .lyrx or .lpkx file.
A map or group layer instance where the Layer will be added
The position of the layer in the map or group layer. 0 represents the top most position.
(optional) When it is not provided, the default display name gets used e.g. the dataset name or alias. (default value = "")
Example

In This Topic
    CreateLayer(Uri,ILayerContainerEdit,Int32,String) Method
    In This Topic
    Creates a new Layer instance with the specified path to a dataset and adds it to a container such as a map or a group layer. Optionally you can provide a name to override the default display name. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax
    Public Overloads Function CreateLayer( _
       ByVal dataUri As Uri, _
       ByVal container As ILayerContainerEdit, _
       Optional ByVal index As Integer, _
       Optional ByVal layerName As String _
    ) As Layer

    Parameters

    dataUri
    An URI represents the path or url to a dataset or .lyrx or .lpkx file.
    container
    A map or group layer instance where the Layer will be added
    index
    The position of the layer in the map or group layer. 0 represents the top most position.
    layerName
    (optional) When it is not provided, the default display name gets used e.g. the dataset name or alias. (default value = "")

    Return Value

    Exceptions
    ExceptionDescription
    This method or property must be called within the lambda passed to QueuedTask.Run.
    DataUri or container is null.
    Remarks

    Some sample paths to:

    A FeatureClass in a FileGeodatabase C:\Data\MyFileGDB.gdb\Census
    A shape file in a folder \\Machine\SharedFolder\MySpatialData.dbf
    A RasterDataset in a FileGeodatabase C:\Data\MyFileGDB.gdb\DEM
    A FeatureClass from a SDE C:\Connections\MySDEConnection.sde\Roads
    An image file in a folder \\Machine\SharedFolder\Imagery.tif
    A .lyrx or .lpkx file \\Machine\SharedFolder\Fires.lyrx
    A map service layer http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer
    A feature layer off a map or feature service http://sampleserver6.arcgisonline.com/arcgis/rest/services/NapervilleShelters/FeatureServer/0

    Example
    Create and add a layer to the active map
    {
        //* string url = @"c:\data\project.gdb\DEM";  //Raster dataset from a FileGeodatabase
        //* string url = @"c:\connections\mySDEConnection.sde\roads";  //FeatureClass of a SDE
        //* string url = @"c:\connections\mySDEConnection.sde\States\roads";  //FeatureClass within a FeatureDataset from a SDE
        //* string url = @"c:\data\roads.shp";  //Shapefile
        //* string url = @"c:\data\imagery.tif";  //Image from a folder
        //* string url = @"c:\data\mySDEConnection.sde\roads";  //.lyrx or .lpkx file
        //* string url = @"c:\data\CAD\Charlottesville\N1W1.dwg\Polyline";  //FeatureClass in a CAD dwg file
        //* string url = @"C:\data\CAD\UrbanHouse.rvt\Architectural\Windows"; //Features in a Revit file
        //* string url = @"http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer";  //map service
        //* string url = @"http://sampleserver6.arcgisonline.com/arcgis/rest/services/NapervilleShelters/FeatureServer/0";  //FeatureLayer off a map service or feature service
    
        string urlRoads = @"c:\data\project.gdb\roads";  //FeatureClass of a FileGeodatabase
                                                         //Note: Needs QueuedTask to run
        Uri uri = new Uri(urlRoads);
        var newLayer = LayerFactory.Instance.CreateLayer(uri, MapView.Active.Map);
    }
    Create a raster layer
    {
        string urlRatser = @"C:\Images\Italy.tif";
        await QueuedTask.Run(() =>
        {
            // Create a raster layer using a path to an image.
            // Note: You can create a raster layer from a url, project item, or data connection.
            //Note: needs to be called on the MCT
            var rasterLayerToCreate = LayerFactory.Instance.CreateLayer(new Uri(urlRatser), map) as RasterLayer;
        });
    }
    Create a mosaic layer
    {
        //Path to mosaic dataset
        string urlItaly = @"C:\Images\countries.gdb\Italy";
        //Note: Run within a QueuedTask
        // Create a mosaic layer using a path to a mosaic dataset.
        // Note: You can create a mosaic layer from a url, project item, or data connection.
        mosaicLayer = LayerFactory.Instance.CreateLayer(new Uri(urlItaly), map) as MosaicLayer;
    }
    Create an image service layer
    {
        string urlToUse =
        @"http://imagery.arcgisonline.com/arcgis/services/LandsatGLS/GLS2010_Enhanced/ImageServer";
        // Create an image service layer using the url for an image service.
        //Note: Run within a QueuedTask
        var isLayer = LayerFactory.Instance.CreateLayer(new Uri(urlToUse), map) as ImageServiceLayer;
    }
    Create a stream layer with a simple renderer
    {
      // Note: call within QueuedTask.Run()
      {
        var url = @"https://geoeventsample1.esri.com:6443/arcgis/rest/services/LABus/StreamServer";
        var uri = new Uri(url, UriKind.Absolute);
        var createParams = new FeatureLayerCreationParams(uri)
        {
          RendererDefinition = new SimpleRendererDefinition()
          {
            SymbolTemplate = SymbolFactory.Instance.ConstructPointSymbol(
                                ColorFactory.Instance.BlueRGB,
                                12,
                         SimpleMarkerStyle.Pushpin).MakeSymbolReference()
          }
        };
        streamLayer = LayerFactory.Instance.CreateLayer<StreamLayer>(
                            createParams, map);
      }
    }
    Create Voxel Layer
    {
      // Note: call within QueuedTask.Run()
      {
        //Must be a .NetCDF file for voxels
        var url = @"C:\MyData\AirQuality_Redlands.nc";
        var cim_connection = new CIMVoxelDataConnection()
        {
          URI = url
        };
        //Create a VoxelLayerCreationParams
        var createParams = VoxelLayerCreationParams.Create(cim_connection);
        createParams.IsVisible = true;
    
        //Can also just use the path directly...
        //var createParams = VoxelLayerCreationParams.Create(url);
    
        //Use VoxelLayerCreationParams to enumerate the variables within
        //the voxel
        var variables = createParams.Variables;
        foreach (var variable in variables)
        {
          var line = $"{variable.Variable}: {variable.DataType}, " +
             $"{variable.Description}, {variable.IsDefault}, {variable.IsSelected}";
          System.Diagnostics.Debug.WriteLine(line);
        }
        //Optional: set the default variable
        createParams.SetDefaultVariable(variables.Last());
    
        //Create the layer - map must be a local scene
        voxelLayer = LayerFactory.Instance.CreateLayer<VoxelLayer>(createParams, map);
      }
    }
    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also