Hi All,
In my office we get a lot of site survey information in CAD, its easy enough for us to convert the overall topographic info into a toposolid but we also like to add the footpaths and other surface features to the model. Currently we use floors for these site features but will move over to toposolids in R25. The CAD survey drawing represents these floors as 3D polylines with correct z heights on their vertices.
The current workflow is to trace the CAD drawing in Revit then add the Z heights either manually or with a script that raises a floor points to match the topography. Both methods take time, the script only works on one floor a time.
To speed all of this up I have been working on a graph that takes 3d polylines from layers of the CAD drawing and uses the polylines to create floors for each polyline. The floor type family to be used is determined using a list of floors types mapped to the CAD layer names. I’ll eventually add some nodes so that the mapping comes from Excel, for now I’ve just made a couple of lists. This works fine with two layers and two floor types so I figure that it will work on more layers…
I’ve encountered an issue with adding the points though. They will not add on the first run and I need to shift list levels to get them to add on subsequent runs.
Initially I used the OOTB node but switched to the Clockwork Floor.SlabShapeByPoints node to add the points with. The points will not add on the first run. I had thought this was down the to floor creation not being finished by the time the point add node runs. I tried the following nodes to fix this:
- Timer.Delay - Crumple
- Datastream.Await - Orchid
- Passthrough - Clockwork
- Tool.RunMe -SteamNodes
None of these resolved the issue of the points not adding on the first run of the graph. Points do get added on the second/third run of the graph though.
By the time the point data is sorted through the graph I have 4 levels of list; level 4 represents the two types floors to be made the next level down, (level 3), represents each floor of a type. Level 2 is the list of points in each floor and level 1 is the points themselves. The floors are arranged in a list with 3 levels with each instance of a type at level 2.
I’ve set the point add node list as below:
The behavior I see is:
-
1st run floors create but points don’t add
-
Change levels of points input to @L2, some points create
-
Change levels of points input back to @L3 rest of points create
If I start with the points input at L2 on the point add node I still get not points on the first run, if I then change the level to L3 the points create.
All very strange… I’ve put an image of the graph below and have also uploaded a copy of:
- The CAD drawing
- The Revit model
- The Dynamo graph
BIM-OPE-ZZ-ZZ-M-L-407509_CADtoRevit_R24.rvt (5.7 MB)
Create Floors from CAD layer_V6.dyn (137.4 KB)
12823-01-3d_CAD_Link_LayerTweak.dwg (2.2 MB)
I’ve also checked this post for a solutions:
I’d be grateful if anyone can assist with this.