Dynamic UI and object in Blender?

Hi,

I’m fairly experienced with scripting for 3d applications (Maxscript and PyMel), but want to move away from those horribly expensive applications. So for my next project I’d like to do it in Blender.

I am now trying to gain a bit of understanding of if and how it would be possible. It’s essentially a complex UI for dynamically building a cabinet without manually modeling anything; it just creates boxes and places them in precise locations.

The following is unclear to me:

-Can you do something like in 3DS Max with a “scripted dynamic primitive” Where an object is permanently linked to a UI with properties, allowing you to modify it at any point. Objects in Blender can by default only be modified straight after they have been placed, and never again after another action has been performed.
I’d assume you’d have to create some custom node in the scene that the UI gets hold of automatically, which then rebuilds the geometry when the properties change. Can you avoid having the geometry selectable/modifiable like a normal object, so the user can’t even interact with it (unless you manually enable it)?

The whole idea is that you can easily iterate over this object and make it wider, thicker panels, less compartiments, etc… WITHOUT having to use standard modeling tools and properties, instead just using the custom UI for it.

-Can you do a custom UI that dynamically rebuilds on interaction. Not just toggling on and off elements, but really building a hierachy of cells with dividers. The idea is to build compartments in a custom UI (dividers and cells) where for example you can choose how many horizontal compartments, what sizes they have, then split some of the cells vertically again, etc…
In Max and Maya this would be possible with Dotnet and Qt respectively, but i have a hard time finding out if and roughly how you’d do it with bpy…

Thanks!

Blender objects can be modified at any point.

Yes you can do what you ask for but you will have to sit down and learn the entire Blender Python API (bpy is just a small part of it) , Blender gives full access to its UI and does not depend on third-party tools like .NET and QT.