Parcel fabrics in a geodatabase in PostgreSQL
This topic applies to ArcEditor and ArcInfo only.
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 previous releases of ArcGIS, parcel fabrics were called cadastral fabrics and required the Survey Analyst extension to use.
Parcel fabrics in ArcGIS 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 PostgreSQL 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 PostgreSQL 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:
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 |
|
distsd |
numeric |
The standard deviation of distances |
|
ppm |
numeric |
Parts per million value |
|
category |
integer |
Indicates the accuracy level |
|
description |
varchar(256) |
A description of the category |
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 |
timestamp without time zone |
Date the adjustment was inserted |
|
vectorcount |
integer |
Number of vectors produced by the adjustment |
|
adjlevel |
integer |
Sequential number (ordering) of adjustment relative to other adjustments |
|
jobid |
integer |
ID of the job that contained the adjustment |
|
shape |
st_geometry 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 |
varchar(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 |
timestamp without time zone |
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 |
st_point geometry |
The geometry of the control point |
|
constructiondata |
bytea |
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 |
timestamp without time zone |
The date of the system transaction that created the child |
NOT NULL |
legalstartdate |
timestamp without time zone |
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 |
<parcel_fabric>_jobobjects
The <parcel_fabric>_jobobjects 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 |
|
objecttype |
integer |
Type of object that is locked |
|
jobfeatureid |
integer |
The object ID of the feature that is locked |
|
role |
integer |
Type of lock held—optimistic or pessimistic (Edit parcels use pessimistic locks.) |
|
edit |
integer |
Indicates whether the attributes of the job object can be edited |
<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 |
varchar(64) |
The cadastral job identifier or name |
|
description |
varchar(64) |
User-defined description of the cadastral job |
|
locked |
integer |
Indicates the presence of locked parcels in the job parcels list |
|
createdate |
timestamp without time zone |
The date the job was created |
|
modifieddate |
timestamp without time zone |
The date the job was last modified |
|
commitdate |
timestamp without time zone |
The date the job was committed to the database |
|
owner |
varchar(64) |
The owner of the job |
|
status |
integer |
The status of the job |
|
systemstate |
integer |
The system-maintained status of a job |
NOT NULL |
version |
varchar(64) |
The geodatabase version holding the job |
|
lockmachine |
varchar(128) |
Name of the client computer currently editing the job |
|
lockpid |
integer |
System field containing the lock process ID; maintains single-use editing on the job |
|
commitedobj |
bytea |
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 |
|
featureclassid |
integer |
The ID of the associated feature class |
|
adjlevel |
integer |
The adjustment level last applied to the feature class |
|
cfid |
integer |
The source parcel fabric ID |
<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 |
|
frompointid |
integer |
The ID of the from point of the boundary line |
|
topointid |
integer |
The ID of the to point of the boundary line |
|
linepointid |
integer |
ID of the point that must lie on the boundary |
|
shape |
st_point 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 |
timestamp without time zone |
The date of the system transaction that created the parent parcel |
|
systemenddate |
timestamp without time zone |
The date the parent parcel was retired |
|
legalstartdate |
timestamp without time zone |
The date of the legal transaction that created the parent parcel; should be the same as the date on the legal plan |
|
legalenddate |
timestamp without time zone |
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 |
st_geometry 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 |
varchar(50) |
User-assigned name of the parcel |
|
type |
integer |
Used for custom subtypes to support categories of land units |
|
statedarea |
varchar(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) |
|
historical |
integer |
Indicates whether a parcel has been retired (true/1) or not (false/2) |
|
systemstartdate |
timestamp without time zone |
The date of the system transaction that created the parcel |
NOT NULL |
systemenddate |
timestamp without time zone |
The date of the system transaction that retired the parcel |
|
legalstartdate |
timestamp without time zone |
The date of the legal transaction that created the parcel |
|
legalenddate |
timestamp without time zone |
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) |
|
shapestderrorn |
numeric |
Overall parcel distortion (northing) |
|
backsightbearing |
numeric |
Direction of line to backsight point |
|
constructiondata |
bytea |
Populated for unjoined parcels (those without a shape value) only |
|
shape |
st_geometry geometry |
Parcel geometry |
<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 |
varchar(128) |
The name of the plan or legal document |
NOT NULL |
description |
varchar(1024) |
A description of the document |
|
surveyor |
varchar(50) |
Name of the surveyor of record |
|
company |
varchar(50) |
The survey company or organization of record |
|
surveydate |
timestamp without time zone |
Date of survey |
|
legaldate |
timestamp without time zone |
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 |
NOT NULL |
systemstartdate |
timestamp without time zone |
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 |
varchar(32) |
Point name |
|
historical |
integer |
Indicates whether the parcel lines are historic (true/1) or not (false/0) |
|
systemstartdate |
timestamp without time zone |
Date of the system transaction that created the point |
NOT NULL |
systemenddate |
timestamp without time zone |
Date of the system transaction that retired the point |
|
legalstartdate |
timestamp without time zone |
Date of the legal transaction that created the point; usually from legal record |
|
legalenddate |
timestamp without time zone |
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 |
st_point 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 PostgreSQL.
You need Adobe Acrobat Reader to open the file.
Dashed lines indicate implicit relationships between columns.
Parcel fabrics in an XML workspace 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>