Public Sub SetDefinition( _ ByVal baseLayer As CIMBaseLayer _ )
public void SetDefinition( CIMBaseLayer baseLayer )
Parameters
- baseLayer
- ArcGIS.Core.CIM.CIMBaseLayer
Public Sub SetDefinition( _ ByVal baseLayer As CIMBaseLayer _ )
public void SetDefinition( CIMBaseLayer baseLayer )
| Exception | Description |
|---|---|
| ArcGIS.Core.CalledOnWrongThreadException | This method or property must be called within the lambda passed to QueuedTask.Run. |
{
// Note: the following should be embedded in a QueuedTask.Run() statement
{
//Get the layer's definition, using the community sample Data\Admin\AdminSample.aprx
if (featureLayer.GetDefinition() is not CIMFeatureLayer lyrDefn)
{
// not a feature layer, leave
return;
}
//Get the label classes - we need the first one
var listLabelClasses = lyrDefn.LabelClasses.ToList();
var theLabelClass = listLabelClasses.FirstOrDefault();
//set the label class Expression to use the Arcade expression
theLabelClass.Expression = "return $feature.STATE_NAME + TextFormatting.NewLine + $feature.POP2000;";
//Set the label definition back to the layer.
featureLayer.SetDefinition(lyrDefn);
}
}
{
//The layer in the 2D group to move to the 3D Group in a Local Scene
//Get the layer's definition
//Note: needs to be called on the MCT
var lyrDefn = featureLayer.GetDefinition() as CIMBasicFeatureLayer;
//setting this property moves the layer to 3D group in a scene
lyrDefn.IsFlattened = false;
//Set the definition back to the layer
featureLayer.SetDefinition(lyrDefn);
}
await QueuedTask.Run(() => { //hide all tools except line tool on a given feature layer var editTemplates = featureLayer.GetTemplates(); var newCIMEditingTemplates = new List<CIMEditingTemplate>(); foreach (var et in editTemplates) { //initialize template by activating default tool et.ActivateDefaultToolAsync(); var cimEditTemplate = et.GetDefinition(); //get the visible tools on this template var allTools = et.ToolIDs.ToList(); //add the hidden tools on this template allTools.AddRange(cimEditTemplate.GetExcludedToolIDs().ToList()); //hide all the tools then allow the line tool allTools.AddRange(cimEditTemplate.GetExcludedToolIDs().ToList()); cimEditTemplate.SetExcludedToolIDs(allTools.ToArray()); cimEditTemplate.AllowToolID("esri_editing_SketchLineTool"); newCIMEditingTemplates.Add(cimEditTemplate); } //update the layer templates var layerDef = featureLayer.GetDefinition() as CIMFeatureLayer; // Set AutoGenerateFeatureTemplates to false for template changes to stick layerDef.AutoGenerateFeatureTemplates = false; layerDef.FeatureTemplates = newCIMEditingTemplates.ToArray(); featureLayer.SetDefinition(layerDef); });
{
// Note: call within QueuedTask.Run()
{
var def = pointCloudSceneLayer.GetDefinition() as CIMPointCloudLayer;
//Get the ColorModulation off the renderer
var modulation = def.Renderer.ColorModulation;
if (modulation == null)
modulation = new CIMColorModulationInfo();
//Set the minimum and maximum intensity as needed
modulation.MinValue = 0;
modulation.MaxValue = 100.0;
//apply back
def.Renderer.ColorModulation = modulation;
//Commit changes back to the CIM
pointCloudSceneLayer.SetDefinition(def);
}
}
{
// Note: call within QueuedTask.Run()
{
var def = pointCloudSceneLayer.GetDefinition() as CIMPointCloudLayer;
//Set the point shape and sizing on the renderer
def.Renderer.PointShape = PointCloudShapeType.DiskShaded;
var pointSize = new CIMPointCloudFixedSizeAlgorithm()
{
UseRealWorldSymbolSizes = false,
Size = 8
};
def.Renderer.PointSizeAlgorithm = pointSize;
//Commit changes back to the CIM
pointCloudSceneLayer.SetDefinition(def);
}
}
{
// Note: call within QueuedTask.Run()
{
var def = pointCloudSceneLayer.GetDefinition() as CIMPointCloudLayer;
//Set the point shape and sizing on the renderer
def.Renderer.PointShape = PointCloudShapeType.DiskFlat;//default
var scaleSize = new CIMPointCloudSplatAlgorithm()
{
MinSize = 8,
ScaleFactor = 1.0 //100%
};
def.Renderer.PointSizeAlgorithm = scaleSize;
//Commit changes back to the CIM
pointCloudSceneLayer.SetDefinition(def);
}
}
{
// Note: call within QueuedTask.Run()
{
var def = pointCloudSceneLayer.GetDefinition() as CIMPointCloudLayer;
//PointsBudget - corresponds to Display Limit on the UI
// - the absolute maximum # of points to display
def.PointsBudget = 1000000;
//PointsPerInch - corresponds to Density Min --- Max on the UI
// - the max number of points per display inch to renderer
def.PointsPerInch = 15;
//Commit changes back to the CIM
pointCloudSceneLayer.SetDefinition(def);
}
}
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)