Manipulate non-active Views


I am fairly new to python scripting and want to write a script, that allows me to manipulate all 3dViews at once.
However, in the BPy API Documentation I only found functions that allow me to manipulate the current View:


Set the current VIEW3D view quaternion.

If only the current view is manipulable, the “GetAreaID()” function seem pretty pointless to me to since I don’t seem to be able to use the IDs to manipulate the corresponding areas…

Is there some kind of work around? does that mean that what I intended is impossible?

I have another question:
Is it considered inappropriate to boost your own question back to the top if it wasn’t answered after some time (like, 48 hours and 49 minutes for example)?
Because I have considered doing that and I’m not sure if thats ok…

I dont mind bumping much, some people probably do…
regarding your Q.

IMHO having the area ID as an option argument to SetViewQuat(quat) would be fine, though this might be a candidate for the new python API too,

It might also be an idea to add a function to set the active window. Don’t know if this is possible though, because I can imagine that the script will then stop executing.

Bumping is fine after a few hours, but if you have to bump maybe using IRC would be a better solution.


Actions like this are breaking the boundaries of Blender’s architecture. Each ‘window’ - browser, editor, viewer, etc - is considered to be a separate entity running by itself. One window should not affect another one directly. They can communicate by sending events like Redraw or DAG update.

The upcoming Event Refactor should improve the situation somewhat.

Ton regards the Window module as Evil and has frequently requested we do something/remove it.