Please enable JavaScript to view this site.

Version:

Catalogs that can be defined within the Studio Desktop are based on single geodatabase table. For any catalog table defined in the Class Configuration, a corresponding schema is stored as well. At runtime, the schema for a catalog is used to assemble the content for the dedicated catalog.

Catalog Tables allow for creating domains and multi-stage (contingent) catalogs. Catalog tables are typically part of the schema of the underlying geodatabase, or at minimum, part of the map where the current layer or standalone table is defined.

All catalog schemas are managed in the configuration using unique names. Within the Catalog Schema Repository, catalog schemas can be registered, modified, or removed.

Catalog Types

There are two types of catalogs, that can be registered at the repository:

Catalogs based on Lookup-Tables

Catalogs based on Contingent-Tables

Domain or Lookup Tables

Domain or Lookup Tables are used for the definition of Domain Values. The simpliest lookup table consists just out of a single column, that contains all the domain values.

A lookup table supports the following features:

Coded Values

Visibility

Sort Order

Favorites

Coded Values

A Lookup Table that supports Coded Values defines two columns, where one columns defines the code (usually a numerical value) and the other columns refers to the corresponding label or title (usually a text value).

Visibility and Historization

Usually, all rows from a Lookup Table are assembled into the corresponding domain catalog. If specific entries shall be part of the domain catalog, but not explicitly selectable from the UI, the visibility for those entries can be defined using an additional column, that contains the values 1 or 0 (or null referring to default).

Sort Order

Domain entries from a Lookup Table can be set in a specific order using an additional column used for sorting. A Sort Order column usually defines numerical values.

Favorite Declaration

Specific Domain entries can be marked as Favorites. A domain entry marked as Favorite will appear in the Favorite List. Favorites are defined using an additional column, that contains the values 1 or 0 (or null referring to default).

Contingent Tables

Contingent Tables are used for the definition of Multistage Catalogs. Multistage or Multilevel Catalogs are used to combine values for a set of attributes, whose values define predefined tuples.

The schema for a Contingent Table consists out of a set of key domains and an optional set of additional domains. The columns for every key and additional domain are part of the schema of the Contingent Table.

Configuration

All Catalog Schemas are made persistent with the application configuration file (default.vgappconf). This is a JSON file that contains the schemas section.

