A 3D object scene layer is used to visualize 3D objects. 3D object scene layers are often created from GIS data with attributes and explicitly modeled in 3D. These attributes allow definition queries to specify symbology and other properties in lieu of setting properties for each object individually. A 3D object scene layer can efficiently create and share just a few buildings or an entire city.
Realistic 3D Object Scene Layer with textures
Thematic 3D Object Scene Layer without textures
The 3D object scene layer is structured into a tree of multiple JSON files. A 3D object scene layer can be used to create a scene layer package (*.slpk) or a I3S service. A 3D object scene layer contains the following:
- Layer description
- geometryBuffer (binary)
- attributeBuffer (binary)
- textures (binary)
- Node Index Document
- Statistics
- Shared Resources
- features^
Example of 3DObject layer structure
.<host>/SceneServer/layers
+--0 // scene layer document
+-- nodes
| +--0
| | +-- attributes
| | | +--f_2
| | | +--f_4
| | | +--(...)
| | +-- geometries
| | | +-- 0
| | +-- textures
| | | +-- 0
| | | +-- 0_0_1
| | | +--(...)
| | +-- 3dNodeIndexDocument
| | +-- shared
| | | +-- sharedResource
| | +-- features^
| | | +-- 0
| | (...)
+--statistics
| +-- f_2
| | | +--0
| +-- f_4
| | | +--0
| +-- (...)
^ Not used by client. Human readable version of the features.
The following API methods are available for 3D Object scene layer:
Scene layer document
Type | JSON |
URL Template | http://serviceURL/layers/{layerID} |
Example | http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0 |
Description | This is the root document for the service containing properties common to the entire layer. layerID Integer. ID of the associated layer. Esri products expect this to be `0`. |
3D node index document
Type | JSON |
URL Template | http://serviceURL/layers/{layerID}/nodes/{resourceID} |
Example | http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/nodes/98 |
Description | Description of the node. ID of the associated layer. Esri clients expect this to be `0`. resourceID Integer. ID of the associated resource. |
Textures
Type | JPG, PNG, DDS, KTX |
URL Template | http://serviceURL/layers/{layerID}/nodes/{resourceID}/textures/{texture ID} |
Example | http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/nodes/98/textures/1 |
Description | The texture resource (image). layerID Integer. ID of the associated layer. Esri products expect this to be `0`. resourceID Integer. ID of the associated node. textureID String. This ID returns one of the textures available for this node. The same texture may be available in different formats. |
Geometry
Type | bin, draco |
URL Template | http://serviceURL/layers/{layerID}/nodes/{resourceID}/geometries/{geometry ID} |
Example | http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/nodes/98/geometries/1 |
Description | The geometry resource (mesh information). layerID Integer. ID of the associated layer. Esri products expect this to be `0`. resourceID Integer. ID of the associated node.geometryID Integer. This ID returns one of the geometries available for this node. The same geometry may be available in a different format. |
Attributes
Type | bin |
URL Template | http://serviceURL/layers/{layerID}/nodes/{resourceID}/attributes/f_{attributeID}/0 |
Example | http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/nodes/2/attributes/f_48/0 |
Description | The value for a specific attribute within a node. layerID Integer. ID of the associated layer. Esri products expect this to be `0`. attributeID Integer. ID of the specific attribute for the layer. |
Statistics
Type | JSON |
URL Template | http://serviceURL/layers/{layerID}/statistics/f_{attributeID}/0 |
Example | http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/statistics/f_48/0 |
Description | The statistics for the entire layer for a specific attribute. layerID Integer. ID of the associated layer. Esri products expect this to be `0`.
attributeID Integer. ID of the specific attribute for the layer. |
Shared resources
Type | JSON |
URL Template | http://serviceURL/layers/{layerID}/nodes/{resourceID}/shared |
Example | http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/nodes/98/shared |
Description | Texture and material description.layerID Integer. ID of the associated layer. ArcGIS clients expect this to be `0`. resourceID Integer. ID of the associated node. |