arcuser

Getting Acquainted with 3D Object Layers

In web GIS, the demand for managing a wide variety of 3D data is rapidly growing. The support for 3D models is especially important due to their widespread use across various industries. Thus far, scene layers have been the means to address this demand. However, this 3D object workflow requires all necessary data to be managed locally (as a multipatch feature class) and published as a web layer for visualization. While this method works well for static 3D content that doesn’t need frequent updates, it lacks flexibility; any data changes require the layer to be republished.

With the 3D object layer, however, not only can you host your 3D models in ArcGIS Online and ArcGIS Enterprise, but you can also add, update, or delete these 3D features directly on the web using Scene Viewer or custom web apps built with ArcGIS Maps SDK for JavaScript. As a result, ArcGIS can function as a system of record for geolocated 3D objects such as buildings, building parts, street furniture, bridges, or underground structures.

It’s easy to see how 3D object layers can be applied across industries. For instance, architects, engineers, and urban planners can georeference and evaluate their designs directly within a 3D context, leveraging 3D basemaps. Government agencies can further streamline and digitize the electronic submission process for building and planning documentation. They can also provide public access to downloadable 3D assets, enabling faster and more efficient workflows for their users. Archaeologists can create and update 3D models of excavation sites, preserving detailed records of their findings. Alternatively, historical sites can be reconstructed virtually, enhancing understanding of civilizations and enriching educational practices. Models of existing buildings or their exported parts can be seamlessly integrated within the context provided by other 3D layers.

You can also upload models in various formats. Upon upload, your models are securely stored in the 3D object layer without loss and are accurately geolocated. Once you store a 3D model, you can easily update its position, orientation, scale, and other custom attributes without altering the source files.

The capabilities of the 3D object layer are realized by integrating a 3D object scene layer with a 3D object feature layer. The scene layer enables efficient display, while the associated feature layer serves as a database, enabling ad hoc editing and querying. There may be a temporary performance impact during the editing process, as edited features are drawn from the feature layer rather than the optimized scene layer cache. The extent of this impact on your workflow will depend on the number and complexity of the edits. However, once editing is complete—or at regular intervals—you can rebuild your 3D object layer through a process known as caching, restoring it to its full efficiency.

3D model of a city in which multiple buildings are also displayed with interior components, such as rooms and hallways, in the context of the larger web scene.
Models of existing buildings or their exported parts can be seamlessly integrated within the context provided by other 3D layers.

Publishing a 3D Object Layer

To create and publish a 3D object layer, you can use either ArcGIS Online or ArcGIS Pro (3.2 or newer). ArcGIS Online provides a more streamlined workflow for publishing an empty layer. However, if you are using a projected coordinate system (PCS), it is better to set up your project and publish the layer using ArcGIS Pro.

Choosing the appropriate spatial reference for a GIS project is crucial. To ensure compatibility of the 3D object layer with your project, publish it using the same spatial reference.

To visualize your data on the globe, use a global scene and make sure your 3D object layer is published using the World Geodetic System (WGS) 1984 coordinate system. To work in a PCS suitable for your geographic area, use a local scene. Ensure that your data (including basemaps and layers) and your 3D object layer are published in that PCS. This ensures maximum accuracy in georeferencing your 3D content.

While Web Mercator is a commonly used PCS for visualizing web GIS content, it introduces significant distortions and scale variations. It is not recommended for a local scene (projected) or as a spatial reference for publishing 3D object layers.

Sharing 3D Object Layers

When sharing a 3D object layer with other people, consider two key questions:

To define your sharing setup, you have two tools at your disposal: the layer’s sharing settings and the option to enable or disable editing. Different sharing scenarios require different combinations of these two settings.

Each layer has three default sharing options: Owner, Organization, and Everyone (public). When you publish a layer, you are its owner. Administrators in your organization have owner-type permissions on all items. In ArcGIS Online, clicking the item’s sharing button opens a dialog box where you can set the default sharing level and group sharing. Publishing a 3D object layer creates two items—a 3D object scene layer and a 3D object feature layer. The sharing options for these layers must match.

In the ArcGIS ecosystem, groups provide a flexible way to broaden users’ access to resources inside and outside your organization. By using group sharing, you can extend access beyond the default levels of Owner, Organization, and Everyone. For instance, if your default sharing level is Owner and you share a layer with a group of four members (excluding the owner), all five members will have access to the layer.

In ArcGIS Online, within the Share dialog box, you can point to Set group sharing; click Edit group sharing; select the groups you wish to grant access to; then click Apply.

