BILT Speaker

BILT Speaker
RevitCat - Revit Consultant
Showing posts with label Divide path. Show all posts
Showing posts with label Divide path. Show all posts

Wednesday, 7 January 2015

Revit Repeaters - RTC 2013 Competition Entry

Revit Repeater artwork
This image was part of my  entry for the drawing competition at RTC 2013, in the innovation category.  It was created using 100% Revit, without the use of Dynamo or any add-in APIs.  It was done to demonstrate some of the capabilities of the new "Repeater" command that was added to Revit 2013.

The museum building wall was created as a mass family, consisting of a curved spline in plan, extruded upwards to represent the outside facade;  its surface was divided into a rectangular grid.  A five point adaptive component panel was placed on one rectangle of the grid, with one of its points snapped to a common control point off the surface of the wall;  the panel was then repeated across the entire facade;  the size of the window in each panel was controlled by its distance from the control point - using the "reactor principle" described on Zach Kron's Buildz blog (a complex formula defined a sine-wave pattern for the change in window size).  Hopefully I will get time to document the technique on this blog eventually!

The artwork on the wall was done using two-way repeater pyramids that change shape depending where they are in the pattern - refer to how-to-schedule-panel-locations.

The people were single-point adaptive components consisting of lofted circles that had parametric diameters at various heights up the body, used to create different body shapes for each family type. The people outside were turned into repeaters by hosting six of them on divided splines, then using the repeat command - thus forming queues of people snaking into the museum entrance.

The signage on the roof of the museum was done with adaptive component (model text) repeaters that automatically rotate to face the camera - refer to my Mona-lisas-eyes-follow-revit-camera blog post.

The ground surface texture was done by creating a divided surface with slightly distorted adaptive components placed in a pattern of four and then repeated.

For more on this competition entry see the outdoor image of the museum

Thursday, 6 March 2014

Revit Repeaters Index Page


When Revit v2013 was released it gave us the first version of a great new feature:  Repeater.  Repeaters are an alternative way of creating arrays in Revit, but they only work in the conceptual massing environment (Adaptive Components and Massing) where the tradional Revit array tool is not available.

I presented a paper on the topic "Divide and Conquer: Adaptive Components in Revit 2013"  at Revit Technology Conferences in May 2012 (Wollongong, NSW), June 2012 (Atlanta, USA).  When I submitted the abstract v2013 had not been released so I wasn't able to use the word "Repeater" in the title!  I followed this up with further presentations at RTC in 2013: "Fractal Fun with Revit Repeaters" - May 2013 in Auckland, July 2013 in Vancouver and September 2013 in Delft (Netherlands).  In the process of researching these topics I have tried to explore the capabilities and also to uncover the mysterious rules of Repeaters.  I have written a number of blog posts on the subject, so it might be useful to list those here.

Revit Repeater Index

Repeater Theory
Fun Examples

Adaptive Components Index

Adaptive components are a vital part of Repeaters, so here are a few posts on them as background:

 

Before Repeaters - Traditional Revit Arrays

 

Sunday, 3 November 2013

Circular repeater geometry in Revit

In previous posts I have described how easy it is in Revit to use a circle as a rig to host regular geometric shapes like squares and hexagons.  It occurred to me the other day that circles would also be ideal hosts for parametric stars;  put that together with Repeaters and you get some interesting possibilities . . .

Here is how to create a parametric star:
  • Create a new adaptive component;  
  • Place a point at the origin; make its reference planes visible
  • Set the horizontal ref plane as the work plane
  • Place a reference line circle onto the point
  • Make its radius dimension into a parameter
  • Select the circle
  • Divide Path
  •  It will create a divided path on top of the circle with 6 nodes
  • Create another Adaptive component
  • Place two points, and make them adaptive
  • Place a line between the points, remembering to enable "3D Snapping" first
  • Save the second family (eg. as "AC 2pt Line")
  • Load it into the first family
  • Place one of the components onto two non-adjacent nodes
 
  • Select the two-point component and click on the Repeat command
  • You should end up with a triangle
  • NB.  if you placed the two-point adaptive line component onto adjacent nodes you'd get a hexagon
  • Actually, a triangle is only half of what we want, but we need to backtrack to get the correct result - so, UNDO the repeat command
  • Place a second two-point adaptive on alternating non-adjacent nodes
  •  Select both lines and click on Repeat
  •   
  •  You should end up with a six pointed star, which is now a "Repeater"
  • Select the divided path, and change the number of nodes to 5, giving you a five pointed star
  •  Change it to 4, which gives a cross (not so useful)
  •  Change it to 3 for a triangle
  •  Change it back up to 7
  •  And then to 8 - this gives an eight pointed star that could be useful in tiling patterns when repeated itself on a divided surface
  •  As the number of nodes increase, the shape becomes closer to a circle
  • Now all you need to do is turn the number of nodes into a parameter to get yourself a one-point adaptive parametric star component
  • Oh, one more thing - you need to make the nodes of the divided path not visible otherwise they will show up when this component is placed in a project or another family





