icon

Foro de Soporte Allplan

[Pregunta] Attribute und Properties übertragen

Etiquetas:
  • Visual
  • Scripting
  • Eigenschaften
  • übertragen
  • Format

Hallo Zusammen
Ich versuche ein Visual Script zu erstellen das alle Format/AR Eigenschaften und Attribute übernimmt und auf ein/mehrere existierende objekte übernimmt

Jedoch habe ich bei diesem vorhaben mehrere Probleme:
1. "GetObjectData" gibt mir die Eigenschaften als "$FormatProperties" jedoch braucht die node "AssignFormatProperties" einzelne Eigenschaften wie Pen, Layer, etc. Wie teile ich diese Eigenschaften auf, oder wie gebe ich alle gleichzeitig ein?

2. "GetObjectData" gibt mir "$Attribute" jedoch braucht die node "AssignAttributes" "$AttributeIDValueTuple". wie konvertiere ich diesen datentyp, oder brauche ich eine andere node?

unterfrage: kann ich nach bestimmten input oder output werten suchen? z.B wie muss ich suchen um alle nodes zu finden die "$AttributeIDValueTuple" als output haben

3. ich finde keine nodes die etwas mit den AR-Eigenschaften zu tun haben gibt es die in Visual scripting überhaupt?

Adjuntos (1)

Type: image/png
Descargado 50 veces
Size: 75,76 KiB

Da es nichts besseres gibt als auf ein Post mit vorhandenen antworten zu stossen Antworte ich mir hier mal selbst:

1. ich habe jetzt einfach jede eigenschaft einzeln ausgelesen und einzeln angeschlossen, nicht wirklich schön aber funktioniert

2. man kann das Format mit einer execpython node bearbeiten und dann auch an die node "AssignAttributes" node anschliesen hier ist wichtig das der output eine liste mit Tuples (attributid, wert) ist, ich empfehle hier mit einem whitelist system zu arbeiten da die visualscripting node auch dinge wie objekt ID's ausgibt und wenn ihr versucht diese zu übertragen funktioniert es logischerweise nicht mehr.

3. Das format hat den grössten teil der AR-Eigenschaften und die Oberfläche kann mit einer Seperaten node vergeben

Ich habe mal 2 neue Node gemacht (s. VisualScripts.zip)
NodeGetObjectProperties
NodeAssignObjectProperties

Damit kann man die Eigenschaften Format, Attribute und Oberfläche in einem "Rutsch"
von einem Objekt lesen, und an andere Objekte zuweisen (s. assign_properties.png)

Die funktionsweise sieht man im Video assign_properties.mp4

Leider funktioniert das mit der Oberfläche lesen im NodeGetObjectProperties erst ab 2026-WIP4, weshalb das Video auch in dieser Version aufgenommen wurde.

Format und Attribute lesen im NodeGetObjectProperties sollte aber auch in Version 2025 funktionieren. Ebenso das Zuweisen der 3 Eigenschaften im NodeAssignObjectProperties.

Adjuntos (3)

Type: image/png
Descargado 45 veces
Size: 100,90 KiB
Type: video/mp4
Descargado 118 veces
Size: 2,86 MiB
Type: application/zip
Descargado 117 veces
Size: 4,50 KiB

Leider sind noch einige Probleme aufgetreten, die in Fehlern im Allplan-Python-Framework begründet sind:

Fehler 1 - Die folgende Reihenfolge der Änderungen ist wichtig:
1. modified_objects = AllplanBaseElements.ElementsPropertyService.ModifySurface(surf_data[0].SurfacePath, modified_objects)
2. modified_objects = AllplanBaseElements.ElementsPropertyService.ModifyFormatProperties( prop_list, modified_objects)
3. modified_objects = AllplanBaseElements.ElementsAttributeService.ChangeAttributes(attr_data_tuple, modified_objects)

@Allplan
Der Service AllplanBaseElements.ElementsPropertyService.ModifySurface setzt Formateigenschaften zurück!

D.h. folgende Reihenfolge funktioniert nicht:
1. modified_objects = AllplanBaseElements.ElementsPropertyService.ModifyFormatProperties( prop_list, modified_objects)
2. modified_objects = AllplanBaseElements.ElementsPropertyService.ModifySurface(surf_data[0].SurfacePath, modified_objects)

Fehler 2 - AllplanBaseElements.ElementsAttributeService.ChangeAttributes schreibt auch Attribute die eigentlich nur "Read-Only" sind.
Beispiel: Es wird das Attribut @683@ "IFC ID" geschrieben.
@Allplan
Das darf eigentlich nicht sein, da man sonst Objekte mit gleichen "IFC ID" erzeugen kann!
Die "IFC ID" sollte immer aus der UUID (Doc-ID + Element-ID) erzeugt werden!

Adjuntos (3)

Type: application/zip
Descargado 114 veces
Size: 7,26 KiB
Type: application/zip
Descargado 106 veces
Size: 5,21 KiB
Type: application/zip
Descargado 127 veces
Size: 1,91 MiB

Hallo zusammen,

kurze Frage: Mit den bereitgestellten .zip-Dateien sollte man doch in der Lage sein, einen benutzerdefinierten Node zu erstellen, oder?

Ich versuche das gerade, aber leider klappt es bei mir nicht. Kann mir jemand erklären, wie der Prozess hier abläuft? Ich bin neu bei Allplan, aber mit Dynamo bin ich sehr vertraut.

Anfangs dachte ich, dass es ausreicht, die Datei per Drag & Drop in Allplan 2025 zu ziehen – aber dem ist wohl nicht so. Ich habe auch versucht, die Datei in bestimmte Verzeichnisse zu legen, z. B. nach
C:\Data\Allplan\Allplan 2025\Std\Scripts, aber das hat ebenfalls nicht funktioniert.

Viele Grüße