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