[Frage] Visibility von Pages [Gelöst]

Schlagworte:
  • PythonParts
  • Page
  • PYP

Hallo.

Der Visible Tag in der .pyp-File funktioniert beim Page Node leider nicht. Ich würde meine Eingabepalette gerne beim aktivieren einer Checkbox erweitern jedoch funktioniert das nicht.

<Page>
   <Name>Page_02</Name>
   <Text>Test</Text>
   <Visible>MyCheckbox == True</Visible>

</Page>

Selbst wenn ich es händisch mit

<Visible>False</Visible>

probiere, wird die Page_02 immer dargestellt. Ist das beabsichtigt, oder mache ich hier etwas falsch?

Lösung anzeigen Lösung verbergen

<Visible> wird in <Page> offensichtlich nicht unterstützt.
Erst ab <Expander> (und drunter) kann man das Control "Verbergen"...

Das verdeutlicht eine entscheidenden Nachteil der UI gegenüber den SmartParts:
Die UI ist nicht gescripted, sonder wird "statisch" im .pyp-File festgelegt!

Damit sind parameter- und aktionsabhängige Änderungen an der GUI nicht möglich,
sofern sie über die Steuerung der Sichtbarkeit hinausgehen.

Dynamisch während der Laufzeit können keine Controls hingefügt werden.
Auch solche Sachen wie ein grafisches Preview in der Palette sind ausgeschlossen.

Diese aus meiner Sicht unnötigen Beschränkungen verhindern übrigens auch, dass man das Fenster-SmartPart als PythonPart "rüberbaut".

Hinzu kommt: Die Palette ist nicht mal "Multi-Edit"-fähig.

Das es auch anders ginge, zeigt das Video anbei, wo "Multi-Edit" in einer mit Python gescripteten Palette in Allplan sehen kann.

Anhänge (1)

Typ: video/mp4
739-mal heruntergeladen
Größe: 1,95 MiB

<Visible> wird in <Page> offensichtlich nicht unterstützt.
Erst ab <Expander> (und drunter) kann man das Control "Verbergen"...

Das verdeutlicht eine entscheidenden Nachteil der UI gegenüber den SmartParts:
Die UI ist nicht gescripted, sonder wird "statisch" im .pyp-File festgelegt!

Damit sind parameter- und aktionsabhängige Änderungen an der GUI nicht möglich,
sofern sie über die Steuerung der Sichtbarkeit hinausgehen.

Dynamisch während der Laufzeit können keine Controls hingefügt werden.
Auch solche Sachen wie ein grafisches Preview in der Palette sind ausgeschlossen.

Diese aus meiner Sicht unnötigen Beschränkungen verhindern übrigens auch, dass man das Fenster-SmartPart als PythonPart "rüberbaut".

Hinzu kommt: Die Palette ist nicht mal "Multi-Edit"-fähig.

Das es auch anders ginge, zeigt das Video anbei, wo "Multi-Edit" in einer mit Python gescripteten Palette in Allplan sehen kann.

Anhänge (1)

Typ: video/mp4
739-mal heruntergeladen
Größe: 1,95 MiB

Danke für den Beitrag.

Da bin ich deiner Meinung - die UI ist mit dem SmartParts Script wirklich sehr intuitiv und toll. Ich würde mir jedoch wünschen, dass das mit Python NOCH besser wird. Eigentlich müsste mit den PythonParts ja auch eine GUI erstellt werden können wie bei gewissen Add-On's (z.B.: Baugrube) welche auf der NOI aufbauen - oder liege ich da falsch?

Dein Video zeigt auf jedem Fall, dass da noch Luft nach oben ist...

Es fängt schon damit an, dass man für die Parameter und die GUI eine XML-Datei (.pyp) händisch mit einem Text- oder XML-Editor erstellen muss!
In dieser XML-Datei muss man dann auf eine andere händisch zu erstelllende Text-Datei (.py) verweisen, welche dann auch noch in einem bestimmten Verzeichnis liegen muss.

Das sollte man mit einem Assistenten für die PythonPart-Erstellung verbessern können:
Dieser legt dann automatisch die beiden Dateien an und zeigt, welche "Eigenschaften" bei den Controls
möglich sind. Auch die Script-Datei (.py) könnte dann schon mit den notwendigen Importen und Funktionen ausgestattet sein, das Script-Gerüst sozusagen.

@Allplan
Für's Visual-Scritping habt ihr ja bereits eine Art GUI-Editor gebaut.
Diesen bräuchte man nur etwas anpassen, und man könnte sich die Parameter/GUI der PythonParts ebenso einfach "zusammenbauen", und sogar ergänzen.