More good stuff from Julien Benoit:
Over the years, there have been a few attempts at modelling a Mobius Strip (or band) in Revit. The BIM Troublemaker had a go back in 2010, Chad also tried in the comments, and The Proving Ground showed a method with RevitPythonShell. Another guy tried using a massive rig on Youtube (skip to 7.55).
For me, the conceptual analysis of this problem goes back to a fundamental question – is a piece of paper a surface, or a solid? It is really both, depending on the accuracy of the equipment you are using to measure thickness. When it comes to modelling it in Revit, I prefer to think of it as a surface – something with no inherent thickness, just a piece of stuff that we twist 180 degrees and try to stick back to itself.
Similarly, I’m more concerned with making the Mobius Strip out of one piece (one “Create Form”), rather than two pieces. And I’m not too worried about seeing a single seam line – even the piece of paper Mobius Band has visible sticky tape 🙂
So in my example, I created a form derived from nested line families (parametric band width) that are hosted on Reference Points. These Reference Points are driven by the Normalized Curve Parameter and Rotation Angle to set up a slowly twisting rig for the Create Form. The Reference Points live on a Spline, that was placed on a Divided Path based on Arc / Circle segments. This gives me two things – a simulated rig-driven “circle” that is actually a Spline (that has a parametric radius), and the ability to add a “Closer” parameter to push the two ends of the band together.
Hey, I know its not perfect, but it was a bit of fun! Oh, and did I mention that the Wall by Face tool in Revit will happily generate a wall from this family in a single click?
You can download the example here:
- Download and copy dll and addin and copy to C:ProgramDataAutodeskRevitAddins2014
- Unblock the DLL (right click Properties in Explorer)
- Addin should automatically be available in Revit 2014 without restarting
- New Generic Model Adaptive family
- Import 3D DWG
- Start the Reference Points from 3D DWG command (Addins – External Tools)
- Select the DWG
- Click Finish in the Options bar
- Wait a while – you will get something like this:
To make the swappable profile, use a Generic Model Adaptive template, but don’t add any Adaptive points. Set the 2 reference planes in the template to “Defines Origin”. You can parametrize this as much as you like (just don’t use Reference Lines – you need a closed profile of Model Lines as per any Profile). Then, load this into another new Generic Model Adaptive family. Host the Profile component on a hosted point (that is, one that has been placed on a line). You will need one of these nested Profiles at each end of a line to control the form properly.
I am in the habit of using hosted points to host Profiles now. For example, in a 2pt Adaptive with a Reference Line, I will add 2 hosted points to the Reference Line to carry the Profile instances. These hosted points will be forced to the end points by using a parameter for zero, and another one for one, and forcing these values by putting 0 and 1 in the Formula box of the Family Types dialog (see image).
If you are using hosted points (make a new point, and drop it on a Reference Line – it will be come a small dot if it is hosted on the line), you can actually adjust the rotation Angle using a parameter – this makes it easy to rotate the profile around the hosting line.
Here is the really cool part – you can apply a Label parameter to the Profile instance in the host family, and then directly swap Profile shapes (different nested RFAs or types in the same RFA, both work). This even works from the Project Environment.
If you want to drive the profiles parametrically via the host family, you will have to make them un-Shared (otherwise you can’t map parameters from Type to Host). You can swap between un-Shared and Shared profiles using the Label parameter.
Finally, to create the form, select the Profile families (the ones at each end of the Reference Line) and click Create Form. Unlike other form creation scenarios, you do not want to select the “lines” by Tabbing through – you actually want to select the family itself. The Label parameter will allow you to swap these families, which will drive the Form.
In the image below, all of these are one Adaptive family – with profiles swapped, and parameters adjusted, including rotation about the axis.
Credit: I’m fairly sure I read about this general idea somewhere… it was a while ago.