Duplicate parcels

URL:
https://<root>/<serviceName/ParcelFabricServer/duplicateParcels
Methods:
POST
Required Capability:
ArcGIS Advanced Editing
Version Introduced:
10.8

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, run the build operation to build the parcel fabric so that the record polygon and parcel count reflects the newly added parcels.

Learn more about duplicating parcels

Request parameters

ParameterDetails

gdbVersion

(Required)

Introduced at 10.8.

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

Syntax

1
gdbVersion=<version>

sessionId

(Required)

Introduced at 10.8.

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

1
sessionId=<guid>

parcels

(Required)

Introduced at 10.8.

The parcels that will be duplicated.

Syntax

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

targetParcelType

(Required)

Introduced at 10.8.

The target parcel type to which to duplicate the parcels.

Syntax

1
targetParcelType=<layer id>

targetParcelSubtype

(Required)

Introduced at 10.8.

The target parcel subtype.

Syntax

1
2
3
4
targetParcelSubtype=<subtype id>

//If not using a subtype
targetParcelSubtype=0

record

(Required)

Introduced at 10.8.

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

Syntax

1
record=<guid>

repeatCount

(Optional)

Introduced at 10.8.

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

Syntax

1
repeatCount=<long>

updateField

(Optional)

Introduced at 11.1.

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

1
updateField=<string>

startValue

(Optional)

Introduced at 11.1.

The starting floor or level when duplicating parcels to create strata parcels. The start value is populated in the FloorOrder fields (polygon and line field) of the first parcel duplicated.

Syntax

1
startValue=<long>

incrementValue

(Optional)

Introduced at 11.1.

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 parcel.

Syntax

1
incrementValue=<long>

async

(Optional)

Introduced at 11.1.

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

1
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.

  1. Start a service session on the version.

    Request URL and parameters:

    1
    2
    3
    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:

    1
    2
    3
    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:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{
  "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 :

1
2
3
{
		"statusUrl": <url>
}

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.

You can no longer sign into this site. Go to your ArcGIS portal or the ArcGIS Location Platform dashboard to perform management tasks.

Your ArcGIS portal

Create, manage, and access API keys and OAuth 2.0 developer credentials, hosted layers, and data services.

Your ArcGIS Location Platform dashboard

Manage billing, monitor service usage, and access additional resources.

Learn more about these changes in the What's new in Esri Developers June 2024 blog post.

Close