Simplify Building (Cartography)
Summary
Simplifies the boundary or footprint of building polygons while maintaining their essential shape and size.
Illustration
Usage
The Minimum area parameter applies to simplified buildings only. Any buildings that are smaller than the minimum area after the simplification process is completed will be removed from the output feature class.
-
The output feature class will include a field named BLD_STATUS to indicate simplification status as follows:
- 1 = a single building has been simplified
- 2 = a single building has been simplified to its minimum bounding rectangle
- 3 = a building smaller than the tolerance squared has been simplified to its minimum bounding rectangle
- 5 = a building that has not been simplified
Legacy:Prior to ArcGIS version 10, BLD_STATUS = 4 indicated simplified or partially simplified buildings connected with straight lines. BLD_STATUS = 4 is no longer used.
Caution:If a field named BLD_STATUS exists in the input feature class it will be present in the output feature class populated with new values. Existing values will be overwritten. If you want to preserve the existing values, create a new field on the input feature class and copy the existing values of the BLD_STATUS field to this new field.
-
If the Check for spatial conflicts parameter is used, the tool will detect spatial conflicts and add a new field named SimBldFlag to the output to store conflict flags. A value of 0 means no conflict; a value of 1 means conflict.
Caution:If a field named SimBldFlag exists in the input feature class it will be present in the output feature class populated with new values. Existing values will be overwritten even if this parameter is unchecked (NO_CHECK in Python). When spatial conflicts are not being checked, this existing field will be overwritten with NULL values. If you want to preserve the existing values, create a new field on the input feature class, and copy the existing values of the SimBldFlag field to this new field.
-
This tool cannot be executed within an edit session.
-
Input Z values can be preserved if specified in the Environment Settings. Where output vertices are coincident to input feature vertices, Z values will be transferred to output vertices. Elsewhere, Z values will be derived either from existing Z values or through interpolation.
-
Invalid (self-intersecting) geometry may be created during the simplification process and will be repaired but not improved. For example, if a polygon crosses itself, the polygon will become a multiple-part polygon but will still look self-crossing.
Syntax
Parameter | Explanation | Data Type |
in_features |
The building polygons to be simplified. | Feature Layer |
out_feature_class |
The output feature class to be created. | Feature Class |
simplification_tolerance |
Sets the tolerance for building simplification. A tolerance must be specified, and it must be greater than zero. You can choose a preferred unit; the default is the feature unit. | Linear unit |
minimum_area (Optional) |
Sets the minimum area for a simplified building to be retained in feature units. The default value is zero, that is, to keep all buildings. You can specify a preferred unit; the default is the feature unit. | Areal unit |
conflict_option (Optional) |
Specifies whether or not to check for potential conflicts, that is, overlapping or touching, among buildings. A field named SimBldFlag is added to the output to store conflict flags. A value of 0 means no conflict; a value of 1 means conflict.
| Boolean |
Code Sample
The following Python window script demonstrates how to use the SimplifyBuilding function in immediate mode.
import arcpy
from arcpy import env
import arcpy.cartography as CA
env.workspace = "C:/data"
CA.SimplifyBuilding("buildings.shp", "C:/output/output.gdb/simplified_buildings", 10)
The following stand-alone script demonstrates how to use the SimplifyBuilding function.
# Name: SimplifyBuilding_Example2.py
# Description: Aggregate building features and then simplify them
# Import system modules
import arcpy
from arcpy import env
import arcpy.cartography as CA
# Set environment settings
env.workspace = "C:/data/Portland.gdb/Buildings"
# Set local variables
inBuildingFeatures = "houses"
aggregatedFeatures = "C:/data/PortlandOutput.gdb/residential_areas"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/residential_simplified"
# Aggregate house polygons.
CA.AggregatePolygons(inBuildingFeatures, aggregatedFeatures, 10, 100, 100, "ORTHOGONAL")
# Simplify residential building polygons.
CA.SimplifyBuilding(aggregatedFeatures, simplifiedFeatures, 10, 100, CHECK_CONFLICTS)