I would like to 3D print my Revit, this blog describes a process where you build a mass within your Revit file which is exported.
I would like to automate the process of creating the mass.
My intial idea is to ‘flood fill’ around the model. This could then be inverted to leave the building.
The question is how to ‘flood fill’… A room sort of does it, but only as a 2D extrusion… Would anyone be able to suggest how a 3D equivalent might be attempted? A raytrace method might be an alternative?
Are you saying the model would be printed solid i.e not hollow?
Other applications have tools to create a ‘shrink-wrap’ mesh over a model, and then you can thicken that mesh inwards.The mesh needs to be manifold i.e can exist in the real world.
It depends on the type of 3D printer & if it can print a hollow box or if the inside of the box is accessible i.e some use solvent to remove support material, or you need to remove un-fused powder. The simple hot-melt extrusion machines are probably ok
Either way: Dynamo/Revit probably is not the best tool and a specific 3D printing application that can fix minor problems or bridge holes, or something like Rhino is needed.
Hope this helps- in my experience 3D printing is never as easy as you might think & there is always some fudging of models to suit the machine & material constraints.
Thanks Andrew,
My goal with this process is to optimise the workflow between Revit and the Print, if there is a need for some tweaking in Rhino I’d be happy with that (the blog required manual replication of the Revit file as masses), mind you Vikram’s output is manifold! I get what you’re saying about 3rd parties, but I’d rather not be dependent on them when we’re hitting a deadline… If you had a suggestion for a plugin that doesn’t require external upload (unlike CADSpan for example) that would be interesting?
Thanks Vikram, that is awesome!
Unfortunately when I run on my file I get some unusual error messages…
Windows
"Warning: Solid.ByUnion operation failed.
Unable union two Solids : EDGECOIN_PROBLEM – system inconsistency processing edge coincidence"
Doors
"Warning: Solid.ByUnion operation failed.
Unable union two Solids : OSCULATING_CURVES – curves osculate at vertex - cannot evaluate order"
I’ve attached a Revit file if you wouldn’t mind a look?
Interested to see how it works out, but out some point, you’ll need to create a mesh (STL file) from the model & it is unlikely that this mesh will be 100% printer ready.
Applications such as Meshmixer (free), Netfabb (a few hundred dollars) or CADSpan (a few hundred dollars) have the tools to do what you exactly what you want, plus can optimise the model further for printing.
I know it is not the right answer on a Dynamo forum- but I would suggest the optimum workflow is:
Revit–>STL export–>Meshmixer to clean up/optimise the mesh
It’s not bad- Meshmixer says that there are some non-manifold surfaces (red) and very small objects (purple)
These small objects look like the gutter profile which has not been exported properly.
Without spending too much time tweaking settings- the third screenshot shows results from Meshmixer ‘make solid’ The windows & roof are not quite right.
This was with no work done in Meshmixer apart from ‘Combining’.
Total time from Revit to Cura less than 5 minutes. For me, this means a quick concept model can be printed and taken to meetings as part of the design development workflow.
Later on a more perfect model could be made for larger scale prints / presentations.
I didn’t have much success working inside Meshmixer, none of the ‘Make Solid’ settings gave outcomes that I was happy with, I would do any repair work within Revit (when the export is that fast, it seems more efficient).
Some other points:
I think families will need to be built specifically to be 3D print compatable.
Getting rid of model lines and making sure family elements stopped me getting wierd messages.
Adding a recessed extrusion which completely fills the family opening (but is invisible apart from 3D views )
reduces the evil red spheres.
I have also knocked up a graph which takes a CAD import and exports it from Revit to Dynamo to Meshmixer DwgImportFromRevitToMeshmixer.dyn (16.1 KB). This isn’t perfect, but is much more efficient than Sketchup > Solid Inspector.
…running in small problem…i have a node geometry.boundingbox and in his view a boundingbox.geometry… now sometimes the order of words change but my result is a cube it is missing the roof.
If i download the print3D.rvt file and the dyn file.
it runs perfectly…but when i adjust the building and change the roof and change the profile of the walls…the script doesn’t work
You don’t need to boolean everything… I use Cura to print and it does a fantastic job of printing a whole bunch of solids as a single print. This is much more robust than trying to union.
Rooms can be extracted to ‘fill’ the voids to give you a ‘solid’ model.
It isn’t necessary to have a solid model to print. For most buildings the 3D printer can print over empty space and create a floor / roof just resting on the supporting walls. The underside will be quite stringy, but this isn’t usually noticable and allows a skeleton of a building to be printed with actual rooms inside.
Which of the volumes do you want?
There is a generic model (in-place mass 430.850 m3 with the same shape) next to the house, and the house itself.
If your house was completely “airtight” (its not) you could maybe create a new model, link the file, create walls a distance away from the house, check the height of the walls then put a room in the space between the house and the walls, set room calulations to include volume, set the link to roombounding and check the difference in volume between room bounding and not roombounding.