BILT Speaker

BILT Speaker
RevitCat - Revit Consultant
Showing posts with label Revit Technology Conference. Show all posts
Showing posts with label Revit Technology Conference. 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

Saturday, 10 May 2014

Pump Up The Volume in Revit - RTC 2014

I will be presenting at two Revit Technology Conferences this year:

RTC Aus - Melbourne, Australia (May 2014) - Session 13 at 10.45am Sat 31st May.
RTC NA - Chicago, USA (June 2014) - Session 10 - 2.30pm Fri 21st June

The topic titled "Pump Up The Volume - With or Without Dynamo" will be on Computational Design: creating external controls in Revit to adjust building massing or other Revit families.  I will demonstrate two methods, and compare the relative merits:
  • Pure 100% Revit without the use of API, macros or Dynamo
  • Dynamo visual scripting to do create and control Revit models
Here is a Youtube promo for Pump Up The Volume



I hope to see you at RTC, where you will be able to learn how to apply these techniques and use them on your own projects.

Saturday, 19 October 2013

Inuagural European Revit Technology Conference September 2013

Having recently returned from the inuagural European Revit Technology Conference I thought I'd give a quick report on how it all went.  Having been to all the RTC events this year, and all but one RTC ever, it was interesting to compare this event with others.
RTC2013eu_header_896x194

The Venue

