architecture-building-systems / revitpythonshell

An IronPython scripting environment for Autodesk Revit and Vasari
MIT License
494 stars 113 forks source link

just an idea: __rps__ #29

Open eirannejad opened 8 years ago

eirannejad commented 8 years ago

defining __rps__ variable (similar to __revit__ ) to access RevitPythonShell settings and functionality.

daren-thomas commented 8 years ago

Which settings and which functionality specifically?

The variables can be accessed through __vars__. Changes are persisted between Revit sessions. What functionality exactly would you like?

On Mon, Aug 17, 2015 at 7:51 PM, Ehsan Iran-Nejad notifications@github.com wrote:

define rps variable (similar to revit) to access rps settings and functionality.

— Reply to this email directly or view it on GitHub https://github.com/architecture-building-systems/revitpythonshell/issues/29 .

eirannejad commented 8 years ago

Honestly I didn't have anything specific in mind. I was thinking it'd be cool if we could refer to RPS settings in a __rps__.Settings.GetExternalScripts() fashion. Maybe more useful for possible future developments.

Or maybe even the RPS internal classes. e.g. __rps__.CommandLoaderBase. In one of my scripts I'm using this class definition to create external commands for Revit just as RPS does.

def findRPSCommandLoader( self ):
   for loadedAssembly in AppDomain.CurrentDomain.GetAssemblies():
      if "RevitPythonShell" in loadedAssembly.FullName:
         self.rpsCommandLoader = loadedAssembly.GetType("RevitPythonShell.CommandLoaderBase")
         self.rps = loadedAssembly

That would have been much simpler with an __rps__:

def getRPSCommandLoader( self ):
   self.rpsCommandLoader = __rps__.CommandLoaderBase

Again just an idea :)