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
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);
});
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
}
});
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);
}
});
}