Parcel fabrics in a geodatabase in SQL Server

Parcel fabrics are a type of dataset in the geodatabase that are created and maintained using data from survey plans. Parcel editing tools in ArcMap facilitate the creation of parcels from recorded boundary line measurements from plans or plats.

A parcel fabric is a continuous, integrated surface of connected parcels, representing the complete survey record for an area of land. The fabric itself is made up of several feature classes. These feature classes represent the boundaries, endpoints, and other physical attributes of parcels.

Parcel polygons are also linked to each other by connection lines. Because every parcel is either linked or connected, a seamless network of connected parcel boundaries is formed.

Parcels that are edited or replaced by new survey records are retained as historic, thus always preserving the original survey record.

LegacyLegacy:

In ArcGIS releases prior to 10, parcel fabrics were called cadastral fabrics and required the Survey Analyst extension to use.

Parcel fabrics in ArcGIS for Desktop

In the Catalog tree, parcel fabrics can be present in feature datasets and are represented with the following icon:

Parcel fabric icon

The name of a parcel fabric in a geodatabase in SQL Server contains the database name, the name of the owner of the parcel fabric, and the name of the parcel fabric itself. For example, a parcel fabric, coparcels, owned by user base, in an assessor geodatabase would be listed as assessor.BASE.coparcels in the Catalog tree.

Parcel fabrics in a Microsoft SQL Server database

Several tables are created in the database to track information about parcel fabrics. Tables are created in the schema of the user who creates a parcel fabric. The tables contain the name of the parcel fabric, <parcel_fabric>, followed by the specific table. They are as follows:

<PARCEL_FABRIC>_ACCURACY

The <PARCEL_FABRIC>_ACCURACY table stores the accuracy categories and statistics, which are used in least-squares adjustments. This table is not versioned when the parcel fabric is registered as versioned.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the record

NOT NULL

BrgSD

numeric

The standard deviation of bearings

NOT NULL

DistSD

numeric

The standard deviation of distances

NOT NULL

PPM

numeric

Parts per million value

NOT NULL

Category

integer

Indicates the accuracy level

NOT NULL

Description

nvarchar(256)

A description of the category

<PARCEL_FABRIC>_ADJUSTMENTS

The <PARCEL_FABRIC>_ADJUSTMENTS table stores adjustment levels (sequence IDs) and their corresponding adjustment dates.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the record

NOT NULL

AdjustmentDate

datetime2

Date the adjustment was inserted

VectorCount

integer

Number of vectors produced by the adjustment

NOT NULL

AdjLevel

integer

Sequential number (ordering) of adjustment relative to other adjustments

NOT NULL

JobID

integer

ID of the job that contained the adjustment

Shape

integer

geometry

The adjusted area

<PARCEL_FABRIC>_CONTROL

The <PARCEL_FABRIC>_CONTROL table stores information about control points on the parcel fabric.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the control point

NOT NULL

X

numeric

The x-coordinate of the control point; fixed

NOT NULL

Y

numeric

The y-coordinate of the control point; fixed

NOT NULL

Z

numeric

The z-coordinate of the control point; fixed

Name

nvarchar(50)

The name of the control point

PointID

integer

The ID of the corresponding fabric point

AccuracyXY

numeric

The horizontal positional accuracy of the control point; for reference only

AccuracyZ

numeric

The vertical accuracy of the control point; for reference only

SurveyDate

datetime2

The date the control point was established

Active

integer

Indicates whether or not a control point is active in an adjustment

Type

integer

Used for custom subtyping

Shape

integer

geometry

The geometry of the control point

ConstructionData

varbinary(max)

Stores links between unjoined points and control points; when a parcel is rejoined to the fabric, parcel points joined to any linked control

<PARCEL_FABRIC>_HISTORY

The <PARCEL_FABRIC>_HISTORY table stores nonspatial parcel lineage information. This table supports textual lineage tracking through the legal and system dates.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the record

NOT NULL

childParcelID

integer

