サマリー
The Describe function returns the properties described below for datasets that have attribute rules added to them.
Attribute rules can be added to a geodatabase feature class or table. The Describe function's dataType property returned is the dataType of the feature class or table.
プロパティ
プロパティ | 説明 | データ タイプ |
batch (読み取り専用) | Specifies whether the rule is run in batch mode.
Calculation rules can return either true or false, constraint rules will always return false, and validation rules will always return true. | Boolean |
checkParameters (読み取り専用) | A system-generated JSON value that defines the configuration of a Data Reviewer-based rule. | Object |
creationTime (読み取り専用) | The date and time the attribute rule was created. | DateTime |
description (読み取り専用) | The description of the attribute rule. | String |
errorMessage (読み取り専用) | If the attribute rule has a custom error message (that is, constraint rules), this property will return the error message that was assigned for this rule. | String |
errorNumber (読み取り専用) | If the attribute rule has a custom error number (that is, constraint rules), this property will return the error number that was assigned for this rule. | Long |
evaluationOrder (読み取り専用) | If the rule type is calculation, this value gives the order in which the rule is run. The evaluation order is based on the order in which the rule was added to the dataset. For example, if Rule A is added before Rule B, the evaluation number will be lower for Rule A. | Long |
excludeFromClientEvaluation (読み取り専用) | Specifies whether the rule is excluded from client evaluation.
| Boolean |
fieldName (読み取り専用) | If the attribute rule is assigned to a field (that is, a calculation rule type), this property returns the field name. | String |
id (読み取り専用) | Returns the rule ID as an integer value. | Integer |
isEnabled (読み取り専用) | Specifies whether the rule is enabled.
| Boolean |
name (読み取り専用) | The name of the attribute rule. | String |
referencesExternalService (読み取り専用) | Specifies whether the rule references any external service. | Boolean |
requiredGeodatabaseClientVersion (読み取り専用) | The required geodatabase client version is set per rule, depending on which ArcGIS Arcade functions are used in the script expression. For example, if the script includes the Sequence operation, a 10.6.1 geodatabase is required. | String |
scriptExpression (読み取り専用) | The Arcade expression that defines the rule. 注意:This property is not available for Data Reviewer rules. | String |
severity (読み取り専用) | Defines the severity of the error. This property is applicable to validation rule types. | Integer |
subtypeCode (読み取り専用) | If the attribute rule is assigned to a subtype, this property returns the subtype code to which it is assigned. | Long |
tags (読み取り専用) | A set of tags that are used to identify the rule. | String |
triggeringEvents (読み取り専用) | The triggering events defined in the attribute rule. For example, the rule may be triggered by Insert, Update, or Delete events during editing. | String |
triggeringFields (読み取り専用) | A list of fields that triggers an attribute rule to run when a feature is updated. Triggering fields are only applicable for immediate calculation and constraint rules that have an update triggering event. | Field |
type (読み取り専用) | The attribute rule type.
| String |
userEditable (読み取り専用) | Specifies whether the rule allows editing of the attribute field that is being modified by the rule.
| Boolean |
コードのサンプル
The following stand-alone Python script prints a report of the attribute rule properties for a feature class:
# Import the required modules
import arcpy
# Path to the input feature class or table
fc = "C:\\MyProject\\MyDatabase.sde\\myGDB.USER1.Building"
# Print a report of the attribute rule properties
attRules = arcpy.Describe(fc).attributeRules
print("- Attribute Rule Properties -")
for ar in attRules:
if "Calculation" in ar.type:
print("- Calculation Rule:")
print(f" Name: {ar.name}")
print(f" Creation time: {ar.creationTime}")
print(f" Field: {ar.fieldName}")
print(f" Subtype code: {ar.subtypeCode}")
print(f" Description: {ar.description}")
print(f" Is editable: {ar.userEditable}")
print(f" Is enabled: {ar.isEnabled}")
print(f" Evaluation order: {ar.evaluationOrder}")
print(f" Exclude from client evaluation: {ar.excludeFromClientEvaluation}")
print(f" Triggering events: {ar.triggeringEvents}")
print(f" Triggering fields: {ar.triggeringfields}\n")
print(f" Script expression: {ar.scriptExpression}\n")
print(f" Is flagged as a batch rule: {ar.batch}\n")
print(f" Severity: {ar.severity}\n")
print(f" Tags: {ar.tags}\n")
elif "Constraint" in ar.type:
print("- Constraint Rule:")
print(f" Name: {ar.name}")
print(f" Creation time: {ar.creationTime}")
print(f" Subtype code: {ar.subtypeCode}")
print(f" Description: {ar.description}")
print(f" Is editable: {ar.userEditable}")
print(f" Is enabled: {ar.isEnabled}")
print(f" Error number: {ar.errorNumber}")
print(f" Error message: {ar.errorMessage}")
print(f" Exclude from client evaluation: {ar.excludeFromClientEvaluation}")
print(f" Triggering events: {ar.triggeringEvents}")
print(f" Triggering fields: {ar.triggeringfields}\n")
print(f" Script expression: {ar.scriptExpression}\n")
print(f" Tags: {ar.tags}\n")
elif "Validation" in ar.type:
print("- Validation Rule:")
print(f" Name: {ar.name}")
print(f" Creation time: {ar.creationTime}")
print(f" Subtype code: {ar.subtypeCode}")
print(f" Description: {ar.description}")
print(f" Is enabled: {ar.isEnabled}")
print(f" Error number: {ar.errorNumber}")
print(f" Error message: {ar.errorMessage}")
print(f" Script expression: {ar.scriptExpression}\n")
print(f" Is flagged as a batch rule: {ar.batch}\n")
print(f" Severity: {ar.severity}\n")
print(f" Tags: {ar.tags}\n")
The following stand-alone Python script prints a report of the check parameter properties of a Data Reviewer-generated attribute rule.
# Import the required modules
import arcpy
# Path to the input feature class or table
fc = "C:\\MyProject\\MyDatabase.sde\\myGDB.USER1.FacilitySite"
# Print a report of the checkParameter properties
attRules = arcpy.da.Describe(fc)['attributeRules']
for rule in range(len(attRules)):
for key, value in attRules[rule]['checkParameters'].items():
print(f"{key}: {value}")