After a new version of Revit comes out, we all take some time to catch up. Revit API developers often have to get up and running really quickly so they can upgrade their apps for Revit 2019 compatibility. The first few things you will need are: the Revit 2019 SDK and help file, RevitLookup installed, and an understanding of What’s New in the Revit 2019 API.
To install RevitLookup for Revit 2019, head over to this page and grab the latest version, currently 2019.0.0.1. Put RevitLookup.addin and RevitLookup.dll into one of your Revit Addins folders, like:
To install the Revit SDK, follow these steps:
- Install Revit 2019 (or access the install media)
- Look in the installation folder
- In the Utilities subfolder, you will find the Revit 2019 SDK installer – RevitSDK.exe
This will basically unzip a whole heap of Revit API samples and goodness into a folder of your choosing. The key thing I look for initially is the RevitAPI.chm help file. I put this somewhere I can get to it easily (like OneDrive).
Until http://www.revitapidocs.com/ is updated for Revit 2019, the help files is the best way to access information about the Revit 2019 API.
Useful links, mostly from Jeremy over at The Builder Coder:
My Revit API 2019 Notes:
- Building site export removed from API and Revit 2019
- Project browser organisation for schedules added
- Can now read the Phase Map parameter for the link. The phase map is a correspondence between phases in the host document and phases in the linked document…
Jeremy Tammik has updated the source code for RevitLookup to Revit 2018, and Troy Gates has compiled it with some install notes, download here.
After copying the addin files, you will need to press ‘Always Load’ on the dialog when launching Revit 2018:
You can also grab the Revit 2018 SDK here.
Updated source code for RevitLookup available at:
Notes from The Building Coder:
In the last few weeks, it was significantly restructured to use
Reflection and reduce code duplication:
Copy and paste files from here into C:ProgramDataAutodeskRevitAddins2016
Thanks to original post by Troy Gates at:
Revit Coaster: RevitLookup for Revit 2016
Any issues? You may have to right-click the dll and Unblock
Note: the most up to date version can always be downloaded and compiled from:
More 2016 API stuff:
The Building Coder: Revit 2016 API News and DevDays Online Recording
Combining Revit Lookup and Sysexporter has a lot of potential for getting hard-to-reach data out of Revit in almost realtime. For example, in Revit 2013 there are limited options for scheduling Revit Links. But if we open Revit Lookup (Snoop Database), and then start Sysexporter, we can see this (find Snoop Objects in the list and select it):
From here, we can copy that list of Revit Links to Excel and do some LEFT and RIGHT operations to strip the Element ID:
Now, we can copy a group of element IDs to the Select by ID box in Revit (maybe need a trip to Notepad++ to remove linebreaks) to multi-select a group of Links, based on their Discipline or Level. Then, you can assign them to a particular Workset. See where I’m heading with this?
Jeremy Tammik has upgraded RevitLookup for Revit 2015. I compiled the latest version and have provided it here – please note it comes with no guarantees, but it worked for me.
- Download this and extract
- Run the .bat file, which will copy the .addin and .dll to your ProgramData addins folder
Or, you can manually download and compile from:
- Use github link above and click Download Zip
- Extract it
- Open the RevitLookup.sln in Visual Studio Express 2013 for Windows Desktop
- Add C:Program FilesAutodeskRevit 2015 to Reference Paths
- Build > Build Solution (note – this should automatically copy to Appdata folder, so you should be good to go…), or
- If you want to use ProgramData instead, copy RevitLookup.addin and RevitLookup.dll to:
C:ProgramDataAutodeskRevitAddins2015 and remove them from:
- Open Revit 2015 and test
The Building Coder: RevitLookup for Revit 2015
Use RevitLookup, like this:
Using Schedules, you can usually use Highlight in Model to find an element (or group of elements) from a schedule row.
However, this does not work if the element is hidden in the only view that it is instantiated in – for example, a single Generic Annotation entry in a Note Block (Schedule). Revit will not be able to find the element.
One workaround – interestingly, selecting a Schedule row actually selects the object/s in Revit, but at least in my configuration (Properties Palette on second monitor), it does not show the Properties in the Palette for that object while the Schedule view is active. However, you can:
- Select the schedule row
- Switch to another view (for example, a 3D view)
- The Properties Palette has now updated to show the properties for the Element!
- You can trigger normal commands – such as IDs of Selection or Save Selection
- Install RevitLookup
- Select the row in the Schedule
- Revitlookup – Snoop Current Selection… (this will give you Element ID and other info)
This is using XP 64-bit with Revit 2013 Update 3, but similar principles will apply to other OS and software versions:
- Install Revit 2013 SDK if you don’t have it already, from here
- Install RevitAddinManager from SDKAdd-In Manager folder
- Open Sharpdevelop, you should be able to find it at:
C:Program FilesAutodeskRevit Architecture 2013ProgramSDAbin
- Drag and drop RevitLookup.csproj to the Projects panel on the left
- Compile Revitlookup. Make sure to Add Reference Path (project / properties) to your Revit 2013 Program folder. Then click Build, Build Solution. I received a bunch of Warnings about obsolete classes and properties, but no errors.
- Open Revit and any project
- External Tools – Add-in Manager (automatic)
- Load the compiled RevitLookup.dll and then use the Save to Add-ins folder option
- Restart Revit
Now, to use RevitLookup to find the Element ID of a View Template and copy it to another project:
- Open a Project
- Add-Ins, Revit Lookup, Snoop DB…
- Scroll down and select the appropriate View reference, ie. ViewPlan for a Template that was created from / for a Plan View
- When you select it, the Element ID will be shown on the right and you can copy it to Clipboard
- Select By ID, Paste
- Switch to another project
- Paste – Aligned to Selected Level
- Done 🙂