Skip To Content
ArcGIS Developer
Dashboard

Duplicate parcels

Description

The duplicateParcels operation duplicates parcels to a specified parcel type and subtype. A record is required to duplicate parcels.

If the parcel type supports the storage of strata parcels, parcels can be duplicated multiple times vertically to create strata parcels. Strata parcels represent floors both above and below the ground and are also known as condominiums, units, apartments, flats, basements, and vertical parcels.

After duplicating parcels, build the parcel fabric so that record polygon and parcel count reflects the newly added parcels.

Learn more about duplicating parcels

Request parameters

ParameterDetails
gdbVersion

The name of the geodatabase version (the default is the DEFAULT version).

Syntax

gdbVersion=<version>
sessionId

The token (GUID) used to lock the version. If the calling client has previously started a service session (editing) and holds an exclusive lock on the specified version, the request will fail if the sessionId value is not provided. If the specified version is currently locked by another session, the request will fail if the sessionId value is not provided or does not match the sessionId value that holds the exclusive lock.

Syntax

sessionId=<guid>
parcels

(Required)

The parcels that will be duplicated.

Syntax

parcels=[{"id":"<parcelguid>","layerId":"16"},{...}]
targetParcelType

(Required)

The target parcel type.

Syntax

targetParcelType=<layer id>
targetParcelSubtype

(Required)

The target parcel subtype.

Syntax


targetParcelSubtype=<subtype id>

//If not using a subtype
targetParcelSubtype=0
record

(Required)

The unique identifier (GUID) of the record. The duplicated parcels will be associated with the specified record.

Syntax

record=<guid>
repeatCount

(Optional)

The number of times the specified parcels will be duplicated. This parameter is generally used to duplicate parcels vertically to create strata parcels.

Syntax

repeatCount=<long>
updateField

(Optional)

The field that will be updated incrementally. If the parcel type supports the storage of strata parcels, the FloorOrder field can be specified as the updateField value. The FloorOrder field is updated with the floor number when duplicating parcels vertically. The floor number will start with the numeric value specified for the startValue parameter.

Syntax

updateField=<string>
startValue

The starting floor or level when duplicating parcels to create strata parcels. The start value is populated in the FloorOrder fields of the first parcels duplicated.

Syntax

startValue=<long>
incrementValue

The interval at which the value in the FloorOrder field will increase. For example, if the increment value is 2, the value in the FloorOrder field will increase by two for each duplicated set of parcels.

Syntax

incrementValue=<long>
async

Specifies whether the request will be processed asynchronously. If true, the request will be processed as an asynchronous job and a URL that points to a location displaying the status of the job will be returned. The default is false. This parameter is optional.

Values: true | false

Syntax

async=true|false
f

Specifies the output format of the response. The default response format is html.

Values: html | json

Example usage

This example shows the steps for duplicating a parcel to create two floors of strata parcels using the duplicateParcels operation.

Note:
The sessionId parameter value must be the same for starting the edit session, performing the edit operation, and stopping the edit session.

  1. Start a service session on the version.

    Request URL and parameters:

    
    https://machine.domain.com/webadaptor/rest/services/CountyFabric/VersionManagementServer/versions/E4DAED9D-C859-489B-9053-767A45F1D97C/startReading
    f=json
    sessionId={bba242fc-e671-4aa2-83d4-1c013347fa4f}

  2. Start an edit session on the version.

    Request URL and parameters:

    
    https://machine.domain.com/webadaptor/rest/services/CountyFabric/VersionManagementServer/versions/E4DAED9D-C859-489B-9053-767A45F1D97C/startEditing
    f=json
    sessionId={bba242fc-e671-4aa2-83d4-1c013347fa4f}

  3. Duplicate a parcel in the tax parcel type to create two additional floors of strata parcels. Increment the floor level by one for each parcel duplicated.

    Request URL and parameters:

    
    https://machine.domain.com/webadaptor/rest/services/CountyFabric/ParcelFabricServer/duplicateParcels
    f=json
    gdbVersion=admin.Version1
    sessionId={bba242fc-e671-4aa2-83d4-1c013347fa4f}
    parcels=[{"id":"{5B9C7139-FBE0-4B43-B9BB-092EB98635E6}","layerId":"13"}]
    targetParcelType=10
    targetParcelSubtype=0
    record={78BEE123-4A76-4B6C-9B12-C30786E46B48}
    repeatCount=2
    updateField=floororder
    startValue=1
    incrementValue=1
    async=false
  4. If edits are complete, stop the edit session.
  5. Stop and release the service session.

JSON Response syntax

The following response is returned when async is false:


{
  "exceededTransferLimit: <true | false>,
  "moment": <datetime>,
  "error": {  // only if success is false
    "extendedCode": <HRESULT>,
    "message": <error message>,
    "details": [<detail>]
  },
  "serviceEdits": {  // only if transfer limit is not exceeded
    "editedFeatures": {
      "updates": {
        "attributes": {...},
        "geometry": {...}
      },
      {
        "spatialReference": {<spatial reference>}
      },
      "id": <layerID>
    }
				"editedFeatures": {
      "adds": {
        "attributes": {...},
        "geometry": {...}
      },
      {
        "spatialReference": {<spatial reference>}
      },
      "id": <layerID>
    },
    "success": <true | false>
  }
}

The following response is returned when async is true:


{
		"statusUrl": <url>
}