Cross reference symbol in wrong position


 Product(s):Promis.e, Bentley Substation
 Version(s):08.11.11.xx - 08.11.13.73
 Environment:N/A
 Area:Component Management
 Subarea:Family Creation

Problem Description

The cross reference symbol that appears along with a parent symbol is not in the expected position. It may have appeared in a different position in a previous version of the software.

Reason

The cross reference symbol position can be specified in three places: on the parent symbol, in the device family definition, and in Project Options.  The software previously checked the parent symbol for the cross reference symbol position first, if it was not specified there, it checked the family, if not specified there it checked the project options. 

In SELECTseries 7, and going forward, the hierarchy of where the software will read the cross reference symbol position is:

  1. The device family.  If the X or Y offsets in the family definition contain non-zero values and are not null, and the offsets are relative to the insertion point of the parent, this position will be used.  

  2. The parent symbol.  If the X and Y offsets in the family definition are null or both zero, the cross reference symbol position defined in the parent symbol will be used.

  3. Project Options.   If the X and Y offsets in the family definition are null or both zero and the parent symbol specified by the device family contains no cross reference symbol position, the position specified for "Parent Cross Reference Position" in [[Options]] > Project Options > Display Formats > Device Cross Reference will be used.

Note:  In SELECTseries 6 (SS6), X and Y Offset values of 0 (zero) in the family are not ignored but are used.

If the problem is that the X offset is treated as small despite entering a larger value ending in 0 (zero), the cause could be a defect where the trailing zeros are truncated from the X offset values. See the X Offset values in family are ignored section.

Steps to Resolve

Using the hierarchy above, determine which method of specifying cross reference symbol position is intended, and modify the necessary item. 

Position is read from the parent but should be read from the family

  1. Right click the family in [[Catalog Manager]] and select Modify.

  2. Specify non-zero values for the X Offset and Y Offset fields.

  3. Save and close the family.

  4. Use the [[Update Family]] tool to update the project(s) with the new family definition.

Position is read from the family but should be read from the parent

  1. Right click the family in [[Catalog Manager]] and select Modify.

  2. Delete the values for the X Offset and Y Offset fields so that they are blank, or null, and not zero (in SS7 they can be zero and will be ignored).

  3. Save and close the family.

  4. Use the [[Update Family]] tool to update the project(s) with the new family definition.

Batch modifying multiple families

After upgrading from a previous version, users may find that the cross reference symbols appear in the wrong position due to changes in the hierarchy as described above.  The problem is usually that the default values for the X and Y offsets was zero and these values now must be changed to null in SELECTseries 6 so that the position in the parent symbol is used.  This can be done in bulk by using a Find & Replace tool to modify the .XML files for the family definitions and then rebuilding the catalog.

The following line is an example from a .XML file for a family.

xref name="" symbolName="Q22" abs="false" ip="0 0"

This line specifies that the cross reference symbol Q22 should be inserted with an X offset of 0 and a Y offset of 0 relative to the insertion point of the parent symbol.  In SS6, these zero values will be used instead of the position in the parent symbol.  In SS7 and later, the zero values are ignored and the position in the parent symbol is used.

With Notepad++, Search > Find in Files can be used to run a find and replace operation on all the files in a folder. 

Backup the catalog before attempting the following procedures. The [[Export Catalog]] is one way to do this.

To replace all 0,0 offsets with null offsets (useful for SS6 users):

  1. In Notepad++ Select Search > Find in Files
  2. Set Find what to: ip="0 0"
  3. Set Replace with to: ip=" "
  4. Set Filters to: *.*
  5. Set Directory to the folder containing the family .XML files.  It is recommended to try this on a copy of the production folder.
  6. Click the Replace in Files button.

To replace all X and Y offsets with null offsets regardless of current value:

Use the above process except set Find what to ip=".*" and select Regular expression for the Search Mode.

After modifying the .XML files in the Families folder of a catalog, rebuild the catalog by right-clicking it in [[Catalog Manager]] and selecting Rebuild.  Update projects with the new definitions using the [[Update Family]] tool.

X Offset values in family are ignored

If the problem is that the X offset is treated as small despite entering a larger value ending in 0 (zero), the cause could be a defect where the trailing zeros are truncated from the X offset values.

  1. Modify the family and specify an X Offset value that does not end in 0 (zero). For example, substitute 100.0 or 99 for 100.
  2. Update projects with the new family definition using the [[Update Family]] tool.

External Links

Notepad++ home

 Original Author:Matt_P

Keywords: TFS 5289