
Introduces Python and Revit API for Dynamo, guiding Dynamo users through Python nodes, object-oriented basics, loops, functions and modules, with practical examples like stairs and room finishes.
Explore how Dynamo in Revit 2022 handles Python 2 and Python 3, using Python script nodes and the migration assistant.
Dynamo gets a redesign in Revit 2023, and Python 2.7 becomes outdated. Install the Python engine via the package manager, switch to Python 3, and note Dynamo 2.13 compatibility.
Learn how to lay out Python nodes in Dynamo, add and manage inputs and outputs, and run the Python editor to execute Dynamo workflows and handle common indexing errors.
Explore object oriented programming in Python nodes for Dynamo, using classes with attributes and methods, and dot notation to access color and perform actions like chop.
Import proto geometry and the design script geometry library to access Dynamo's point tools, then define a point with x, y, z coordinates and display it.
Learn to declare and use Python variables in Dynamo for Revit, including naming rules, types like points, numbers, and text, and output multiple values.
create a point by coordinates in a Python node by feeding x, y, and z inputs, then convert to a reusable custom node to handle lists in Dynamo.
Learn how Python lists work in Dynamo, including creating empty and populated lists, using range, indexing, slicing, and copying semantics to avoid unintended link changes.
Explore how to perform checks in Python and Dynamo by filtering lists with a boolean mask, using if statements, and mapping true/false outcomes to results.
Learn Python checks in Dynamo for Revit, including boolean handling, indentation, if statements and shorthand, plus creating custom nodes to compare list and point z values.
Learn to implement basic for loops in Python within Dynamo, iterating over lists and building an output list. Use zip to compare paired elements and handle mismatched lengths.
Apply a for loop with if statements in Python to generate and filter 3D points, using zip, inputs, and a threshold to control point creation in dynamoBIM.
Demonstrates while loops in Python within DynamoBIM by iterating a list of points, creating new points, and appending them to an output list while incrementing count to avoid infinite loops.
Compare for loops and while loops in Python by generating random integers (1–20) with the random module, filter even numbers using the modulo remainder, and output with a while loop.
Explore break and continue in Python loops within DynamoBIM, using break to stop at the first eight and continue to skip specific elements in the sequence.
Learn node lacing and nested loops in Python for Dynamo to generate point fields from x, y, z coordinates, using for loops and zip to handle nested lists.
Explore manipulating 3-dimensional lists in Python by iterating through nested lists of points, moving coordinates by a set offset, and preserving data structure with layered outputs.
Apply try and except in a Dynamo Python node to skip no value items in a point list and log the exception, preserving the rest of the points.
Define and reuse Python functions in DynamoBIM, teaching def, return, parameters, and default values; explore calling conventions, points and radius, and applying functions via map to generate multiple spheres.
Explore executing a function with multiple arguments in Python for DynamoBIM using named parameters and lists. Learn to handle single values versus lists with isinstance checks and build sphere lists.
Explore shorthand for loops in Python and build a rectangular field of elements with nested loops and zip, then compare a one-liner approach to explicit for loops for same result.
Save and import reusable Python modules for Dynamo scripts, manage file paths with raw strings, and use selective imports or aliasing to avoid name conflicts.
Learn to import built-in Python modules compatible with your Python version, use the dir function to inspect them, and preview Revit-specific modules in the next video.
Explore the Revit nodes library in Dynamo, import the Revit notes library (C#), and access 79 functions to build a wall by curve and height with points.
Use Python in Dynamo to access the Revit API, connect to the current Revit document, and extract stair parts via a filtered element collector using the built-in category.
Create Revit elements through the API using a transaction manager. Unwrap inputs and place multiple non-structural family instances via Dynamo Python, using points and feet units.
Learn how unwrapping and wrapping Dynamo and Revit objects enables access to the Revit API, using family types and symbols, and control placement versus updates with Python.
Learn to convert between Dynamo geometry and Revit geometry using Revit Geometry Conversion, translating between Dynamo points and Revit x,y,z coordinates and placing family instances with Python.
learn how to pick revit api methods using online docs, explore namespaces, and identify suitable methods such as new family instance with x, y, z coordinates and a structural type.
Apply filter element collector with quick and slow filters to fetch stair types and instances by building category, then create stair paths in the active view using Python in Dynamo.
Combine lessons to automate room finishes by scripting, find rooms named bathroom, add finishing floors and interior walls, join to existing geometry, and implement this in Python with Dynamo.
Learn to filter rooms in a Revit project using Dynamo and Python by matching room names with a case-insensitive search, accessing room names via the DB element name property.
Use the DynamoBIM Python API to get room boundaries with get boundary segments. Apply spatial boundary options, extract outer curves, and convert to Dynamo curves for walls.
Learn to place rectangular profile walls in Revit 2022 via the application programming interface, using a specified wall style, height, and offset.
Learn to generate wall offsets in Revit with Python and Dynamo by building a curve loop, appending curves, and offsetting inward with a negative half thickness using a vertical normal.
Create floors in Revit 2022 using the floor create method with an IList<CurveLoop> of curved loops, supplying the floor type and level IDs.
Learn to automatically join walls and floors in Revit with Dynamo's join utilities. The lecture covers boundary segments, element IDs, unwrap elements, and pairing old with new walls and floors.
Continue learning by applying Python to real work problems, practicing with the Revit API, exploring namespaces and methods, and setting goals to implement new solutions.
Python & Revit API for DynamoBIM takes you from Dynamo user to writing your own Python nodes against the Revit API. It assumes you know Revit and Dynamo but have written little or no code.
We start with Python from scratch, then move to object-oriented programming and the Revit API, always with Revit examples instead of abstract exercises. The course ends with a real case study: a Python node that places wall and floor finishes and joins them to existing walls and floors automatically.
You will learn to:
write Python nodes that replace dozens of standard nodes
read and use the Revit API documentation
package code into modules you can reuse across projects
make graphs faster and easier for your team to understand
The examples come from scripts used in practice in architecture and engineering companies. Every lecture is a follow-along exercise with sample files, and each one works best treated as an assignment: try it first, then compare with the file.
Your instructor has used Revit for 15 years and Dynamo with Python for over a decade. He now develops Revit plugins in C# with the Revit API, the next step after this course.
Questions are answered on Udemy, in the course Facebook group and on Discord.
After this course, the Dynamo for Documentation course applies these skills to view and parameter automation. All three Dynamo courses are also available as a bundle.