Understanding schematic attribute storage and valuation modes

When creating a schematic attribute, the storage and evaluation mode must be specified. When you specify the storage, you define whether the schematic attribute values must be stored in the schematic dataset. Specifying the schematic attribute evaluation mode determines when the schematic attribute values have to be reevaluated.

Schematic attribute storage

There are three options for schematic attribute value storage:

When creating a schematic attribute, a default storage mode is automatically set. This default mainly depends on the type specified for the attribute, but it generally can be changed if needed. The table in the Types of schematic attributes topic gives the default storage mode for each type of schematic attribute.
CautionCaution:

For a schematic attribute whose name corresponds to a predefined attribute name, storage cannot be configured. Storage of those specific attributes is entirely managed by Schematics without any configuration. In most cases, it is based on a system field in the related schematic feature class or diagram class.

Field storage

Field is the default storage value suggested for most attributes. It allows schematic attribute values to be stored in a field in the related schematic feature class or diagram class. It makes those values available when using the Identify tool on schematic features or when clicking Open Attribute Table from any feature layer that comprises a schematic layer.

NoteNote:

If you want schematic attributes to specify how schematic features will be displayed and labeled in schematic diagrams, their values must be stored as fields in their related schematic feature class.

When saving a schematic dataset and a schematic attribute with field storage has been configured, Schematics searches for a field whose name corresponds to the attribute name in the schematic feature class or schematic diagram class on which that attribute applies. If such a field doesn't already exist, it will try to create it, but the field creation may not end as expected; for example, if schematic diagrams stored in this schematic dataset are opened or if the geodatabase containing the schematic dataset is currently selected in the Catalog tree, the schematic feature class/diagram class in which the field must be created may be locked. In that case, automatic creation of the field doesn't succeed. To avoid such issues, when you have to configure a schematic attribute with field storage, it is recommended that you operate in two phases:

Property Set storage

The Property Set storage option must be used when you want to store the schematic attribute values in the schematic dataset but you don't need this information to be clearly available from a field in the related schematic feature class or diagram class. In that case, a property set property whose name corresponds to the schematic attribute name will be automatically managed in the PROPERTYSET field of the related schematic feature or in the BLOBS field of the related schematic diagram each time the schematic attribute is evaluated.

No Storage

The No Storage mode must be used when the schematic attribute values don't need to be stored in the schematic dataset. It is often the storage to specify for schematic attributes whose values are used as part of another attribute while these second attribute values are themselves stored.

Schematic attribute evaluation

There are four choices for when schematic attribute values are evaluated:

When creating a schematic attribute, a default evaluation mode is automatically set. Like the storage mode set by default, this default evaluation mode mainly depends on the type specified for the attribute (see the table in the Types of schematic attributes topic for more details on the default evaluation mode per attribute type).

On Generate/Update evaluation

Schematic attributes with On Generate/Update evaluation are evaluated at diagram generation. They are then reevaluated each time the schematic diagram is updated. Outside of these particular moments in the schematic diagram's life, they are never reevaluated.

This type of evaluation is the most common used.

On Start Editing evaluation

When the evaluation type is set to On Start Editing, schematic attributes are not only evaluated when the diagram is generated and updated but also each time the schematic diagram is loaded in memory—for example, each time an edit session is started on the schematic diagram. In that case, if attribute values have changed and the storage mode is Field or Property Set, the new values are automatically stored in the related schematic feature class or diagram class table when saving diagram edits.

NoteNote:

A diagram is always loaded in memory when an edit session is started on it. But it can also be automatically loaded in memory at its opening.

Learn more about schematic diagrams loaded in memory

The On Start Editing type of evaluation is predefined for any attribute you want to be regularly evaluated without updating the entire diagram content. It is also defined for attributes specified for schematic feature classes that have been configured with dynamic custom queries.

Learn more about schematic feature classes with dynamic custom queries

On Refresh/Redraw evaluation

Configuring a schematic attribute with the On Refresh/Redraw evaluation mode causes the schematic attribute values to be systematically reevaluated at diagram generation, each time it is updated, when it is loaded in memory, and also each time the schematic diagram is refreshed or redrawn—when a scale change or extent change occurs in the diagram, when schematic features contained in the diagram are moved, and so forth.

This type of evaluation can be interesting when the schematic attributes are linked to data that often changes (for example, with SCADA applications).

CautionCaution:

Like any schematic attribute with another evaluation mode, the On Refresh/Redraw schematic attributes can directly be used to set the schematic feature symbology whatever their attribute type is. However, the On Refresh/Redraw schematic attributes cannot directly be used for labeling when its type is Associated Field. In that specific case, ArcMap labeling engines don't force the load of the associated field values by default, but you can force this loading when using the following advanced label expression:

Advanced expression to get labels based on an Associated Field schematic attribute with the On Redraw/refresh evaluation mode correcly display.

Input parameters:

  • [ATTR_AS_LABEL]: the schematic attribute you want to be used for labeling.
  • [PROPERTYSET], [DATASOURCEID], [UCID], and [UOID]: the schematic feature class fields that have to be loaded to keep the related associated field value up-to-date.

Note that [DATASOURCEID], [UCID], and [UOID] fields are available from the Fields list in the Label Expression dialog box and can be picked up from this list when building the following advanced expression. But since the [PROPERTYSET] field is not available from this list; you must directly type it in the expression box.

Function FindLabel([PROPERTYSET],[DATASOURCEID], [UCID], [UOID], [ATTR_AS_LABEL])
			FindLabel = [ATTR_AS_LABEL]
End Function

As Needed evaluation

A schematic attribute with the As Needed evaluation mode chosen is generally configured for a schematic attribute that makes up another attribute. In that case, it is evaluated when that other attribute is evaluated.

3/5/2014