Now that it is no longer under NDA, I'd show off a quick project that I recently completed for a client where we were asked to produce laser cut files for all the steelwork.
Thankfully I had a copy of Revit 2012 pre-release to play around with which just happened to add a new feature that allows me to create face based void families or nest voids in families and have them cut other families in the project beyond just system families such as walls/floors/roofs etc. (love it when Autodesk release a feature that I can use straight away)
Using Structural framing, and structural columns I was able to quickly generate all the members to their accurate sizes. The difficulty was that each of the 3 layers of 40x16mm RHS channels that make up the infill actually need to penetrate the external channels. Of course the laser cut machine can only cut penetrations perpendicular, so this complicated things. As such I generated a face based void family with instance parameters to control its lengths and radius corners. I placed all 1340 instances of these and flexed their lengths to suit the required opening for each of the intersecting members based upon their angle of incidence and ensured no members intersected each other.
I then had our developer create a macro command using VSTA to isolate each member, create a 3D view of only that member and then export out a .SAT file and .DXF file for the laser cutting service.
I was also asked to advise the weight of this structure. Easily done through some schedules to pull out the volume of steel and a calculated parameter based upon the mass of steel being 7850kg/m³ this was all able to be automated.
Lessons learnt: I found a few bugs in this tool where the face based voids families would cut certain structural columns, which have now been addressed in the released version. I managed to source the issue and devise a workaround. I had planned to make this much more complicated to facilitate change, but I opted for the manpower approach as I thought it was resolved. Unfortunately for me, there were a couple of design iterations which we somewhat painful to redo. Had I have known these were coming I would have made the mesh members and penetrations parametric.
NEXT PROJECT for the same client:
A 4.5 metre Bird made from aluminium sheet with a polystyrene core to be suspended in the foyer.
- An IGS file for the CNC router to cut the polystyrene blocking to shape.
- Fully nested cut files for all the aluminium sheet
- Structural Steel Cut files for the support frame
- An overall weight of the bird
We were supplied with a model created in 3DS Max. My first thought was great, I'll use the unfolding tools of Autodesk Inventor to make light work of this. This way I could build in K factors etc. But of course Inventor doesn't handle geometry created by other applications well at all. I didn't feel in the mood to remodel the complicated form from scratch in Inventor so instead I looked to Revit. Unfortunately there was some issues in the nurbs translation and the import into Revit - which I didn't discover straight away. As you may know a nurbs face can only have 3 or 4 sides. When importing into Revit the surface was being triangulated. Some of the planar faces on this bird had as much as 12 sides. Working with the designer in 3DS Max we managed to sort out a workflow that gave me the best possible base to work from. We even explored tidying up the bird directly in Revit, so we create a tool using the API that was able to automatically convert the import into native Revit Reference Lines, Points and forms. We didn't end up using it, but I'm sure it will come in handy in the future. We may even make it publicly available if we get the time to make it robust to everyone elses different scenarios.
I imported this form into the Revit Conceptual Massing environment and created a family for it. I then loaded it into a new project and used the curtain panel by face tool (using a special Aluminium system panel type that I made), selected all the faces and generated the curtain system.
Great, I now had a panelised system for all the pieces. I then manually merged some of the complicated pieces so we didn't end up with tiny little slithers to be assembled. Next step, systematically number all the panels (434) with unique marks, we didn't automate this so it was somewhat tedious.
Again we looked to the API to create a macro that automatically created an isolated 3D view for each curtain panel orientated to look perpendicular to the surface. Easy enough, but how do we no which side of the surface we are looking at. The edges of each panel needed to be bevelled at 45° so this was important. Unfortunately there seemed to be no real logic between what side revit determined the interior or exterior of the panel even though they were all part of the same system, they weren't necessarily orientated the same way. We were able to get around this through Raytracing in the API, which aided us in determining the interior and exterior face. We re-ran the macro and now we had an exterior view of every panel isolated in the model.
Next step, exporting the views:
As you may or may not know, if you export from a 3D view you get a 3D file. In this instance we needed 2D Cut files. How do you get a 3D view to export as 2D? You place it on a sheet. We configured the macro to then place all 434 views on a single sheet, then exported (DXF) the sheet and left the "Xref views on sheet" option checked so we would get separate files for each of the files. Of course we had no control over the naming of these Xref's so we then had to use a small utility to systematically rename all the files so they corresponded to their Mark.
Finally to create the nested cut files, we used another commercially available utility where you can simply enter the sheet sizes, specify the individual cut files and it automatically nests the pieces and optimises them as well as tagging them.
The last task was to generate the 3D cut files for all the structural steelwork.