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 always welcomed. Please leave your comment or suggestion and help us with future development. Now, go ahead, Your Opinion Matters!

13 Responses to “SmartSort”

  1. Johnny

    Is it possible to get to have a feature where you can choose it to reorder by Part number or instance name? Where I work, we organize by instance name and now part number. Also for the settings here, the instance name is on the left and the part number is on the right in parenthesis. I find it stupid to order by instance name. They have it something and there’s no way for me to find it unless i go find the drawing, look up the instance name and hopefully find it if it’s ordered correctly in alphabetical order.

    • Tesak

      Hi Johnny,
      thanks for your comment. Yes, it should not be a problem to implement it. When I have time I try to upgrade it.


    Thanks for the application !

    It work great but i can’t manage to get it work when when i’m inside a component it simply doesn’t recognize it.

    It there something i’m missing ?

    Best regards


    WIN 7, CATIA V5 R21 64 bits , English

    • Tesak

      Well, application works only at the top level of your assembly. The only solution is to open your sub assembly in new window, press Reload button and reorder it as you need. However, CATIA command Open in a New Window works only for Products, not for Components.

  3. William Haushalter

    I’d like to be able to run SmartSort from a macro but all the examples I’ve found throws an error. Is there a way?

    Awesome program by the way!

    • Tesak

      Hi William,
      I would like to help you, but I am not sure what are you looking for. Could you please give me a better description of what do you want to achieve?

  4. 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

  5. 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.

  6. 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>