Use 3D Buildings

The 3D Buildings solution delivers a set of capabilities that help you use existing data, develop a standard set of 3D layers, and visualize your community in an immersive way.

In this topic, you will learn how to use the solution by assuming the role of a user and performing the following workflows.

Note:

It is recommended to use the sample data to complete the tasks for the first time. This enhances workflow understanding before applying to your organization’s data.

Get started

First, you will download and unzip the 3DBuildings ArcGIS Pro project.

  1. Sign in to your ArcGIS organization and browse to the 3DBuildings item.
  2. From the item page, click Download.
  3. Unzip the downloaded folder, and then from the unzipped folder, open the ArcGIS Pro project.
  4. In the Catalog pane, expand the Tasks folder.
    Note:

    If you do not see the Catalog pane, from the View tab, in the Windows group, click Catalog Pane.

  5. Expand the Tasks folder and then double-click the 3D buildings task group.
  6. In the Tasks pane, expand the Getting to know 3D Buildings Solution task group to see the collection of tasks.
    Tip:
    Click a group heading or task name to view its description at the bottom of the Tasks pane.
  7. Double-click and review the Understanding the 3D Buildings Solution task.
  8. Double-click and review the Download sample data (optional) task.
  9. Click Download Sample Data to access Charleston, SC sample data or click Skip to go back to the main Tasks menu.

Using sample data the first time going through the 3D Buildings solution will help you learn how to use the tasks and organize your data.

Create and Publish Foundation Layers

Detailed elevation surface layers can be generated from the input lidar data, and are used to create a building footprints layer, 3D water features, and to enhance the existing elevation in a 3D web scene. These elevation surface layers are required for creating your 3D buildings in later steps.

To get started, click the Create and Publish Foundation Layers task group and follow the steps provided.

Create and Classify LAS Dataset

This task involves converting compressed (.zlas/.laz) lidar files, if necessary, and creates a LAS Dataset that can be used to extract elevation surfaces in future tasks.

While many LAS collections are delivered as classified lidar, this step also includes tools to help classify ground and building points. Ground and building class codes are required for several tools in 3DBuildings and will produce higher quality results.

The first two steps of this task depend on the current format of your lidar data:

  • If the data is in .laz/.zlas format, use the Convert LAS (optional) step to uncompress to .las. This step also creates a LAS Dataset with the output .las files, allowing you to skip Create LAS Dataset (optional).
  • If the data is already in .las format, skip Convert LAS (optional) and use Create LAS Dataset (optional).

Extract building footprints

Note:
This workflow is optional and does not need to be completed to work with the solution.

This task is only required if you do not have an accurate building footprints feature class. Run the Extract building footprints task to classify buildings in the LAS Dataset, create a footprints raster layer, and extract the classified features to a vector feature class.

Some building footprints may contain several roof types and roof parts. To accurately represent these buildings, you must split them into separate parts. Building footprints can be split with another feature class or by differences in elevation. The Create footprints from raster step in this task allows footprints to Split Features, but this can be done in the next step if you don’t have a feature class to split by.

Extract elevation surfaces from LAS dataset

This task uses the LAS Dataset created in the previous task to extract 4 elevation surface layers: a ground elevation (DTM), a surface elevation (DSM), a normalized surface elevation (nDSM), and a DSM optimized for the Extract LOD2 Buildings tool. If existing building footprints layers are not available, these surfaces can be used to generate them and will be used in later steps to create 3D buildings.

Publish ground elevation surface layer

Note:
This workflow is optional and does not need to be completed to work with the solution.

This task publishes the ground elevation layer to your organization. Reprojection to Web Mercator with height in meters is only required when using the published layers in a global web scene.

Create and Publish 3D Buildings

This task includes several steps to prepare, create, and modify 3D buildings. The steps in this task assist with segmenting building footprints to generate more accurate roof forms and uses procedural symbology to properly render buildings in 3D.

Depending on your lidar resolution, use either Create and Publish 3D Buildings or Create and Publish High-Detail 3D Buildings. If using lidar with a point spacing <1 foot (0.3 m), skip this task and use Create and Publish High-Detail 3D Buildings instead.