Understanding, Enabling, and Disabling Layer Editing

Editing on the 3D object layer must be enabled once to activate its capabilities. After this initial activation, you can disable editing, restricting edits to the owners.

In ArcGIS Pro, you enable editing by checking the Enable editing option. You can verify this in Portal for ArcGIS after publishing. Open the item page for the associated feature layer, click the Settings tab, then scroll down to the Feature Layer (hosted) section. Ensure that these options are checked: Enable editing; Keep track of changes to the data (add, update, delete features); Add; Delete; Update; and Attributes and geometry. If you forgot to enable editing in ArcGIS Pro, check all of the above options and click Save to confirm the changes.

To disable editing after it has been enabled, simply uncheck Enable editing on the same page and click Save. Note that creating an empty 3D object layer in ArcGIS Online automatically activates editing capabilities.

Sharing Scenarios

Combining sharing settings and enabling/disabling editing enables many layer-sharing scenarios. To implement the following scenarios, it is assumed that you have initially enabled layer editing.

Aerial view of a 3D model of a city intersected by multiple rivers.
A web scene featuring the city center of Zurich, Switzerland.

Editing 3D Models in Scene Viewer

Scene Viewer allows a simple, out-of-the-box setup for editing 3D models, making it a great place to start with 3D object layer editing.

To enhance your editing experience, click Settings at the top of the editor. This will reveal tool tips and snapping options. If you wish to place or update your models using numerical coordinates, toggle on Enable tooltips. To be able to place your models precisely on corners, edges, or surfaces of other features, toggle on Enable snapping. Additionally, make sure to activate the following options: Geometry guides and Feature to feature. In the Snapping layers collapsible panel underneath, select the layers to which your features will snap.

If snapping is activated and the relevant snapping layers are enabled, your model will automatically align with the corners, edges, or surfaces of nearby features during placement. You will notice orange lines indicating the alignment.

To utilize tool tips while placing your model, press Tab. A modal will appear next to the cursor with five editable fields—X, Y, Z, Orientation, and Scale—along with three lock widgets for the axes. You can now manually input the values in these fields. To leave this mode, press the Esc key.

If you decide to change a model’s position, rotation, or scale at a later stage or remove it entirely, you can easily do this using the Editor widget. Performing any of these operations (add, update, delete) in any supported client does not require republishing the 3D object layer.

Currently, you can upload and store your 3D models in the following formats:

If the intrinsic unit of the 3D model is not specified when loaded into a global scene, it will be interpreted as a meter
(1 unit = 1 meter). Conversely, if the model is loaded into a local scene, the assumed unit corresponds to the unit of the projected coordinate system. Per specification, glTF models (.glb and .glTF) will always be interpreted as modeled in meters.

Uploaded models, including textures, can be up to 100 Mb in size for reasonable display and editing performance.

Screenshot of a web scene in which a 3D model has just been placed. The model is of a high-rise building and is surrounded by other, less detailed models. A pane on the left reads “Upload successful.”
Uploading a 3D model in Scene Viewer.

Caching 3D Object Layers

Editing the 3D object layer temporarily affects display and loading performance. This impact varies depending on the complexity of the models and the number of edits. The more edits you make without rebuilding the scene layer cache, the more the scene performance will be impacted, as all new or updated models will display in full detail. Uploading more objects to the 3D object layer in one session will increase the time required to optimize them for performance in the subsequent phase.

Once editing is complete, a process known as caching is used to rebuild the 3D object layer with all the changes made during the editing phase. This restores the optimal loading and display performance, even with numerous newly added 3D features. Keep in mind that caching is a computationally intensive server-side operation. Its usage incurs costs measured in credits. The more data needs to be cached, the more credits the operation will require.

Best Practices

It is difficult to provide a one-size-fits-all strategy for effectively balancing editing and caching. This challenge arises from the wide range of possible scenarios involving model sizes and complexity, the number of models, and the number of editors and edits they make. Therefore, the most effective approach is to learn through experience by adhering to the following best practices:

In scenarios where you are working with a limited number of 3D models and have powerful client-side hardware, optimization may not be necessary, even for overly complex models. In case a need for optimization arises, consider the following steps:

About the author

Nikola Marincic

Nikola Marincic is a product engineer on the ArcGIS Maps SDK for JavaScript team, specializing in enhancing the 3D capabilities of web GIS. As a former architecture professor, he is committed to developing well-designed and structured products. In his spare time, Marincic enjoys composing music and running.