Understanding list levels in Dynamo!

Поделиться
HTML-код
  • Опубликовано: 13 янв 2025

Комментарии • 60

  • @klasrobertsson3943
    @klasrobertsson3943 2 года назад +1

    The best and most useful of all your dynamo tutorials in my opinion. Often return to this one...

  • @yeyeshua
    @yeyeshua 4 месяца назад +1

    Thanks for the explanation about data structures in Dynamo!
    In Grasshopper you would simply "graft" the list of elements to put each element in its own list. In this way, "all parameters" are assigned to each "element list" and the appropriate "value list" is also assigned to the respective "element list" (for all element lists). The procedure in Dynamo seems a bit more complicated to me, but understandable. But once I have more experience in Dynamo, I might find the approach in Dynamo better. We'll see :D
    In Grasshopper there are also separate components like "Graft". I also saw a "Flatten" component in Dynamo, like in Grasshopper. This way we can inspect the changed list structure and see if it is compatible before using it as input.

    • @yeyeshua
      @yeyeshua 4 месяца назад

      Ah, now I understand. L1 at input "element" is the counterpart to "Graft" in Grasshopper. Then we set L2 at "parameterName" to use the entire list and L2 at "value" to use the individual associated lists. The display below the lists is very helpful for this, showing which lists are on which levels (@L3 @L2 @L1). At first I didn't know whether L1 starts at the beginning or at the end of the data tree.
      A little different than in Grasshopper, because in Grasshopper you can change the list structure and make it compatible and inspect it before using it as input, but this is now understandable in Dynamo. Now it's fun to work with!

    • @AussieBIMGuru
      @AussieBIMGuru  4 месяца назад

      Yes graft and level 2 on 1 are quite similar. Personally i much prefer working with lists if im trying to align data, as much as i do like the path mapper component!
      Trees are very beneficial for geometry and speed, but lists are often easier to work through predictably. Trade offs.

  • @MR0MYSTERY87
    @MR0MYSTERY87 2 года назад +1

    Really love your Dynamo tutorial videos, cheers !

  • @Akira-xr2zb
    @Akira-xr2zb 9 месяцев назад +1

    Great explaination about List, thank you!

  • @kirkm4079
    @kirkm4079 3 года назад +2

    Great idea, like you said, for adding a header row to excel, I've been using add item to front for each column individually, this would be so much easier!

    • @AussieBIMGuru
      @AussieBIMGuru  3 года назад +1

      Thanks! Yep I use this technique all the time, but I did begin with simpler/longer methods as well.

  • @Negotium2
    @Negotium2 2 года назад +1

    Gavin, thanks for your work,
    Greetigs from Poland!
    cheers:)

    • @AussieBIMGuru
      @AussieBIMGuru  2 года назад

      Glad you like it, and great to know I have viewers in Poland :)

  • @manuelcoletto8766
    @manuelcoletto8766 2 года назад +1

    Thats great! Thanks for sharing!

  • @borun67
    @borun67 9 месяцев назад +1

    very helpful for list and list level. Thank you very much.

  • @DesignTechUnraveled
    @DesignTechUnraveled 3 года назад +1

    Wanted to give you a heads up. The audio from 01:19 - 11:26 is only in the left audio channel. Not a huge deal when on desktop audio, but fairly difficult to listen to with headphones on.

    • @AussieBIMGuru
      @AussieBIMGuru  3 года назад +1

      Yeah thanks I recwntly struggled across an issue with my audio interface and OBS. Should hopefylly be addeessed in future videos.

  • @TheGlennovitS
    @TheGlennovitS 3 года назад +1

    Nice demo. The walls example really helped 💪🏼 thanks 😄

  • @harilalmn
    @harilalmn 3 года назад +1

    Very good demonstration.!

  • @christopherhanson9351
    @christopherhanson9351 3 года назад

    A bit delayed but I just saw this. Your discussion was very helpful and this video has been too, thank you!

    • @AussieBIMGuru
      @AussieBIMGuru  3 года назад

      You're welcome Christopher! Thanks for the query.

  • @muratovbim
    @muratovbim 3 года назад

    Hi!
    It seems we can make it in easier way. We don't need to make a long lacing in the Set parameter node. We can turn on L1 for element list, don't change level on second input with list of parameter names, and turn on L2 on third input with data. In this case we take each element and each sublist of data and write the data in parameters list. We have similar lengths of lists with parameter names and data, so it'll work.
    I test it in my script now and it works. I can't add here a screeshot unfirtunately.

    • @AussieBIMGuru
      @AussieBIMGuru  3 года назад

      Thanks! Yes various combinations of lacing and levels can usuallt achieve the same outcome. I try to use parallel levels for list structures where possible, but other approaches are certainly viable.

  • @jeffclassics
    @jeffclassics 3 года назад +1

    That's a wonderful example of an inefficient serparameter scenario. Btw, @L2 in element then the rest is default I believe also works the same, I'll check later. But Having used dynamo for maybe thousands of times I still trial and error in a scaled down list to be sure I get it right before publishing it to the team. Nested For loops and zip is easier or direct tbh.

    • @AussieBIMGuru
      @AussieBIMGuru  3 года назад

      Thanks! Yes I think you're right, there's a few levels combinations that could work in these scenarios. I use Python loops a lot now too, but I guess a lot of users don't know that side of Dynamo as well. I find frustration with levels is why most users move to Python.

    • @alleskaese
      @alleskaese 2 года назад +1

      @@AussieBIMGurumy problem is that i don't really know python (find it more complicated than c#) and i wish there was a c# node in dynamo like in grasshopper, also it would be great if dynamo could use grasshopper as a example for the lists

    • @AussieBIMGuru
      @AussieBIMGuru  2 года назад

      @@alleskaese maybe look into zero touch node development which supports C#. I doubt Dynamo will go down the path of data trees as other programming languages tend to also be list based like dynamo is.

  • @andriyborysov4469
    @andriyborysov4469 3 года назад +2

    Thanks for the video! Really helpful. But something wrong with the sound. I heard your voice only in one ear using my headphones. Of course, it is not a big problem for short videos, but it would be great if you will fix it!

    • @AussieBIMGuru
      @AussieBIMGuru  3 года назад +1

      Yes it's a recording setting I forgot to fix in post production, thanks for letting me know. My recording device is mono so I usually have to mirror the sound in my editor, every now and then I forgot - whoops!

    • @dykodesigns
      @dykodesigns 3 года назад

      @@AussieBIMGuru I think the XLR mic is plugged in the first input of the audio interface, which would be the left channel. What you can do is use a mixer in conjunction with an audio interface, I have the stereo output of the mixer go into inputs 1 and 2 of the interface. Allthough a mixer will generally keep the two mic channels separated. I recently switched from a USB mic to and XLR condensor mic so it’s an issue I have to keep in mind as well. As far as I’m aware OBS might be able to double the mono channels so that the left channel is also mirrored to the right channel.

    • @dykodesigns
      @dykodesigns 3 года назад +1

      Edit / Addendum: I have the mic (which is mono) plugged into the first input of the mixer. The two mic inputs are also mono. However, the “Pan” knob is set to the centre position, so the mixer puts this mono channel on both the left and the right equally on the main mix. If you turn the pan knob fully to left, if will only be heard on the left channel. When you turn fully to the right, it will only be on the right channel. By turning the pan knob, you can control how strong the signal is on the left or right channel. When it’s in the centre, it’s balanced equally. A mixer gives you a lot of flexibility in that regard.

    • @AussieBIMGuru
      @AussieBIMGuru  3 года назад

      @@dykodesigns ah that was very helpful, I managed to get my mono channel going through L/R equally using these tips! Thanks so much mate.

  • @bittor_a
    @bittor_a 3 года назад +1

    Very clear example! Although I think that you mixed up your final video hahaha

    • @AussieBIMGuru
      @AussieBIMGuru  3 года назад

      Indeed I did *facepalm*.
      Good to know someone made it to the end!

  • @Segendary
    @Segendary 2 года назад

    Do you have a good method of practicing this with uneven sublists? Such as deleting only curves of a polycurve that have a certain condition?

    • @AussieBIMGuru
      @AussieBIMGuru  2 года назад

      Generally I would use nodes like take items @L2 set to shortest lacing to trim sublists down to shortest depth. Typically uneven sublists are a good case to investigate how the lists became uneven, as in many cases they might be due to an error or a better way of managing data upstream.

    • @Segendary
      @Segendary 2 года назад

      @@AussieBIMGuru Today's script I was able to filter out unwanted elements not by removal but by replacing them. THEN apply the List.FilterByBooleanMask to get them out.
      It concerned deleting Gridline segments that were evaluated based on a shuffled list.
      So Polycurves were each evaluated by a list that was in a transposed order. So transposing them back would wrongly align them if items were dropped.
      If this makes any sense haha.

    • @AussieBIMGuru
      @AussieBIMGuru  2 года назад +1

      @@Segendary ah yes transpose only works for equal lists generally. I mostly use it when working with matrices of data like excel/csv.

  • @vrbaac1641
    @vrbaac1641 2 года назад

    hi, very nice topic but i am not sure why there is no sound after your introduction... i need to review this tutorial ^^ i hope the audio can be fixed ^^ thank you

    • @AussieBIMGuru
      @AussieBIMGuru  2 года назад +1

      Ah sometimes my sound settings are off and headphones or mono speakers miss the right sound channel.

    • @vrbaac1641
      @vrbaac1641 2 года назад +1

      @@AussieBIMGuru ahh yes... I think will try another headphone... my headphone as of now have a defective left ear piece..

  • @mostafamagdy7995
    @mostafamagdy7995 3 года назад

    I have a problem if you can help me I want to copy dimensions between revit files same views same geometry but when i bind the dimensions disappear

    • @AussieBIMGuru
      @AussieBIMGuru  3 года назад +1

      It sounds like they may be struggling to find valid refefences. When dimensions are copied they usually search for new references and sometimes this doesn't succeed. Usually i suggest copying elements across with dimensions where possible, but otherwise it isn't going to be as reliable. Cross check the model coordoninates match also, other than that not sure if there's anything else that can be done.

    • @mostafamagdy7995
      @mostafamagdy7995 3 года назад +1

      @@AussieBIMGuru thank you it's the a multiple binded but still same model so i guess the problem happens when binding take a place

  • @tikytak21
    @tikytak21 Год назад

    How does one remove redundant list levels?

    • @AussieBIMGuru
      @AussieBIMGuru  Год назад

      A combination of list levels and the list.flatten node works best for that.

  • @aethylwulfeiii6502
    @aethylwulfeiii6502 2 года назад

    Just tell me how to get multiple outputs from one node!

    • @aethylwulfeiii6502
      @aethylwulfeiii6502 2 года назад

      So that I can use them as multiple inputs for another node.

    • @AussieBIMGuru
      @AussieBIMGuru  2 года назад

      Make a code block and type data[x], where x is the index of the item or sublist in your data. You can use the ; character to make a new line im the same code block to get multiple outputs.

  • @ningzhou8397
    @ningzhou8397 Год назад +1

    one of the reasons that confusing me is that "reversed" order, L1 should be always 1st level which is outmost, in fact, it's innermost

    • @AussieBIMGuru
      @AussieBIMGuru  Год назад +1

      Yes levels at first feel like they should work in vs outward, but over time you'll find more often than not you usually will want to access sublists this way due to not always knowing the depth of incoming list structures. I believe reversing @L1 would generally not achiece a lot as it would work at object level. Generally level 2+ would have more desired results.

    • @ningzhou8397
      @ningzhou8397 Год назад

      @@AussieBIMGuru right, that makes sense

  • @pradeeph1928
    @pradeeph1928 Месяц назад

    Hello, could you please share with me the link for Dynamo courses?

    • @AussieBIMGuru
      @AussieBIMGuru  Месяц назад

      I have a Dynamo course here:
      courses.bimguru.education/courses/course-dynamo-4revit