import FillSymbol3DLayer from "@arcgis/core/symbols/FillSymbol3DLayer.js";const FillSymbol3DLayer = await $arcgis.import("@arcgis/core/symbols/FillSymbol3DLayer.js");- Inheritance:
- FillSymbol3DLayer→
Symbol3DLayer→ Accessor
- 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.

See Symbol3DLayer and Symbol3D to read more general information about 3D symbols, symbol layers and how they relate to one another.
Example
const symbol = { type: "polygon-3d", // autocasts as new PolygonSymbol3D() symbolLayers: [{ type: "fill", // autocasts as new FillSymbol3DLayer() material: { color: "red" } }]};Constructors
Constructor
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| properties | | |
Properties
| Property | Type | Class |
|---|---|---|
| | ||
declaredClass readonly inherited | ||
| | ||
| | ||
| | ||
| | ||
type readonly | "fill" | |
castShadows
- 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 castingsymbolLayer.castShadows = false; edges
- Since
- ArcGIS Maps SDK for JavaScript 4.7
Sets the contour edges on 3D Objects. This is only applicable for MeshSymbol3D.

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
- 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.
Examples
// CSS color stringsymbolLayer.material = { color: "dodgerblue", colorMixMode: "tint"};// HEX stringsymbolLayer.material = { color: "#33cc33"};// array of RGBA valuessymbolLayer.material = { color: [51, 204, 51, 0.3]};// object with rgba propertiessymbolLayer.material = { color: { r: 51, g: 51, b: 204, a: 0.7 }};// object with emissive properties enabledsymbolLayer.material: { color: "#00E9FF", emissive: { strength: 1, source: "color" },};// object with emissive properties from a object's texturesymbolLayer.material: { emissive: { strength: 1, source: "emissive" },}; outline
- 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
- 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" } }]};Methods
fromJSON
- Signature
-
fromJSON (json: any): any
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
| Parameter | Type | Description | Required |
|---|---|---|---|
| json | 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
- 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 layerlet symLyr = graphic.symbol.symbolLayers.at(0).clone(); toJSON
- Signature
-
toJSON (): any
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.