Preprocess building footprints

Note:
This workflow is optional and does not need to be completed to work with the solution.

Note:

If you used another feature class to Split Features in the previous step, you can skip this step.

Run the Preprocess Building Footprints task to prepare building footprints for a realistic 3D visualization. If you have existing building footprints, or did not use the Split Features option in Extract Building Footprints, use this task to separate footprint features into their different roof parts. Building Footprints can be split with another feature class or by differences in elevation.

Tip:

Only one method needs to be completed for this task. If you don't have features to split features, use the Segment building footprints using elevation step.

Result of building extraction before preprocessing of building footprints

This image shows the result of building extraction before preprocessing of building footprints.

Result of building extraction after preprocessing of building footprints

This image shows the result of building extraction after preprocessing of building footprints.

Create buildings

Run the Create buildings task to create a 3D building layer. This task uses the elevation surfaces and building footprints to find both flat and sloped planar areas within a roof area. It estimates a standard architectural form for the roof based on the attributes collected from these planar surfaces. These attributes are then used to inform a procedural rule that generates these features in 3D.

Roof types that will be automatically classified
This image shows the roof types that will be automatically classified.

Review buildings

Run the Review buildings task to inspect the building roof forms. The Confidence Measurement tool reports the attribute added to the building footprints.

Note:

The RMSE field shows the root mean square error of the generated building multipatch to the underlying surface model. The higher this number, the more likely that the building creation encountered an error in classification. In general, a value of 1 meter (3 feet) or less is desirable, though this depends on the required application of the output features and the resolution of the input data.

Modify buildings manually

Use the Modify buildings manually task to further improve the quality of the building roof forms. The building roof form is driven by the attributes that are generated by the Create buildings task and by the underlying the building footprint. To refine the building roof form, use Modify Roof Attributes or Modify Building Footprint Vertices tools.

Tip:

The attributes that control the roof form are building height, eave height, the type of roof, and roof direction: BLDGHEIGHT, EAVEHEIGHT, ROOFFORM, and RoofDirAdjust, respectively. By editing these attributes, you can adjust the building models to better match the lidar data for more realistic results.

Attributes that control the roof form

Building footprint attributes that control the roof form.

Building height

If the ridge of the building is not at the correct height, identify the elevation of a LAS point on the true ridge of the building, using the Explore tool to select the LAS points and review in the pop-up. You must subtract the BASEELEV value from the LAS elevation to get the correct BLDGHEIGHT value.

Manual update of the BLDGHEIGHT attribute
Results of manually updating the BLDGHEIGHT attribute are shown.

Eave height

Similar to building height, reference the lidar to obtain the correct eave height. You must subtract the BASEELEV value from the lidar elevation to get the correct the EAVEHEIGHT value.

Manual update of the EAVEHEIGHT attribute
Results of manually updating the EAVEHEIGHT attribute are shown.

Roof form

If the roof type does not match the lidar data, change the roof type by choosing the correct roof form from the drop-down list.

Manual update of the ROOFFORM attribute
Results of manually updating the ROOFFORM attribute are shown.

Roof direction

Adjust the direction of the roof by modifying the RoofDirAdjust field. The default value is 0. A value of 1 will rotate the roof counterclockwise 90 degrees, or a value of 2 will rotate it 180 degrees.

Manual update of the RoofDirAdjust attribute
Results of manually updating the RoofDirAdjust attribute are shown.

Split roof segments

Some building footprints may contain several roof types and roof parts. To accurately represent these buildings, you can split the footprints into separate features manually and update the attributes for each feature accordingly.

To edit the roof segments, complete the following steps:

  1. Select a feature to segment.
  2. Use the Modify Roof Segmentation tool in the Modify Roof Forms Tools task or in the Modify Features pane to segment the selected feature.
  3. Edit the attributes as needed with the new sections of the building footprint.
Manual splitting of buildings
Results of manually splitting buildings are shown.

Modify building footprint vertices

