Please enable JavaScript to view this site.

Version:

API documentation: https://resources.geocom.ch/VertiGIS/VertiGIS_Attribute_Form/1.5.0/types/common_SchemaInterfaces.Expressions.html

Expressions are reusable formulas written in ESRI Arcade, a scripting language designed for GIS calculations. They let you:

Perform calculations (e.g., convert meters to feet)

Display dynamic text (e.g., "Updated by John on 2/18/2026")

Implement business logic (e.g., show a warning if pressure exceeds limits)

How to Define Expressions

In the expressions section, you create a library of named expressions using a key-value structure:

Key: A unique name (e.g., calculateArea, fullAddress)

Value: The Arcade code that performs the calculation

Expressions are dynamic - they recalculate automatically when field values change in the form.

JSON Structure

Translations JSON structure

Built-in Helpers

Access Feature Data

Use the special variable $feature to access field values from the current feature:

Syntax: $feature.fieldname

Example: $feature.diameter gets the diameter field value

Attribute names are not case-sensitive - $feature.ObjectID and $feature.objectid are equivalent.

Access User Data

A second built-in variable, $user, provides information about the currently logged-in portal user.

Available properties include:

Property

Type

Description

userName

string

Login name of the user

fullName

string

Full display name of the user

id

string

Unique ID of the user

culture

string / null / undefined

Culture setting of the user

units

"english" / "metric" / null / undefined

Preferred unit system of the user

role

"org_admin" / "org_publisher" / "org_user" / null / undefined

Portal role of the user

privileges

string list

All portal privileges assigned to the user

groups

string list

Names of portal groups the user belongs to

Example use case: Automatically record who last modified a feature by referencing $user.fullName in an expression.

DomainName Function

The DomainName Arcade function returns the human-readable label for a field value, resolving coded value codes to their display names when a domain is present.

Syntax: DomainName($feature, "attributeName")

Behavior:

If the field has an Esri coded value domain - returns the domain value (label) for the stored code

If the field has coded values defined in the attribute form configuration - returns the matching label for the stored code

If no domain or coded values are configured - returns the raw attribute value directly

Example: A pipe material field stores code 10. DomainName($feature, "material") returns "PVC" instead of 10.

Example

Scenario:

You manage a pipeline network and need to:

1.Convert radius from meters to centimeters for easier reading

2.Display a standardized description

{
"expressions": {
  "radiusInCentimeters": "$feature.radius * 100",
  "pipeDescription": "'Pipe ID: ' + $feature.objectid + ' - Material: ' + $feature.material"
}
}

How this works:

radiusInCentimeters: If a pipe has radius = 0.5 meters, this expression returns 50

pipeDescription: For a pipe with objectid=1234 and material="Steel", this generates: "Pipe ID: 1234 - Material: Steel"

Using Expressions in Your Configuration

Once defined, reference expressions anywhere in your configuration using the @ prefix:

{
"fields": [
  {
    "name": "radius_display",
    "expression": "@radiusInCentimeters",
    "title": "Radius (cm)"
  }
]
}

Pro tip: You can write Arcade code directly in most places, but defining expressions is better when:

You use the same calculation multiple times

The logic is complex and benefits from a descriptive name

You want to maintain calculations in one central location

 

© 2026 VertiGIS North America Ltd. All Rights Reserved. | Privacy Center | Imprint
Documentation Version 1.12.0 (5dfa7be4)