Label override
Note: This rule is deprecated. Use InstanceLabelOverride rule instead.
TypeScript type: LabelOverride.
Label override rules provide advanced ways to override instance labels and descriptions in exchange of some performance penalty.
Attributes
Name | Required? | Type | Default |
---|---|---|---|
Filtering | |||
requiredSchemas |
No | RequiredSchemaSpecification[] |
[] |
priority |
No | number |
1000 |
onlyIfNotHandled |
No | boolean |
false |
condition |
No | ECExpression | "" |
Overrides | |||
label |
No | ECExpression | "" |
description |
No | ECExpression | "" |
Attribute: requiredSchemas
Specifications that define ECSchema requirements for the rule to take effect.
Type | RequiredSchemaSpecification[] |
Is Required | No |
Default Value | [] |
Attribute: priority
Defines the order in which presentation rules are evaluated.
Type | number |
Is Required | No |
Default Value | 1000 |
Attribute: onlyIfNotHandled
Should this rule be ignored if there is already an existing rule with a higher priority.
Type | boolean |
Is Required | No |
Default Value | false |
Attribute: condition
Defines a condition for the rule, which needs to be met in order to execute it.
Type | ECExpression |
Is Required | No |
Default Value | "" |
Attribute: label
An expression whose result becomes the label.
Type | ECExpression |
Is Required | No |
Default Value | "" |
Attribute: description
An expression whose result becomes the description.
Type | ECExpression |
Is Required | No |
Default Value | "" |
Example
{
"ruleType": "LabelOverride",
"requiredSchemas": [{ "name": "MySchema", "minVersion": "1.2.3" }],
"priority": 999,
"stopFurtherProcessing": true,
"condition": "ThisNode.IsOfClass(\"MyItem\", \"MySchema\")",
"label": "\"Volume: \" & (this.Height * this.Width * this.Length)",
"description": "\"Physical item\""
}
Known issues
The rule should be avoided in favor of InstanceLabelOverride due to:
InstanceLabelOverride
rules always take precedence overLabelOverride
, no matter what their priorities are. A possible workaround is to avoid havingInstanceLabelOverride
rules for the class targeted by specificLabelOverride
. IfInstanceLabelOverride
rules come from a supplemental schema, that can't be controlled, there's an option to add such anInstanceLabelOverride
to reset overrides in supplemental ruleset:{ "ruleType": "InstanceLabelOverride", "priority": 9999, "class": { "schemaName": "MySchema", "className": "MyClass" }, "values": [] }
Nested
LabelOverride
rules (specified anywhere else other than at the root rules level) have no effect. A possible workaround is to move them to the root rules level.
Last Updated: 15 May, 2024