Hier mal eine kleine Einordnung der verschiedenen "Programmier"-Schnittstellen: SmartParts, PythonParts, Visual-Scripting(auf PythonParts aufbauend)
Man muss zunächst mal differenzieren, was man erreichen möchte.
Braucht man ein parameterisches Element (z.B. Stahlträger, Treppe, Fenster => Content) kann man dafür alle drei Schnittstellen einsetzen. Wenn es um leichte Erlernbarkeit/Bedienbarkeit und einfache Geometrien geht, fährt man mit den SmartParts am besten. Auch hinsichtlich Gestaltung der Eingabe-Dialoge/-Palette sind die SmartParts sehr einfach und zugleich sehr leistungsfähig.
Das gilt ebenso bei der Definition von grafischen Eingabe-Möglichkeiten (Griffe).
Wie leistungsfähig die SmartPart sind, kann man sich bei den verschiedenen Öffnungselementen (Fenster, Türen, Oberlichter etc.) anschauen. Und man kann mit SmartParts auch Bewehrung scripten.
Erst wenn man mit einem SmartPart-Script nicht weiterkommt, sollte man "einen Gang höher schalten", und sich Python-basierten Schnittstellen ansehen. Dort gibt es einige sehr leistungsfähige Geometrie-Klassen und -Algorithmen, die man via Python benutzen kann, z.B. Schnittpunkt zweier Linien ermitteln lassen. Auch die neuen allgemeinen 3D-Körper (Parasolid BRep's) kann man nur mit Python erzeugen. Hinsichtlich Bewehrung ist Python sehr viel leistungsfähiger als die SmartParts. Obwohl die Bewehrung auch im Visual-Scripting integriert ist, ist die Umsetzung von Bewehrungs-Algorithmen mit Visual-Scripting sehr umständlich und auch schwierig!
Wenn man eine eigene Funktionen mit Allplan realisieren möchte, geht das nur mit Python.
Beispielsweise eine Abfrage von Attributen anderer Zeichnungselemente, oder Vergabe von Attributen an diese.
Auch dafür gibt es in Visual-Scripting Nodes. Allerdings sind diese z.T. sehr eingeschränkt, und die interne Funktion ist nicht dokumentiert.
Generell ist die Programmiersprache Python natürlich eine größere Hürde beim Einstieg, als es die Basic-verwandten SmartPart-Scripts sind. Erschwerend kommt hinzu, dass die Dokumentation der Python-API in Allplan leider nicht über eine Beschreibung der Klassen- und Funktionsschnittstellen hinaus gekommen ist. Die Typen der Funktionsparameter sind häufig falsch dokumentiert. Durch die dynamische Typisierung von Python erkennt man solche Typ-Fehler erst zu Laufzeit, was das Debuggen sehr schwierig macht. Da hilft es nicht, dass man dafür bei der Allplan-Python-API auch noch die Profi-IDE Visual-Studio benötigt. Immerhin werden die noch vielen fehlende Funktionen in Python nach und nach durch Allplan vervollständigt.
Mit Visual-Scripting wurde versucht, ganz ohne Script-Code auszukommen, und sich das Flussdiagramm für die Daten grafisch zusammenzustöpseln. Das funktioniert natürlich nur so gut, wie die Nodes und deren interne Funktion dokumentiert sind.
Ausserdem fehlen noch sehr viele Funktionen als Nodes, aber immerhin kann man sich eigene Python-Scripts in ein Node einbauen.
Da Visual-Scripting eigentlich ein Daten-Fluss-Diagramm darstellt, sind Programm-Schleifen in Visual-Scripting in Allplan derzeit nicht umsetzbar. Wer so etwas braucht, sollte lieber auf ein klassiches Python-Script zurückgreifen. Das Überprüfen des Datenflusses ist derzeit noch nicht möglich, da es keine "List-Panels" gibt, mit denen man sich die Daten anschauen kann.
Generell hat Visual-Scripting seine Stärke eindeutig in der (spielerischen) Formenfindung oder Optimierung mit Hilfe geometrischer Algorithmen. Da ist es vergleichbar mit den Anwendungsgebieten von Grasshopper(Rhino) und Dynamo(AutoCad/Revit).
Auch das Abfragen und Filtern von Elementen der Zeichnungsdatenbank von Allplan kann man mit Visual-Scripting aufgrund der guten Mengen-Operationen von Python effizient umsetzen. Man ist aber immer darauf angewiesen, dass Allplan die entspr. Funktion als Python-Wrapper zugänglich gemacht hat.
Fazit: Es gibt für jeden etwas! Man muss sich aber darauf einlassen, und mit der Materie beschäftigen.
Wenn man mit diesen an eine Grenze stößt, kann man als letzte Stufe auf die Allplan-API (NOI) umsteigen,
und sehr performante und flexible Plugins (wie die von CDS) entwickeln. Allerdings braucht man dazu schon etwas bessere Kenntnisse von C++, C# (WPF) and den Allplan-Interna.
Hinweis:
Es handelt sich um meine persönliche, auf langjährigen Erfahrungen basierende Meinung ohne Anspruch auf Allgemeingültigkeit.