I want to create a 3D model from CAD drawings in Revit using Dynamo. But I am facing a few problems.
As shown in the Image! it is very easy to do so for the curves in RED color but it becomes almost impossible for the plan in BLUE to get a point which can be used as a reference for the alignment of floors in Revit.
Moreover, I want dynamo to consider the different shapes in blue as separate boundaries for separate floors which should be created at the same level. How can I do it?
I am using Revit 2020.
i am not sure but check out Package GeniusLoci. There is a lot of stuff there.
Is this just an exercise or something that will be repeated on many projects?
The first issue will be the quality of the CAD information. Are the shapes closed? Are all the lines longer than 1/32"? So, there is either work to do in CAD or more analysis in Dynamo to be done.
For example, you could separate the individual loops in CAD on different layers and the feed them one by one to Revit for individual floors. Or you can gather all the loops and analyze which ones make complete closed loops. There are several ways to do that. Check the endpoints and see which lines share a vertex. Or make one floor, then take the loops created by the one floor and split them into multiple floors.
If you are just drawing a one-off project in Revit, tab-select will pick all the connected lines in a CAD file as you are creating a floor sketch.
I’m not clear on what you’re talking about getting a point and alignment.
ok! so let me clear out a few things first.
I am working on a real project and the workflow that I am going to develop will be repeated over and over again on many different projects.
2) since I work mostly on building projects so yes all lines will be longer than 1/32".
and one more thing kindly if you can share an actual Dynamo workflow that would be more helpful. since I am a beginner and don’t know what loops are you talking about?
Ah - so you’re just starting out. I suggest you search the messages here. You’ll find lots of good discussion and examples. Also post what you are working on so others can help. It is hard to give direction without a starting point.
The loops I was referring to are CurveArrays (a list of lines, arcs) connected to make a loop. The Floor class object is based on a sketch. The sketch object is based on a series of curvearrays. A curve array is based on a set of lines and arcs.
You are taking the lines and arcs from the cad file. Making a series of Dyanmo curves. Then turning those into a sketch for a floor and then a floor. As I mentioned, one way of determining what is a loop for a sketch (one set of blue lines is to check the endpoints of the lines and see which lines share a common endpoint and touch. If they don’t touch, you exclude them. There are other methods as well.
A floor can be one object with mutiple curvearraay loops. It is possible to make the blue lines one floor, and then break that floor into multiple individual elements based on each loop. But this is getting more advanced. First figure out how to make one floor from the blue.
As Draxl mentioned, there are probably some nodes in other packages to accelerate your programing. But first you should check out the other postings on floors.
Here I am sharing a sample of the workflow that I have created. This works perfectly well when it comes to simple floor outlines. But the problem arise in the outlines which are complex and usually involve a number of lines and arcs.
The Dynamo Workflow
here are 2 solutions (1 when the surface does not have too pronounced an indentation with classification of the curves in relation to a central midpoint)
The 2nd solution is more general (by cutting the footprint of a BB by a polysurface)