ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Help
  • Sign Out
ArcGIS Desktop

ArcGIS Online

The mapping platform for your organization

ArcGIS Desktop

A complete professional GIS

ArcGIS Enterprise

GIS in your enterprise

ArcGIS Developers

Tools to build location-aware apps

ArcGIS Solutions

Free template maps and apps for your industry

ArcGIS Marketplace

Get apps and data for your organization

  • Documentation
  • Support
Esri
  • Sign In
user
  • My Profile
  • Sign Out

ArcMap

  • Home
  • Get Started
  • Map
  • Analyze
  • Manage Data
  • Tools
  • Extensions

Resolve Building Conflicts

  • Summary
  • Illustration
  • Usage
  • Syntax
  • Code sample
  • Environments
  • Licensing information

Summary

Resolves symbol conflicts among buildings with respect to linear barrier features by moving, resizing, or hiding buildings.

Illustration

Resolve Building Conflicts tool example
Conflicts are resolved by moving, resizing, or hiding buildings.

Usage

  • This tool assesses graphic conflicts of symbolized features. The symbology extent and the reference scale are used in conjunction with one another. Run this tool only after you have finalized the appearance of the symbols, and ensure that the reference scale corresponds to the final intended output scale.

    To learn more about this tool, see How Resolve Building Conflicts works.

  • Caution:

    This tool does not produce output layers; it alters the source feature classes of the input layers. If the input layers are drawn with a representation (with editing behavior set to store shape overrides), the modified features are stored as shape overrides in the representation. If the layers are not drawn with a representation, the geometry of the input features is modified. Using representations is recommended when working with the conflict resolution tools. That way, if the results are not acceptable or if you need to rerun the tool with different parameters, remove the overrides using the Remove Override tool. It is recommended that you make a copy of the input features if you are not using representations with editing behavior set to store shape overrides.

    Learn more about representations

  • The Invisibility Field parameter value must be present and named the same for all input feature classes. Features that should remain visible are assigned a value of 0; those that should be removed from the display are assigned a value of 1. Use a layer definition query or a selection to display the resulting simplified collection (that is, invisibility <> 1). You can use multiple invisibility fields to store different results—corresponding to different output scales—in the same feature class.

  • Before conflicts are assessed, polygonal buildings are enlarged to a minimum size specified by the Minimum Allowable Building Size parameter. Minimum size is measured as a linear distance along the shortest side of a rotated bounding box best fit to the feature. To review the final size of buildings in the output results, add a double or float field to any of the input building feature classes called RBC_SIZE. As the tool processes, this field will update with the shortest side of a rotated bounding box around each feature.

  • The Hierarchy Field parameter is optional. If it is not specified, buildings will be assigned a relative importance based on the perimeter of the building and proximity to barriers. Larger buildings closer to more than one barrier will be assessed as more significant than smaller buildings relatively far from a barrier. You can use a partially populated Hierarchy field in which only the significant buildings are attributed with a hierarchical value and all other features (with a NULL hierarchy value) will have their relative significance internally calculated.

  • If the Hierarchy Field parameter is used, you can make buildings remain visible by assigning them a hierarchy value of 0 (zero). They will not be masked by the tool. A building with a hierarchy of zero is considered locally important, so nearby buildings may be compromised more than they would if that building was not visible. Hierarchy zero buildings can still be transformed (moved, rotated, or resized) to resolve conflicts and match other required parameters.

  • Caution:

    A warning is issued if the input features are not in a projected coordinate system. This tool relies on linear distance units, which will create unexpected results in an unprojected coordinate system. It is recommended that you run this tool on data in a projected coordinate system to ensure valid results. An error occurs and the tool will not process if the coordinate system is missing or unknown.

  • Any buildings that are geometrically in conflict with barriers (that is, the actual geometry—not just the symbology—of the building overlaps that of a barrier feature such as a road) will not be moved off the barrier feature. These buildings may be flagged for masking in the course of conflict resolution processing, but they won't be moved. A conflict will remain.

  • If the symbology of the barrier features is not symmetrically distributed across the geometry—that is, the symbol is thicker on one side of the line than the other—a larger building-to-barrier gap may appear on the side of the barrier with the thinner symbology.

  • Processing large datasets or a number of barrier layers together may exceed memory limitations. In this case, consider processing input building data by partition by identifying a relevant polygon feature class in the Partition Features environment setting. Portions of the building data, defined by partition boundaries, will be processed sequentially. The resulting layers will be seamless and consistent at partition edges. See How Resolve Building Conflicts works for more information about running this tool with partitioning.

Syntax

arcpy.cartography.ResolveBuildingConflicts(in_buildings, invisibility_field, in_barriers, building_gap, minimum_size, {hierarchy_field})
ParameterExplanationData Type
in_buildings
[in_buildings,...]

