

Public NotInheritable Class TinLayer Inherits SurfaceLayer Implements ArcGIS.Desktop.Core.IMetadataInfo, IMetadataSource, System.ComponentModel.INotifyPropertyChanged
public sealed class TinLayer : SurfaceLayer, ArcGIS.Desktop.Core.IMetadataInfo, IMetadataSource, System.ComponentModel.INotifyPropertyChanged
{
// find the first TIN layer
tinLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<TinLayer>().FirstOrDefault();
// find the first Terrain layer
terrainLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<TerrainLayer>().FirstOrDefault();
// find the first LAS dataset layer
lasDatasetLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<LasDatasetLayer>().FirstOrDefault();
// find the first surface layer
surfaceLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<SurfaceLayer>().FirstOrDefault();
}
{
string tinPath = @"d:\Data\Tin\TinDataset";
var tinURI = new Uri(tinPath);
var tinCP = new TinLayerCreationParams(tinURI);
tinCP.Name = "My TIN Layer";
tinCP.IsVisible = false;
// Note: Needs QueuedTask to run
{
//Create the layer to the TIN
tinLayer = LayerFactory.Instance.CreateLayer<TinLayer>(tinCP, map);
}
}
{
var tinCP_ds = new TinLayerCreationParams(tinDataset);
tinCP_ds.Name = "My TIN Layer";
tinCP_ds.IsVisible = false;
//Create the layer to the TIN
// Note: Needs QueuedTask to run
{
var tinLayer_ds = LayerFactory.Instance.CreateLayer<TinLayer>(tinCP_ds, map);
}
}
{
var tinCP_renderers = new TinLayerCreationParams(tinDataset)
{
Name = "My TIN layer",
IsVisible = true
};
// define the node renderer - use defaults
var node_rd = new TinNodeRendererDefinition();
// define the face/surface renderer
var face_rd = new TinFaceClassBreaksRendererDefinition();
face_rd.ClassificationMethod = ClassificationMethod.NaturalBreaks;
// accept default color ramp, breakCount
// set up the renderer dictionary
var rendererDict = new Dictionary<SurfaceRendererTarget, TinRendererDefinition>
{
{ SurfaceRendererTarget.Points, node_rd },
{ SurfaceRendererTarget.Surface, face_rd }
};
// assign the dictionary to the creation params
tinCP_renderers.RendererDefinitions = rendererDict;
// Note: Needs QueuedTask to run
{
// create the layer
var tinLayer_rd = LayerFactory.Instance.CreateLayer<TinLayer>(tinCP_renderers, MapView.Active.Map);
}
}
{
// applies to TIN layers only
var nodeRendererDef = new TinNodeRendererDefinition();
nodeRendererDef.Description = "Nodes";
nodeRendererDef.Label = "Nodes";
nodeRendererDef.SymbolTemplate = nodeSymbol.MakeSymbolReference();
// Note: Needs QueuedTask to run
{
if (tinLayer.CanCreateRenderer(nodeRendererDef))
{
CIMTinRenderer renderer = tinLayer.CreateRenderer(nodeRendererDef);
if (tinLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Points))
tinLayer.SetRenderer(renderer, SurfaceRendererTarget.Points);
}
}
}
System.Object
ArcGIS.Desktop.Framework.Contracts.PropertyChangedBase
ArcGIS.Desktop.Mapping.MapMember
ArcGIS.Desktop.Mapping.Layer
ArcGIS.Desktop.Mapping.SurfaceLayer
ArcGIS.Desktop.Mapping.TinLayer
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)