Exercises for beginners

Hello Dynamo Friends,

I´m at the beginning of creating exercises for my coworkers so they can begin to work with dynamo.
Has someone suggestions for fun exercises? Especially for list logic I´m not sure what to do…
What are essential topics i should not miss?

Here is my first exercise:

  1. Create a Line, a Circle, a Plane, a Cuboid and a Sphere.
    Use only one node for each element, if possible.
  2. Move the elements on the x-axis to get a distance between the elements.
    Use a Vector to move the Cuboid, use a Translation (without vector) to move the sphere.
  3. Edit the size of the elements, by changing radius, length, points.
  4. Use geometry.scale on the elements.

Happy about any suggestions :slight_smile:

@gerhard.p ,

i would also recommend

  • Vectors
  • Lacing (Auto,longest,crossproduct)
  • ranges (0..1..#10)
  • Designscript
    • conditions x == 0.00 ? true : false
    • Indexing x[0][0..3]
  • List Logic
    • First/Last Item
    • sublist, chop
    • List.Shuffle

just look at the resources :slight_smile:

https://dictionary.dynamobim.com/#/

1 Like

Great idea, curious to see more once finished!

I would say:
Filtering elements:
for example make users find all concrete walls with a certain thickness, find all windows of a certain
type etc.

Finding and changing element parameters
The outcome of the above could be to make users change certain parameters from the filtered elements., Change workset/type comment etc./ change view overrides etc.

I feel like a lot of users do not use Dynamo because it looks complicated, even though something like filtering elements and changing parameters with Dynamo is relatively easy and saves the user an astronomical amount of time. This was my first usecase for Dynamo and i absolutely loved opening up Dynamo to do stupid manual tasks like changing worksets with Dynamo.

1 Like

I started with dynamo at a training at my current office, it was too fast for me to follow the trainer, i did’t understand anything and the exercises were boring and not specific for my department. So my idea is to write these exercises and let the users work alone, try things out, do things wrong, see what nodes are there, google things… and not following a trainer step by step.

So for example one task will be to install a package and use it, without any explanation on how to do it. I want my coworkers to lern how to solve problems themselfes from the beginning.

For sure i will share my progress and experience. :slight_smile:

1 Like

Exercises 2 - Create and filter lists

  1. Create a list with your favorite food (4 Items), rename it to “Food”.
  2. Create a list with your favorite drinks (5 Items), rename it to “Drinks”.
  3. Create a list out of these two lists to get a list with food and drink sublists (List 1).
  4. Flatten the list and then Shuffle the list. You have now a mixed list of food and drinks.
  5. Filter this mixed list so food and drinks are seperated in sublists again, like “List 1”.
    Use List.Contains with the right Level and Lacing settings to get a bool mask.

1 Like

Exercise 3 will focus on Element.geometry and all different kinds of intersecting.
I think thats an easy and interresting topic, list management might be tricky.
What first came to my mind ist intersecting walls with pipes:

I highly recommend taking some keynotes from @GavinCrump his video to incorporate in your excersizes, it has been a tremendous help for me dealing with piping and walls!

2 Likes

would go in alittle on lacing here if i where you recommend this picture to explain it

4 Likes

Right, lacing should be an exercise on it´s own :slight_smile:

Simple formula / using sliders for a variable instead of static input.

Start with points, make lines, make surfaces, make solids then translate + transform these + colour them (in dynamo)

The difference between Revit geometry and Dynamo geometry… Getting them to swap between the two.
(Get and Set nodes)

Getting stuff from Revit then filtering it, manipulate it… spit it back to Revit (parameters etc)

Use Dynamo Primer.

1 Like

if they are not used to code and/or script it would probebly be a good idea to explain how computer handles strings,floats/double and integers diffrent seams obvious to us who work with it. but for someone new its very strange.

also might be good to have some sort of lesson how you can manipulate data for instance spliting strings, chop list etc.

maybe mention a little bit about index (List.GetItemAtIndex)

1 Like

Thanks for your replies. There is a little handout to the exercises, where the most important nodes, concepts and the difference between string/number/etc. is explained (with the recommendation to only use codeblocks from the start on).

This leads to another exercise:

Understanding node error messages and solve the errors.

would avoid getting into things such as crop views, generating a lot of graphics and basically anything that involves a lot of cordinate points/vector points, Bounding boxes etc. also avoid things like family manipulation inside families and getting information from nested families, or get host elements.

These things are either of limited use or involve alot of cordinate/vector points. your students are going to have enought to do figuring out the basics as it is.

if you later on, make advanced excercises this would fall in there.

1 Like

@gerhard.p , also good videos here:
Free Dynamo Courses | Basic & Advanced Courses :heavy_check_mark: DiRoots Elearning

1 Like

To lend in on all the great points here, I find it is best to begin with basic lists of objects followed by get/adjust/set parameter values. The emphasis isn’t on working with lists here, but just that you can do one>many operations on a list of objects, or many>many across objects and their data - teaching the user the limitless economy of scale that programming offers. Show them both ‘select model element’ options, as well as a basic introduction to categories and ‘get all elements of category’ so that they can see both explicit and collecting methods of accessing objects in Revit. Usually people will be able to better see the value of Dynamo if it can be related immediately to tasks they waste time on currently, of which data entry is almost guaranteed to be one.

During the Covid days, my example was literally getting all rooms and their area, dividing it by 4, rounding it down and writing it back to the Occupancy parameter. That covered most basics quite well, whilst using a relatable design constraint.

I avoid geometry initially unless they have a background in geometry (e.g. Grasshopper user), computer science/graphics or advanced mathematics. Best that they discover this side of Dynamo over time, as it is difficult to directly relate back to Revit I think - geometry is often abstract in practical application (for example, numbering objects by spline). Be mindful to manage and quell expectations for Grasshopper users given that Dynamo is usually most powerfully applied as a data management tool initially versus a geometry environment for beginners - they can sometimes miss the point of Dynamo if their journey begins (and often ends) with geometry.

Whilst I don’t disallow the use of custom packages, I teach users to avoid installing ‘all the packages’, and pick one or two they can benefit from most. Data Shapes I hold off until they’re comfortable with Dynamo Player, as I find usually you can do a lot without complex UI’s as a beginner. Such beginner suitable packages I show users are Clockwork, Genius Loci, Rhythm and Crumple (mine). All of them have fairly clear and concise nodes that a beginner can grasp the use case for at face value. I make sure to reinforce to them that many custom nodes are shortcuts the user is best off learning step by step to undertake versus just looking for a custom node, so start with simple problems where custom nodes are not as necessary.

Once a beginner/user ‘gets’ the point of Dynamo and wants to learn properly, it’s back to basics. Dynamo Primer, and a focus on data types and list/index management followed by filtering and finally laces and the dreaded list levels.

Beyond those steps most users I find can begin to engage with the forums to troubleshoot, or find their way through Dynamo. By that point the average user is likely 3-6 months in already. Everyone is different, and some people will want a gentle hand to guide them whilst others will want to learn ‘all the stuff’ from anyone around them. Don’t hesitate to also encourage users to brush up on their Revit skills if they need this first, as usually the better you know Revit the better you will identify use cases for Dynamo (and appreciate Revit’s ‘can’t do that’ barriers).

6 Likes

My best advice its just practice so most you can goin through all ootb nodes and build from there and just be in here :wink: that the way i try to learn and im not clever :wink: :wink:

4 Likes

It really is not an easy task to make someone understand the benefits of dynamo in the beginning. I agree that it is essential to let users do some work they know from revit (parameters, etc) pretty soon. But some small exercises before, to get used to dynamo, do not hurt.

This is the draft of the little handout that i provide (I wish i had this on my first day).

  1. String/Number/Bool/CodeBLock
  2. Select Model Elements
  3. List Create, Filter By BoolMask, compare and search Lists
  4. Get and Set Parameters

4 Likes

Not really happy with that one :confused: Maybe i have to add something to it?

Exercise 3 Intersect Element Geometry
Match intersecting pipes with their corresponding wall.

  1. In Revit, create 3 Walls and a bunch of pipes that intersect.
    Make sure each pipe intersects with only one wall.
  2. In Dynamo, get elements, get their geometry and test for intersections.
    Filter the pipe Solids by Boolmask, the goal is to get a list of pipes with 3 substlists
    representing the 3 walls. Use FirstItem, LastItem and ItemAtIndex nodes to get each
    of the 3 sublists. By selecting these nodes you can check if your result is right.

First sheet is ready.

1 Like

I found everyone at my work got really scared with lists.

I’ve just started another training session… and I’m leaving lists until about week 8 :laughing:

1 Like

Still scared after 3 Years :sweat_smile:

1 Like