The input layers containing building features that may be in conflict or smaller than allowable size. Buildings can be either points or polygons. Buildings will be modified to resolve conflicts with other buildings and with barrier features.

Layer
invisibility_field

The field that stores the invisibility values that can be used to remove some buildings from display to resolve symbol conflicts. Buildings with a value of 1 will be removed from display; those with a value of zero will not be removed. Use a definition query on the layer to display visible buildings only. No features are deleted.

String
in_barriers
[[Layer, Boolean, Linear Unit],...]

The layers containing the linear or polygon features that are conflict barriers for input building features. Buildings will be modified to resolve conflicts between buildings and barriers. The orient value is Boolean, specifying whether buildings will be oriented to the barrier layer.

Gap specifies the distance that buildings will move toward or away from the barrier layer. A unit must be entered with the value.

  • A gap value of 0 (zero) will snap buildings directly to the edge of the barrier line or outline symbology.
  • A null (unspecified) gap value means that buildings will not be moved toward or away from barrier lines or outlines except movement required by conflict resolution.

Note:

If no unit is entered with the gap value (that is, 10 instead of 10 meters), the linear unit from the input feature's coordinate system will be used.

Value Table
building_gap

The minimum allowable distance between symbolized buildings at scale. Buildings that are closer together will be displaced or hidden to enforce this distance. The minimum allowable distance is set relative to the reference scale (that is, 15 meters at 1:50,000 scale). The value is 0 if the reference scale is not set.

Linear Unit
minimum_size

The minimum allowable size of the shortest side of a rotated best-fit bounding box around the symbolized building feature drawn at the reference scale. Buildings with a bounding box side smaller than this value will be enlarged to meet it. Resizing may occur nonproportionally, resulting in a change to the building morphology.

Linear Unit
hierarchy_field
(Optional)

The field that contains hierarchical ranking of feature importance in which 1 is very important and larger integers reflect decreasing importance. A value of 0 (zero) causes the building to retain visibility, although it may be moved somewhat to resolve conflicts. If this parameter is not used, feature importance will be assessed by the tool based on perimeter length and proximity to barrier features.

String

Derived Output

NameExplanationData Type
out_layers

The updated input features.

Layer

Code sample

ResolveBuildingConflicts example 1 (Python window)

The following Python window script demonstrates how to use the ResolveBuildingConflicts function in immediate mode.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.env.referenceScale = "50000"

arcpy.ResolveBuildingConflicts(["C:/data/footprints.lyr", "C:/data/bldg_points.lyr"],                                
                               "invisible",
                               [["C:/data/roads.lyr", "true", "5 Meters"],
                                ["C:/data/trails.lyr", "false", "10 Meters"],
                                ["C:/data/streams.lyr", "false", "5 Meters"]],
                               "10 meters", 
                               "15 meters", 
                               "bldg_hierarchy")
ResolveBuildingConflicts example 2 (stand-alone script)

This stand-alone script shows an example of using the ResolveBuildingConflicts function.

# Name: ResolveBuildingConflicts_standalone_script.py
# Description: Resolves the symbology conflicts between
#              buildings and nearby barriers,
#              in this case - roads
 
# Import system modules
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"
env.referenceScale = "50000"

# Set local variables
in_buildings = "C:/data/footprints.lyr;C:/data/bldg_pts.lyr"
invisibility_field = "invisible"
in_barriers = "'C:/data/roads.lyr' 'true' '5 Meters';\
              'C:/data/trails.lyr' 'false' '10 Meters';\
              'C:/data/streams.lyr' 'false' '5 Meters'"
building_gap = "10 meters"
minimum_size = "15 meters"
hierarchy_field = "bldg_hierarchy"

# Execute Resolve Building Conflicts
arcpy.ResolveBuildingConflicts(in_buildings,
                               invisibility_field,
                               in_barriers,
                               building_gap,
                               minimum_size,
                               hierarchy_field)

Environments

  • Cartographic Coordinate System
  • Reference Scale
  • Cartographic Partitions

Licensing information

  • Basic: No
  • Standard: No
  • Advanced: Yes

Related topics

  • An overview of the Graphic Conflicts toolset
  • Understanding conflict resolution and generalization
  • Automating conflict resolution and generalization workflows with geoprocessing
  • How Resolve Building Conflicts works
  • Simplify Building
  • Aggregate Polygons
  • Generalizing large datasets using partitions
  • Create Cartographic Partitions
  • Cartographic Partitions (Environment setting)
  • Delineate Built-Up Areas

ArcGIS Desktop

  • Home
  • Documentation
  • Support

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

About Esri

  • About Us
  • Careers
  • Esri Blog
  • User Conference
  • Developer Summit
Esri
Tell us what you think.
Copyright © 2021 Esri. | Privacy | Legal