reorder a product structure in a smart way

Tired of Graph tree reordering?

One of the most annoying CATIA features when you work with large assemblies is reordering of specification tree in Products. Although built-in function for tree reordering is far from being flexible or effective, as a user you just do not have another option. Even as a programmer and this is quite surprising, there is no direct way of reordering components in specification tree. Hopefully it will change in the future, but such a function has not been exposed to CATIA API yet. One known workaround is to use some CUT & PASTE operations but this could be an option perhaps when you work with small assemblies. For large ones you definitely need something stronger. Why? Because CUT & PASTE operations switch components automatically into Design mode which significantly slows down CATIA performance and such a behavior is just not desired when you work with large assemblies. What's worse during CUT & PASTE process you are breaking links (drawing links, constraints).

Wanna see it in action?

Then watch this video:

SmartSort - Catia product tree reordering application

And how SmartSort works?

Do not expect miracles or some hidden CATIA secrets, our application is not even "SMART" :). It uses brute-force approach and built-in CATIA tree reordering function and it just simulates user input. This way you preserve all links and there is no need to switch into Design mode.

Main Features

  • Works in Visualization mode or Design mode
  • Perfect for large assemblies (no need to switch to Design mode)
  • Constraint links are preserved
  • No CUT & PASTE operations and no broken links
  • No components renaming
  • It uses CATIA native Graph tree reordering feature

Small Application Guide

  • Main window consists of two listboxes
    • Initial Order (left one): it is filled when you start an application and it reflects current order of components within active CATIA assembly.
    • New Order (right one): requested order.

With left & right arrow buttons you can move items between left and right listbox, with up & down buttons you move items within right listbox. Multiple selection is supported.

When Move As Group option is checked you move all instances of the same part at once (either in between listboxes or within right listbox)


A - Z, Z – A buttons sort an order in right listbox ascending / descending.

Reload button reloads items from active CATIA assembly to the left listbox and clear the right one.

Reorder button starts reordering of active catia assembly according New Order listbox.


What it looks like

User interface is really simple, all you have to do is copy items from "Initial Order" listbox to "New Order" listbox and press Reorder button.

  • Main application window
    User interface is very simple.
  • Catia window
    Application uses CATIA native Graph tree reordering function.

Please leave a comment ...

If you like / dislike any of our applications, your constructive feedback is alway welcomed. Please leave your comment or suggestion and help us with future development. Now, go ahead, Your Opinion Matters!

5 Responses to “SmartSort”

  1. Ian Cuz

    I have V5 R21 and needed to alter the following code line to add the Capital Letter ‘R’ in the word Reordering
    = CATIA.StartCommand(“Graph tree Reordering”)
    It now works for me

  2. Leandro

    Which are the requirements to use this aplication?
    I use Windows 8.1 and Catia V5R24 SP7. I downloaded it but Windows deleted it when I’ve tried to execute it

    • Tesak

      Hi Leandro,
      I think this has something to do with your company policy or antivirus software. It looks like the application was somehow detected as a threat and put into the vault. The application itself requires Microsoft .NET Framework which is probably part of your system already (if not you can download it from Microsoft website) and proper CATIA V5 installation.

  3. Fabio

    Hi, I tried to download and run SmartSort. I got the error message : unkown command: Graph tree reordering. I am using V5R26
    Best regards

    • admin

      Hi Fabio,
      something like this is very likely. An application is just a big hack around Windows API and CATIA user interface and it just simulates user input. In order to identify Graph tree reordering window and its children (components like buttons and lists), it is searching for them by name e.g. “Graph tree reordering” for the window, “OK”, “Apply”, “Cancel” for buttons and so on. The application has been tested only under V5R21 English version. In case that you are using different language version of CATIA than English or one or more components are named differently (which could be a case of V5R26), the whole process of components identification will fail. I am sorry for that, but I have no chance to test it in higher releases of CATIA and application is for the time being compatible only with English language version.


Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>