Hi Gavin, Great video as always, .... I would like to know about something which is off topic .. (annotating spot coordinates for plot corners and grid intersections)
Grid intersections are a bit tricky, as you'd need something to apply a spot coordinate to. A grid intersection is the meeting point of two elements. Maybe have a look at this workflow for finding grid intersections and then look into the nodes for spot coordinate placement at those points. ua-cam.com/video/6an1clh9RoE/v-deo.html
Thx again, Gavin, for this amazing video. I have been struggling with the same issue and I found my solution to be almost identical. I was just wondering for the best way to group those intersections, but I found your solution to be quite simple an elegant in that manner - simply creating circles to manage grouping :) I wanted to ask if you find getting element's solids more convenient than using element.geometry node? This is what I use and then I don't need to unite the solids. However, I find that node to be a bit slow, which might be an issue with large projects, so I wanted to ask for your opinion on this :) I also find it a bit more useful to use a void family, instead of shafts, cause you can write all sorts of data in those family instances that engineers sometimes need to schedule.
Yes element.solids is often a better node to use, although it does take a bit longer as it has some extra steps it runs behind the scenes. Void/face based families are ideal for holding information, and I use them too usually. I made a video on wall penos a while ago using a window family and I got more questions about the family than the script so decided to just use an opening this time around to make my life a bit easier :)
Nice program. I tried writing a similar one as well but my building has several floor elevations and found errors when a building has several floors. Do you think separating floors by level and pipes by level would help? Thank you for your videos. They are great, as always
This is usually a script I'd run across a small sample set, and one floor at a time in focus. It can be scaled up to do full levels at once, but it's much more complex - you would need to identify which floor each set of elements belongs to by doing a clash test. Many people use a package called Bimorph nodes and its 'ray bounce' node to do this task.
Unfortunately I no longer make videos for now, but if you get the floor's geometry you should be able to isolate the top face by its normal and then get its perimeter curves.
If you want taggable openings I suggest using a face based generic model instead, that contains an opening element in it. Unfortunately native openings are unable to support tags or project parameters for tagging values.
Thank you Gavin, very helpful ^^ In project I have structural & architectural floor and I use the opening cutting family (Opening family from Revit library), it´s hosted on the Arc floor, but doesnt cut through Str Floor when i join both floors, which is possible with wall opening family. So should I use void family (generic model) with an extra cuting script or do you have any solution that we can still use floor opening family for multiple floors?
I would consider using shaft openings instead maybe? These should cut through any floor/ceiling/roof they cross. There is a node in the springnodes package that works the same way as the floor opening script moreorless.
This isn't really something I've tried before to be honest, I would probably use Grasshopper for this. The method would probably involve taking all beams at a certain level, getting their centrelines and extending them, then trimming them at intersections (quite difficult). I'd probably have a line drawn around the outer slab edges so the script knows which beams are edge beams and ignore them, then take that as a surface, split it by the trimmed beam curves and generate floors for each outline from the split surface. Dynamo would struggle with much of this I think, which is why Rhino Inside/Grasshopper might be worthwhile trying out.
The challenge here is that the elements being penetrated (floor) aren't usually in the MEP model. This workflow is moreso aimed at structural or architectural models where floors/walls etc. are located typically. You could use similar logic to create a 'penetration family' instead, or bake in the result as a floor. This is sometimes how engineers coordinate their intended penetrations to the structural engineer to capture in their model in my experience.
@@AussieBIMGuru This is exactly what I am currently trying to do. We have been able to use your dynamo script for wall penetrations and linked models. but we are struggling to model a family which can be placed using the code above. Would you be able to suggest how to modify the script to allow for a family to be placed instead of cutting an actual penetration?
Hey. so Im building this script. Ive got 3 floors from a linked file. And when I intersect cuboids and planes (Geometry Intersect all) I end up with a list of empty lists. Can't find the cauze. I found two possible ones on the forum. One us the Geometry scaling problem. I chanhe it and it makes my ducts cuboids as one big cuboid. Another ones - is that linked file and the project file have different origins, however they are centered and when the Planes by origin are created I can see them in a model. But as I said I get an empty list. Can't figure out why
Make sure to visually check if the cuboids and planes actually overlap and are in the right location in Dynamo. You may need to apply a transform to the geometry (using a translated coordinate system), and you can get a link instance's transform using a node from Crumple packaged called Coordinates.GetLinkTransform.
It is in spring nodes package which can be installed via the package manager in dynamo. I usually introduce required packages in the video introduction.
The script is only built to work with 1 floor at a time and a set of elements to make openings. If you wanted to do many floors at once then the script would need to be adjusted to suit.
It can be made to. There are quite a lot of custom packages that can source linked elements by various conditions, and from there it's a very similar workflow.
hi Guru, in the wall openings video (ua-cam.com/video/o77lLfyQm30/v-deo.html) , you used a window family which was super usefull for tagging purposes! is there a workaroud to this floor openings workflow using a family for the opening so it can be tagged?
Yes a face based family could potentially serve such a purpose as long as it is a square/rectangular or circular opening. If it's irregular then it wouldn't be feasible.
Am sorry to say this....really difficult to follow your language... Could u pls hepl me in this regard... But your stuff is really useful and required also.
If you are a beginner dont begin here - these are quite advanced tutorials. Begin with dynamo primer and my learning series playlist maybe. If you find me hard to hear or am too fast maybe try slowing the video to 0.75 speed and turning on CC
No worries, thanks for the support! Different cultures find different accents/speed harder to handle I find, so I dont mind if people want to let me know they has trouble.
Great stuff ! Much appreciated ! Thanks a lot
Glad it was helpful!
Thank you Gavin, very insteresting and helpful
You're welcome!
Amazingly Beautiful .... Thnx Man
Glad you liked it!
Thank you for this tutorial ^^ very useful ^^
You're welcome!
Hi Gavin, Great video as always, .... I would like to know about something which is off topic .. (annotating spot coordinates for plot corners and grid intersections)
Grid intersections are a bit tricky, as you'd need something to apply a spot coordinate to. A grid intersection is the meeting point of two elements. Maybe have a look at this workflow for finding grid intersections and then look into the nodes for spot coordinate placement at those points.
ua-cam.com/video/6an1clh9RoE/v-deo.html
Thx again, Gavin, for this amazing video. I have been struggling with the same issue and I found my solution to be almost identical. I was just wondering for the best way to group those intersections, but I found your solution to be quite simple an elegant in that manner - simply creating circles to manage grouping :) I wanted to ask if you find getting element's solids more convenient than using element.geometry node? This is what I use and then I don't need to unite the solids. However, I find that node to be a bit slow, which might be an issue with large projects, so I wanted to ask for your opinion on this :) I also find it a bit more useful to use a void family, instead of shafts, cause you can write all sorts of data in those family instances that engineers sometimes need to schedule.
Yes element.solids is often a better node to use, although it does take a bit longer as it has some extra steps it runs behind the scenes. Void/face based families are ideal for holding information, and I use them too usually. I made a video on wall penos a while ago using a window family and I got more questions about the family than the script so decided to just use an opening this time around to make my life a bit easier :)
Nice program. I tried writing a similar one as well but my building has several floor elevations and found errors when a building has several floors. Do you think separating floors by level and pipes by level would help? Thank you for your videos. They are great, as always
This is usually a script I'd run across a small sample set, and one floor at a time in focus. It can be scaled up to do full levels at once, but it's much more complex - you would need to identify which floor each set of elements belongs to by doing a clash test. Many people use a package called Bimorph nodes and its 'ray bounce' node to do this task.
Hey guru can you make some video and explain how can I get floors whit boundaries of shaft? When you work on phases
Unfortunately I no longer make videos for now, but if you get the floor's geometry you should be able to isolate the top face by its normal and then get its perimeter curves.
it is great script! thank you
However any idea to insect family to opening point for tag the L x W ?
If you want taggable openings I suggest using a face based generic model instead, that contains an opening element in it. Unfortunately native openings are unable to support tags or project parameters for tagging values.
Can we place opening family instead of editing boundary
Sure that would be an alternative, but would be much harder unless openings are square and parallel to project north.
Thank you Gavin, very helpful ^^
In project I have structural & architectural floor and I use the opening cutting family (Opening family from Revit library), it´s hosted on the Arc floor, but doesnt cut through Str Floor when i join both floors, which is possible with wall opening family. So should I use void family (generic model) with an extra cuting script or do you have any solution that we can still use floor opening family for multiple floors?
I would consider using shaft openings instead maybe? These should cut through any floor/ceiling/roof they cross. There is a node in the springnodes package that works the same way as the floor opening script moreorless.
Nice one Gavin..Can we do it for ceilings too?
For ceilings I would probably suggest editing the sketch which is now possible in revit 2022 using revit api.
excuse me
Could you share how to create Floor from column and structural framing or between the structural framing? thanks
This isn't really something I've tried before to be honest, I would probably use Grasshopper for this. The method would probably involve taking all beams at a certain level, getting their centrelines and extending them, then trimming them at intersections (quite difficult). I'd probably have a line drawn around the outer slab edges so the script knows which beams are edge beams and ignore them, then take that as a surface, split it by the trimmed beam curves and generate floors for each outline from the split surface. Dynamo would struggle with much of this I think, which is why Rhino Inside/Grasshopper might be worthwhile trying out.
Is it possibile to make a script that allows to create penetrations for ducts/pipes when MEP model is live and arch model is linked?
The challenge here is that the elements being penetrated (floor) aren't usually in the MEP model. This workflow is moreso aimed at structural or architectural models where floors/walls etc. are located typically.
You could use similar logic to create a 'penetration family' instead, or bake in the result as a floor. This is sometimes how engineers coordinate their intended penetrations to the structural engineer to capture in their model in my experience.
@@AussieBIMGuru This is exactly what I am currently trying to do. We have been able to use your dynamo script for wall penetrations and linked models. but we are struggling to model a family which can be placed using the code above.
Would you be able to suggest how to modify the script to allow for a family to be placed instead of cutting an actual penetration?
Is the .dyn file available Gavin? e.g. on github or would need to be reconstructed? Thank you
Yes it can be found here
github.com/aussieBIMguru/Dynamo_Scripts/blob/master/ABG_210405_FloorOpenings.zip
May I know where I could find the last node? Thanks
The floor openings are made using the Springnodes package.
Hey. so Im building this script. Ive got 3 floors from a linked file. And when I intersect cuboids and planes (Geometry Intersect all) I end up with a list of empty lists. Can't find the cauze. I found two possible ones on the forum. One us the Geometry scaling problem. I chanhe it and it makes my ducts cuboids as one big cuboid. Another ones - is that linked file and the project file have different origins, however they are centered and when the Planes by origin are created I can see them in a model. But as I said I get an empty list. Can't figure out why
Make sure to visually check if the cuboids and planes actually overlap and are in the right location in Dynamo. You may need to apply a transform to the geometry (using a translated coordinate system), and you can get a link instance's transform using a node from Crumple packaged called Coordinates.GetLinkTransform.
Please Can you put the link of the custom node ( /W opening.infloorbycurves) at The description of the video
It is in spring nodes package which can be installed via the package manager in dynamo. I usually introduce required packages in the video introduction.
Hi Gavin, Nice job, i am trying it but there is some error. can you please send the dynamo file
You can find all my scripts on my github:
github.com/aussieBIMguru/Dynamo_Scripts
It is not working if i have many flloors in my model !
Can you check this plz ?
The script is only built to work with 1 floor at a time and a set of elements to make openings. If you wanted to do many floors at once then the script would need to be adjusted to suit.
Does it work as well if it comes from linked models?
It can be made to. There are quite a lot of custom packages that can source linked elements by various conditions, and from there it's a very similar workflow.
@@AussieBIMGuru Thank you Gavin, very interesting and helpful. Can you share more about how to do with Revit link?
Have a look into bimorph nodes which can access linked elements by category.
hi Guru, in the wall openings video (ua-cam.com/video/o77lLfyQm30/v-deo.html) , you used a window family which was super usefull for tagging purposes! is there a workaroud to this floor openings workflow using a family for the opening so it can be tagged?
Yes a face based family could potentially serve such a purpose as long as it is a square/rectangular or circular opening. If it's irregular then it wouldn't be feasible.
Am sorry to say this....really difficult to follow your language... Could u pls hepl me in this regard... But your stuff is really useful and required also.
If you are a beginner dont begin here - these are quite advanced tutorials. Begin with dynamo primer and my learning series playlist maybe.
If you find me hard to hear or am too fast maybe try slowing the video to 0.75 speed and turning on CC
@@AussieBIMGuru actually you speak quite clear for an aussie, I don't agree with that comment
No worries, thanks for the support! Different cultures find different accents/speed harder to handle I find, so I dont mind if people want to let me know they has trouble.