Skip to content
import FillSymbol3DLayer from "@arcgis/core/symbols/FillSymbol3DLayer.js";
Inheritance:
FillSymbol3DLayerSymbol3DLayerAccessor
Since
ArcGIS Maps SDK for JavaScript 4.0

FillSymbol3DLayer is used to render the surfaces of flat 2D Polygon geometries and 3D volumetric meshes in a SceneView. MapView does not support 3D symbols.

The color of the fill is set in the material property. Because of the nature of polygon and mesh geometries, size is not an option in this symbol layer. Colors can be data-driven by adding a color visual variable to any Renderer that uses this symbol layer.

A FillSymbol3DLayer must be added to the symbolLayers property of a PolygonSymbol3D or MeshSymbol3D. Multiple symbol layers may be used in a single symbol. The outline property does not have an effect when used with a MeshSymbol3D. The image below depicts a polygon FeatureLayer whose features are symbolized with a PolygonSymbol3D containing a FillSymbol3DLayer.

symbols-3d-fill

See Symbol3DLayer and Symbol3D to read more general information about 3D symbols, symbol layers and how they relate to one another.

See also
Example
const symbol = {
type: "polygon-3d", // autocasts as new PolygonSymbol3D()
symbolLayers: [{
type: "fill", // autocasts as new FillSymbol3DLayer()
material: { color: "red" }
}]
};

Constructors

Constructor

Constructor
Parameters
ParameterTypeDescriptionRequired
properties
See the properties table for a list of all the properties that may be passed into the constructor.

Properties

Any properties can be set, retrieved or listened to. See the Watch for changes topic.

castShadows

Property
Type
boolean
Since
ArcGIS Maps SDK for JavaScript 4.11

Indicates whether the symbol layer geometry casts shadows in the scene. Setting this property to false will disable shadows for the symbol layer even if direct shadows are enabled in SceneView.environment.

This property applies only to MeshSymbol3D symbols.

Default value
true
Example
// disables shadow casting
symbolLayer.castShadows = false;

declaredClass

readonlyinherited Property
Type
string
Inherited from: Accessor
Since
ArcGIS Maps SDK for JavaScript 4.7

The name of the class. The declared class name is formatted as esri.folder.className.

edges

autocast Property
Type
Edges3D | null | undefined
Since
ArcGIS Maps SDK for JavaScript 4.7

Sets the contour edges on 3D Objects. This is only applicable for MeshSymbol3D.

symbol3D-edges-solid

Example
const symbol = {
type: "mesh-3d", // autocasts as new MeshSymbol3D()
symbolLayers: [{
type: "fill", // autocasts as new FillSymbol3DLayer()
material: {
color: [244, 247, 134]
},
edges: {
type: "solid", // autocasts as new SolidEdges3D()
color: [50, 50, 50, 0.5]
}
}]
};

material

autocast Property
Type
Symbol3DFillMaterial | null | undefined

The material used to shade the extrusion. This property defines the extrusion's color and emissive properties. The final color of the graphic is defined by blending the color property set in the material with the feature's geometry color/texture information. colorMixMode defines how these colors are mixed together.

See also
Examples
// CSS color string
symbolLayer.material = {
color: "dodgerblue",
colorMixMode: "tint"
};
// HEX string
symbolLayer.material = {
color: "#33cc33"
};
// array of RGBA values
symbolLayer.material = {
color: [51, 204, 51, 0.3]
};
// object with rgba properties
symbolLayer.material = {
color: {
r: 51,
g: 51,
b: 204,
a: 0.7
}
};
// object with emissive properties enabled
symbolLayer.material: {
color: "#00E9FF",
emissive: { strength: 1, source: "color" },
};
// object with emissive properties from a object's texture
symbolLayer.material: {
emissive: { strength: 1, source: "emissive" },
};

outline

autocast Property
Type
Symbol3DOutline | null | undefined

The outline used to draw a line around the filled geometry. This property is not supported in MeshSymbol3D symbol layers.

Example
symbolLayer.outline = {
color: "white",
size: "2px",
pattern: { // autocasts as new LineStylePattern3D()
type: "style",
style: "dash"
},
patternCap: "round"
};

pattern

autocast Property
Type
StylePattern3D | null | undefined
Since
ArcGIS Maps SDK for JavaScript 4.17

The pattern used to render the polygon fill. This property only applies to PolygonSymbol3D.

Example
const symbol = {
type: "polygon-3d", // autocasts as new PolygonSymbol3D()
symbolLayers: [{
type: "fill", // autocasts as new FillSymbol3DLayer()
material: { color: "red" },
outline: { color: "red" },
pattern: {
type: "style",
style: "cross"
}
}]
};

type

readonly Property
Type
"fill"

The symbol type.

Methods

MethodSignatureClass
fromJSON
inherited static
fromJSON(json: any): any
clone(): FillSymbol3DLayer
toJSON
inherited
toJSON(): any

fromJSON

inheritedstatic Method
Signature
fromJSON (json: any): any
Inherited from: JSONSupportMixin

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input json parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.

Parameters
ParameterTypeDescriptionRequired
json
any

A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.

Returns
any

Returns a new instance of this class.

clone

Method
Signature
clone (): FillSymbol3DLayer

Creates a deep clone of the symbol layer.

Returns
FillSymbol3DLayer

A deep clone of the object that invoked this method.

Example
// Creates a deep clone of the graphic's first symbol layer
let symLyr = graphic.symbol.symbolLayers.at(0).clone();

toJSON

inherited Method
Signature
toJSON (): any
Inherited from: JSONSupportMixin

Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.

Returns
any

The ArcGIS portal JSON representation of an instance of this class.