Show / Hide Table of Contents

Class ModelSymbolLayer

A symbol layer uses a volumetric 3D shape (such as a sphere, cube, or cylinder) to define the appearance of a symbol.

Inheritance
object
SymbolLayer
ModelSymbolLayer
Implements
INotifyPropertyChanged
ILoadable
SymbolLayer.IsColorLocked
SymbolLayer.IsEnabled
SymbolLayer.PropertyChanged
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.ReferenceEquals(object, object)
object.ToString()
Namespace: Esri.ArcGISRuntime.Symbology
Assembly: Esri.ArcGISRuntime.dll
Syntax
public sealed class ModelSymbolLayer : SymbolLayer, INotifyPropertyChanged, ILoadable
Remarks

A ModelSymbolLayer is typically used with a MultilayerPointSymbol to visualize point geometries at a specific location relative to the geometry in a scene view.

The ModelSymbolLayer can be created from a built-in primitive shape or from a URI pointing to a 3D graphical model stored on the web or locally on the device. Supported formats for 3D models include COLLADA (.dae), 3ds Max (.3ds), Filmbox (.fbx), Wavefront (.obj), GL Transmission Format (.glTF), or Binary GL Transmission Format (.glb).

You can customize the appearance of the model symbol layer, such as its color and size. The size of a symbol can be controlled through the properties Height, Width, and Depth. By default, these values are specified in device-independent pixels (DIPs). To define the size in meters instead, set SceneSizeUnit to Meters. This changes the interpretation of the size properties from screen-based units to real-world units, giving the symbol a fixed measurable size in world space. As a result, the symbol appears smaller when viewed from a distance and larger up close, consistent with a real-world perspective.

When a model symbol layer is added to a MultilayerPointSymbol, the Height property serves as the primary sizing axis. Adjusting Size modifies the height of the model symbol layer, while the width and depth are proportionally adjusted based on the original 3D model's bounding box ratio (or 1:1:1 for basic shapes). Setting Size to 0 prevents the symbol from rendering and sets all dimensions (height, width, depth) of the model symbol layer to 0. When Size is set to a positive value, the behavior is determined by the original dimension ratio:

  • If the height of the original bounding box is 0, the Height, Width, and Depth remain unchanged, and rendering is not affected.
  • If the height of the original bounding box is non-zero, Height updates, while Width and Depth scale proportionally.
  • If the width or depth of the original bounding box is 0, those dimensions remain unchanged.

The Height property defines the size of the symbol layer for Size. If the height is set to 0 or a negative value, Size will report 0. If any of the dimensions — Height, Width, or Depth — are explicitly set to 0 or a negative value, the corresponding dimension of the model symbol layer will collapse, resulting in the symbol being flattened along that axis.

Additionally, you can modify the relative position of the model symbol layer by tweaking the Anchor. The orientation of the model symbol layer can be changed using the Heading, Pitch, and Roll properties.

Constructors

Name Description
ModelSymbolLayer(ModelShape)

Initializes a new instance of the ModelSymbolLayer class from a well-known 3D primitive shape.

ModelSymbolLayer(Uri)

Initializes a new instance of the ModelSymbolLayer class from a URI that references a 3D model.

Properties

Name Description
Anchor

Gets or sets the anchor of the model symbol layer.

Color

Gets or sets the color of the 3D model.

Depth

Gets or sets the depth of the model symbol layer.

Heading

Gets or sets the rotation angle around Z-axis in degrees.

Height

Gets or sets the height of the model symbol layer.

LoadError

Gets the Exception associated with the last load error.

LoadStatus

Gets the load status.

Pitch

Gets or sets the rotation angle around X-axis in degrees.

Roll

Gets or sets the rotation angle around Y-axis in degrees.

Uri

Gets the URI of the 3D model to be loaded in a model symbol layer.

Width

Gets or sets the width of the model symbol layer.

Methods

Name Description
CancelLoad()

Cancel loading metadata for the object.

LoadAsync()

Load the metadata for the object asynchronously.

RetryLoadAsync()

Loads or retries loading metadata for the object asynchronously.

Events

Name Description
LoadStatusChanged

Event that is raised when the LoadStatus property changes.

Loaded

Event that is raised when the object is done loading.

Applies to

TargetVersions
.NET300
.NET Windows300
.NET Android300
.NET iOS300
In this article
Provide feedback
Back to top Copyright © 2025 Esri.