The child parcel ID or the ID of the child of this parent

ParentParcelID

integer

Parcel ID of the parent parcel (or parcels) of this child

SystemStartDate

datetime2

The date of the system transaction that created the child

NOT NULL

LegalStartDate

datetime2

The date of the legal transaction that created the child

<PARCEL_FABRIC>_IDSEQUENCER

The <PARCEL_FABRIC>_IDSEQUENCER table is used internally to ensure unique IDs are used across all tables in the parcel fabric.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the record

NOT NULL

<PARCEL_FABRIC>_JOBOBJECTS

The <PARCEL_FABRIC>_JOBOJBECTS table contains information needed to manage database locks held on objects by jobs. This table is not versioned when the parcel fabric is registered as versioned.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the record

NOT NULL

JobID

integer

ID of the job holding the lock

NOT NULL

ObjectType

integer

Type of object that is locked

NOT NULL

JobFeatureID

integer

The object ID of the feature that is locked

NOT NULL

Role

integer

Type of lock held—optimistic or pessimistic (Edit parcels use pessimistic locks.)

NOT NULL

Edit

integer

Indicates whether the attributes of the job object can be edited

NOT NULL

<PARCEL_FABRIC>_JOBS

The <PARCEL_FABRIC>_JOBS table stores information about the cadastral jobs operating on the parcel fabric. This table is not versioned when the parcel fabric is registered as versioned.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the record

NOT NULL

Name

nvarchar(64)

The cadastral job identifier or name

NOT NULL

Description

nvarchar(64)

User-defined description of the cadastral job

Locked

integer

Indicates the presence of locked parcels in the job parcels list

NOT NULL

CreateDate

datetime2

The date the job was created

ModifiedDate

datetime2

The date the job was last modified

CommitDate

datetime2

The date the job was committed to the database

Owner

nvarchar(64)

The owner of the job

NOT NULL

Status

integer

The status of the job

NOT NULL

SystemState

integer

The system-maintained status of a job

NOT NULL

Version

nvarchar(64)

The geodatabase version holding the job

LockMachine

nvarchar(128)

Name of the client computer currently editing the job

NOT NULL

LockPID

integer

System field containing the lock process ID; maintains single-use editing on the job

NOT NULL

CommitedObj

varbinary(max)

Stores parcel ObjectIDs that are no longer in the Job Objects table because the job has been committed or posted to the default version; values maintained for historical purposes

<PARCEL_FABRIC>_LEVELS

The <PARCEL_FABRIC>_LEVELS table stores information about relationships between parcel fabrics and their associated feature classes.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the record

NOT NULL

FeatureclassID

integer

The ID of the associated feature class

NOT NULL

AdjLevel

integer

The adjustment level last applied to the feature class

NOT NULL

CFID

integer

The source parcel fabric ID

NOT NULL

<PARCEL_FABRIC>_LINEPOINTS

The <PARCEL_FABRIC>_LINEPOINTS table stores information on points in one parcel that are constrained to lie on the boundary of another parcel without a shared point on that boundary.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the point

NOT NULL

ParcelID

integer

The ID of the parcel that has the boundary line

NOT NULL

FromPointID

integer

The ID of the from point of the boundary line

NOT NULL

ToPointID

integer

The ID of the to point of the boundary line

NOT NULL

LinePointID

integer

ID of the point that must lie on the boundary

NOT NULL

FlexPoint

integer

Indicates whether the straight lines adjacent to the line point are to be bent (flexed) to the location of the line point.

Shape

integer

geometry

Duplicate of the point to improve drawing performance

<PARCEL_FABRIC>_LINES

The <PARCEL_FABRIC>_LINES table stores information on all lines of a parcel fabric, such as boundary, easements, and connections.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the line

NOT NULL

Calculated

integer

Indicates whether dimensions inverted from shape geometry (true/1) or not (false/0)

ParcelID

integer

The ID of the parcel that contains the line

NOT NULL

Sequence

integer

