ArcGIS Urban

Prepare your Parcels for ArcGIS Urban with ArcGIS Pro

ArcGIS Urban lets planners create digital zoning maps and sketch 3D models to build a virtual representation of their community. These models are not only helpful for communicating complex planning scenarios, but they can also help make data-informed decisions. And, thanks to its integration with ArcGIS Urban, planners and their GIS teams can use ArcGIS Pro to grow their urban model to new heights with deeper analysis on the suitability of projects and plans.  

Parcel data is foundational to creating urban models with ArcGIS Urban, just as it is to any zoning or land use plan. In this guide, you’ll learn how to use ArcGIS Pro  to enrich your parcel layers by assigning a type to each edge of your parcel. You’ll also learn how to quickly translate your setback parameters for your zoning data, which makes a big impact in your ArcGIS Urban application. 

If you would like to learn how to load data into ArcGIS Urban, visit the blog: Load Data into ArcGIS Urban via the Web 


This blog is suggested for frequent users of ArcGIS Pro who are comfortable with Toolboxes, Geoprocessing Tools and Field Calculator. 

Processing parcels is useful because it assigns a type to each edge of your parcel, like front street, side interior or rear street. This means parameters you have based on the edges of parcels will be recognized in ArcGIS Urban.  

To prepare your parcels for ArcGIS Urban, you’ll need the following: 

Download ArcGIS Urban Connector 

The ArcGIS Urban Connector is a Python toolbox that can be used to access and maintain an ArcGIS urban model in ArcGIS Pro. We’ll be utilizing a few tools to process our parcels and get them ready to load into ArcGIS Urban. Follow these steps to begin:

  1. Visit the Urban Connector page in ArcGIS Online and download the toolbox.
  2. Unzip the downloaded folder on your local computer.
  3. In ArcGIS Pro, in the Catalog pane, right click on toolboxes and select Add Toolbox. Browse to the ArcGIS Urban Connector folder, select the toolbox. ArcGISUrbanConnector.pyt and click OK to add it as a Connection.  
  4. Expand the toolbox to view the python tools.  

Parcel edge configuration

Before edge types can be assigned to parcels, streets need to be ranked. The tool Make Street Order Table creates a table that summarizes your streets based on a field you select, so you can rank them. This table will be necessary for the next tool.  

Make Street Order Table 

Expand the ArcGISUrbanConnector.pyt (python toolbox) and double click on the tool Make Street Order Table.

    1. Streets: Choose your Street Centerline feature layer.
    2. Street Type Field: Choose the Field to summarize your streets on (typically a street classification type)*.
    3. Output Geodatabase: Choose a geodatabase to save the Street Order Table.
    4. Street Order Table Name: The name of the output table.
    5. Click Run. When finished, the table will be added to your project.


* RoadClass
Code Name
Freeway Freeway
Highway Highway
Major Arterial Major Arterial
Minor Arterial Minor Arterial
Collector Collector
Local Local
Service Service
Ramp Ramp
Recreation Recreation
Resource Resource
Ferry Ferry
Other Other
Unknown Unknown


Rank Street Types

Next, we’ll rank the street types using our new Street Order Table. Ranking street types determines which edge of your parcel will be assigned as front facing. This step preps the Street Order Table for parcel edge assignment.

  1. In the Contents pane, right click on the Street Order table created in the previous step and select Open.
  2. Each row represents a different type of street in your streets layer. To rank the street types, double click in the Street Order Field for each row and enter a number between 1 and 10. If you have more street types, you can repeat street order numbers, or you can use a larger range. Any numbers between 1 and 999 will work in the tool.
  3. Save your edits, go to Edit > Save.

Set Edge Info on Parcels

Now that the Street Order Table is ready, you can run the tool Set Edge Info On Parcels. This tool will create a copy of your parcel data, delete duplicates, repair complex geometry, and assign edge types to your parcels by adding and filling out additional fields.

This tool will assign an edge type (front, side, rear) to each edge of your parcels based on your Street Order Table. The quality of how your Street Centerline data is organized and the ranking you completed will determine the result.

This tool will create the following:

To process parcel edges:

  1. Double click on the tool Set Edge Info On Parcels to open it.
  2. Parcels: your parcels layer (the tool will duplicate this layer).
  3. Streets: your street centerline layer.
  4. Order Table: Street Order table created in the previous steps.
  5. Output Geodatabase: where the output edges layer will be saved.
  6. Output Edges Name: name of the output edges layer.
  7. For other options, hover over the information icon next to parameters like “Max Edge Count” and “Front Street Orientation” and adjust accordingly.
  8. Click Run.

