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 42 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 27 veces
Size: 100,90 KiB
Type: video/mp4
Descargado 59 veces
Size: 2,86 MiB
Type: application/zip
Descargado 56 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 51 veces
Size: 7,26 KiB
Type: application/zip
Descargado 48 veces
Size: 5,21 KiB
Type: application/zip
Descargado 64 veces
Size: 1,91 MiB