Firstly, the venue was amazing - a mixture of old and new in the historic city of Delft in the Netherlands.  Delft looks like a miniature version of Amsterdam but without the swarms of tourists - very old Dutch gabled buildings lining canals.
  • The welcome function was in the Lambert van Meerten Museum, the setting of one of Vermeer's famous paintings.  We were welcomed by a representative of the City of Delft who demonstrated an extraordinary aerodynamic umbrella that was invented in Delft.
  • The main venue was the Waalse Kerk - a beautiful old church.  There we enjoyed the spectacle of Wesley Benn speaking from the pulpit (sorry he isn't in the pic below).
  • The breakout / exhibition space was adjacent to this in a very elegant high-tech glass enclosed courtyard - they really know how to mix old and new buildings well in Europe (I've seen a lot of this sort of stuff in Belgium and the Netherlands).

  •  The second presentation venue was the Meisjeshuis, just down the canal - well, it was a few minutes walk away beside the canal.  Once a nurses home and then a girls orphanage, it has now been converted to a conference venue.
The walk back to the main venue was a bit scary on two counts:
  • The alarming lean of the tower on the old chuch - looking as if it would topple over onto the Waalse Kerk any minute;
  • If you were too busy looking at the tower you could be knocked into a canal by one of the multitude of bicycles hurtling along the streets.  Talking of which, how do those cars park so close to the edge without falling into the canals.
  • Mind you, if your car goes into the canal there many bikes to choose from - they even have double-decker parking at the railway station.

The Conference

Very sensibly the inaugural conference for Europe was kept small - this made it feel more intimate, like the earlier RTC events.  There were not so many session to choose from, thus making decisions was not as agonising - only 3 instead of 6 or 7 concurrent sessions.  Even so, I still missed one or two things I'd liked to have attended.  The two day length seemed so much shorter than other RTCs - it was over so quickly.  Hopefully it will expand to 3 days next year, now that it has proved to be such a success in Europe.

Speakers were very international - from Europe, North America and Australasia.  Attendees were from all over Europe, but there were large contingents from Norway, Denmark (one company sent 7 people!), the UK and of course the locals (The Netherlands).

The Day Families Became Self-Aware
One of the highlights for me was the session presented by Matt Jezyk  - "The Day Families Became Self-Aware" - an intriguing look at what might happen to Revit families in the future.  In this session Matt started off talking about how useful it would be if families were able to react to their Revit environment - for example, a door that is hosted in a fire-rated wall might need to enable its own fire-rating and change its panel thickness and materials etc.  Currently this is a very manual process for the user having to swap out the door type  (although we do now have reporting parameters that allow us to make the door respond to wall thickness).   Matt then talked about the whole process of API and Dynamo/Python scripting where it is possible to make Revit do all kinds of things, being driven by external code.  However, scripts and API have to be initiated by the user - they cannot react to stimuli or changes in the Revit model itself, so we are still reliant on the user again.  This is all stuff that we know about or are starting to learn of.

Then the exciting stuff started - Matt proposed a type of scripting that could automatically run itself as a response to when a change is made in Revit.  He showed us a prototype of Revit families that contained Dynamo or Python scripts - these families could be placed into Revit models as normal.  When placed the family would run the script and change the component according to where and how it had been placed, for example a door hosted into a wall could check its fire-rating and adjust itself to suit.  Not only that, but if the wall was to subsequently change, the hosted door would re-check the fire-rating and respond again.  So, no user intervention or checking is required.  Wow!  My reaction to that was the same level of excitement I had when I first saw Revit automatically change a drawing reference when a sheet was renumbered:  I want it, and I want it now!!!

Needless to say, this was only a proof of concept, so there is no guarantee that it will ever be implemented in Revit.  Of course it takes quite some time for something like this to reach the market, supposing they do go ahead with it - lots of testing and checking needs to happen.  However, the buzz that was generated in the conference after that was quite noticable.  I was only sorry I was not able to attend Kelly Cone or Martijn de Riet's concurrent sessions - but this was unmissable stuff.

Fractal Fun with Revit Repeaters and Adaptive Components
Photo by from twitter


My own presentation went well - incorporating some improvements since last time. 
It started off showing some fun stuff with Fractal theory and example patterns in Revit:
Fractal patterns - source Wikipedia
Koch Snowflake - source Wikipedia
Fractal Triangles created in Revit


Fractal Trees created in Revit
After the fun I demonstrated a few practical examples of how to use nested repeater patterns in Revit, including a picket fence that follows the contours of a site toposurface.
Adaptive fence component with nested repeaters - follows contours

Following this was a less practical but still useful example of how to nest repeater patterns inside curtain panel pattern components in order to force Revit to trim the edges of repeater patterns (which it normally will not do):

 

Then came the demo of creating a Revit model of the roof of Santiago Calatrava's Gare do Oriente in Lisbon.  This consited of multiple repeater patterns nested three levels deep, which allowed the creation of very a flexible parametric model with minimal use of maths
Repeater one - one-eigth segment of column with variable number of struts
Repeaters two and three - segment rotated/mirrored around its centre

Repeater four - column assemly in two way array over station platforms
Roof assembly at Revit-Dusk
All of this was done as a live demo in Revit, albeit with some partially prepared sample files in case it didn't work under the glare of an audience.
Photo by Martin Romby - from Twitter
 Roll on RTC Europe in Dublin in August 2014.

Sunday, 1 September 2013

RTC Europe - Fractal Fun with Revit Repeaters and Adaptive Components

On 27th September 2013 I will be presenting at the Revit Technology Conference in Delft in the Netherlands.

The topic of my presentation will be:
"Fractal Fun with Revit Repeaters and Adaptive Components" - this will be a new, improved version of the presentations that I gave at RTC in Auckland and Vancouver earlier this year.  Yes, RTC is so good that I'll be attending at all three venues this year.


As part of the presentation, all being well, I intend to give a live demonstration of how to build a fully parametric Revit model of the roof structure shown below - within about 30 minutes.  This is the Gare do Oriente in lisbon, designed by Santiago Calatrava.

Based on feedback I received from RTC in Vancouver, I have updated the handouts to reflect changes made to the modeling process that I will demonstrate.  For anyone who downloaded my presentation from the earlier RTC events, you might like to get an udated version from RTC Europe.

Gare do Oriente, Lisbon by Santiago Calatrava

Every single Revit Technology Conference has been really fantastic, and I have learned new things every time - usually they have saved me more time than the hours I spent there.  I have been able to go back to the office and quickly solve problems that have had me stumped before, or implement new techniques.

Thursday, 1 August 2013

Scaling Revit Families Nested in Curtain Panel Patterns

Credits First

This post would not have happened without discussions at RTC or blog posts by the following people:
What I am showing here is a development of all those ideas, combined with a concept that I came up with for my RTC presentation "Fractal Fun with Revit Repeaters" earlier this year - more on that at a later date.

How to trim the edges of a pattern of repeated scaleable Revit families

The image on the left above shows a repeated pattern of complex shapes within a regular rectangular boundary - relatively easy to achieve in Revit!  On the right the boundary has been trimmed, and the pattern gets trimmed with it - not so easy.
Add in the ability to scale the pattern elements and it gets a whole lot trickier. 

Kelvin Tam showed us how to nest a planting category family into another planting family and then nest again into a different category family - this allows us to use the ability of planting category to automatically scale any irregular shape without having to create complex formulas and controlling geometry (see link above).

David Light applied that technique to nesting planting categories into curtain wall panels to create arrays of scaleable science fiction monsters marching across the landscape.

Andy Milburn applied the same technique to creating Musharabiya screens out of curtain walls.  He noted that there was a limitation of not being able to trim the edges of the pattern because curtain wall panels won't be be cut.

To solve that problem I used Marcello Sgambelluri's technique of questioning which similar category or situation does Revit allow you to do what you want?  In this case I knew from my RTC presentation "Fractal Fun" research that Revit will cut the edges of curtain wall panel pattern families when applied to divided surfaces.  So we should be able to apply that principle here - the only limitation being that it must be done in the conceptual modelling or adaptive component environment.

Here is how to do it:
  • First start a new planting category family and create the desired pattern element within it - in this case a simple smiling face within a square (but it could be a complex geometric design).
  • Then start another new planting category family;
  • Load the first family into the second;  this is to make use of Revit's capability of automatically scaling plants and trees - it only works with nested families;
  • Start a new "Curtain Panel Pattern Based" family;
  • Place a dimension between two adjacent points; 
  • Make the dimension an instance reporting parameter 


  • Load the second planting family into it, and place it on the pattern.  You may need to devise a way to control the location of the component by hosting it on specific points
  • Select the planting family and link its "Height" parameter to the new reporting parameter in the pattern family;  you may need to add a formula to scale it up or down to match the size of the pattern grid (depending on the original family size) 
 

  • Create a new mass family or In-Place mass within a project;
  • create an irregular shaped form (can be a flat surface or an extruded shape);
  • Select a surface and divide it
  • Make sure the divided surface pattern is square and orthogonal - you may need to rotate the grid or set the spacing to fixed distance;
 
  • Load the curtain panel pattern family into the mass
  • Select the divided surface and change its type to the pattern family - it should automatically trim the pattern elements around the edges
  • NB. I think this did not work in the first version of the new conceptual massing in v2010?  but it seems to have been changed at some point since.
 
  • Depending on the grid spacing and location, Revit sometimes misses out small pieces or fails to trim elements that are hanging over the edge by only a small amount.

  • Occasionally it gets it quite wrong - in this example it was an in-place mass, which looked ok until the mass was "finished".



All this was done without tricky formulas - just by using the tools that Revit developers gave us, albeit not in ways that they expected us to use them.  There are obvious limitations of not being able to apply this to a normal curtain wall, so you have to use the massing tools to create a divided surface.

Obviously you aren't going to make smiley face patterns, but you should be able to apply these principles to real architectural design solutions.

Sunday, 12 May 2013

Swept Blend using Profiles in Adaptive Components

This process might seem obvious to anyone who regularly works in the Revit Conceptual Massing Environment (CME), but for those who are starting out with Adaptive Components, it might help the transition from the old Revit family environment.

The question is:
How do you create a solid extrusion or sweep using a profile in an adaptive component ?

A lot of people advise against nesting components too much, but profiles are incredibly useful in Revit - they can save a lot of time and usually give much better control of geometry, rotation and parameters than just drawing linework within a family.  But the problem in adaptive components is that Revit won't allow you to load a traditional Revit profile family.  The adaptive component environment also does not have any of the "Edit Path", "Load Profile" sort of commands that you regularly find in the family editor.

The Solution:

How to create a Swept Blend using Profiles in Adaptive Components

The answer is really quite simple:  create an adaptive component that just has 2d linework geometry.  It can have dimensions, parameters and reference planes just like a profile.  the main difference is that it is visible in 3d in editing mode and after you have placed one too.





There are a number of tricks that you need to know:

  • The adaptive "profile" component does not need to have an adaptive point.  In fact it is better without, because then you can use the reference planes to lock the geometry to the origin as in a normal profile.
  • When you place an adaptive profile into another adaptive component, you can place it on a workplane or host it onto another element.  If you host it to a reference line it will automatically orient itself to be prependicular to the line (or arc).
  • You can also host it on a point, which may itself be hosted on a line - very useful for controlling its location along the line parametrically.
  • You can host it on a divided path node;  but don't bother to convert it to a repeater because it cannot then be used to create a solid form.
 Here is a quick description of how to use profiles to create a swept blend, but this technique could be used for any shape, solid or void.



  • Host two different size adaptive profiles (different types) on an arc reference line;

  • Select the profiles and the arc;  
  • Create a form;


  • Select a profile and slide it along the arc;

Flex the form by changing the sizes of the profile, the radius of the arc or move the adaptive points.

This techniques features briefly in my upcoming RTC presentation:
"Fractal Fun with Revit Repeaters and Adaptive Components" at RTC 2013

Creating a more Complex Form

You could try something a bit more complicated by first applying a divided path to the arc

Then try hosting some different sized profiles on the divided path nodes
You can turn these into a repeater - but sadly you can't select a repeater and turn it into a form (Revit won't allow that as of v2014 *see below)
The alternative is to manually host the profiles on each node - the end result may look the same, and be more laborious but it is not a repeater
These manually placed profiles can all be selected and turned into a form
The profiles are still visible, but they can be hidden
This form can be somewhat parametrically controlled - spacing of nodes, profile sizes, arc radius etc;  but the number of profiles cannot be adjusted after the fact.

Addition to Post  20 Dec 2013
I notice that this post gets a lot of hits so it must be an issue that people struggle with on Revit.  So I thought I'd add a bit more information:

It is possible to use a traditional Generic Model family with flat geometry nested into an adaptive or mass family to create your sweep or lofted form.  However, a traditional generic model does not have the advantages that and Adaptive Component (Generic or other category) has:

  • When a traditional generic family is loaded in, it will normally just place flat on the Level work plane.  If you want it to be in a different orientation, you need to set its properties to not be always vertical, and also to be work plane based.  Then you have to stuff araound setting the work plane before placing it - what a hassle.
  • If you use an adaptive component (with 2d linework, preferably in a closed loop), you don't need to mess with its settings - just load it into the adaptive or mass family;  when you place it, it will automatically rotate to its host - either perpendicular to a line, or snapped to a point.
  • If the point is in free space (ie not hosted on something else), it will snap to the default work plane of the point (most likely horizontal)
  • If the point is hosted on a line/arc/curve (it will look smaller than a free point), it will again orient to the default work plane of that point - but that will already be oriented perpendicular to its host.  Its very easy.
  • Another advantage of placing the adaptive profile onto a hosted point is that the hosted point has a "Rotation Angle" property that is simple to control - the profile will rotate with it.  simple.


You can use the Rotation Angle property of your hosted points to rotate individual profiles to achieve a twist in your form really easily.

Postscript 11 June 2015:
What happens if you want to create a hollow section sweep?  Refer to this post.

In Revit 2016, you can now create a swept blend or loft from a repeater (sort of) - refer to this post

Friday, 1 February 2013

Revit Repeaters and Flexing Star Adaptive Components

Here are a couple of Youtube clips I created for the presentation I did at last year's RTC on Revit Repeaters and Divided Paths on Adaptive Components:

  • Flexing Star Adaptive Component and Divided Paths

This was a two point adaptive component that had a reporting parameter (distance between the points) that was used in a formula to drive the size of the two circles.  The circles had "Divided Paths" on them, the nodes of the paths were linked with reference lines.  As the relative sizes of the circles changed, the interconnecting shapes changed too.


  • Flexing Star Repeater on a Divided Surface

The two point adaptive component was placed on adjacent nodes on a Divide Surface;  then it was repeated.  Initially the adaptive component was the same in each instance; but when the surface was distorted, the distance between points varied, and so the adaptive component changed from hexagons to stars.

Saturday, 10 November 2012

Revit Multiple Point Repeaters



Multiple Point Repeaters on divided surfaces in Revit

In Revit 2013 it became possible to host adaptive component "Repeaters" onto divided surfaces, and paths.  The adaptive components can have one or more adaptive points - last time we looked at single point components.  It starts getting more interesting with two point adaptive components - they can be hosted on nodes on a single divided path or surface.  They can also be hosted on nodes on two separate divided paths or surfaces – in this situation their behaviour becomes more difficult to predict as the logic is more complex.

Following on from the last post on single point adapters, here we will look just at two point components on a single divided surface:

Single Surface

A two point adaptive component hosted on adjacent nodes on a surface will initially behave much the same as a single point component - in the images below, the original hosted component is shown on the left, and the resultant repeater shown on the right.


The exception to this being that it will not place repeats where it cannot find equivalent locations for both nodes – so it may omit half a row/column.  In this example the repeater is stretched across two non-adjacent nodes, so that when it gets to the last column, it can only place the first adaptive point on a node, but the second one would be off the surface – so it omits them:

We can also see what happens when two components are placed on a single surface and then both selected to turn into a repeater pattern - the results are similar to the single point adaptive component patterns - you get a linear pattern.
 


If you want to alternate the direction of patterns by row, it will not work if you just place two similar components adjacent to each other in the reverse direction – it will just create a repeater in exactly the same place as the originals – not across the whole surface.  We will try to figure out why later.

To achieve the full pattern you need to place two pairs of alternating components in a square pattern.  It will actually create four separate repeaters but it looks correct (one repeater highlighted to show it is not a single pattern, but one of four interlocking patterns):

 If you try a different approach of placing just two alternated components  staggered on the surface, you get some surprising results:
This seems pretty weird -  what it appears to be doing is only repeating the second of the two components (top right).  It repeats it in the same distance and increment as the distance between the end of the first and end of the second component (point 2, narrow end) - ie. one grid module up the screen;  but at the same time it takes the distance between the start of the first and start of the second component (point 1, large end), and stretches the component, which is one grid up and 4 to the right.  It would put another component above, but that would be two up and 8 to the right - in which case it has run out of nodes on the surface so it gives up.  It is easier to see this pattern in the next example where it has room to fit more in the pattern:


If we try putting alternating components in line before repeating, the results are rather weird again - but at least we can understand the logic, that it is repeating only the second component but stretching its start and end points by the same proportion as the distances between the start and ends of the originals.
 
 It is a little clearer when the repeated component is smaller so that they don't overlap:



The next one has got me stumped - I just don't get it.  I guess it is following the same logic but its too weird that it flips the direction as well!

The good news is that once you begin to understand how these repeater patterns work, you can make some crazy diminishing patterns really easily.  This one didn't require any formulas (aside from creating the original adaptive component) - it just needs careful placement of the components before repeating them.  It would also be easier to understand the patterns with a larger surface where it does not run out of nodes so quickly:

Next time we might look at 3 or more point adaptive components;  or hosting them on multiple paths/surfaces . . . . Two-Point Repeaters on Multiple Hosts