The resulting parcel layer and edges layer will be added to your map.

(Optional) QA/QC Edge Types

If you want to perform QA/QC, or if you need to change the result of the edges, you can do the optional following steps.

The Parcel Edges layer created in the Set Edge Info On Parcels tool is very useful to visualize the edge results and to change the type where necessary. Since ArcGIS Urban reads the JSON field for the parcel edges, we created a tool to make editing the JSON easier.

To modify any edges that were incorrectly assigned:

  1. Click on the Parcel Edges layer in your Contents to select it (note, this is your Parcel Edges line layer, NOT your parcel polygon layer)
  2. Right click on the layer to open the attribute table, or click on Attributes in the Map tab in the Selection group.
  3. In the map, use the select tool to select the edge you’d like to change.
  4. In the attributes pane, in the EdgeType field, click on the Choose Symbol Class icon.
  5. Select the appropriate edge type.
  6. Repeat as necessary to the remaining edges you’d like to edit.
  7. Save Edits (Edit > Save).

Now that your edge types have been edited, you need to run the tool Update Edge Info On Parcels to change the associated JSON for the parcels.

  1. Double click on the Update Edge Info On Parcels tool in the ArcGIS Urban Connector toolbox.
  2. Parcels: your parcels feature class (polygon layer).
  3. Parcel Edges: your parcel edges feature class that you just edited (line layer).
  4. Click Run.

Configure Zoning Type Table – Setbacks

Zoning Types is essential data to use ArcGIS Urban effectively and using the excel template provided in ArcGIS Urban makes batch loading your Zoning Types easy. Click here for more information on accessing and using a template

There’s one step that can really impact your data, and that is to include setbacks. If you’re adding a small number of zoning types manually, it is easy to include setback information within the Zoning Types interface in ArcGIS Urban. However, if you want to batch load your zoning types, you can generate JSON that describes the tiers and setbacks using Field Calculator in ArcGIS Pro.

Prepare your Table

Since this workflow covers using Field Calculator in ArcGIS Pro, the first step is to import your excel table. You can use the tool Excel To Table.

Once your table is in ArcGIS Pro, add the fields that will contain the setback amount for each setback type. They can be text or a numerical field, but your values need to be a single number (meters or feet values are accepted). Depending on your data, you may need street and interior setbacks for each edge. A street setback is applied when the parcel edge faces a street, and an interior setback is applied when a parcel edge is adjacent to another parcel. The edge types you can incorporate are Front, Side and Rear.

Second, add another field to designate where the field calculator will generate your JSON describing the tiers and setbacks. Name it Tiers.

Fill in your fields with the corresponding values, keeping it to a single numerical value with no text. It’s important to note that if a setback has a NULL value, it needs to be zero (0) in your table. This will result in a correct JSON language that Urban can read at the end.

Use Field Calculator to Generate Tier & Setback Information:

In ArcGIS Pro, load your Zoning Types Table that has the fields above (with your setback amounts filled in).

  1. Open the table.
  2. Right click on the Tiers field and choose Calculate Field.
  3. Check that your Input Table and Field Name reflects the table and field you wish to edit.
  4. Change the expression type to Arcade.

Next, use one of the following text samples as a template, and paste it into the value box (the white space under =) If your field names are different than the ones in the sample, be sure to change them to your field name and maintain the + signs at each end.

