Numbering by Spline using Dynamo!

Поділитися
Вставка
  • Опубліковано 17 вер 2024

КОМЕНТАРІ • 96

  • @AussieBIMGuru
    @AussieBIMGuru  4 роки тому +1

    Turns out you might need to use a 'minimum item' node after you use boolean masks - the intersections don't always come back in order of parameter!

    • @IshiFrenchy
      @IshiFrenchy 2 роки тому

      Hey ! I'm having trouble. Even after I use the minimum Item after one or both boolean masks I didn't get the right order...

    • @AussieBIMGuru
      @AussieBIMGuru  2 роки тому

      @@IshiFrenchy try running it @L2 so you work across sublists/objects. This is only for a workflow where you intersect a surface or solid object.

  • @lafeharris8471
    @lafeharris8471 2 роки тому +2

    Okay, this is an amazing tutorial. I don't code and have no space in my brain for this type of thinking. But I followed your tutorial and it worked first time, first dynamo script for me ever. That never happens to me! You are a very able teacher of very difficult concepts.

    • @AussieBIMGuru
      @AussieBIMGuru  2 роки тому +1

      Glad to hear it was helpful! Yes spline numbering is a workflow I use often to teach architects about computation, it's a nice one as it is easy to visually understand.

  • @alexrafie7805
    @alexrafie7805 4 роки тому +1

    I like the different approaches to deal with different types of elements. I added an option to reverse the curve in case the user wanted to do the opposite direction..
    thanks a lot mate. it is such a handy tool...

  • @jeremybowen6269
    @jeremybowen6269 3 роки тому +1

    These videos are so helpful! I hope your channel keeps expanding!

  • @marwanbeaino5377
    @marwanbeaino5377 Рік тому +1

    Wonderful content as always ! Thanks a lot Gavin !

  • @jinwookkevinhan1975
    @jinwookkevinhan1975 4 роки тому +1

    Thanks for your great video!!

  • @jinwookkevinhan1975
    @jinwookkevinhan1975 4 роки тому

    Thanks for your useful video!
    I can number over 800 louver models.

    • @AussieBIMGuru
      @AussieBIMGuru  4 роки тому

      Awesome, great application for this script!

  • @julienzabala365
    @julienzabala365 Рік тому +1

    Hello community, I am turning to you today because I have a problem. I would like to make a numbering of the parts thanks to a script but when I launch it, it numbers everything, no problem, but it does not follow the spline that I have set up. What did I forget in my script?
    Thanks again :)

    • @AussieBIMGuru
      @AussieBIMGuru  Рік тому +1

      My guess is that maybe the spline is not at the same plane as the points, check in 3D in Dynamo. Also test a smaller model to see if in principle it is working.

  • @tejalbhagwat8339
    @tejalbhagwat8339 Рік тому +1

    Great video but with method 1 or 2 the sort by key or minimum item both don’t seem to work! Any other suggestion?

    • @AussieBIMGuru
      @AussieBIMGuru  Рік тому

      Try sorting with levels set to @L2 and longest lacing applied. I believe that might be necessary in some Dynamo builds due to changes since I made this video.

  • @mercurator6131
    @mercurator6131 2 роки тому +1

    Hi, thanks for another really helpful video! One question though: why go through the (seeming) trouble of getting all elements in the active view, filtering them for Rooms (via object to string) with a boolean mask, if you can also Get All elements of Category and choose Rooms in the dropdown? Is that less reliable maybe?

    • @AussieBIMGuru
      @AussieBIMGuru  2 роки тому +2

      You could obtain elements in a variety of ways, usually I use the 'all elements of category in view' node these days, but I worked with a filtering down process in this tutorial to teach people how to isolate elements by a property as most people aren't familiar with this fundamental concept. I avoid dropdowns unless they are needed for Dynamo player because they change between Dynamo builds when more or less categories are available to choose from, usually I use category by name where it suits.

  • @user-vf2rl1pl7t
    @user-vf2rl1pl7t Рік тому

    Thank you for the wonderful video. but I am having trouble with your method 1. (for an explanation, I am following your model) In my model, the corridor does not start with the number 1. Could you give me any advice for this?

    • @AussieBIMGuru
      @AussieBIMGuru  11 місяців тому

      Main thing would be to double check that it definitely gets intersected first (check on the graphical output in dynamo), and that only the first intersection is considered if it crosses back over the room afterwards or as it leaves it.

  • @abhaykumar-cd5gu
    @abhaykumar-cd5gu 4 місяці тому

    In my case rooms are having opening in between them, how to avoid double polycurves for such rooms, this is causing error at sorting due to difference in count of rooms and intersection points lists

    • @AussieBIMGuru
      @AussieBIMGuru  4 місяці тому

      To solve this one, get the list of intersection points/parameters for each room vs the spline and get the lowest number from each list. This way you only get the value the first time the spline intersects each room vs every time.

  • @PauloFerreiradyn
    @PauloFerreiradyn 4 роки тому +1

    Great video, as always. I really like the second method, cause we don't need to get all the elements geometry so, in theory, it runs faster, right?

    • @AussieBIMGuru
      @AussieBIMGuru  4 роки тому

      It would be about the same speed I think, as we're using i intersect or closest point.

  • @alejandroroman909
    @alejandroroman909 4 місяці тому

    Hi mate, I'm trying to make it work for assemblies; however, since the moment I have to place Room, the finish boundary doesn't work anymore with assemblies. Is there any way to adapt this to assemblies?

    • @AussieBIMGuru
      @AussieBIMGuru  4 місяці тому

      The main ways i could think to work with them are either by using bounding box outline, location point or centroid of bounding box.

  • @0letii
    @0letii 3 роки тому +1

    Thank you for the video! I am trying to apply to Areas instead of Rooms and it does not work. I have replace the word Rooms for areas in the Code Block and I applying it to a view of area plan. Is this correct? Should I do anything else?

    • @AussieBIMGuru
      @AussieBIMGuru  3 роки тому

      Not quite so simple unfortunately. Areas don't typically yield their geometry in the same way as rooms. Check out the area boundaries node in Rhythm though as an alternative for getting their boundary curves.

    • @0letii
      @0letii 3 роки тому

      Thank you! It worked!! But sometimes it missed some areas (even though the spline is cutting the boundaries) and other times it changes the order and does not follow the path of the spline. Why could it be?

    • @AussieBIMGuru
      @AussieBIMGuru  3 роки тому

      @@0letii hrm im not quite sure. Could be a variey of reasons. Make sure to join the area boundaries as polycurves so they are only intersected once per area, and also pull the curves to the same plane as the spline curve in dynamo.

  • @Iosconvolto
    @Iosconvolto 4 роки тому +1

    Great as always man! There is something wrong i am doing Gavin . Just followed your example and my corridor do not get number 1 ..

    • @Iosconvolto
      @Iosconvolto 4 роки тому +1

      at 9:26 if I type 1 (rather than 0) i get corridor as n.1 .
      In this case as the last room (top right of your plan) has just one intersection, by typing 1 (so actually selecting the second intersection point) I get an error because the last room (top right of your floorplan) has just one intersection. SO I extend my spline outside my drawing in order to achieve the second intersection point of the last room.
      But maybe i am doing it complicate. PLease let me know your thoughts ;-) cheers

    • @AussieBIMGuru
      @AussieBIMGuru  4 роки тому +1

      @@Iosconvolto Hrm strange... the way I've done it should yield the first time the spline enters or leaves a room's geometry, so it should pick up the first time it 'leaves' the corridor this way. The range is built to be adjustable, so the numbering is determined by the range plus the offset later on.
      If your corridor is coming out as 0, adjust the range properties instead of the list level logic I'd say. The reason your last room doesn't get detected when set to index 1 @ level 2 is because it only has one intersection as you've identified.
      Feel free to send files to me for review if you like.

    • @Iosconvolto
      @Iosconvolto 4 роки тому

      @@AussieBIMGuru still have a few issues , i am sending you the file for review. Thanks Gavin

  • @whddls3807
    @whddls3807 Рік тому

    Hello, thank you so much for the useful script tutorial. Have a question, somehow it works but only works for the first room and not for the rest. Apparently, the line crossing room point created in the first room only.. do you have any clue of this?
    I though I have followed all of the steps that you did.
    Please let me know.

    • @AussieBIMGuru
      @AussieBIMGuru  Рік тому +1

      Try using longest lacing for the intersection nodes.

    • @whddls3807
      @whddls3807 Рік тому +1

      @@AussieBIMGuru Thank you!

  • @guilhermealmeida2650
    @guilhermealmeida2650 4 роки тому

    Very good!

  • @Revit12328
    @Revit12328 7 місяців тому

    @AussieBIMGuru how i can use to sort out diff elements like pilecaps as i can not get finish boundary for it. I used 2nd method and sometimes it assign wrong values due to close proximity.

    • @AussieBIMGuru
      @AussieBIMGuru  7 місяців тому

      Get their location and pull the curve/points to Z plane = 0. Then do closest point to curve and get its parameter, sort by them instead.

    • @Revit12328
      @Revit12328 7 місяців тому

      @@AussieBIMGuru Curve.PullOnToPlane, not woking for points and Element.Curve givng "Empty List" for pilecaps

    • @Revit12328
      @Revit12328 7 місяців тому

      @@AussieBIMGuru Curve.PullOnTOPlane need curve and i got point from pilecaps and Element.Curve giving empty list for Pilecaps.

  • @bennieburger3153
    @bennieburger3153 3 місяці тому

    I followed this tutorial and reconfirmed it, but it looks like my rooms are renumbering based on the second intersection instead of the first. In other words - The corridor is not R.1 but R.6 in my case... (I only made 9 rooms.) Where did I go wrong?

    • @AussieBIMGuru
      @AussieBIMGuru  Місяць тому

      If you're using list.firstitem, try lastitem instead for the intersections (or vice versa). If you're not sorting the sublists by their value, do that also so you get the lowest value from each list of parameter values only.

  • @IshiFrenchy
    @IshiFrenchy 2 роки тому +1

    Hey thank you a lot for helping me to number my rooms ! I'm just having a small problem. I'm using the parameter number in 'Identifier datas' and I have a lot of number after the ",". exemple of number I have : "01.2,000000", but I want "01.2". I have tried the 'Math.round' but it says that I need to have 'double' and not 'string'

    • @AussieBIMGuru
      @AussieBIMGuru  2 роки тому +1

      There are quite a lot of methods you could use, most are slightly complex but manageable. This thread has some good examples of how to remove trailing zeroes from a string.

    • @IshiFrenchy
      @IshiFrenchy 2 роки тому

      @@AussieBIMGuru Which thread ? Did you forgot the link ? Or do you speak about the commentary section below?

    • @AussieBIMGuru
      @AussieBIMGuru  2 роки тому +1

      forum.dynamobim.com/t/remove-trailing-zeros/1563

    • @IshiFrenchy
      @IshiFrenchy 2 роки тому

      @@AussieBIMGuru Thank you !

  • @immi85
    @immi85 4 роки тому +1

    Just one question, which line we can use, model line or detail line. Or we can use both type?

    • @AussieBIMGuru
      @AussieBIMGuru  4 роки тому

      Either type should work, either will become the same curve in dynamo.

    • @immi85
      @immi85 4 роки тому +1

      @@AussieBIMGuru because of element geometry node right!!. Got it thanks, I have similar task with structure framing numbering. You can check in dynamo forum. I will send you link.

    • @AussieBIMGuru
      @AussieBIMGuru  4 роки тому +1

      @@immi85 i'll give it a look, and yes element.geometry

  • @mawjaldarraji5590
    @mawjaldarraji5590 3 роки тому

    Hi, Thanks for sharing, just a small question. I have a high-rise tower and i want to apply this numbering to all floors not just the ones in the view. Also I'm trying to get to renumber them as 1, 2, etc.. at each level, like they restart counting at each level. Any idea how can I incorporate this in this script?

    • @AussieBIMGuru
      @AussieBIMGuru  3 роки тому

      Given each floor is probably different I'd suggest a circular numbering rule instead. Otherwise you'd need to draw many splines. If your rooms are all in the same order, you could pull their geometry down to the XY plane and the spline and run them all as sublists using the same logic as I use with one level here. You could then append a list of prefixes to each sublist per floor.
      Alternatively, circular numbering may be a better alternative approach which is more automatic:
      ua-cam.com/video/2H6BPi9gsQE/v-deo.html

  • @alexrafie7805
    @alexrafie7805 4 роки тому +1

    in the first method, what if you have a column in the room. that will create a curve within a curve. that will lead to a null index when converting to closed polycurve. how do you solve this?

    • @AussieBIMGuru
      @AussieBIMGuru  4 роки тому +2

      Hi Alex, you could collect the polycurves of each room, sort by function (area) @level 2, then return the last curve of each list. This would return the outer curve only.

    • @alexrafie7805
      @alexrafie7805 4 роки тому +1

      @@AussieBIMGuru thanks for the quick reply.. I trying this method on Spaces and I couldn't create a polycurve from the list that contains two curves. so I intersected the separated curves with the spline and kept the list structured based on the spaces surfaces.
      the only problem here (and I think in the case of rooms) is when you have the spline runs across a room separator. in this case you will get two points in the same location and that might lead to incorrect numbering. so to avoid that, I added a note to the users not cross a room or space separator.

    • @AussieBIMGuru
      @AussieBIMGuru  4 роки тому +1

      @@alexrafie7805 I did some testing and I see what you mean - space boundaries aren't easy to turn into polycurves like room boundaries are. I'll send my approach by LinkedIn PM, I think using the solid geometry of the room is the best way, and it should be able to work around space boundary lines.

    • @alexrafie7805
      @alexrafie7805 4 роки тому +1

      @@AussieBIMGuru thanks Caven, the Curve start point node will solve the problem when intersecting the space solids with the curve.

    • @AussieBIMGuru
      @AussieBIMGuru  4 роки тому

      @@alexrafie7805 excellent!

  • @annaborysova9757
    @annaborysova9757 3 роки тому +1

    Life changing 🐒🐵

  • @thoov106
    @thoov106 4 місяці тому

    I am having issues when the spline crosses over a corridor multiple times it is not ordering the rooms in the desired sequence.

    • @AussieBIMGuru
      @AussieBIMGuru  4 місяці тому

      This would require you to take the first intersection per room only, so that it only gets counted once in the spline path. This can be achieved if you get the intersections per room, sort them with their parameter by key in sublists, then take first item from each sublist.

    • @thoov106
      @thoov106 4 місяці тому

      @@AussieBIMGuru I've followed your exact steps in your video, but the issue that I'm experiencing is at the Geometry Intersect node, where the first intersection listed is not always the first point along the spline. In my testing, it's either been the second or third intersection point on the list, not the first. The only thing I can think of is that it's due to the order in which the rooms are placed. I've been using the automatic room placement tool in Revit during my testing.

    • @AussieBIMGuru
      @AussieBIMGuru  4 місяці тому

      @@thoov106 here is an example of how to handle this scenario:
      github.com/aussieBIMguru/Dynamo_Scripts/blob/master/240430_ABG_NumberBySpline.zip

  • @Hygio
    @Hygio 2 роки тому

    I can't get it to work, the rooms won't sort to the spline order. Renaming them still only works on create order and not spline

    • @AussieBIMGuru
      @AussieBIMGuru  2 роки тому

      Sounds like they aren't being sorted properly then. Make sure the list is actually reordering before the values are applied.

  • @fernandogarciadonoso4695
    @fernandogarciadonoso4695 2 роки тому

    Hi! First at all thanks for the video! is super helpfull and you explain it great, I´m trying to aply that to my project and i get an error in the Intersection Node, "Warning: Geometry.Intersect operation failed. Unable to make wire from edge body : WIRE_SELF_INTERSECTS2 -- Wire has self-intersection" i have no Idea why is that happening, so the scrip runs great by simple rooms geometry but in my case the rooms boundary has almost 50 points... i dont know if that could be the problem..
    Thanks in advance for any help :)

    • @AussieBIMGuru
      @AussieBIMGuru  2 роки тому

      Yes unfortunately dynamo can sometimes fail on complex forms. In my experience there sometimes isn't a good solution for this, substituting the room with a bounding box or trying to get the room's 3d geometry might be an alternative.

  • @kochamfigo
    @kochamfigo 2 роки тому

    I have a problem with get item at index... It doesn't work for me and doesn't change 1.0000 format into just 1. :( Anyone knows how to fix it?

    • @AussieBIMGuru
      @AussieBIMGuru  2 роки тому

      Try rounding the number.

    • @kochamfigo
      @kochamfigo 2 роки тому +1

      @@AussieBIMGuru OMG... I didn't split the string by separator :/ Thank you for your help anyway :)

  • @carlosandrescerqueragirald6447
    @carlosandrescerqueragirald6447 2 роки тому

    Great video as usual BIM Guru, I´ve been trying to replicate the exercise and this warning pops out in the node Curve. PullOntoPlane (error: PolyCurves may be branching) minute 6:12 which It is connected to the node Polycurve.byJoinedCurves, any ideas? Thanks a lot !

    • @AussieBIMGuru
      @AussieBIMGuru  2 роки тому +1

      It sounds like you may have more than one set of curves. Make sure all the curves are connectable of you are using one spline.

    • @carlosandrescerqueragirald6447
      @carlosandrescerqueragirald6447 2 роки тому +1

      @@AussieBIMGuru Thanks for your response! I will try it.

  • @MaciejWrzosek-o6i
    @MaciejWrzosek-o6i Рік тому

    Can you do the same thing but with Aeras? :)

    • @AussieBIMGuru
      @AussieBIMGuru  Рік тому +1

      Wouldn't be too different. Main difference is you would need to use the curves of the area instead, and could patch them to surfaces if they have single boundary loops.

  • @allansergent8390
    @allansergent8390 4 роки тому +1

    would the second method work on ac units?

    • @AussieBIMGuru
      @AussieBIMGuru  4 роки тому +1

      Yes you could get the bounding box of the element, to cuboid, centroid. Then map that a common plane (pull to plane) - this lets them be measured only in XY plane. From there it's the same workflow essentially.

    • @allansergent8390
      @allansergent8390 4 роки тому +1

      @@AussieBIMGuru looking forward to trying this out. Thanks so much

    • @AussieBIMGuru
      @AussieBIMGuru  4 роки тому

      @@allansergent8390 no worries, let me know how it goes and if you run into any issues!

    • @allansergent8390
      @allansergent8390 4 роки тому +1

      @@AussieBIMGuru i thought got stuck trying to separate the ac units from all mechanical equipment , so i thought i should get the mechanical equipment tag but i have been unsuccessful in making this happen.

    • @AussieBIMGuru
      @AussieBIMGuru  4 роки тому

      @@allansergent8390 yes Dynamo forces us to often revisit our data standards to find ways we can filter and isolate elements unfortunately. I suggest finding a way to put some common data in your units that can be used in Dynamo to apply a f'ilter by boolean mask' based on a parameter value (e.g. description).