Modifying fabric importer engine behavior

This topic applies to ArcGIS for Desktop Standard and ArcGIS for Desktop Advanced only.

You can use ArcObjects and specify registry settings to control the behavior of the parcel fabric importer engine. You can manage how curves are calculated, how many parcels are processed internally during import, and display import start and end time in the data migration log file.

Controlling the migration of curves (via ArcObjects)

Controlling the calculation of curves

You can control how curves are calculated when migrating parcel data into the parcel fabric. By default, curves are calculated and displayed using the line shape of the migrated parcel. When a parcel is opened, curves are displayed using the curve dimensions.

During migration, you can set curves to be calculated and displayed between two points or calculated and displayed using one point. Curves displayed between two points use the record values, but the curves are always constrained between two points. Curves that are displayed using one point utilize only a from point and the dimensions. Constructing curves using one point is a good way to find incorrect curves and other curve problems in your dataset because the curve is displayed as is—from one point, using the recorded values.

Setting the curve calculation method for data migration is done by setting a property set on the IDECadastralFabric3 interface in ArcObjects:

Steps:
  1. Declare the IDECadastralFabric3 and IPropertySet interfaces:
  2. private IDECadastralFabric3 m_DECadastralFabric;
            private IPropertySet m_propset;
    
  3. Set the IDECadastralFabric3 interface to the cadastral fabric to which you will be migrating data:
  4. m_DECadastralFabric = (IDECadastralFabric3) m_CadFabric;
    (m_CadFabric = ICadastralFabricLayer.CadastralFabric)
    
  5. Create a new Esri property set:
  6. m_propset = new PropertySetClass();
    
  7. Set the curve calculation method:

    Construct curves from the parcel line shape (default)

    object COGOshapetype = "COGOShapeStorage";
                m_propset.SetProperty("COGOShape",COGOshapetype);
    

    Construct curves using two points

    object COGOshapetype = "ConstructionUsingTwoPoints";
                m_propset.SetProperty("COGOShape",COGOshapetype);
    

    Construct curves using one points

    object COGOshapetype = "ConstructionUsingOnePoint";
                m_propset.SetProperty("COGOShape",COGOshapetype);
    
  8. Set the property set on the IDECadastralFabric3 interface:
  9. m_DECadastralFabric.SetPropertySet
    (esriCadastralPropertySetType.esriCadastralPropSetImporterLoading, m_propset);
    

Controlling long radial lines

When running a fabric least-squares adjustment on a group of parcels, flat curves with long radial lines can cause the adjustment to fail. This is because the slightest adjustment to a flat curve can result in a large adjustment of the center point of the flat curve that has long radial lines. You can use a property set on the IDECadastralFabric3 interface in ArcObjects and set a property to prevent long radial lines from affecting the outcome of the fabric adjustment. The property assigns an accuracy category of 7 to radial lines greater than the distance value (in meters) you specify. If a line or parcel is assigned an accuracy category of 7, it does not affect the outcome of the fabric adjustment.

Steps:
  1. Declare the IDECadastralFabric3 and IPropertySet interfaces:
  2. private IDECadastralFabric3 m_DECadastralFabric;
            private IPropertySet m_propset;
    
  3. Set the IDECadastralFabric3 interface to the cadastral fabric to which you will be migrating data:
  4. m_DECadastralFabric = (IDECadastralFabric3) m_CadFabric;
    (m_CadFabric = ICadastralFabricLayer.CadastralFabric)
    
  5. Create a new Esri property set:
  6. m_propset = new PropertySetClass();
    
  7. Set the maximum distance a radial line can be before it is assigned an accuracy category of 7 (500 meters is the default):
  8. m_propset.SetProperty("assignAccCat7ToRadialLineGreaterThanXMeters", 550);
    
  9. Set the property set on the IDECadastralFabric3 interface:
  10. m_DECadastralFabric.SetPropertySet
    (esriCadastralPropertySetType.esriCadastralPropSetImporterLoading, m_propset);
    

Converting densified arcs

If the data you are migrating contains densified arcs, you can convert the densified arcs to true curves that are within a calculated tolerance. A property set is used on the IDECadastralFabric3 interface in ArcObjects and two properties are set to control the conversion of densified arcs. The first property is a specified factor and this factor is multiplied by the current XY Tolerance (cluster tolerance) to arrive at the calculated tolerance. If the distance between each densified arc vertex and the true curve is less than the calculated tolerance, then the densified arc is converted to a true curve. A second property defines the upper limit of the calculated tolerance. If the calculated tolerance is large you can use a second property to define the maximum calculated tolerance allowed.

If the densified arc does not form a true curve within the tolerance specified, then the densified arc is imported as a line string (natural boundary). If the densified arc has less than four vertices, the arc is not imported as a curve and is imported as a line string (natural boundary).

Steps:
  1. Declare the IDECadastralFabric3 and IPropertySet interfaces:
  2. private IDECadastralFabric3 m_DECadastralFabric;
            private IPropertySet m_propset;
    
  3. Set the IDECadastralFabric3 interface to the cadastral fabric to which you will be migrating data:
  4. m_DECadastralFabric = (IDECadastralFabric3) m_CadFabric;
    (m_CadFabric = ICadastralFabricLayer.CadastralFabric)
    
  5. Create a new Esri property set:
  6. m_propset = new PropertySetClass();
    
  7. Define the factor that will be multiplied by the XY TOLERANCE (cluster tolerance). The default is 100:
  8. m_propset.SetProperty("CurveDetectOffsetXMultipliedByDatasetTolerance", 200);
    
  9. Define the maximum allowable calculated tolerance. The default is 0.5 meters:
  10. m_propset.SetProperty("CurveDetectOffsetMaxMetersTolerance", 0.7);
    
  11. Set the property set on the IDECadastralFabric3 interface:
  12. m_DECadastralFabric.SetPropertySet
    (esriCadastralPropertySetType.esriCadastralPropSetImporterLoading, m_propset);
    

Importer settings (via the registry)

Setting the internal number of contiguous parcels to process

During the import process, parcels are processed internally in batches of 500. You can modify the internal batch processing number to be higher or lower depending on the speed of your computer system.

Follow these steps to change the internal batch processing number:

Steps:
  1. Click the windows Start menu and click Run.
  2. Type Regedit in the Run dialog box.
  3. Navigate to HKEY_CURRENT_USER \\Software\\ESRI\\Desktop10.1\\ArcMap\\Cadastral.
  4. Right-click the Cadastral folder, point to New, then click DWORD value.
  5. Type MaxBatchParcelsToRead as the DWORD name.
  6. Double-click the DWORD to edit it.
  7. Choose the Decimal option.
  8. In the Value Data field, enter a value between 1 and 995. The default is 500.
  9. Click OK to create the registry key.

Displaying import start and end time in the log file

You can use the WriteExtendedLogfileTimeInfo registry key to display a start and end time in the data migration log file. Start and end times are useful for monitoring the time it takes to import a certain number of parcels into the parcel fabric. By default, no start and end times are listed in the log file.

Steps:
  1. Click the windows Start menu and click Run.
  2. Type Regedit in the Run dialog box.
  3. Navigate to HKEY_CURRENT_USER \\Software\\ESRI\\Desktop10.1\\ArcMap\\Cadastral.
  4. Right-click the Cadastral folder, point to New, then click DWORD value.
  5. Type writeExtendedLogfileTimeInfo as the DWORD name.
  6. Double-click the DWORD to edit it.
  7. Choose the Decimal option.
  8. In the Value Data field, enter 1 for True or 0 for False.
  9. Click OK to create the registry key.
1/25/2013