Hi Gavin, Thank you for the script. As I'm new to the Dynamo world, I tried to follow the video step by step. I have one question about the last step of creating the finish floors: I want to make an offset by its thickness so that the floor is created above the level, but I'm not sure how to do this. I saw your comment on a similar issue here in the comments, but I couldn't quite grasp it as I'm still in the learning process. Any guidance on how to do so?
So to achieve this you would need to get the thickness parameter value(s) in the floor types you assign to each floor being created, then assign that to each floor's Height Offset from Level parameter after creation.
Your node is technically returning an Element Class. Element type is sort of an odd thing in Dynamo as it is used to describe all types (top portion) of elements. Family Instance > Element Type node > will return Family type and a wall instance > Element Type node > will return a wall type. I imagine the OOTB node wants a literal type name perhaps? I haven't looked at that node much though.
Yes technically a revit API object, although the element type node returns it in class form too I think, cant quite recall... I've had pretty mixed results with the OOTB one so far so I tend to stick with my node which enums by class name which is usually the element type name in Dynamo.
Hey I come back to watch this one,I couldn't find All Elements By Type node in Revit 2023,I use one from Clockwork.Also I found the I use the list.contains node the wrong way,yours is better.I'm not that smart but I’m willing to make progress step by step.
@@mavs013 theyre actually a lot better than element types but require a deeper knowledge of the revit API generally. For example WallType is a class as well as Wall, whilst originally Wall was a category and WallType was an element type.
Thanks for the great tutorials. Can you please tell me if its possible to update the floor Boundaries once their is a change in the room boundaries? I can create them from the rooms but i also want to update them once there is change in the floor plan. Is it possible ? i dont want to create the new floor because the annotations and dimensions will be lost. i just want to update the floor boundaries. Thanks
In revit 2022 they added API to modify sketch boundaries so yes it should be possible but you would still likely lose most edge references. www.revitapidocs.com/2024/33130afb-7bc9-0229-0c54-b99a3edc21dd.htm www.revitapidocs.com/2024/8538b361-08df-9fd2-93bb-1790a09130f7.htm
Hello! What is your common solution for Revit level placement? We often do it by the level of ‘finished’ floors. Do you usually place revit levels on unfinished floors?
It depends on the project really. Sometimes a separate SSL/FFL level are needed (e.g. a project with a raised access floor), but if all finishes are set down (e.g. floor tiles), then SSL/FFL are the same sometimes technically (even if laid finishes like carpet sit slightly above). In the latter case we just offset the floors by their thickness and give them a boolean parameter to indicate they are a laid finish, which we can then use view filters to verify if they aren't raised in their elevation or use Dynamo to verify regularly.
Hey Aussie Guru, I'm using Dynamo 2.13 on Revit 2023. And i couldn't find the 'LevelGetByName' on the Crumple package, any chance of me using other function to make the script work? Thank you for your content, hope to see more Dynamo since you are back :)
An alternative option is to get all levels by category, get their name and get the index of the desired level name using List.IndexOf then get the actual level from the levels list the names came from using List.GetItemAtIndex.
I just download and couldn't see the "element type" option in crumple package, there is only Elements option here. Did you remove it or I download a wrong one?
Generally this can be done using door location points, moving them either side at the orientation of the door and extruding back to the floor, then joining these to the main surface for the final outlines. Getting the precise line of the leaf is difficult however, and will require careful analysis of the door facing orientation as well as host wall thickness and leaf line offset if any.
Im an architect by trade so typically not. I've done some tutorials on the channel for formwork estimation but what other workflows would you find helpful?
Hi, thank you for the script! I've managed to do it in the end but I don't know why it created 5 floor finish per room instead of just one? Did I do anything wrong? I think the only different in my dynamo compared to yours is I used the "Floors.Create"instead of "FloorsbyCurveLoops" because I couldn't find it in crumple.
what can we do if we want to create the floor piece by piece in the room? EX:60*60 piece and we should consider the joint 1mm or 2mm between each piece.
@@AussieBIMGuru so, is there any script that could help us to name each piece of the floor by giving it a number such as 1,2,3,etc... , and that number we can use in the schedule to get the surface of each piece
@@engomardriouich9329 yes you could select them all and simply add a range of numbers to a parameter. If you need a good order then you could sort by centre of geometry and its X/Y coordinates.
Difficult unfortunately as you're trying to catch negative space. If your beam grid is even enough you could try to capture them using an algorithm like wandering salesman or dijkstra's but there isn't an easy one size fits all method.
At some point I likely will make a generic one, but I find usually people want to use supplier objects when it comes to furniture. It's on my roadmap for sure though.
Most things are possible, but I haven't made such a workflow before as it's very difficult. Check out RevitPure who had an interior designer show how this is done in Dynamo a while back.
Hi, I am trying to follow your tutorial but I think there is a major issue with your package. I am using Revit 2023 and from what I understand is that the API and Dynamo itself has changed quite a bit and your "Element type by Name" node is not working properly. I went in and changed the Python code from IronPython2 to CPython3 which I thought would fix it but It still only returns "null". I am using the 2022.5.27 version of Crumple. Also, I can't find the "All Elements of Type" node anywhere. The closest I get is "All Elements of Family Type". Is that the same thing just with a different name? What should I do to fix this problem?
My package is built in ironpython and cant just be switched to cpython3. I recommend installing the IronPython dynamo package and it should then work fine as is.
i liked the realtime clicking/typing with narration.
Glad you enjoy it!
eres magnifico
you are wonderfull thanx for your help ❤❤❤❤❤❤💕💕
You are most welcome!
Hi Gavin,
Thank you for the script. As I'm new to the Dynamo world, I tried to follow the video step by step. I have one question about the last step of creating the finish floors: I want to make an offset by its thickness so that the floor is created above the level, but I'm not sure how to do this. I saw your comment on a similar issue here in the comments, but I couldn't quite grasp it as I'm still in the learning process.
Any guidance on how to do so?
So to achieve this you would need to get the thickness parameter value(s) in the floor types you assign to each floor being created, then assign that to each floor's Height Offset from Level parameter after creation.
Your node is technically returning an Element Class.
Element type is sort of an odd thing in Dynamo as it is used to describe all types (top portion) of elements. Family Instance > Element Type node > will return Family type and a wall instance > Element Type node > will return a wall type.
I imagine the OOTB node wants a literal type name perhaps? I haven't looked at that node much though.
Yes technically a revit API object, although the element type node returns it in class form too I think, cant quite recall... I've had pretty mixed results with the OOTB one so far so I tend to stick with my node which enums by class name which is usually the element type name in Dynamo.
Hey I come back to watch this one,I couldn't find All Elements By Type node in Revit 2023,I use one from Clockwork.Also I found the I use the list.contains node the wrong way,yours is better.I'm not that smart but I’m willing to make progress step by step.
Yes they removed element types for classes in 2023 i believe.
@@AussieBIMGuru Sad for that.
@@mavs013 theyre actually a lot better than element types but require a deeper knowledge of the revit API generally. For example WallType is a class as well as Wall, whilst originally Wall was a category and WallType was an element type.
Thanks for the great tutorials.
Can you please tell me if its possible to update the floor Boundaries once their is a change in the room boundaries?
I can create them from the rooms but i also want to update them once there is change in the floor plan. Is it possible ? i dont want to create the new floor because the annotations and dimensions will be lost. i just want to update the floor boundaries.
Thanks
In revit 2022 they added API to modify sketch boundaries so yes it should be possible but you would still likely lose most edge references.
www.revitapidocs.com/2024/33130afb-7bc9-0229-0c54-b99a3edc21dd.htm
www.revitapidocs.com/2024/8538b361-08df-9fd2-93bb-1790a09130f7.htm
Thankyou so much@@AussieBIMGuru
Hello! What is your common solution for Revit level placement? We often do it by the level of ‘finished’ floors. Do you usually place revit levels on unfinished floors?
It depends on the project really. Sometimes a separate SSL/FFL level are needed (e.g. a project with a raised access floor), but if all finishes are set down (e.g. floor tiles), then SSL/FFL are the same sometimes technically (even if laid finishes like carpet sit slightly above). In the latter case we just offset the floors by their thickness and give them a boolean parameter to indicate they are a laid finish, which we can then use view filters to verify if they aren't raised in their elevation or use Dynamo to verify regularly.
Hey Aussie Guru,
I'm using Dynamo 2.13 on Revit 2023. And i couldn't find the 'LevelGetByName' on the Crumple package, any chance of me using other function to make the script work?
Thank you for your content, hope to see more Dynamo since you are back :)
An alternative option is to get all levels by category, get their name and get the index of the desired level name using List.IndexOf then get the actual level from the levels list the names came from using List.GetItemAtIndex.
I just download and couldn't see the "element type" option in crumple package, there is only Elements option here. Did you remove it or I download a wrong one?
I moved it to the ironpython nodes area as it depends on the ironpython2.7 package still, whereas most of my other nodes now work in cpython3.
Thanks for sharing your knowledge. How can we add floor finishes to door thresholds ? There would be an extra problem to adjust side of threshold ...
Generally this can be done using door location points, moving them either side at the orientation of the door and extruding back to the floor, then joining these to the main surface for the final outlines. Getting the precise line of the leaf is difficult however, and will require careful analysis of the door facing orientation as well as host wall thickness and leaf line offset if any.
@@AussieBIMGuru it would be great if there will be additional video based on this revise
Thank you , it was useful
Would you like to write script for concrete structure ?
Column , beam , foundation , slab ...
Im an architect by trade so typically not. I've done some tutorials on the channel for formwork estimation but what other workflows would you find helpful?
Hi, thank you for the script! I've managed to do it in the end but I don't know why it created 5 floor finish per room instead of just one? Did I do anything wrong? I think the only different in my dynamo compared to yours is I used the "Floors.Create"instead of "FloorsbyCurveLoops" because I couldn't find it in crumple.
I installed previous version of crumple and indeed, "FloorsbyCurveLoops" works like charm. No more duplicate floor finish in my rooms!
Glad to hear my node helped. Most people build their nodes in different ways so yep usually need to use the ones I show.
LevelGetByName node in not in latests version of "crumple package"
It is but it will now be Level.GetByName instead I believe.
what can we do if we want to create the floor piece by piece in the room? EX:60*60 piece and we should consider the joint 1mm or 2mm between each piece.
Surface pattern and material. Piece by piece is overmodelling.
@@AussieBIMGuru but, if we use a pattern and material we can't have the quantity as a pieces. am I wrong?
@@engomardriouich9329 you are correct, but if you know the quanity per square metre then you can wotk with that generally instead.
@@AussieBIMGuru so, is there any script that could help us to name each piece of the floor by giving it a number such as 1,2,3,etc... , and that number we can use in the schedule to get the surface of each piece
@@engomardriouich9329 yes you could select them all and simply add a range of numbers to a parameter. If you need a good order then you could sort by centre of geometry and its X/Y coordinates.
Hi, I am trying to place a floor in between beams and columns. Is it possible? Do you have any suggestions?
Difficult unfortunately as you're trying to catch negative space. If your beam grid is even enough you could try to capture them using an algorithm like wandering salesman or dijkstra's but there isn't an easy one size fits all method.
Would you make a furniture family pack like the ones you offer on your website?
At some point I likely will make a generic one, but I find usually people want to use supplier objects when it comes to furniture. It's on my roadmap for sure though.
this made my head hurt
Learning Dynamo can be difficult at times, make sure to read dynamo primer and start simple before targetting full workflows like this one.
@@AussieBIMGuru thanks for the encouragement. Will get there one day.
Is it also possible to do it for wall finishing in Revit 2022?
Most things are possible, but I haven't made such a workflow before as it's very difficult. Check out RevitPure who had an interior designer show how this is done in Dynamo a while back.
Hi, I am trying to follow your tutorial but I think there is a major issue with your package. I am using Revit 2023 and from what I understand is that the API and Dynamo itself has changed quite a bit and your "Element type by Name" node is not working properly. I went in and changed the Python code from IronPython2 to CPython3 which I thought would fix it but It still only returns "null". I am using the 2022.5.27 version of Crumple. Also, I can't find the "All Elements of Type" node anywhere. The closest I get is "All Elements of Family Type". Is that the same thing just with a different name? What should I do to fix this problem?
My package is built in ironpython and cant just be switched to cpython3. I recommend installing the IronPython dynamo package and it should then work fine as is.
'All Elements of Class' instead of 'All Elements of Type'
Thats a new node in 2023 i think. I used 2022 here.