Resolve Building Conflicts (Cartography)

License Level:BasicStandardAdvanced

Summary

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

Learn more about how Resolve Building Conflicts works

CautionCaution:

This tool does not produce output layers but instead alters the source feature classes of the input layers. If the input layers are drawn with a representation (whose editing behavior is set to store shape overrides), the modified features are stored as shape overrides in the representation. If the layer is 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 to rerun the tool with different parameters, simply remove the overrides using the Remove Override tool. It is strongly suggested that you make a copy of your input features if you are not using representations whose editing behavior is set to store shape overrides.

Learn more about representations

CautionCaution:

A warning is raised 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 strongly suggested that you run this tool on data in a projected coordinate system to ensure valid results. An error is raised and the tool will not process if the coordinate system is missing or unknown.

Illustration

Resolve Building Conflicts tool
Buildings before and after processing with the Resolve Building Conflicts tool

Usage

Syntax

ResolveBuildingConflicts_cartography (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 in order to resolve symbol conflicts. Buildings with a value of 1 should be removed from display; those with a value of zero should remain. 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. Orient value is Boolean, specifying whether buildings should be oriented to the barrier layer.

Gap specifies the distance that buildings should 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 barrier line or outline symbology.
  • A null (unspecified) gap value will mean that buildings will not be moved toward or away from barrier lines or outlines except for movement required by conflict resolution.

NoteNote:

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 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 happen nonproportionally resulting in a change to building morphology.

Linear unit
hierarchy_field
(Optional)

The field that contains hierarchical ranking of feature importance, where 1 is very important and larger integers reflect decreasing importance. A value of 0 (zero) forced 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

Code Sample

ResolveBuildingConflicts tool example 1 (Python window)

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

import arcpy
from arcpy import env
env.workspace = "C:/data"
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 tool example 2 (stand-alone Python script)

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

# 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

Related Topics

Licensing Information

ArcGIS for Desktop Basic: No
ArcGIS for Desktop Standard: No
ArcGIS for Desktop Advanced: Yes
3/3/2014