OK, dann verfasse ich selber mal eine Antwort auf meine Frage :-)
Nach einigen Tagen mit der CATIA Doku wird manches klarer.
Prinzipiell wird jede Applikation, die Veränderungen im CATIA Modell vorgenommen hat, über einen "application string" identifiziert (max.8 char). Unter diesem String können sich dann bis zu 16000 sogenannte "application sets" verbergen. In jedem dieser Sets wiederum gibt es "application elements" und die verweisen dann tatsächlich auf Geometrieelemente oder andere application elements. Damit das Ganze nicht so eintönig wird, gibt es 12 verschiedene Arten von Links, 6x weak und 6x strong. Elemente, auf die ein strong link verweist, können i.d.R. nicht mehr bewegt oder verändert werden.
Folgendermassen kann man sich mit CATGEO durch diese Hierarchie bewegen:
GMAPPC: liefert eine Liste der application strings im Modell
(eigentlich 2 Listen, die erste enthält die Applikationen, die
wirklich Elemente verändert/erzeugt haben)
GMAPPL: die Strings müssen nochmal extra registriert werden
GMASST: Schleife über alle application sets, bis 1 zurückgegeben wird
GMASEL: Schleife über die application elements in jedem set
GMAREL: liefert Anzahl der Links auf ein application element
GMARLN: liefert das Geometrieelement zu einem Link
GMAUNL: Löschen eines Links
Das hat mit meinen Testdaten prima funktioniert,man erhält jede Menge ID's von Sets und Elementen. Leider waren aber trotzdem immer noch protected elements vorhanden, mir ist bisher nicht klar, woher.
Dafür gibt es aber eine andere, viel einfachere Lösung, mit protected elements umzugehen (die mir natürlich zuletzt eingefallen ist):
Mit der Funktion GCWDUP kann man solche Elemente kopieren, man erhält eine neue ID und das kopierte Element ist nicht mehr protected !
Auf die Art und Weise arbeitet meine Funktion seit einiger Zeit problemlos mit hunderten von CATIA Modellen.
Viele Grüsse
Integrator
IP