A number indicating the order in which the line was entered in the parcel traverse

NOT NULL

FromPointID

integer

The ID of the fabric point where the line begins

NOT NULL

ToPointID

integer

The ID of the fabric point where the line ends

NOT NULL

Bearing

numeric

The bearing of the line from record or compilation

NOT NULL

Distance

numeric

The length of the line from record or compilation

NOT NULL

Type

integer

Used for custom subtyping

Category

integer

High-level system category for line

NOT NULL

Radius

numeric

The distance from the center point to the arc of the circular curve

ArcLength

numeric

The length of the arc of a circular curve

Delta

numeric

The angle between the tangents or the angle at the center of a curve

CenterPointID

integer

The ID of the center point of a circular arc

Historical

integer

True (1) if the line's associated parcel is historic; otherwise, false (0)

RadialBearing

numeric

The bearing of the radius of the circular curve

TangentBearing

numeric

The bearing of the tangent starting at the from point

LineParameters

integer

The curve parameters

Accuracy

integer

The accuracy category of the line; can be inherited from the plan or overridden

ComputedMinusObserved

numeric

The computed measurements (such as bearing and distance) compared with the field observation

InternalAngle

numeric

Based on a backsight bearing or basis of bearing

ReferenceObject

integer

The reference object for a particular point

IsMajor

integer

Supports curves greater than 180 degrees; value is either 1, greater than 180 degrees, or 0, 180 degrees or lower

Hide

integer

If marked true (1), hides line annotation

SystemStartDate

datetime2

The date of the system transaction that created the parent parcel

NOT NULL

SystemEndDate

datetime2

The date the parent parcel was retired

LegalStartDate

datetime2

The date of the legal transaction that created the parent parcel; should be the same as the date on the legal plan

LegalEndDate

datetime2

The date of the legal transaction that retired the parent parcel

DensifyType

integer

Stores the reason code for densifying the linestring: Normal, GCS, Curve, Linestring

Shape

integer

geometry

Line geometry

<PARCEL_FABRIC>_PARCELS

The <PARCEL_FABRIC>_PARCELS table stores information about the parcel fabric land units, which are referred to as parcels. These may be subtyped for modeling hierarchical land categories.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the record

NOT NULL

Joined

integer

Join status; if not joined, not part of the fabric; 1 = joined

NOT NULL

PlanID

integer

Identifier of the plan containing the parcel record

NOT NULL

Name

nvarchar(50)

User-assigned name of the parcel

Type

integer

Used for custom subtypes to support categories of land units

StatedArea

nvarchar(50)

The area of the parcel stated on the plan or legal record

Compiled

integer

Indicates whether a parcel is compiled (true/1) or not (false/0)

NOT NULL

historical

integer

Indicates whether a parcel has been retired (true/1) or not (false/2)

SystemStartDate

datetime2

The date of the system transaction that created the parcel

NOT NULL

SystemEndDate

datetime2

The date of the system transaction that retired the parcel

LegalStartDate

datetime2

The date of the legal transaction that created the parcel

LegalEndDate

datetime2

The date of the legal transaction that retired the parcel

GroupID

integer

This number set if part of an unjoined group

Accuracy

integer

The accuracy category of measurements, usually taken from the plan

Rotation

numeric

Rotation from join process

Scale

numeric

Scale from join process

Unclosed

integer

Indicates whether a parcel is a closed traverse (true/1) or not (false/0)

NOT NULL

MiscloseRatio

numeric

Ratio of misclose distance to parcel perimeter

MiscloseDistance

numeric

Distance necessary to close the parcel

MiscloseBearing

numeric

Bearing necessary to close the parcel

Construction

integer

Indicates whether the parcel is a construction (true/1) or not (false/0)

ShapeStdErrorE

numeric

Overall parcel distortion (easting)

ShapeStdErroN

numeric

Overall parcel distortion (northing)

BacksightBearing

numeric

Direction of line to backsight point

Shape

integer

geometry

Parcel geometry

ConstructionData

