Building parametric models in Abaqus CAE may seem trivial at first blush, simply set CAE to output ids instead of masks and insert a little python code where needed. After spending many hours developing the application, you deploy and all the engineers are happy. Until you upgrade Abaqus to the next release.
I have found that with each release of Abaqus, the vertex, edge, face, and cell mappings are completely different. Thus all of your hard work is for naught.
The only solution is to carefully code your application and use the findAt() method rather than explicit ids. Since the CAE api exposes methods for finding adjoining entities, you can use this to your advantage within a graph structure. A robust, pure-python graph package is Networkx. With this package, DFS or BFS is easy. Since the package is pure python, installation is quite simple.