RevitLookup in Python Shell and Multiple Release Solution

Here is some exciting news from Daren Thomas on RevitLookup and the Revit Python Shell.

The Python and Ruby shells came up a couple of times recently, and I also mentioned Daren's initial thoughts on making the RevitLookup snoop functionality easily accessible from within the interactive Python IDE:

This idea has now come to fruition, and more easily than one might expect.

In Daren's own words:

The current version of RPS now includes a function 'lookup' in the startup script. Passing in an Element or an ElementId object will open up the "Snoop Objects" window if RevitLookup is installed. Otherwise, a message will be displayed directing the user to the RevitLookup GitHub repository.

I describe it in more detail in this discussion on RevitLookup and RevitPythonShell.

Also, here is a technique I found useful in the RPS project: I edit the .csproj file itself and change the way the Revit API assembly DLLs RevitAPI.dll and RevitAPIUI.dll are referenced:

  <ItemGroup Condition="'$(Configuration)' == 'Debug 2014'">
    <Reference Include="RevitAPI">
      <HintPath>..\RequiredLibraries\Revit2014\RevitAPI.dll</HintPath>
    </Reference>
    <Reference Include="RevitAPIUI">
      <HintPath>..\RequiredLibraries\Revit2014\RevitAPIUI.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup Condition="'$(Configuration)' == 'Debug 2015'">
    <Reference Include="RevitAPI">
      <HintPath>..\RequiredLibraries\Revit2015\RevitAPI.dll</HintPath>
    </Reference>
    <Reference Include="RevitAPIUI">
      <HintPath>..\RequiredLibraries\Revit2015\RevitAPIUI.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup Condition="'$(Configuration)' == 'Debug 2016'">
    <Reference Include="RevitAPI">
      <HintPath>..\RequiredLibraries\Revit2016\RevitAPI.dll</HintPath>
    </Reference>
    <Reference Include="RevitAPIUI">
      <HintPath>..\RequiredLibraries\Revit2016\RevitAPIUI.dll</HintPath>
    </Reference>
  </ItemGroup>

I then included the API files for each supported version in a RequiredLibraries folder. When you change the configuration in Visual Studio (e.g., from "Debug 2014" to "Debug 2016"), the referenced assemblies also change (I think – you might need to reload Visual Studio) and compilation works just fine!

This technique can be extended to add conditional compilation (but I think that is already handled by the VS UI).

Anyway. I'd say this is a first stab at the RPS/RevitLookup collaboration we discussed a week or two ago and is quite useful already.

Many thanks to Daren for the good news!

Congratulations on getting it up and running with such minimal fuss!

The multi-version support you implemented looks very nice and useful too.