Тёмный

Numbering by Spline using Dynamo! 

Aussie BIM Guru
Подписаться 48 тыс.
Просмотров 11 тыс.
50% 1

Often we must number a whole bunch of Revit elements in sequence; rooms, areas, parking spaces, doors etc. A great way to automate this using Dynamo is by using a spline as an input to determine the sequence for these items. I show you two methods you can use in this video to automatically number rooms/parking spaces respectively; intersection and proximity to spline.
I hope you enjoy the session and learn something new! Feel free to comment any feedback/questions below, or follow my channel if you enjoyed this.
Learn more about Dynamo at;
primer.dynamobim.org/
Software used;
Autodesk Revit 2020: www.autodesk.com/products/rev...
Dynamo: dynamobim.org/
Adobe Premier CC: www.adobe.com/au/products/pre...
Flashback Express: www.flashbackrecorder.com/exp...
Hardware used;
Webcam: support.logitech.com/en_us/pr...
Laptop: www.msi.com/Workstation/WT75-...
Microphone: www.rode.com/microphones/nt-usb
#revit #dynamo #bim

Опубликовано:

 

5 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 96   
@AussieBIMGuru
@AussieBIMGuru 4 года назад
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 года назад
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 года назад
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.
@jeremybowen6269
@jeremybowen6269 3 года назад
These videos are so helpful! I hope your channel keeps expanding!
@AussieBIMGuru
@AussieBIMGuru 3 года назад
Thanks Jeremy!
@marwanbeaino5377
@marwanbeaino5377 Год назад
Wonderful content as always ! Thanks a lot Gavin !
@AussieBIMGuru
@AussieBIMGuru Год назад
Glad you enjoyed it!
@jinwookkevinhan1975
@jinwookkevinhan1975 4 года назад
Thanks for your great video!!
@AussieBIMGuru
@AussieBIMGuru 4 года назад
You're welcome!
@alexrafie7805
@alexrafie7805 4 года назад
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...
@AussieBIMGuru
@AussieBIMGuru 4 года назад
You're welcome Alex, reverse curve seems a good addition!
@PauloFerreiradyn
@PauloFerreiradyn 4 года назад
That's a great idea Alex
@alexrafie7805
@alexrafie7805 4 года назад
thanks Paulo
@metabalcanico5719
@metabalcanico5719 7 месяцев назад
you look like the "balkan architect" lol
@guilhermealmeida2650
@guilhermealmeida2650 4 года назад
Very good!
@AussieBIMGuru
@AussieBIMGuru 4 года назад
Thanks Guilherme!
@jinwookkevinhan1975
@jinwookkevinhan1975 4 года назад
Thanks for your useful video! I can number over 800 louver models.
@AussieBIMGuru
@AussieBIMGuru 4 года назад
Awesome, great application for this script!
@mercurator6131
@mercurator6131 2 года назад
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 года назад
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.
@PauloFerreiradyn
@PauloFerreiradyn 4 года назад
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.
@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: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-2H6BPi9gsQE.html
@annaborysova9757
@annaborysova9757 3 года назад
Life changing 🐒🐵
@AussieBIMGuru
@AussieBIMGuru 3 года назад
Thanks!
@tejalbhagwat8339
@tejalbhagwat8339 Год назад
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.
@julienzabala365
@julienzabala365 Год назад
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 Год назад
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.
@0letii
@0letii 3 года назад
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.
@alejandroroman909
@alejandroroman909 3 месяца назад
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 3 месяца назад
The main ways i could think to work with them are either by using bounding box outline, location point or centroid of bounding box.
@immi85
@immi85 4 года назад
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 года назад
@@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 года назад
@@immi85 i'll give it a look, and yes element.geometry
@Revit12328
@Revit12328 5 месяцев назад
@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 5 месяцев назад
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 5 месяцев назад
@@AussieBIMGuru Curve.PullOnToPlane, not woking for points and Element.Curve givng "Empty List" for pilecaps
@Revit12328
@Revit12328 5 месяцев назад
@@AussieBIMGuru Curve.PullOnTOPlane need curve and i got point from pilecaps and Element.Curve giving empty list for Pilecaps.
@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 года назад
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 года назад
@@AussieBIMGuru Thanks for your response! I will try it.
@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 Год назад
Try using longest lacing for the intersection nodes.
@whddls3807
@whddls3807 Год назад
@@AussieBIMGuru Thank you!
@abhaykumar-cd5gu
@abhaykumar-cd5gu 2 месяца назад
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 2 месяца назад
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.
@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.
@alexrafie7805
@alexrafie7805 4 года назад
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 года назад
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 года назад
@@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 года назад
@@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 года назад
@@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!
@Iosconvolto
@Iosconvolto 4 года назад
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 года назад
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 года назад
@@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
@IshiFrenchy
@IshiFrenchy 2 года назад
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 года назад
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 года назад
forum.dynamobim.com/t/remove-trailing-zeros/1563
@IshiFrenchy
@IshiFrenchy 2 года назад
@@AussieBIMGuru Thank you !
@bennieburger3153
@bennieburger3153 2 месяца назад
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 15 дней назад
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.
@allansergent8390
@allansergent8390 4 года назад
would the second method work on ac units?
@AussieBIMGuru
@AussieBIMGuru 4 года назад
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 года назад
@@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 года назад
@@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).
@thoov106
@thoov106 3 месяца назад
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 3 месяца назад
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 3 месяца назад
@@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 3 месяца назад
@@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.
@kochamfigo
@kochamfigo Год назад
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 Год назад
Try rounding the number.
@kochamfigo
@kochamfigo Год назад
@@AussieBIMGuru OMG... I didn't split the string by separator :/ Thank you for your help anyway :)
@user-nk9mh5zy8e
@user-nk9mh5zy8e Год назад
Can you do the same thing but with Aeras? :)
@AussieBIMGuru
@AussieBIMGuru Год назад
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.
@user-vf2rl1pl7t
@user-vf2rl1pl7t 10 месяцев назад
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 10 месяцев назад
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.
Далее
Elements in Linked Rooms using Dynamo!
11:17
Просмотров 12 тыс.
Это реально работает?!
00:33
Просмотров 1,9 млн
Navisworks Clashes to Revit using Dynamo!
36:47
Просмотров 29 тыс.
Understanding list levels in Dynamo!
12:30
Просмотров 12 тыс.
Formwork estimation using Dynamo!
18:39
Просмотров 13 тыс.
Dynamo Shorts - Ep002 - Numbering Elements
34:21
Просмотров 12 тыс.
Door thresholds in room outlines using Dynamo!
15:41
Просмотров 3,5 тыс.
Attractor in Dynamo Tutorial
10:14
Просмотров 32 тыс.
Renumber Rooms Automatically
17:05
Просмотров 307