Humm, well… I think the issue raised is not related to redrawing the 3D windows. Rather than that it is about how to control the buttons in the “Curve and Surfaces” panel… this panel appears ONLY if your selected object is a CURVE!!! Sooo… look at it and you will see the 3D button setting ON/OFF the 3D-property of the selected curve. Now… how to control via Python this setting? And the other properties, too (other buttons at this panel)??? The simple answer is by setting appropriate values for the flag. It is partially shown at the posting #1 above… More on that is at the following example:
from Blender import *
cu = Curve.Get("Curve")
flag_val = 11 # = 8+2+1
The last command is to enable you see the changed state in the panel’s buttons. If your code (script) is relatively simple (as the above one) you may use RedrawAll() as above… But if your code is more dynamic and action related, you may wish to only redraw the panels’ area (i.e. w/o a complicated interface, for example, cause RedrawAll() really redraws ALL and it may cost you a lot of time at some cases). Redrawing issue is a subject for another thread though… All that’s been made in the example code above is to set ON curve properties as being “3D”, “Front” and “CurvePath”. Other curve properties are set OFF. For more info on different values, pls see the API here.