Create room plans using Dynamo, Revit API + Python!
HTML-код
- Опубликовано: 11 сен 2024
- Today we create cropped floor plans by room. Handy for marketing plans etc.
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.dynamob...
Software used;
Autodesk Revit 2024: www.autodesk.c...
Dynamo: dynamobim.org/
DaVinci Resolve: www.blackmagic...
OBS: obsproject.com/
Hardware used;
Webcam: support.logite...
Laptop: www.msi.com/Wo...
Microphone: www.jbhifi.com...
Audio interface: focusrite.com/...
#revit #dynamo #bim
I like the way Gary always has an outline of the tutorial, so I am able to follow his next step, Thanks Gary!!
Glad it helped!
Great tutorial, as always! Please never give up creating this kind of content, you are an inspiration for many people and help us to be better BIM Managers every day. The incalculable value you bring to the BIM community is just amazing. Thank you, Gavin!
Thanks Victor! Good to see you still find some time to check out the channel with the little one around, hope they're going well and you're all enjoying life in Barcelona.
In every video, I learn more information about Revit Dynamo, thanks to you.
You're most welcome!
Thank you! I was just working on creating a unit layout for an apartment building then I got a notification for this video.
Hahaha
Thank you!
Great timing!
Thank you so much for your tutorials, I don't miss any videos. I learn a lot from your classes. Fantastic video as always.
You're most welcome!
This is great thank you!
You're welcome!
Hi Gavin - I hope you are safe and well today mate - I was just wondering how could I use python to get all the view family types in the current document? I know there is a node (OOTB) or part of Rhythmn package that does this but its a dropdown style node and id prefer if I could use it to get a list of them so I can plug it into Datashapes and allow users to specify the ViewFamilytype that is assigned to elevations / plans of room data sheet creation. Also I had a working script that did all this but thanks to the updates to the Revit API the custom packages no longer work :(
Safe and sound mate! Everything's a bit chaotic and expensive, but that's reality for all of us these days....
The easiest way to do this is with a filtered element collector in Python, like this:
OUT = FilteredElementCollector(doc).OfClass(ViewFamilyType).ToElements()
This is the class that stores the types:
www.revitapidocs.com/2024/e0edeb6d-1627-3e3f-e386-be182a9dd8cb.htm
Hello Gavin, first of all, thank you very much for all your hard work and the many videos. You're doing a great job. I have adopted your Python script from GitHub and adapted it according to your video. All results (ViewPlans_all, names_all, and selected) are output correctly. However, for rooms_out and names_out, I get two empty lists. I hope you can help me with this, as I need to create over 4000 floor plans in the coming months. Best regards, Andree
@@Andree-m5y if you take the code out of the try/except statement it will likely reveal the issue.
Do you have this code saved in a respository somewhere?
github.com/aussieBIMguru
Hello guys, I keep geting this message: ArgumentException: Boundary in boundary should represent one closed curve loop without self intersections, consisting of non-zero length straight lines in a plane parallel to the view plane. Parameter name: boundary at Autodesk.Revit.DB.ViewCropRegionShapeManager.SetCropShape(CurveLoopboundary) ['File "", line 60, in cropPlanView
'] do you guys have an idea how to solve this?
This warning commonly relates to rooms with messier boundaries, particularly if any edges are bound through almost being closed. Check which of the rooms cause the error and that might reveal a potential cause.
Good stuff!!! 😊
Thanks!
Is there a benefit of importing everything from db rather than targeting specific classes? Just curious.
Not really, it just makes the videos a bit less boring if I just do *. Usually i begin my code with * and then limit the classes once I know what classes it needed.