Building footprints may have been created incorrectly and may not represent the building adequately, resulting in lower-quality roof forms.

To edit the building footprints, complete the following steps:

  1. Select a feature to modify.
  2. Use the Modify building footprint vertices tool in the Modify roof forms tools step or on the Edit tab to modify the selected feature.
  3. Edit the attributes as needed with the modified building footprint.
Manual updating of building vertices
Results of manually updating building vertices are shown.

Create cross gable roof forms

You can also use vertex editing to make cross gable roof forms. To do so, complete the following steps:

  1. Select a feature to modify.
  2. Use the Modify roof segmentation tool in the Modify roof forms tools step or on the Edit tab to segment the building footprint according to the roof forms present within the footprint.
  3. Use the Modify building footprint vertices tool in the Modify roof forms tools step or in the Modify Features pane to extend one gable roof into the other one.
  4. Edit the attributes as needed with the modified building footprint.
Manual updating of cross gable roof forms
Results of manually updating cross gable roof forms are shown.

Fuse buildings

If you have segmented some building footprints into separate features, you can use the Fuse buildings task to fuse the building features that represent building parts back together in the resulting 3D building features.

Note:

Review and modification of buildings is done on the building footprint layer with procedural symbology. Fusing saves the modification to multipatch format for texture adding and publishing.

Add textures to buildings

Note:
This workflow is optional and does not need to be completed to work with the solution.

Use this task to add realistic textures to the previously extracted buildings. This workflow is optional and does not need to be completed to work with the solution.

Note:

Textures depict generic usage of buildings and are applied based on footprint size. Using high-resolution textures will result in large output, potentially leading to decreased visualization performance.

Publish buildings layer

Note:
This workflow is optional and does not need to be completed to work with the solution.

This task publishes the building layer to your organization. Reprojection to Web Mercator with height in meters is only required when using the published layers in a global web scene.

Create and Publish High-Detail 3D Buildings

Extract LOD2 buildings

The Extract LOD2 Buildings task uses elevation and building footprints to determine slope and directional orientation of the rooftop and other elements to extract 3D Buildings. This tool allows you to choose what level of detail (LOD) is used to represent the input data and captures variations in roof forms without the need to split or segment the roof forms.

The resolution of the input data has a direct impact on both the processing times and output quality of the resulting 3D multipatch.

Publish high-detail 3D buildings

Note:
This workflow is optional and does not need to be completed to work with the solution.

This task publishes the building layer to your organization. Reprojection to Web Mercator with height in meters is only required when using the published layers in a global web scene.

Update 3D Buildings

Use this task if new lidar is available. It compares an existing 3D multipatch building layer with a new lidar dataset to verify whether there are any updates required due to new construction or demolition. If changes have been detected, these changes can be merged into the original 3D building layer.

To update existing buildings, you must have the following data:

  • Multipatch buildings
  • Lidar with ground and buildings classified

The Update Buildings process accomplishes the following purposes:

  • Detects changes between input 3D multipatch buildings and new lidar. The output is building update polygons where changes have been detected depending on the input parameters.
  • Creates LOD2 update buildings using the building update polygons and the lidar.
  • Merges the LOD2 update buildings with the existing 3D buildings.

Create and Publish Floors

Note:
This workflow is optional and does not need to be completed to work with the solution.

Building floors can be created using the Create and Publish floors task. The input is multipatch buildings, which can come from the Create and Publish 3D Buildings task, the Create and Publish High-Detail 3D Buildings task, or from other sources such as ArcGIS CityEngine or third-party providers. The output is building floor plates and floor volumes.

Building attributes such as number of floors, ground floor height, upper floor height, and roof height can be used to create the floors. Alternatively, floors can be created using a Building Space Use table, in which the building will be split into tiers or groups of floors, each with their own number floors, floor height, space use, and color.

Note:

Splitting buildings into floors can take a long time to run, especially when the initial split fails, and a more time-intensive splitting algorithm is used at runtime. Ensure you only split the buildings that are required. Also, factors such as building size and complexity will affect the processing time.

