Ist es mit dem PythonPart AttributeWorkflow möglich, Benutzerattribute mit Formeln zu definieren?
Mit keiner API (auch nicht mit Python) kann man ein Formel-Attribut definieren!
Als Alternative würde ich die Attributdefinitions-Datei gern per Skript selbst erzeugen.
Allerdings ist für mich unklar, wie der Wert des Tags zu bestimmen ist.
Wenn man weiß, wo die Definitionen gespeichert sind, und dass das ein XML-Datei ist, sollte es nicht so schwierig sein, die "Bedeutung" der Tags herauszufinden. Einfach mal ein paar verschiedene Attribute anlegen, und nachschauen, was dann in der Datei steht.
Bei Attributen mit Formeln ist dieser Wert nicht 0.
Ebenso ist die Bedeutung des Tags nicht klar.
Formelattribute haben einen Tag "Formula", z.B.:
_IF_(PARENT(Obj_Floor(@423@))=@210@)1_ELSE_0
Zudem weiss ich nicht, wo die UUID eines Attributs in Allplan verwendet wird:
Nur in Formeln und Listen, in denen statt der Laufnummer die UUID referenziert wird?
Oder wird die UUID auch mit Elementen im Modell gespeichert?
Soweit ich weiß, wird nur die ID (Attribut-Nummer) im Teilbild (Modell) gespeichert.
Der Name bzw. die UUID hingegen ist nur zur Identifizierung in der UI vorhanden.
Aber Achtung: Der Name muss trotzdem "Unique" sein, und zwar über alle Attribut-Defintions-Dateien hinweg! Außerdem muss der Typ "passen", d.h. wenn in der Definitions-Datei das Attribut mit der Nummer 2000 ein Integer-Attribut ist, dann kann der Typ spätestens nachdem ein solches Attribut im Modell gespeichert wurde, nicht mehr geändert werden. Sonst gibt es Fehlermeldungen. Wenn ein solches Attribut hingegen gelöscht wird, bleiben die Attribute im Modell, werden aber nicht mehr angezeigt, solange man nicht ein Attribute mit der Nummer 2000 und dem passenden Typ neu erzeugt.
Bei dem geschilderte Verhalten von Allplan würde ich dringend davon abraten, die XML-Definitions-Datei
per Script (automatisiert) zu erstellen oder zu ändern! Warum:
Nun, weil man dazu erst mal alle anderen XML-Definitions-Dateien lesen muss, um Kollisionen zu vermeiden. Dazu muss man zuerst mal wissen, ob die Benutzer-Attribut-Definitionen aus dem Büro(STD) oder aus dem Projekt gelesen werden müssen. Schon daran scheitert sogar Allplan beim Formeleditor bzw. bei der Report-Definition seit Jahren.
Die Definitions-Dateien werden zudem erst beim "Betreten" des Projekts einmalig gelesen!
Wenn dabei in einer Dateien ein Fehler auftritt, werden alle Attribut-Definitionen verworfen, und Allplan "kennt" keine Attribute mehr, KEINE! Damit ist Allplan nicht mehr benutzbar!
Ein gut gemeinter Rat: Finger weg davon. Das kann nur schiefgehen!