[Frage] Smartparts: Allplan Attribute über Eigenschaften modifizieren [Gelöst]


Hallo zusammen,

ich bin derzeit daran meine Smartparts so zu optimieren, dass die Parts über das Eigenschaftsfenster und die dort angezeigten Attribute geändert werden können. Also Attribut anklicken, neuer Wert eintragen und den Befehl Smartpart aktualisieren ausführen.

Hänge ich im Parameterfenster direkt an den Parameter das jeweilige Attribut, dann funktioniert der Workflow. Hänge ich das Attribut über den Befehl ATTR_SET an einen Parameter, dann funktioniert der Workflow nicht. Allplan möchte dann einfach nicht die neuen Eingaben nach „Smartpart aktualisieren“ in das Bauteil übernehmen. Ich möchte es über den ATTR_SET weg erreichen, da ich bestimmte Attribute an IF Funktionen geknüpft haben und nicht dauerhaft im Bauteil haben möchte wie es über die Zuordnung im Parameterfenster erreicht wird. Kennt jemand das Problem und vielleicht sogar eine Lösung oder Workaround um mein Problem zu beheben?

Grüße
Niklas

Lösung anzeigen Lösung verbergen

Mit ATTR_SET wird das Attribut bedingungslos geschrieben.
D.h. das SmartPart(-Script) "kontrolliert" dieses Attribut.
Von ausserhalb des SmartPart(-Script) ist es nicht änderbar!
ATTR_SET sollte man nur dann einsetzen, wenn es ein "Read-Only-Attribut" ist, z.B. zur Ausgabe einer
Mengenberechnung (Fläche, Volumen) oder eines Typ-Textes.

Anderensfalls solltest Du Parameter erzeugen, und diese Parameter an Attribute "verknüpfen".
Damit kann man durch einfache Attribut-Änderung den Parameter im und das Aussehen des SmartParts ändern.

Sobald ein verknüpftes Attribut geändert wurde, führt das SmartPart einen Refresh aus, d.h. es erzeugt sich mit den Attribut-Parametern neu.

Wenn das Attribut nicht mit einem Parameter verknüpft ist, wird es beim Refresh nicht eingelesen bzw. erzeugt gar keinen Refresh bei Attribut-Änderung.

Mit ATTR_SET wird das Attribut bedingungslos geschrieben.
D.h. das SmartPart(-Script) "kontrolliert" dieses Attribut.
Von ausserhalb des SmartPart(-Script) ist es nicht änderbar!
ATTR_SET sollte man nur dann einsetzen, wenn es ein "Read-Only-Attribut" ist, z.B. zur Ausgabe einer
Mengenberechnung (Fläche, Volumen) oder eines Typ-Textes.

Anderensfalls solltest Du Parameter erzeugen, und diese Parameter an Attribute "verknüpfen".
Damit kann man durch einfache Attribut-Änderung den Parameter im und das Aussehen des SmartParts ändern.

Sobald ein verknüpftes Attribut geändert wurde, führt das SmartPart einen Refresh aus, d.h. es erzeugt sich mit den Attribut-Parametern neu.

Wenn das Attribut nicht mit einem Parameter verknüpft ist, wird es beim Refresh nicht eingelesen bzw. erzeugt gar keinen Refresh bei Attribut-Änderung.

Vielen Dank für das schnelle Feedback! Jetzt ist mir die Thematik klar!