Das Problem entsteht an der Stelle, wo das SmartPart kopiert wird.
Da es ein Makro ist, kopiert Allplan nur die Macro-Verlegung, beide Verlegungen bekommen ihre
Geometriedaten aus derselben Definition.
Beim Ändern schaut der Algorithmus nur nach, ob andere SmartPArt-Makros sich die Definition mit dem
geänderten "teilen", und dann kommt die Frage "Gleiche aktualisieren?".
Ändern könnte dieses Verhalten nur Allplan, indem es ein DeepCopy für bestimmte Makros macht, wo
sowohl Verlegung als auch Definition kopiert werden.
Nun zum Workaround:
RND(100000) ist eine Möglichkeit.
Ein viel elegantere Möglickeit ist, die UUID der Makroverlegung als Identifier zu benutzen.
Diese wird nämlich beim kopieren "hochgezählt".
Wir finden diese im Attribut @10@ mit dem Namen "Allright_Bauteil_ID".
Also braucht man nur einen Parameter id zu erstellen, und diesen an das Attribut @10@ zu binden.
Damit die Frage "Gleiche aktualisieren" nicht mehr kommt, muss man allerdings NACH DEM KOPIEREN ein
Update aller SmartParts machen.(s. smartpart_gleiche.mp4) Dabei werden die Definitionen kopiert, und alle Verlegungen erhalten ihre eigenen Definition.
Das gilt übrigens auch für die Lösung mit RND(100000).
Eine bessere Lösung wäre folgende:
In jedem SmartPart kann man einstellen, ob dieses SmartPart nach gleichen suchen soll, oder nicht.
Damit wäre die "globale Abschaltung" nicht nötig, und jedes SmartPart verhält sich wie dort festgelegt.