[Question] Attribute lesen

Tags:
  • Allplan
  • 2021
  • PythonParts
  • Attribute

Morgen zusammen,

ist es möglich die Attribute/Attributewerte eine PythonParts zu lesen? Also dass das PythonPart seine eigenen Attribute liest.
-> abgesetztes PythonPart -> Palette öffnen -> angehängte Attribute werden gelesen und in der Palette dargestellt. Ist dies möglich?
Infos zu "Attribute anhängen" und "andere Bauteile-Lesen" habe ich gefunden. Aber die Arbeit mit den Attributen des gerade geöffneten Objektes ist mir noch nicht klar.
Hat hierzu jemand Infos und/oder Erahrungen?

Bisher komme ich "nur" an folgende Daten, obwohl noch verschiedene andere Attribute am Objekt hängen (Bezeichnung 507 beispielsweise).
Element: ATTRIBUT_SPEICHER_19ER
Attributes: []
Element: Standardebenen
Attributes: [(10, '0001Ebe0000000013'), (12, 13), (120, 'St'), (214, ''), (334, ''), (335, ''), (498, 'Ebene')]
Element: Makrodefinition
Attributes: []
Element: Makrodefinition
Attributes: []

Wenn ich einen wert in der Palette ändere und anschließen auf "Schließen" klicke, bekomme ich die eine Ausgabe der Attribute. Aber diese Werte bräuchte ich zu beginn der Bearbeitung.

Element: PythonPart
Attributes: [(10, '0001Pyt0000004560'), (12, 4560), (120, 'm³'), (163, 86036.427897), (164, 43427.489127), (214, '0001 Mak 00001'), (216, 0.0), (217, 0.0), (218, 0.0), (219, 0.0), (220, 0., (221, 1.2), (222, 0.0), (404, 'Euro'), (498, 'PythonPart'), (507, 'eine neue Bezeichnung'), (539, 'PythonPart')]

Attachments (1)

Type: image/png
Downloaded 46 times
Size: 25,21 KiB

Also, kurze Aktualisierung:

Die Werte erscheinen auch beim "Objektstart". Vermutlich lag es vorher am Projekt,Teilbild oder Objekttesting, dass diese nicht zu Beginn angezeigt wurden.

Was mir aufgefallen ist, nicht immer bekomme ich die Attributwerte angezeigt, wenn ich das Objekt (PythonPart) zuvoir erstellt hatte. Sprich Bibliothek -> Objektwahl -> Einstellungen -> Absetzen -> Schließen und danach Objektpalette wieder öffnen -> "Attribute lesen". Bei dem einen Objekt wird alles angezeigt, beim anderen nicht. Wo hier das Problem liegt, kann ich derzeit nicht ermitteln.

Mein Problem liegt nun noch darain, dass ich die Eingabefelder der Palette nicht direkt aktualisiert bekomme, wenn ich auf den Button zum Lesen klicke. Hat hierzu jemen den ein oder anderen Vorschlag wie ich den Palette-Refresh anwerfen könnte?

Die Attribute werden erst beim Schreiben in die Datenbank an des Makro drangehängt.
Wenn das Pythonpart abgesetzt wird, ist es noch nicht in der Datenbank, sondern es wird nur ein Preview angezeigt.
Zu diesem Zeitpunkt hat es noch keine Attribute, die gelesen werden können!

Man müßte diese Attribute zunächst in Parametern halten, und diese in der GUI anzeigen, umd diese änderbar zu machen.
Bei Schreiben in die Datenbank müßten die Parameter dann die Attribute am PythonPart erzeugen.
Beim Modifizieren bzw. damit verbundenen Lesen des PythonParts müßten die Attributwerte in die Parameter zurückgeschrieben werden,
um zwischenzeitliche Änderungen an den Attributen durch den Benutzer "mitzubekommen".

All das funktioniert bei dan SmartParts automatisch durch das Verknüpfen eines Paramters mit einem Attribut.
Und darüberhinaus aktualisiert sich ein SmartPart im Anschluss automatisch, wenn eines der verknüpften Attribute geändert wird.

Ein solcher Automatismus wär auch im PythonPart-Framework sicher wünschenswert...