Learn to program the Revit API by Boost Your BIM
- Description
- Curriculum
- FAQ
- Reviews
This course is for people who want to do more with the Autodesk Revit building information modeling software.
You can do a lot of great things with Revit as it ships "out of the box" from Autodesk, but there are still many tasks that are repetitive, boring, and error-prone. There are also many situations where you can be more effective and productive if you can add additional functionality to Revit.
This course will cover a wide range of topics in the Revit API. Each topic will be taught by walking through a set of C# code samples that progress from the basics to more advanced concepts.
More content will be added to this new course in the upcoming weeks. If you see a topic that you like added, just let me know and I will try to make that addition.
-
1Introduction: A Simple Macro
-
2Prompt user to select an element & get element info
Prompt the user to select an element and retrieve data from that element.
The "Exception Handling" lecture is recommended to learn how to handle the user pushing the ESC key during a selection prompt.
-
3Prompt user to select edge or face & get edge/face info
-
4Selection - getting and setting selected elements
Get the elements selected in the Revit UI and use the API to set which elements are selected.
-
5Find Elements - FilteredElementCollector #1
Find elements in a Revit model using filters by Class (such as Wall or FamilyInstance) and Category (such as Door and Window)
-
6Find Elements - FilteredElementCollector #2
Find elements that are visible in a specific view.
Find elements whose bounding box is inside a 3D space defined by two mouse-clicks
-
7Find Elements - LINQ queries
Use LINQ (Language-Integrated Query) syntax to develop more sophisticated queries of elements in the Revit model
-
8Find Drafting Views that contain a CAD Link
-
9Create an External Command
Create an external command using Visual Studio Express
-
10Family Types and Parameters
Create family types, family parameters, and set parameter values
-
11Get Line Length and Convert Units
Get the length of multiple selected lines and convert their total length from feet (Revit's internal units for length)Ā to the project's units
-
12Read and Write Text Files
Revit macros to read and write text files
-
13Directory and Path operations
Find the TEMP folder and the My Documents folder, combine folder and file names, and find all files in a folder.
-
14Read from Excel into a Revit API external command
Read data from Excel into a Revit API external command
-
15Write Revit data to Excel
How to write Revit data to an Excel file in a Revit API external command.
Includes using the Process.Start command to open a file in its default application.
You can get the EPPlus component for Excel read/write with NuGet (https://www.nuget.org/)
"An essential tool for any modern development platform is a mechanism through which developers can create, share, and consume useful code. Often such code is bundled into "packages" that contain compiled code (as DLLs) along with other content needed in the projects that consume these packages.
For .NET (including .NET Core), the Microsoft-supported mechanism for sharing code is NuGet, which defines how packages for .NET are created, hosted, and consumed, and provides the tools for each of those roles."
In Visual Studio go to Tools - NuGet Package Manager - Manage NuGet Packages for Solution - then browse for EPPlus. Select EPPlus by Jan Kallman
Or you can download the DLL from https://drive.google.com/file/d/1q1ZnRpK4XLdstVzbK3oUc0Qf61-3kLIA/view?usp=sharing or attached to this lecture. If you do that, be sure to unblock the DLL (right click on it in Windows Explorer, select Properties, Unblock) after downloading it.
-
16Exception Handling
How to handle exceptions (errors) that occur while running your Revit API code.
-
17Code Reuse and Helper Functions
How to write and reuse functions that make your code easier to update and maintain with fewer bugs.
-
18Obsolete Members
What it means when a member of the Revit API is marked "obsolete"
-
19Creating Windows Forms for User Input
Create a Windows Form dialog to allow the user to enter information that will be used by an API command
-
20Delete an element - Intro to modifying the document
How to modify the Revit Document and delete an element
-
21Create text note and get and set parameter values
Create a text note
-
22Set parameter value & Check parameter storage type
How to check the type of a parameter (string, integer, double, element id) and set its value
-
23Built in parameters
Get data from a Revit element using Built In Parameters
-
24Collecting element area and keynote properties
-
25Create wall
-
26Create Family Instance (Furniture)
How to create a Furniture family instance
-
27Create Family Instance (Door)
-
28Element Rotation
-
29Get Workset of an element
-
30Element Location - LocationCurve & LocationPoint
Find the point or curve that defines the location of an element
-
31Get geometry of host faces
Find area of faces of walls, floors, roofs, and other host objects.
Watch "Code Reuse" lecture to learn how to improve the code shown here.
-
32Get Curves and Solids of an element
-
35Set Project Units
-
36Selection Filters
How to prompt the user for a selection and only allow selection of specific categories
-
37Events
How to register an event to automatically run Revit API code when specific actions occur in the Revit session.
The DocumentSaving event is demonstrated in this lecture to show how to create and update a log file with the time of save and the user's name.
-
38Ribbon UI - tab, panels, buttons
Create a ribbon tab, panels, and buttons with an external application
-
39Write comments to the journal file
-
40Extensible Storage
Store data in Revit elements that is accessible only via the Revit API
-
41Reference Intersector
How to "see" in the Revit model by shooting imaginary arrows and finding out what they hit
-
42Dynamic Model Update
How your API code can automatically react to user changes in the Revit model
Social Network