AnsweredAssumed Answered

Integrated Symbol Editor (ISE) Automation

Question asked by peter_festesen on Jan 30, 2018
Latest reply on Sep 2, 2020 by tmiddleton

From EEVX2.0, there is a new 'builtin' Symbol Editor, that shares the GUI with DxDesigner (now Xpedition Designer). It is called Integrated Symbol Editor (ISE)

One of the benefits is that the Settings for the tool are controlled in the same manner as for Xpedition Designer. Another benefit is that the Automation Layer is also the same for both tools. This is true in the meaning that you can now use .vbs and .efm instead of Tcl/Tk which was the scripting tool for NSE (New Symbol Editor), pre-EEVX2.0.

While we are waiting for the full documentation for the Automation Layer for ISE, this discussions aim is to try and clear some of the smoke and mystery about Automation for ISE. A code example is attached  at the bottom.

It has been said somewhere that DxDesigner Automation can be used for ISE - well, that is true to some extent.

Once symbols are open in ISE, it is an object of the SchematicSheetDocuments collection. As an example, the method

will close all currently open symbol tabs.


In order to do anything with the open symbols, you can use this example to get symbol details (LibrayName (partition), symbol name and extension. To get to the attributes of the symbol (most likely in order to list or modify them, you can go via the Activeview.Block.Attributes method as shown below :


for each symobj in Application.OpenBlocks(VDDT_SYMBOL)

      sLib = symobj.Libraryname

     sSchematic = symobj.GetName(2) 'Name of schematic of current block

     sSheet = symobj.SheetNum 'sheet number of current schematic block

     AppendOutput "SYMBATCH", stopcounter& "# - found open symbol : "& sLib &":"& sSchematic&"."&sSheet

    'Now, list the current properties (attributes and write them to the 'SYMBATCH' tab of ISEs Output Window

     For each attr in ActiveView.Block.Attributes

          Appendoutput "SYMBATCH","        "& attr.Name & "; "& attr.Value


    'Find a specific property for the currently active symbol

     Set myprop=ActiveView.Block.FindAttribute("Description")

    'if the property exists, modify the value

     If not(myprop Is Nothing) Then

          myprop.Value=myprop.Value & "MoreAdded" 'Does this every time you run the script

     End If

     'Now, save any changes we have made to the symbol

     Set myDoc = ActiveDocument



Next 'symobj

AppendOutput "SYMBATCH","Closed : "&sSchematic

SchematicSheetDocuments.Close 'close the symbol again immediately


How do I open the symbol(s) to modify ?

You ask how to open the symbols in the first place ? Here is the answer or part of it anyway.

I have not been able to figure out how to open ISE standalone WITH a library attached. Therefore, I currently

1)  Open Library Manager

2)  Select the library

3)  Open ISE from Library Manager

4)  In ISE, use the commandline, use ‘run <path to vbs file> ‘ or ‘form <path to efm file>’


As a sidenote, I'd like to point out that you can actually use startup scripts with ISE. BUT, they use the same startup scripts (in script.ini) as Xpedition Designer, be careful.

You can exploit the fact that when ISE is started, it is basically (no pun intended) Xpedition Designer, started with the -Embedding switch (note the uppercase 'E')

So you startup script (for example to build a menu for ISE, would have to check how ISE (Xpediton Designer is started) . If you are interested, let me know and I can post a snippet for that as well.


In order to open an existing symbol use

Application.launchsymboleditor("partition:symbol with extension"), or



In order to perform batch type operations, I used the code in the attachment (symedit_batch.vbs). As you will see, it makes use of a text file that contains a list of symbols to process. The attached txt file (ISE_out_total.txt ), provided as an example, can be used with the Mentor-provided Sample_Lib.


Note that the example code has hardcoded the path to the txt file  (line 40, sInFile= "C:\DATA\SampleLib2007\LogFiles\ISE_out_total.txt")


The example code will iterate through the provided txt list, and while you can have multiple symbols open at the same time, I found it better to Open the symbol, List/Modify, then Save and Close it again. Feel free to experiment and let us know what you find out.


Have fun !!!