varbinary(max)

Populated for unjoined parcels (those without a shape value) only

<PARCEL_FABRIC>_PLANS

The <PARCEL_FABRIC>_PLANS table stores the information from the document of record submitted in evidence of land transactions.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the record

NOT NULL

Name

nvarchar(128)

The name of the plan or legal document

NOT NULL

Description

nvarchar(1024)

A description of the document

Surveyor

nvarchar(50)

Name of the surveyor of record

Company

nvarchar(50)

The survey company or organization of record

SurveyDate

datetime2

Date of survey

LegalDate

datetime2

Date survey or document was recorded

AngleUnits

integer

Bearing units of record

AreaUnits

integer

Area units of record

DistanceUnits

integer

Distance units of record

DirectionFormat

integer

Direction format of record

LineParameters

integer

Line definition parameters from record

DistanceAtGround

integer

Indicates whether record distances are ground (true/1) or grid (false/0)

CombinedGridFactor

numeric

Scale factor of grid

TrueMidbrg

integer

Indicates whether astronomic azimuths are used (true/1) or not (false/0)

Accuracy

integer

Spatial accuracy of plan, set to an accuracy category

InternalAngles

integer

Indicates whether or not internal angles are used; 1 = true, 2 = false

SystemStartDate

datetime2

The date of system transaction that created the plan

NOT NULL

<PARCEL_FABRIC>_POINTS

The <PARCEL_FABRIC>_POINTS table stores information about the set of points that exists for each fabric and the centerpoints of curves.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the point

NOT NULL

X

numeric

X-coordinate from join and least-squares adjustment

NOT NULL

Y

numeric

Y-coordinate from join and least-squares adjustment

NOT NULL

Z

numeric

Z-coordinate from join and least-squares adjustment

Type

integer

Used for custom subtyping

Category

integer

Enumeration of the system categories

Name

nvarchar(32)

Point name

Historical

integer

Indicates whether the parcel lines are historic (true/1) or not (false/0)

SystemStartDate

datetime2

Date of the system transaction that created the point

SystemEndDate

datetime2

Date of the system transaction that retired the point

LegalStartDate

datetime2

Date of the legal transaction that created the point; usually from legal record

LegalEndDate

datetime2

Date of legal transaction that retired the point

CenterPoint

integer

Set to true (1) if the point is a center point

MaxDN

numeric

Maximum northing shift

MaxDE

numeric

Maximum easting shift

Shape

integer

geometry

Point geometry

<PARCEL_FABRIC>_VECTORS

The <PARCEL_FABRIC>_VECTORS table stores displacement vectors between the old and new coordinates of an adjusted point. Vectors are grouped logically by an adjustment level that corresponds to an adjustment date.

Field name

Field type

Description

Null?

ObjectID

integer

Unique identifier of the record

NOT NULL

FromX

numeric

The x-coordinate of the point before adjusting

NOT NULL

FromY

numeric

The y-coordinate of the point before adjusting

NOT NULL

ToX

numeric

The x-coordinate of the point after adjusting

ToY

numeric

The y-coordinate of the point after adjusting

PointID

integer

Unique identifier of the point adjusted

NOT NULL

AdjLevel

integer

Adjustment level that contains the vector

NOT NULL

View a diagram of a parcel fabric in SQL Server.

NoteNote:

You need Adobe Acrobat Reader to open the file.

Dashed lines indicate implicit relationships between columns.

Parcel fabrics in an XML document

Within an XML workspace document, parcel fabrics are denoted with a data element and dataset type of CadastralFabric, as in the following example:

