Support Forum

[Frage] Attribute und Properties übertragen

Schlagworte:
  • 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?

Anhänge (1)

Typ: image/png
42-mal heruntergeladen
Größe: 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.

Anhänge (3)

Typ: image/png
27-mal heruntergeladen
Größe: 100,90 KiB
Typ: video/mp4
59-mal heruntergeladen
Größe: 2,86 MiB
Typ: application/zip
56-mal heruntergeladen
Größe: 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!

Anhänge (3)

Typ: application/zip
51-mal heruntergeladen
Größe: 7,26 KiB
Typ: application/zip
48-mal heruntergeladen
Größe: 5,21 KiB
Typ: application/zip
64-mal heruntergeladen
Größe: 1,91 MiB