Daren,
When I change the gui.ShowDialog(); to gui.Show(); and compile, it gives me a perfectly nonmodal console!. The problem is that somehow it's on a separate process from Revit(?) and revit does not allow any transactions. But searching and filtering and data collection works as far as I have tested.
is there a way to create an external event handler (as described in nonmodal SDK examples) to run the code as an external event?? say the console checks the code and if it contains a transaction it uses a different method to run the code??
or somehow have the python engine under Revit connect to the GUI console through a random socket and communicate? (This is the way DreamPie (a powerful interactive python console) works. It runs itself on python27 and then calls the python engine it's supposed to work on as a subprocess and connects to it via a random port and socket. This way it connects to almost any type of python.
I'm sorry that I'm asking too many questions but I just don't have enough programming knowledge to make this happen. Having a nonmodal python console is really helpful for me on a daily basis to be able to interact with Revit intuitively and use my own pyRevit library to get/set data in Revit. It'll be my unfiltered eyes into Revit model.
Apologies again. You're the only one I know that can help.
Thanks!