<DataElement xsi:type="esri:DECadastralFabric">
     <CatalogPath>/V=sde.DEFAULT/FD=assessor.base.landbase/CF=assessor.base.coparcels</CatalogPath> 
  <Name>assessor.base.coparcels</Name>
  <DatasetType>esriDTCadastralFabric</DatasetType>
  <DSID>265</DSID>  
  <Versioned>false</Versioned> 
  <CanVersion>false</CanVersion> 
  <Extent xsi:type="esri:EnvelopeN">
    <XMin>6183000.00012755</XMin> 
    <YMin>2278000.00003956</YMin> 
    <XMax>6188999.99993855</XMax> 
    <YMax>2281999.99991356</YMax> 
  <SpatialReference xsi:type="esri:ProjectedCoordinateSystem">
  <WKT>PROJCS["NAD_1983_StatePlane_California_VI_FIPS_0406_Feet", GEOGCS["GCS_North_American_1983", DATUM["D_North_American_1983", SPHEROID["GRS_1980",6378137.0,298.257222101]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"], PARAMETER["False_Easting",6561666.666666666], PARAMETER["False_Northing",1640416.666666667], PARAMETER["Central_Meridian",-116.25], PARAMETER["Standard_Parallel_1",32.78333333333333], PARAMETER["Standard_Parallel_2",33.88333333333333], PARAMETER["Latitude_Of_Origin",32.16666666666666], UNIT["Foot_US",0.3048006096012192]]</WKT> 
  <XOrigin>-118608811.296</XOrigin> 
  <YOrigin>-91259488.671</YOrigin> 
  <XYScale>3048.00609601219</XYScale> 
  <ZOrigin>-100000</ZOrigin> 
  <ZScale>10000</ZScale> 
  <MOrigin>-100000</MOrigin> 
  <MScale>10000</MScale> 
  <XYTolerance>3.28083333333333E-03</XYTolerance> 
  <ZTolerance>0.001</ZTolerance> 
  <MTolerance>0.001</MTolerance> 
  <HighPrecision>true</HighPrecision> 
  </SpatialReference>
  </Extent>
  <SpatialReference xsi:type="esri:ProjectedCoordinateSystem">
  <WKT>PROJCS["NAD_1983_StatePlane_California_VI_FIPS_0406_Feet", GEOGCS["GCS_North_American_1983", DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]], PROJECTION["Lambert_Conformal_Conic"], PARAMETER["False_Easting",6561666.666666666], PARAMETER["False_Northing",1640416.666666667], PARAMETER["Central_Meridian",-116.25], PARAMETER["Standard_Parallel_1",32.78333333333333], PARAMETER["Standard_Parallel_2",33.88333333333333], PARAMETER["Latitude_Of_Origin",32.16666666666666], UNIT["Foot_US",0.3048006096012192]]</WKT> 
  <XOrigin>-118608811.296</XOrigin> 
  <YOrigin>-91259488.671</YOrigin> 
  <XYScale>3048.00609601219</XYScale> 
  <ZOrigin>-100000</ZOrigin> 
  <ZScale>10000</ZScale> 
  <MOrigin>-100000</MOrigin> 
  <MScale>10000</MScale> 
  <XYTolerance>3.28083333333333E-03</XYTolerance> 
  <ZTolerance>0.001</ZTolerance> 
  <MTolerance>0.001</MTolerance> 
  <HighPrecision>true</HighPrecision> 
  </SpatialReference>
   <ConfigurationKeyword>DEFAULTS</ConfigurationKeyword> 
  <DefaultAccuracy>4</DefaultAccuracy> 
  <CadastralFieldEditsCollection xsi:type="esri:ArrayOfCadastralFieldEdits" /> 
  <UseDefaultAccuracies>true</UseDefaultAccuracies>
  <CompiledAccuracy>3</CompiledAccuracy>
  <BufferDistanceForAdjustment>50</BufferDistanceForAdjustment>
  <CadastralFabricType>0</CadastralFabricType>>
  <SurrogateVersion />
  <Version>2</Version>
  <MaximumShiftThreshold>0.0098424999999999988</MaximumShiftThreshold>
  <MultiGenerationEditing>false</MultiGenerationEditing>
  <MultiLevelReconcile>false</MultiLevelReconcile>
  <MinorVersion>3</MinorVersion>
</DataElement>

Related Topics

8/21/2013