ProConcepts DataReviewer - kataya/arcgis-pro-sdk GitHub Wiki

The ArcGIS.Desktop.DataReviewer namespace provides access to the classes and members that offer the ability to manage Reviewer results, sessions, and batch job items.

  • ArcGIS.Desktop.DataReviewer.dll
Language:      C#
Subject:       Content
Contributor:   ArcGIS Pro SDK Team <[email protected]>
Organization:  Esri, http://www.esri.com
Date:          11/24/2020
ArcGIS Pro:    2.7
Visual Studio: 2017, 2019

In this topic

Batch job items

A project can contain multiple batch job items with each item defining a collection of configured Data Reviewer checks. Data Reviewer checks automate the validation of a specific condition—based on its configuration—against one or more features. Checks validate different aspects of a feature’s quality that can include feature integrity, attribution, spatial relationships and metadata. Checks can be used to identify features that are non-compliant with industry best practices or data quality requirements.

You can add batch job items to a project using the Project.Current.AddItem method:

// Specify the path of the Reviewer Batch Job
string batchJobPath = @"C:\Data\Attribute Validation.rbj";

// Create the item
await QueuedTask.Run(() =>
{
  Item reviewerBatchJobItem = DataReviewerModule.CreateBatchJobItem(batchJobPath);
  if (reviewerBatchJobItem != null)
    Project.Current.AddItem(reviewerBatchJobItem as IProjectItem);
});

Result items

A project can contain a single result item that defines a connection to a geodatabase containing a Reviewer dataset. The Reviewer dataset stores information related to sessions and their associated results. Sessions define a series of validation and quality control transactions performed by automated validation or manual inspection.

You can add result items to a project using the Project.Current.AddItem method:

// Specify the path of the workspace that contains Reviewer dataset
string strReviewerResultsWorkspacePath = @"C:\Data\ReviewerWorkspace.gdb";

// Create the item
await QueuedTask.Run(() =>
{
  // Check if the Reviewer workspace contains current Reviewer dataset.
  if (DataReviewerModule.HasValidReviewerDataset(strReviewerResultsWorkspacePath))
  {
    Item reviewerResultItem = DataReviewerModule.CreateResultsItem(strReviewerResultsWorkspacePath);
    if (reviewerResultItem != null)
      Project.Current.AddItem(reviewerResultItem as IProjectItem);
  }
  else
  {
    // The geodatabase specified does not contain a current Reviewer dataset
  }
});

Session items

A project can contain multiple session items with each item defining a collection of Reviewer results. A result represents a geodatabase feature or row that has been marked as an anomaly by automated validation or manual inspection. It contains information about what that anomaly is and may include a geometry. Results are organized into Reviewer sessions and stored in a geodatabase.

You can add result items to a project using the ReviewerResultsProjectItem.AddSessionItemAsync method:

// Get Reviewer Results project item (ReviewerResultsProjectItem)
// A project can contain only one Reviewer Results project item
var resultsProjectItem = Project.Current.GetItems<ReviewerResultsProjectItem>().FirstOrDefault();
if (resultsProjectItem == null)
{
  // Current project does not have a connection to the Reviewer Results.
  return;
}

// Get the Reviewer Dataset associated with the Reviewer Results project item
ArcGIS.Desktop.DataReviewer.Models.ReviewerDataset reviewerDataset = resultsProjectItem.ReviewerDataset;
if (null != reviewerDataset)
{
  IEnumerable<Session> reviewerSessions = null;
  await QueuedTask.Run(async () =>
  {
    // Get all Reviewer sessions that are in the Reviewer dataset
    reviewerSessions = reviewerDataset.GetSessions();
    foreach (Session session in reviewerSessions)
    {
      // Add each Reviewer session to the current project
      Item sessionItem = resultsProjectItem.CreateSessionItem(session);
      await resultsProjectItem.AddSessionItemAsync(sessionItem);
    }
  });
}
⚠️ **GitHub.com Fallback** ⚠️