Public Property SubtypeLayers As List(Of SubtypeFeatureLayerCreationParams)
public List<SubtypeFeatureLayerCreationParams> SubtypeLayers {get; set;}
Public Property SubtypeLayers As List(Of SubtypeFeatureLayerCreationParams)
public List<SubtypeFeatureLayerCreationParams> SubtypeLayers {get; set;}
If you do not provide any list, LayerFactory.CreateLayer<T> will create a SubtypeGroupLayer with all subtypes available at the source.
If you want to create a SubtypeGroupLayer with only a subset of all available subtypes and/or create them with pre-defined renderer, you must provide a list of SubtypeFeatureLayerCreationParams.
{
var subtypeGroupLayerCreateParam = new SubtypeGroupLayerCreationParams
(new Uri(@"c:\data\SubtypeAndDomain.gdb\Fittings"));
// Define Subtype layers
var rendererDefn1 = new UniqueValueRendererDefinition(new List<string> { "type" });
var renderDefn2 = new SimpleRendererDefinition()
{
SymbolTemplate = SymbolFactory.Instance.ConstructPointSymbol(
CIMColor.CreateRGBColor(255, 0, 0), 8, SimpleMarkerStyle.Hexagon).MakeSymbolReference()
};
subtypeGroupLayerCreateParam.SubtypeLayers = new List<SubtypeFeatureLayerCreationParams>()
{
//define first subtype layer with unique value renderer
new SubtypeFeatureLayerCreationParams(new UniqueValueRendererDefinition(new List<string> { "type" }), 1),
//define second subtype layer with simple symbol renderer
new SubtypeFeatureLayerCreationParams(renderDefn2, 2)
};
// Define additional parameters
subtypeGroupLayerCreateParam.DefinitionQuery = new DefinitionQuery(whereClause: "Enabled = 1", name: "IsActive");
subtypeGroupLayerCreateParam.IsVisible = true;
subtypeGroupLayerCreateParam.MinimumScale = 50000;
//Note: Needs QueuedTask to run
SubtypeGroupLayer subtypeGroupLayer2 = LayerFactory.Instance.CreateLayer<SubtypeGroupLayer>(
subtypeGroupLayerCreateParam, MapView.Active.Map);
}
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)