Creating textured buildings from models

Overview

It is common to receive a model of a 3D building in a third-party format, such 3ds Max, COLLADA, OpenFlight, or SketchUp. It is possible to use these models and integrate them with your existing city data to enhance visualization. There are several ways you can import these models into the geodatabase for use in ArcGIS. Which method you use depends on the type of model you have and what information is included with it. If the format provided includes information about the geographic location of the model, it can be easily imported using the Import 3D Files geoprocessing tool. If no geographic information is provided along with the model, you will have to place it in the correct geographic location using ArcGIS.

This guidebook demonstrates how to import various types of building models into a geodatabase and display them in ArcGlobe. The Esri 3D Virtual City template will be used as our sample dataset, which covers a small area of the city of Philadelphia around Logan Square.

Importing models with geographic location information

The Import 3D Files geoprocessing tool allows you to convert third-party 3D model formats into multipatch features in the geodatabase. The primary purpose of this tool is to help you import large sets of models. Models with geographic information are automatically placed in the correct location according to the spatial reference you specify. Models that do not include geographic information are placed at the origin coordinates of the feature class to be repositioned using the 2D or 3D editing environment. You can add many models to the import list, and they need not be from the same folder.

The Import 3D Files geoprocessing tool

For each model that you add to the tool, a separate feature will be created in the output multipatch feature class. Note that if you have a model representing a large collection of buildings, such as a city, town, or neighborhood, it is better to break it into separate models, one for each building.

TipTip:
  • Complex models (with large numbers of vertices or high-resolution textures greater than 4,000 by 4,000 pixels) may not import correctly, so splitting them up will help alleviate the problem.
Importing OpenFlight models to the geodatabase as textured multipatches

In addition, having one feature per building allows you to set building-specific attributes.

Unique building attributes

Combining your existing city information with textured buildings

Once you have imported your buildings into a multipatch feature class, you will likely want to display them with existing building information such as extruded footprints. The key is to prevent the existing building information from being drawn in the same location where the imported buildings now exist. To remove a subset of overlapping features, do the following:

Steps:
  1. Use Select By Location to select the footprints that are overlapped by your textured buildings.
  2. Add a new field to the footprints feature class and calculate to show which buildings overlap. This is your subset.
  3. Finally, use a definition query to display only those nonoverlapping footprints.
Selecting, attributing, and excluding overlapping buildings

The result is a view of your city, with new textured buildings filling in the gap in your extruded buildings created by the definition query. This looks visually correct, but you may prefer to combine your extruded footprints and your textured building permanently for data management reason. For example, if you are storing building-specific information (such as market value, address, land-use type, or owner information) on which analysis will be conducted or queries run, having all your data in a single feature class is critical. You can use the Layer 3D To Feature Class geoprocessing tool to convert your extruded buildings to multipatches in a new feature class.

Converting extruded polygons to multipatches using Layer 3D to Feature Class

Note that if you have multiple polygons with different height values that represent a single building, you may want to merge them together into a single output multipatch feature using the Layer 3D To Feature Class geoprocessing tool. All the polygon features associated with one building must have a unique identifier (a common attribute field) to use in the Grouping Field option. You can then use the Union 3D geoprocessing tool, with the same Grouping Field, to clean up the multipatch geometry of each building by removing the redundant components from the building's interior. This is illustrated in the image below.

Example of using Union 3D to remove extraneous interior geometry
Dive-inDive-in:
  • You can also assign unique identifiers to buildings composed of multiple polygons in ArcGIS. To do so, you will first need to use the Dissolve geoprocessing tool. The result combines the building footprints by dissolving their boundaries and aggregating them together. It is added as a new multipart polygon feature class to the 3D view. Next, you will need to separate the multipart polygon into a single polygon for each building using the Multipart To Singlepart geoprocessing tool. The result is a single polygon for each building. Finally, you will use Spatial Join to attach the object identifiers from each of these polygons to features in your original feature class and use the identifier as your grouping field.

Once you have converted the extruded polygons to multipatches, you can combine them with your existing textured multipatch buildings. To do so, create a new multipatch feature class. Make sure that the extent of the new feature class is large enough to accept both datasets and that it has the correct spatial reference. You can then add both multipatch feature classes into the new feature class.

If you are unsure about the specifics when it comes to defining feature class properties, see Defining feature class properties for more information.

Replacing an existing feature with a model

Now that you have imported your building models into ArcGIS, you will want to keep them up-to-date and continue to improve them. You can replace existing buildings, or add new buildings, with more complex geometry and higher-resolution textures using a 3D edit session. Replacing existing buildings is fairly easy and straightforward. You will use the Replace With Model tool, which is applicable only to multipatch features.

Steps:
  1. Add your building feature class to ArcGlobe and start a 3D edit session.
  2. Use the Edit Placement Edit Placement tool and select the building that you want to replace.
  3. Click 3D Editor and click Replace With Model.
  4. Browse to the model you want to use from the dialog box that appears.
  5. Once the model has been imported as a multipatch, you may have to use other editing tools, such as scale and rotate, to adjust the feature.
The before and after for replacing an untextured multipatch with a textured model

If you receive a new model for which no feature already exists, you can interactively add that model as a new multipatch feature in your feature class. This process still requires a 3D edit session. In the Create Features window, select the template for your buildings' multipatch feature class. Choose the Insert Insert Tool construction tool in the bottom view of the Create Features window. Next, click the location in the 3D view where you want to place the building. Use the Open dialog box to browse to and select the model you want to import. You can still move, rotate, and scale the model once you have placed it.

Place a model in ArcGlobe as a textured multipatch

This guidebook has shown how to import georeferenced and nongeoreferenced 3D textured models into the geodatabase as multipatch features and how to create nontextured multipatch features from your extruded buildings. Furthermore, you learned how to integrate your nontextured and textured multipatch buildings into a single dataset.

3/5/2014