Open your column structure adaptive family created in steps 1 - 4
Set the work plane as the horizontal reference plane of adaptive point 1
Place a reference polygon centred on the adaptive point, first making it 4 sided
It will give four temporary dimensions, one for each side, from the centreline references
Make these into real dimensions
Select all four dimensions and associate them to a parameter called 'Half base'
Optional: create a new parameter called Base Width
Optional: add a formula to 'Half base' = Base Width /2
Select the four reference lines of the polygon
Create form
Drag its top surface up, and it should enable a temporary dimension for the height
Turn that into a dimension
Associate it to a parameter 'Base Height'
The family is now ready to use in a project model
Create an Array of Columns
Load the family into a project
Create railway platforms (floors or extrusions of some kind)
Create an in-place Mass family
Draw a rectangle of reference lines, with the two long sides centred on the outside platforms
The length of the rectangle should be a multiple of the distance between each platform
Select the four reference lines (rectangle)
Create a form
Drag the top surface of the form up or down so that it is flush with the top of the platforms
Select the top surface of the form
Click on the 'Divide surface' icon
Depending on the number of platforms/tracks, and the length of the rectangle, adjust the number of U and V grid divisions to achieve a square pattern of grids, one per platform - remembering that the number matches the grid lines not the divisions
Change the surface representation of the divided path; make the Nodes visible
Place one of the structural adaptive components onto any one of the nodes
Select the component and click on the Repeater icon
It should create an array of columns, one on each node
Select the divided surface and hide its nodes again, so that they will not be visible in the project in any views. NB. if any divided path nodes are visible in the structure, you need to hide those back in the family and reload them (which can be painfully slow, so its better to do so before creating the repeater)
Finish the Mass family
In the project Browser, select the column family and change its 'Inside Radius' property to match half the spacing between nodes (platforms) - this should ensure that the overall size of the roof matches the divided surface grid size
Adjust any of its other properties as desired - eg. Base Height
The individual nested families will most likely be shared families, unless you changed that when creating them - so you should be able to adjust other parameters by selecting the nested families in the project browser - eg. Number of struts. NB. it can be slow to make those property changes depending on your computer, but remember that Revit is doing a lot of calculating for each change, and it is still much quicker than creating such a structure by conventional Revit modeling tools.
You should now have a basic parametric model of the railway station roof of Santiago Calatrava's Gare do Oriente in Lisbon
Open the 'one-eighth' adaptive component created in the previous blog post
Select the structural elements and temporarily hide them, to leave the rig visible
Place two hosted points each on the arc and two of the reference lines
Link the points with reference lines - in the case of the arc, snap to the intersection point along the middle of the arc (NB. make sure 3D snapping is on)
The purpose of placing new shorter reference lines over the top of the existing ones is to create a rig for the struts to snap to the ends of those shorter lines while still being offset from the adaptive points
Select the 3 points near the start of each line/arc - remembering the direction you placed the lines/arc
Associate the Normalised Curve Parameter to a parameter called 'Segment proportion'
Select the other 3 points near the end of each line/arc
Change their Measure From properties to 'End'
Associate their Normalised Curve Parameter to 'Segment proportion'
Select the reference arc, click on the 'Divide Path' icon
Repeat this for each of the two reference lines
Select the 3 new Divided Paths
Associate their number of divisions with a new parameter 'Number of Struts'
Add a formula to the Segment proportion parameter:
Segment proportion = 1 / (Number Struts + 1)
This will make the distance each hosted point is from the adaptive points to be equal to the segments on the divided path
Flex the Number of Struts parameter to make sure the divisions change and the end points move
Create the Struts
Open the previously created 2 point adaptive tube family
Save it as a 3 point strut family
Add another point in free space
Make it adaptive (point 3)
Place a reference line between points 2 and 3
Place 2 hosted points on the line
Make their Show Reference properties to be Always visible
Change their Measurement Type properties to 'Segment Length'
Change the Measure From property of the second point to 'End'
Associate their Segment Lengths to the 'Offset from End' parameter
Set the work plane to be the reference plane of the first point
Place a reference circle on the point
Give it a radius dimension and associate it to the Radius parameter
Repeat for the second point - add a reference circle
Select both circles and the host reference line
Create Form - it should create a second tube
Flex the parameters and the adaptive point locations
Load the V-shaped strut into the other adaptive family
Place the Struts
Place a component, snapping to the divided path nodes on each path - it is important to select the same node number on each one
It is better to avoid the end nodes so that you don't accidentally snap to a host point - choose nodes one in from the end
Select the strut
Click on the Repeater icon
If the divided path host references were all created in the same direction, it should create a regular pattern of struts
Each strut will have different length arms and angle
Join all three points with reference lines, ensuring that 3D snapping is ON
Add an arc between points 1 and 3; the arc must be kept planar with the 3 points, so it needs to be hosted to a rig (or alternatively a plane - not shown here)
Place a hosted point midway along the line between points 1 and 3
Place a reference line from that hosted point to adaptive point 2
Place another hosted point on that new line
Place a reference arc by Start-End-Radius, snapping to adaptive points 1, 3 and then to the latest hosted point
Create a curved swept blend along the arc:
Place two more hosted points close to each end of the arc
Create a new profile family from a generic adaptive template (not a traditional profile family template)
It does not require an adaptive point
Draw a 2D profile closed shape on the level work plane - in this example a T-shape
Dimension it and make it parametric
Save and load into the first adaptive family
Place a profile component onto each of the hosted points on the arc
NB. The reason for hosting the profiles onto points that are themselves hosted on the arc is that it gives much better control: The points have rotation parameters as well as parameters to control their distance along the arc - required to vary depending on the structural connections. Hosting the profiles directly on the arc would not give those controls.
Duplicate the type of the profile component closest to adaptive point 1
Make its dimensions larger
Select both profiles plus the reference arc
Create form
It will generate a swept blend that tapers to a smaller size towards point 3
On the rig, add a new hosted point onto the vertical reference line - this represents the springing point of the structure where it starts to curve out
Below this will be a rectangular extrusion, to be added later
This point will host the base of the structure adaptive components
Change its Measurement Type property to segment or chord length
Associate its segment/chord length to a parameter for Height of springing point
If you have the roof panels already in place on the rig (Step 2), it will probably be easier if you temporarily hide them before starting, to make snapping easier.
Place one of the support adaptive components, making sure to snap the 4 placement points onto the rig in the right order:
Springing point
Central valley hosted point on vertical line
Divided path point on inner circle (orthogonally, along X axis from origin)
Divided path point on outer circle, one division around anti-clockwise
Array a pattern around the circle using the Revit Repeater function:
If you select just the one structural element and repeat it, you get a straightforward radial pattern - this is not what we want (so, undo it)
We need to teach Revit how the array pattern should go - so you have to place a second structural component:
Place another adaptive component 90 degrees around the circle in the same sequence
The first two placement points go onto hosted points that are already occupied by the first structural component - so it is vital that you snap to the host points, and not to end points or adaptive points on the component.
Watch the prompt in the bottom left corner of the screen before each point placement - the first two should be to Point of Reference points
The second two should be onto Point of Divided path
Use this technique for every subsequent placement of adaptive points - it gets progressively more tricky as you go
Select the two adaptive structural components
Click on the Repeater icon
You should get the desired pattern if all adaptive points were hosted correctly.
If not you may be able to rehost the points (if you can guess which one is wrong!) - or just delete the adaptive component and place it again
The next step is to place two more structural components in the reverse direction (clockwise)
You could try placing them to the correct hosts, but it is really difficult with all those elements in the way - so it is easier to temporarily hide the repeater first
You may find that when you hide the repeater, the nested tubular components around the top do not hide. In which case, you need to select one, then right-click to select all instances and hide those too
Once placed, the two new structural components will fit in the gaps between the first repeater element
Some of the structural members will be in the same place as the original ones, so you may get a warning message about identical instances.
If this is an issue (for scheduling etc), then you will need to go back into the adaptive structural component and give the common elements a visibility instance parameter - back in the rig family, you can then switch off the duplicate structural members on the two newly placed components.
Select the two new components and array them using the Repeat function
Now the basic structure should be complete
Try flexing the parameters for the rig dimensions to check that the structure moves with it.
If you have the roof panels already placed, make them visible again to check that it aligns correctly