In the Task pane, click the Create and Publish Floors task and follow the steps provided.

Create building floors

This tool splits existing 3D buildings into floors based on building attributes. You can use the buildings created in this solution, or existing buildings from other sources.

One option to create building floors is to use the Building Space Use table to split the building into tiers or groups of individual floors with defined space use. The Building Space Use table has several attributes that describe the different tiers within the building. Each tier has an attribute defining space use, number of floors, floor color, and floor height. The BuildingTypeName attribute is the identifier that links the Building Space Use table to the building features. An example Building Space Use table can be found in the tables folder of the 3D buildings ArcGIS Pro project.

Create floor volumes

If you require floor volumes, use the Create Floor Volumes task to create floor volumes out of the 3D floor plates. The Extrude By Attribute geoprocessing tool requires a building feature class with space usage information that includes floor height.

Publish Floors

This task publishes the floors layers to your organization. Reprojection to Web Mercator with height in meters is only required when using the published layers in a global web scene.

Integrate and Publish 3D Photo Mesh

Note:
This workflow is optional and does not need to be completed to work with the solution.

An integrated mesh is a textured continuous meshed surface capturing a current state of an area or city. They are often derived from drone, aerial, or satellite imagery by photogrammetric processing.

In the Tasks pane, expand the Integrate and Publish 3D Photo Mesh task group task and follow the steps provided.

Add integrated mesh

This step adds an integrated mesh to a scene. A mesh (.slpk) is typically created from photogrammetric sources, such as imagery captured by drones and processed with ArcGIS Drone2Map or Site Scan for ArcGIS. There are also several Esri partners that specialize in producing city-scale integrated mesh for purchase.

Modify integrated mesh

Use this step to make a modification to an integrated mesh layer. You can create a modification or import from an existing polygon feature layer. Mesh modifications show other 3D layers such as buildings, trees or bridges together with the integrated mesh.

Publish integrated mesh layer

This step publishes the integrated mesh layer to your organization. Reprojection to Web Mercator with height in meters is only required when using the published layer in a global web scene.

Run Share as new web scene to publish the entire scene as web scene to your organization. Remove all the layers that you don't want to publish from the scene before publishing.

Run Share as scene layer to add an integrated mesh to an existing web scene.

Modify integrated mesh in web scene

This tool modifies an integrated mesh in a published web scene without having to republish the entire mesh as a new web scene.

Create and Publish 3D Water Features

Note:
This workflow is optional and does not need to be completed to work with the solution.

This task allows you to create and publish 3D water features as multipatch features and polygon features. Water features can represent flat water bodies such as lakes and coastal waters as well as rivers with a certain gradient. This task works well with flat water features and river features at city scale. Larger features with a lot of gradient result in many polygons, which may lead to performance degradation.

Create water features

This step creates water features as 2D polygons. You can skip this step if you already have a polygon feature class that defines the water features.

Modify water features

The water features must have a depth attribute that describes the average depth for each water feature. These values are used to modify the ground elevation for the area of the water features so that the water surface features display properly.

In this step, you can calculate the depth values for all water features. To use specific depth values for each water feature, open the feature attribute table and set the values manually.

Create 3D water features

This step allows you to create 3D water features from the 2D water features and a ground elevation (DTM) surface as input.

This tool outputs a multipatch layer and a polygon layer representing the 3D water level. Use the multipatch layer to visualize large areas of flooding as this format is suited for fast rendering of many features. Use the polygon layer to leverage water animation in ArcGIS Pro and the Scene Viewer.

Symbolize water features

Use this step to symbolize the water features with a water renderer.

Publish water features

This task publishes the water layers to your organization. Reprojection to Web Mercator with height in meters is only required when using the published layers in a global web scene.

Publish modified ground elevation surface layer

This task publishes a modified ground elevation surface to your organization. Reprojection to Web Mercator with height in meters is only required when using the published layers in a global web scene.

Publish 3D Buildings Web Scene

Note:
This workflow is optional and does not need to be completed to work with the solution.

This task explains how to combine the 3D layers published in previous tasks to create a web scene in your organization.