How useful is this going to be?  We'll investigate that in a future post . . .
Here is one possible use - geometric patterns


Saturday, 14 September 2013

How to Indent a Revit Repeater on a Divided Surface

In a recent post by Andy Milburn over on Shades of Grey, he mentioned that it is not possible to indent the edges of a divided surface.  Well, that is absolutely true - Divided surfaces are unlike divided paths, which have an indent setting so that you can push the start or end nodes of the path in from ends of the underlying path.
Divided Path indent settings

The implication of this is that when you use a divided surface to generate a "Repeater" in Revit, the repeated adaptive components will overhang the edge of the divided surface.   In the example below, a one point adaptive component is placed on a node of the divided surface, then repeated - since the adaptive component consists of a cylindrical extrusion centred on the point, it is repeated to all nodes of the divided surface.



Since you cannot indent the edges of a divided surface, how can you prevent the repeater overhanging the divided surface?  If you made the extrusion offset from the adaptive placement point you could make it indent on one or two sides of the divided surface, but then it would overhang even more on the other sides.

However, in Revit there is usually a way to achieve what you want, so I attempted to find a way to indent the repeater, if not the nodes of a divided surface:

How to Indent a Repeater Pattern

You have to use some tricky thinking, and control where the repeater components will land - and prevent it from placing any part of the extrusion in the adaptive component on the edge nodes.
One way to do this would be to create a four point adaptive component:
  • First create a new adaptive component and place four points in a square arrangement
  • Make the points adaptive
  • Join the four points with four reference lines
Now you need to set out a centre point to host the geometry so that it remains centred whatever the arrangement of placement of points
  • Place four more points on the mid-point of each reference line (watch for the triangular snap symbol
  • Join those four points with two more reference lines
  • Place yet another point on one of the central lines
  • When you select the point, it will have an option (on the Option Bar, no less) to host it by intersection
  • Select that option, then pick the other central reference line
  • It will move the point to the central intersection.
  • NB. On reflection, you could skip the last four stages and just have one central linking reference line with a single point on its mid-point.  However, you could this intersection technique for other situations - perhaps if your extruded geometry needs to be more complex than a cylinder (see later on).
  • Select the central point and set its "Show Reference Planes" to "Always"
 

  • Set the active Work Plane to the horizontal reference plane of the central point
  • Place a reference circle centred on the point (assuming you want a cylinder)
  • Give its radius a parameter
  •  Select the circle and "Create Form"
  •  Select the top facet of the cylinder and give its Positive Offset a parameter called "Height"
  • Save and load the family into wherever your divided surface resides
  • Place one of the components onto four adjacent nodes of the divided surface in the same order that they are numbered in the family (its good practice to always use the same convention - say clockwise, unlike the diagrams shown here!!)
  • Select the adaptive component and click on the "Repeater" command (its the Array icons, but with the letter P on it)
  • If you snapped to the nodes correctly it should create a regular pattern
  • The extruded cylinders will be inset from the edge - however, they will only be inset by half the distance between nodes
  • If you want the cylinders to be inset by the full distance between nodes, you'll need to be more tricky:
  • Delete the repeater (you cannot dissolve it or alter its layout)
  • Place a new component on alternate nodes in a square pattern
  • The cylinder should then sit exactly over a node
  • Select the component and "Repeat" it
  • The pattern should spread over alternate nodes on the divided surface
  • The spacing will then most likely be too big
  • Select the divided surface and double the number of divisions (or half the spacing if it is set by distance)
  • Oops - we've now ended up with the same indent as before, so we may need to try another trick
  • The answer here is to coerce Revit into doing what you want by indenting the initial placement of the component 
  • Make sure that the first placement node you select is one node in from both edges
  • Select the component and repeat it
  • This will only work if the number of divisions is equal;  it will probably no longer work if you start playing around with number of divisions after repeating the component - so it pays to set the number of divisions correctly to start with.

If you want to be really clever, you could go back to the original four point adaptive component and give it some reporting parameters and use them to drive the cylinder size depending on the divided node spacing