Operating Expand Links rules
Before configuring an Expand Links rule, you must check that the link schematic feature class required for the rule execution already exists in the schematic dataset and is associated with the schematic diagram template on which the rule is going to be specified.
Expand Links rules allow you to generate schematic diagrams after all links or some particular links implemented by a given schematic feature class have been expanded into several links according to specific values. These values may be brought by the original links themselves or by any other attributes brought by other schematic features contained in the diagram.
A typical example is the way phases are managed in an electrical data model:
The new created links are links implemented by the same link schematic feature class. You can choose to expand all the original links implemented by that schematic feature class or only some of them that have been filtered out via a SQL filter that works on the real feature class/object table associated with the link schematic feature class.
The specific values used to expand the original links come from one of the following:
- A particular field stored in the feature/object class associated with the specified link schematic feature class
- An extended criteria—that is, a custom function that returns the specific value for each original link that needs to be expanded
Then, for an original schematic link whose value indicates that it corresponds to N connections, N expanded links are going to be displayed in the resulting schematic diagram. The original schematic link will be kept and (N - 1) new schematic links based on the same link schematic feature class will be created. The properties related to the original schematic link will all be reported on the (N - 1) new schematic links.
For schematic diagrams based on the XML Builder, if you want the Expand Links rule to operate from a particular field stored in the associated feature/object class, the DataSourceName, UCID, and UOID items must all be specified in the input XML file so the feature/object associated with the schematic link to expand is clearly identified.
The steps below focus on the configuration of the Expand Links Rule Properties page that displays when clicking the Rule Properties button on the Rules tab toolbar while such an Expand Links rule has already been added to that tab. To learn about how to add any new rule item in that Rules tab and display the Rule Properties page, read the Specifying a schematic rule on a schematic diagram template topic.
For an Expand Links rule that has just been added in the Rules tab, clicking the Rule Properties button on the Rules tab toolbar opens the Rule Properties dialog box as follows:
Type a description for the rule in the Description field.
This description string will display in the Rules tab for the related rule item and will also display during schematic diagram generations and updates to inform users that the rule is being executed.
Select the name of the link schematic feature class with which the rule is going to work from the Select the link schematic feature class to expand drop-down list.
All link schematic feature classes that are associated with the schematic diagram template are available in this drop-down list.
At this step of the rule configuration, all the links implemented by that selected schematic feature class are candidates for expanding.
If you want to specify a SQL filter on the specified link schematic feature class so only certain ones are expanded do the following:
Click the Edit button at the right of the SQL Filter on associated feature/object class area.
The SQL Query dialog box opens
Build the SQL expression you want.
The filtering operates on the fields stored on the feature class or object class that is associated with the specified link schematic feature class.
The SQL Query dialog box closes, and the SQL filter you have just specified automatically displays in the SQL Filter on associated feature/object class area.
The specified SQL filter will then be used to determine the subset of schematic links that are candidates for expanding. Those that don't verify the SQL filter will be not expanded during the rule execution.
- Click the Edit button at the right of the SQL Filter on associated feature/object class area.
Now that you configured which links are going to be expanded, you need to focus on the values that will determine how those links must be expanded. This configuration happens on the Select value source section:
- When the values on which the rule is going to operate are stored on a field in the feature class/object table associated with the specified link schematic feature class, you must specify this field:
- Check the Select field option.
Select the desired field from the drop-down list.
All fields in the feature class/object table associated with the selected link schematic feature class are available in this list.
- Make sure the Use code name when a field has a code value domain check box is checked if the selected field has a coded value domain and you want these encoded values to determine how the initial schematic links will be expanded instead of using the direct field values.
- When the values on which the rule is going to operate are returned by a specific extended criteria that has been specifically developed for that purpose, do the following:
- Check the Use extended criteria check box.
- Select the desired extended criteria from the drop-down list.
An extended criteria for the Expand Links rule is a component that implements the esriSchematic.ISchematicExpandLinksByAttributeExtended interface.Note:
The Use extended criteria drop-down list and the Use extended criteria option on the Expand links rule attributes dialog box stay unavailable when no custom expanded link criteria are registered on the computer in the ESRI Schematic Rules Extended Criteria category.
The extended criteria component works from the schematic links candidate for expanding and returns the expected value for each candidate link. Such an extended criteria is usually developed when the values on which you want the rule to operate come from fields that are stored in another feature class/object table than the one associated with the specified link schematic feature class, for example, when those values are stored on fields in the link origin or extremity's node schematic feature classes.
Then, on the Value format section, you must specify the type of values with which the rule is supposed to deal:
- Choose Concatenation of characters for a string value. In this case, each value is decoded character by character, and the number of characters will determine the number of links that will be created for each initial link.
- Choose Set of characters with separator = and specify the character separator in the text zone at right when the returned information corresponds to a list of values, each value being separated by a specific character. The number of values found in the list will determine the number of links that will be expanded.
- Choose Range of values with separator = and specify the character separator in the text zone at right when the information contains two integer values, each value being separated by a specific character. The first value must be lower than the second value; if not, the related link will not be expanded.
- Choose Integer value for an integer value. In this case, the integers determine the number of links that will be expanded for each initial link.
Then, in the Target attribute area, you can specify a schematic PropertySet attribute so the rule stores the decoded value related to each created link. Type this schematic attribute name in the Name box.
For example, when the values on which the rule operates are a concatenation or a set of characters, the number of decoded characters determines the number of links that are going to be created, and each decoded character corresponds to one of those links. You may then want to keep the decoded characters and use them to configure particular layer properties on the expanded links. Defining a PropertySet attribute in the Name box makes the rule store the decoded values so you can use them afterwards.
If the specified attribute doesn't already exist for the expanded link schematic feature class, it is automatically created when the rule configuration is validated.Tip:
The PropertySet attribute must be configured to be stored as a field in the link schematic feature class if you want to use the decoded values in your layer properties.Caution:
When specifying an attribute name that already exists on the link schematic feature class, pay careful attention to not use a PropertySet that is already used for another purpose, because that PropertySet's values will be overwritten for all the links impacted by the rule during its execution.Note:
Specifying a target attribute for the decoded values is optional.
Uncheck the Display links having no value if you want all the links for which there is no value allowing the rule to work to not be displayed in the resulting diagram.
In this case, only the links that have been treated by the Expand Links rule display in the resulting diagram.
- Click OK to close the Rule Properties dialog box.