Comparing Feature Dictionaries

This task shows how to compare the classes and attributes in two feature dictionaries. A separate task allows you to import classes and attributes from one feature dictionary into another.

This task allows you to compare the classes and attributes in one feature dictionary to those in a second one. There can be several uses for this function, one of them being importing the classes and attributes that a subcontractor has added to a feature dictionary into the feature dictionary maintained by the main contractor.

Your goal is to have a mapping table that shows the classes and attributes in the feature dictionary you want to import and the classes and attributes in the feature dictionary you are comparing against. This is done by a tool developed for the purpose. Before you run this tool you must "export" both feature dictionaries, explained elsewhere. Exporting them converts them into XML format, which is needed to compare the two. Once you have exported them and run the comparing tool (called comparator) you will get three files which tell you: which classes have problems (do not exist in the mapping table or the XML file of your  feature dictionary), which classes need to be added to your feature dictionary and an overall report of what the tool has performed.

Before you begin this process you must set the directory path - this tells the tool the directory path in your installation.

  • In Windows, open a command prompt and press Enter after typing: set AECMIGR_DIRECTORYPATH= XXX\MigrationDirectory where XXX is the directory path to your installation.
  • In Unix: export AECMIGR_DIRECTORYPATH= XXX/MigrationDirectory where XXX is the directory path to your installation.
  • The user can check the current path by executing the comparator, or executing CATAecDictionaryComparator -h. The comparator will show the path as the first line of output.

 

  1. Export your own feature dictionary (Dictionary_B) and the feature dictionary you want to compare against (Dictionary_A). The process is explained in Exporting the V5 Feature Dictionaries.

 

 

1. To run the tool enter the following at a DOS prompt: CATAecDictionaryComparator -i (Dictionary_A) (Dictionary_B) -m (name of mapping table) -o (name for output) -V5

Where:

  • (Dictionary_A) is the XML file which contains the classes and attributes from the feature dictionary you are comparing against. It must include the XML extension.
  • (Dictionary_B) is the XML file which contains classes and attributes from your feature dictionary. It must include the XML extension.
  • (name of mapping table) is the name of the mapping table against which you want to compare. If you do not have a mapping table create an empty workbook using MS Excel, with a .csv extension. Enter the file name in this field - include the .csv extension.  The mapping table should be in the following directory: intel_a\startup\EquipmentAndSystems\MigrationDirectory\Dictionary\Mapping Table
  • (name for output) is the name for the three output files. If you enter the name MAR, for instance, then three files will be produced: MAR.html, MAR.xml and MAR.csv.

An entry may look like this: CATAecDictionaryComparator -i Dictionary_A.xml Dictionary_B.xml -m V5toV5ObjectMapping.csv -o MAR

2. When the tool (called Comparator) has finished running it will produce three reports and place them in the following directories: XML and CSV files in  intel_a\startup\EquipmentandSystems\MigrationDirectory\Dictionary\DDL_Files and the HTML file in ...\Reports.

Open the HTML file in a Web browser to see a full report.  The report begins with a table of contents that is hyperlinked to the entries. (The names in parentheses are internal names.) The entries in the report are color coded as follows:

  • Green: No action was taken. The class appears in the mapping table and the XML file of V5 classes.
  • Blue: The class appears in the mapping table, but not in the XML file of your feature dictionary (Dictionary_B.
  • Red: The class was not found in the mapping table or XML file of your feature dictionary (Dictionary_B).
  • Orange: Mapping does not exist in the mapping table ("no mapping"), or is badly mapped.

3. Open the XML file (using a text editor like Wordpad) to see a list of the classes that do not exist in your feature dictionary and can be imported.

<Class

Name="PipingPartFunc"

DisplayName="Piping Part Function"

Superclass="Component_Function"

Creator="System"

Domain="PIP"

UUID="b7acacd1_83_3a707981_10">

4. Open the CSV file using Microsoft Excel. It will look similar to the image below.

In the first three columns this table displays classes in the feature dictionary you are comparing against - Dictionary_B. You should fill in the 4th, 5th and 6th columns with  whatever you want the corresponding entry to be in your feature dictionary - Dictionary_A. In column 7 you should enter the domain, or application. (PIP=Piping Design, PID= Piping and Instrumentation Diagrams, EQT= Equipment Design, HVA=HVAC Design, etc.)

An asterisk in the Attribute column indicates that the entry is a class. If it has attributes then the lines that follow it will list the attributes under the same class name. In the example above, Line 2 shows a class. Lines 3, 4 and 5 show that the entries are attributes of the class Piping Line and are called Size, Part Description and Design Speed.

NOTE: Entries should refer to the internal name of the class or parent. The internal name is the name within the application and is not the one the user sees. Frequently it is similar, though, and the class name Piping Line may have the internal name PipingLine. You can find the internal name by looking at the XML file, where it's referred to as Name and Superclass.

5. Once you have entered the information you need to copy and paste it into the mapping table - in the current example it is V5ToV5ObjectMapping.csv.

5. If Dictionary_A has classes and attributes that do not have equivalent classes and attributes in Dictionary_B then you must repeat the steps explained in Importing the XML Output.

You can repeat these steps as many times as you want - until you are satisfied that your mapping table shows all the classes and attributes you want from Dictionary_A and their corresponding Dictionary_B classes and attributes.

  5. Import the classes and attributes that do not exist in your feature dictionary (Dictionary_B) by using the process explained in Importing the XML Output.