Revitapi Course

Tags: Revit

Learn how to customize, automate, and improve Autodesk Revit software.

Last updated 2022-01-10 | 4.1

- In this course
- you will learn how to write Revit API code in the C# language to perform a wide variety of tasks.

What you'll learn

In this course
you will learn how to write Revit API code in the C# language to perform a wide variety of tasks.

* Requirements

*

Description

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.

Who this course is for:

  • Revit users who want to do more with Revit.
  • No programming experience is needed. Novice programmers may find it helpful to supplement this course with some of the many free resources online.

Course content

8 sections • 47 lectures

Introduction: A Simple Macro Preview 05:28

Prompt user to select an element & get element info Preview 06:56

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.

Prompt user to select edge or face & get edge/face info Preview 07:18

Selection - getting and setting selected elements Preview 08:28

Get the elements selected in the Revit UI and use the API to set which elements are selected.

Find Elements - FilteredElementCollector #1 Preview 14:59

Find elements in a Revit model using filters by Class (such as Wall or FamilyInstance) and Category (such as Door and Window)

Find Elements - FilteredElementCollector #2 Preview 15:01

Find elements that are visible in a specific view.

Find elements whose bounding box is inside a 3D space defined by two mouse-clicks

Find Elements - LINQ queries Preview 06:37

Use LINQ (Language-Integrated Query) syntax to develop more sophisticated queries of elements in the Revit model

Find Drafting Views that contain a CAD Link Preview 11:40

Create an External Command Preview 06:41

Create an external command using Visual Studio Express

Family Types and Parameters Preview 08:55

Create family types, family parameters, and set parameter values

Get Line Length and Convert Units Preview 16:08

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

Read and Write Text Files Preview 14:09

Revit macros to read and write text files

Directory and Path operations Preview 07:45

Find the TEMP folder and the My Documents folder, combine folder and file names, and find all files in a folder.

Read from Excel into a Revit API external command Preview 12:31

Read data from Excel into a Revit API external command

Write Revit data to Excel Preview 06:45

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.


Exception Handling Preview 07:35

How to handle exceptions (errors) that occur while running your Revit API code.

Code Reuse and Helper Functions Preview 13:57

How to write and reuse functions that make your code easier to update and maintain with fewer bugs.

Obsolete Members Preview 02:33

What it means when a member of the Revit API is marked "obsolete"

Creating Windows Forms for User Input Preview 14:32

Create a Windows Form dialog to allow the user to enter information that will be used by an API command

Delete an element - Intro to modifying the document Preview 06:53

How to modify the Revit Document and delete an element

Create text note and get and set parameter values Preview 13:10

Create a text note

Set parameter value & Check parameter storage type Preview 06:45

How to check the type of a parameter (string, integer, double, element id) and set its value

Built in parameters Preview 04:48

Get data from a Revit element using Built In Parameters

Collecting element area and keynote properties Preview 12:33

Create wall Preview 04:05

Create Family Instance (Furniture) Preview 09:49

How to create a Furniture family instance

Create Family Instance (Door) Preview 10:53

Element Rotation Preview 05:10

Get Workset of an element Preview 05:54

Element Location - LocationCurve & LocationPoint Preview 12:43

Find the point or curve that defines the location of an element

Get geometry of host faces Preview 09:14

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.

Get Curves and Solids of an element Preview 09:05

Step Into a Macro Preview 05:46

Step Into a Macro to debug your macro code. Set breakpoints and create watches in SharpDevelop to see what is happening as your code executes.

Debugging external commands in Visual Studio Preview 06:27

Set Project Units Preview 08:07

Selection Filters Preview 12:14

How to prompt the user for a selection and only allow selection of specific categories

Events Preview 11:30

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.

Ribbon UI - tab, panels, buttons Preview 10:33

Create a ribbon tab, panels, and buttons with an external application

Write comments to the journal file Preview 03:01

Extensible Storage Preview 13:19

Store data in Revit elements that is accessible only via the Revit API

Reference Intersector Preview 08:21

How to "see" in the Revit model by shooting imaginary arrows and finding out what they hit

Dynamic Model Update Preview 07:41

How your API code can automatically react to user changes in the Revit model

Get Categories & Materials from multiple Revit families Preview 1 page

See this in action at http://youtu.be/dY9g4MATRG0

Record view creation date in a shared parameter Preview 1 page

See this in action at http://youtu.be/VKT0_wBAdiY

Code Samples Preview 00:01

This "lecture" will contain code samples to answer questions. This is being done because code formatting does not display properly in the Udemy Q&A interface.

File Version Check Preview 00:06

Topo From Lines Preview 00:05