
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.
Welcome to the Python & Revit API for Dynamo course.
This course is designed for those of you who are using Dynamo and want to make the next step - learning how to code your own Python Nodes to make the Dynamo scripts even more efficient and clear to look at.
The course is made with the assumption that you are already familiar with Dynamo and Revit, but you have little or no knowledge of coding.
We start from scratch and build skills until we finish with an overview and create a practical Python node for placing wall and floor finishes and joining them to the existing floors and walls automatically.
The course is delivered in many examples with the idea that the student follows along. Exercise files are provided with almost every lecture.
Ideally, every lecture should be viewed as an assignment. Don't go to the next one until you have tried yourself what is shown. That way you can keep up with the new information and not get overwhelmed.
We're taking a practical approach - the examples given are parts of scripts that are currently used in companies and save them a lot of time.
Your instructor:
has 13 years of daily experience using Revit,
has 10 years of experience using Dynamo and Python and currently
develops plugins using the Revit API.
He has worked in a range of projects from apartment buildings to airports and infrastructure.
His scripts are used in multiple major architectural and engineering companies around the world.
By the end of the course, you will be able to code your own Python Nodes and use the Revit API. You will have a better knowledge of how Revit works internally and how you can automate its processes.
The course is intense, but you're covered. You can ask questions here on Udemy or in our special Facebook group or our Discord server