'[{\"startHeight\":0,\"setbacks\":{\"front\":{\"street\":{\"value\":'+$feature.FrontStreetSetback+'},\"interior\":{\"value\":'+$feature.FrontInteriorSetback+'}},\"side\":{\"street\":{\"value\":'+$feature.SideStreetSetback+'},\"interior\":{\"value\":'+$feature.SideInteriorSetback+'}},\"rear\":{\"street\":{\"value\":'+$feature.RearStreetSetback+' },\"interior\":{\"value\":'+$feature.RearInteriorSetback+' }}}}]'
'[{\"startHeight\":0,\"setbacks\":{\"front\":{\"street\":{\"value\":'+$feature.FrontStreetSetback+'},\"interior\":{\"value\":'+0+'}},\"side\":{\"street\":{\"value\":'+$feature.SideStreetSetback+'},\"interior\":{\"value\":'+0+'}},\"rear\":{\"street\":{\"value\":'+$feature.RearStreetSetback+' },\"interior\":{\"value\":'+0+' }}}}]'
'[{\"startHeight\":0,\"setbacks\":{\"front\":{\"street\":{\"value\":'+$feature.FrontStreetSetback+'},\"interior\":{\"value\":'+$feature.FrontStreetSetback+'}},\"side\":{\"street\":{\"value\":'+$feature.SideStreetSetback+'},\"interior\":{\"value\":'+$feature.SideStreetSetback+'}},\"rear\":{\"street\":{\"value\":'+$feature.RearStreetSetback+' },\"interior\":{\"value\":'+$feature.RearStreetSetback+' }}}}]'
'[{\"startHeight\":0,\"setbacks\":{\"front\":{\"street\":{\"value\":'+$feature.FrontStreetSetback+'},\"interior\":{\"value\":'+$feature.FrontInteriorSetback+'}},\"side\":{\"street\":{\"value\":'+$feature.SideStreetSetback+'},\"interior\":{\"value\":'+$feature.SideInteriorSetback+'}},\"rear\":{\"street\":{\"value\":'+$feature.RearStreetSetback+' },\"interior\":{\"value\":'+$feature.RearInteriorSetback+' }}}},{\"startHeight\":'+$feature.Tier2StartHeight+',\"setbacks\":{\"front\":{\"street\":{\"value\":'+$feature.FrontStreetSetback+'},\"interior\":{\"value\":'+$feature.FrontInteriorSetback+'}},\"side\":{\"street\":{\"value\":'+$feature.SideStreetSetback+'},\"interior\":{\"value\":'+$feature.SideInteriorSetback+'}},\"rear\":{\"street\":{\"value\":'+$feature.RearStreetSetback+' },\"interior\":{\"value\":'+$feature.RearInteriorSetback+' }}}}]'

Once the expression is ready, scroll down and click the green check mark to validate the expression. If there are no errors, click OK.

If there are errors, here are a few things to check:

  1. Check the expression type is Arcade
  2. Check your field names to make sure they reflect your data and are contained within the + on either end
  3. Make sure the quotes are straight quotes
  4. Use an online JSON Formatter & Validator to find errors in the JSON after you’ve calculated the values.

Once they’re calculated, be sure to check the end language in the Tiers field and make sure your values were written accurately. If your field type is a double or long, it may look different. It should look something like this:

[{"startHeight":0,"setbacks":{"front":{"street":{"value":30},"interior":{"value":0}},"side":{"street":{"value":8},"interior":{"value":0}},"rear":{"street":{"value":30 },"interior":{"value":0 }}}}]


Your field Tiers should now be filled with the JSON describing the setback parameters.

Load Zoning Types

Once your Zoning Types table is finished, it’s ready to be shared and loaded into ArcGIS Urban.

Once it’s a shared feature table, complete the following steps in ArcGIS Urban:

  1. Open the data manager.
  2. Click System of records and click Zoning types.
  3. Click the Add button at the upper right.
  4. Select From feature table.
  5. The portal item picker appears.
  6. Click the Zoning Types feature table you just shared, click Next.
  7. The Field matching dialog box appears.
  8. Choose your units in source as either Metric or US Standard
  9. Complete the field matching accordingly, focusing on matching your Tiers field to the Tiers & setbacks matching field.
  10. Click Next
  11. The data will load and validate, once finished click OK
  12. Open a Zoning Type by clicking the ellipses to the right > Parameters Tab > click the Tier 1 under Tiers & Setbacks. Check your values were loaded correctly.

In this guide, you learned how to enrich your base data to use in ArGIS Urban. You started by processing your parcels to assign a type to each parcel edge, enabling your ArcGIS Urban users to have custom data for each parcel right away. Then you batch prepped our zoning types data to incorporate your tiers and setbacks parameters. Taking the steps to prep your data and customize it in this way will make planning work in your ArcGIS Urban model more powerful.

This is the advanced approach to data prep for ArcGIS Urban. If you’d like to learn about the base preparation to deploy an urban model, see Load Data into ArcGIS Urban via the Web.

About the authors

Michelle Flemming

Michelle is a Consultant supporting urban planning engagements within Esri’s Professional Services. She serves as a technical and strategic lead for customers, recommending relevant solutions and guiding them to successfully implement products and workflows to fulfill their objectives and business goals.

As a product marketer for ArcGIS Urban, Katie enjoys sharing product announcements and best practices with the Esri community.

Article Discussion:

Inline Feedbacks
View all comments

Next Article

Multi-Scale Contour Styling in ArcGIS Pro

Read this article