The schemas section in the default.vgappconf is defined as a dictionary of schema names and schema definitions:

 "schemas": {
   "<Catalog Name>": {
     "$type": "<Catalog Type>",
     "table": "<Catalog Table>",
     ...
   }

The following JSON catalog types are currently supported:

lookupTable - Use this $type for the definition of a domain or lookup table.

contingentTable  - Use this $type in order for the definition of contingent- or multistage tables.

Domain Table Configuration

Table CAT_LIFECYCLE_STATUS

STAT_ID

DISPLAY_NAME

IS_VISIBLE

SORT_ORDER

FAV_MARKER

0

'Undefined'

null

0

null

1

'Planned'

null

1

1

2

'Under Construction'

null

2

null

3

'In Operation'

null

3

1

4

'Out of Operation'

null

4

1

5

'Disused'

null

5

null

6

'Abandoned'

null

6

null

7

'Legacy'

0

null

0

8

'Legacy (Custom)'

0

null

0

9

'Removed'

null

100

0

Table Schema

The Table Schema for this sample catalog is as following:

Column

Remark

STAT_ID

Column with catalog value, that refers to the Domain Code

DISPLAY_NAME

Column with title, that refers to the display name for the corresponding code.

IS_VISIBLE

Column with numerical indicator value, that refers to the visibility for the corresponding code.

SORT_ORDER

Column with numerical indicator value, that is used to sort the domain entries.

FAV_MARKER

Column with numerical indicator value, that is used to identify the domain entries, that can be selected from a list favorites at the UI.

The configuration entry at default.vgappconf is as following:

  "Lifecycle_Stats": {
      "$type": "lookupTable",
      "table": "CAT_LIFECYCLE_STATUS",
      "column": "STAT_ID",
      "labelColumn": "DISPLAY_NAME",
      "visibilityColumn": "IS_VISIBLE",
      "sortColumn": "SORT_ORDER",
      "favoriteColumn": "FAV_MARKER"
    }

Contingent Table Catalog Configuration

Sample 1 "Pipeline Types"

Table CAT_PIPE_TYPES

LT_CODE

LT_NAME

LT_SORT

MAT_CODE

MAT_NAME

PROF_DIM

SAP_TP_NO

0

Unknown

0

0

Unknown

null

null

0

Unknown

0

1

Copper

0.067

01-A-S-EXT-A01-P1234

0

Unknown

0

1

Copper

0.0685

01-A-S-EXT-A01-P2345

0

Unknown

0

2

PE/HDPE

0.067

...

1

ASTM A106

1

0

Unknown

null


1

ASTM A106

1

1

Aluminium

0.067


1

ASTM A106

1

1

Aluminium

0.085


1

ASTM A106

1

1

Aluminium

0.106


1

ASTM A106

1

1

Aluminium

0.133


1

ASTM A106

1

2

Copper

...


1

ASTM A106

1

3

Ductile Iron

...


2

A335

1

0

Unknown

...


2

A335

1

1

Aluminium

...


2

A335

1

2

Copper

...


3

S 235

...





Table Schema

The Table Schema for this sample catalog is as following:

Column

Remark

LT_CODE

This is the column, that contains the code for the pipe type. The pipe type refers to the key domain for the first attribute at the catalog (Position in multilevel catalog will be 0)

LT_NAME

This is the column, that contains the title for the corresponding pipe_type code.

LT_SORT

This column contains the sort order criterium, that is used to bring all pipe type nodes at the catalog tree in a specific order.

MAT_CODE

This is the column, that contains the code for the pipe material. The pipe material refers to the key domain for the second attribute at the catalog (Position in multilevel catalog will be 1)

MAT_NAME

This is the column, that contains the title for the corresponding pipe_material code.

PROF_DIM

This is the column, that contains the value for the pipe profile dimension. The pipe profile dimension refers to the key domain for the third attribute at the catalog (Position in multilevel catalog will be 2)

SAP_TP_NO

This is the column refers to the technical place from SAP and will be used as an additional value, that depends at the correspondig value tuple pipe type > pipe material > pipe profile dimension

The configuration entry at default.vgappconf is as following:

  "PipeTypes": {
      "$type": "contingentTable",
      "table": "CAT_PIPE_TYPES",
      "domains": {
        "$type": "contingentProperties",
        "$values": [
          {
            "column": "LT_CODE",
            "labelColumn": "LT_NAME",
            "sortColumn": "LT_SORT"
          },
          {
            "column": "MAT_CODE",
            "labelColumn": "MAT_NAME"
          },
          {
            "column": "PROF_DIM"
          }
        ]
      },
      "additions": {
        "$type": "contingentProperties",
        "$values": [
          {
            "column": "SAP_TP_NO"
          }
        ]
      }
    }

This sample defines that schema for a contingent catalog table structured as following:

<pre> Pipeline +- Type [LT_CODE] | +- Material [MAT_CODE] | +- Profile Diameter [PROF_DIM] => SAP Technical Place [SAP_TP_NO] </pre>

The hierachical catalog is defined using the LT_CODE column, for root items, entries from MAT_CODE column are used as children at level 1 and entries from the PROF_DIM column are used as leafs at level 2

The nodes defined by the LT_CODE and MAT_CODE columns are defined as coded values where the LT_CODE and MAT_CODE columns refer to the data (or code) and the LT_NAME and MAT_NAME columns contain the titles (or labels) for this nodes.

The column SAP_TP_NO is defined, when a proper PROF_DIM leaf is selected.

Sample 2 "Address Navigation"

Table by_adressen

distr

dstr_id

cty

str

strcode

str_hist

hnr

hnr_sort

Oberpfalz

1023

Amberg

Bahnhofstrasse

12659

null

1

0

Oberpfalz

1023

Amberg

Bahnhofstrasse

12659

null

1a

1

Oberpfalz

1023

Amberg

Bahnhofstrasse

12659

null

1bf

2

Oberpfalz

1023

Amberg

Othmayrstrasse

12662

null

1

0

Oberpfalz

1023

Amberg

Othmayrstrasse

12662

null

123

10

Oberpfalz

1023

Amberg

Othmayrstrasse

12662

null

196

101

Oberbayern

2053

München

Hilblestraße

18062

1

1

null

Oberbayern

2053

München

Hilblestraße

18062

1

2

null

Oberbayern

2053

München

Hilblestraße

18062

1

4

null

Oberbayern

2053

München

Hilblestraße

18062

1

16a

null

Oberbayern

2053

München

Kleiststraße

18062

1

1

null

Oberbayern

2053

München

Kleiststraße

18062

1

2

null

Oberbayern

2053

München

Kleiststraße

18062

1

4

null

Oberbayern

2053

München

Kleiststraße

18062

1

16a

null

The configuration entry in default.vgappconf is as follows:

   "PipeTypes": {
      "$type": "contingentTable",
      "table": "by_adressen",
      "domains": {
        "$type": "contingentProperties",
        "$values": [
          {
            "column": "dstr_id",
            "labelColumn": "distr"
          },
          {
            "column": "cty"
          },
          {
            "column": "strcode",
            "labelColumn": "str",
            "visibilityColumn": "str_hist"
          },
          {
            "column": "hnr",
            "sortColumn": "hnr_sort"
          }
        ]
      }
    }

This sample defines that schema for a contingent catalog table structured as follows:

<pre> +- District [dstr_id] +- City [cty] +- Street [strcode] +- House No [hnr] </pre>

Storage locations for Catalog Tables

With no further information, catalog tables are resolved from the current map by default. In which, the given catalog table name is either the name of the layer or standalone table from the TOC, or the given name is equal to the table name behind the resolved map member.

The catalog tables from the configuration can be resolved using relative and absolute item URLs to local databases that are part of the current project.

Catalog tables that refer to feature layers URLs can also be used.

Catalog Name

Remarks

CUS_C_MY_CATALOG

This name is used to resolve the target catalog table from the map. There can either be a map member with name CUS_C_MY_CATALOG, or a feature layer or standalone table with a table named CUS_C_MY_CATALOG

C:\temp\MyFileGeodatabase.gdb\CUS_C_MY_CATALOG

This is a sample for an absolute item URL that refers to a table from a file geodatabase. Please note, that this file geodatabase has to be located on the current machine under the given folder path.

MyProject.geodatabase\CUS_C_MY_CATALOG

This is a sample item URL that refers to a table from a mobile geodatabase located relative to the current project root.

https://[host]/[service]/FeatureServer/[layerid]

This is a sample feature layer URL. This feature layer must be accessible from the current application.

Ensure that ArcGIS Pro contains the proper credentials for this feature server.

Queryable Catalogs

Any catalog that is defined using the schema from the application configuration is defined as a Queryable Catalog by default. This means the table is located and queried (the first time) when items are fetched. This is in contrast to domains and contingent values that are popuplated when a feature or object class is loaded. This means that domains and contingents can be queried only when the feature or row is opened within the Attribute Form.

© 2026 VertiGIS North America Ltd. All Rights Reserved. | Privacy Center | Imprint
Documentation Version 2.0 (b0e5d46a)