Simple Free Form Roof Example


Introduction

The goal is to create a freeform roof that will be used to cover a courtyard, in which there is a tree. The roof must adapt to the position of the tree. At the moment we do not exactly know where the tree will be placed. We need to be able to move the tree, and observe the changing roof form.

For more examples refer to the GenerativeComponents Documentation page.  

Create a new GCTransaction file

Save the .gct file

Familiarize yourself with the view rotation in the bottom tool bar of the geometric view window

Create the Trigger and Grid Point

To begin the model, select the point creation shortcut and place two Points in an axonometric view into the geometric model. One of these points will represent the tree also called the trigger point. The other point will (at the moment) represent the ‘spot’ base point or grid point for the roof within the courtyard.

Create Line to Measure Distance

We are going to create a Line between these points, in order to measure the distance between the tree and the sample roof base point.

  1. To create a Feature that does not have a shortcut button, open the Feature list .
  2. Click on the Line Feature and expand it.
  3. From the available Feature update methods (the different possible ways to create this Feature based on various combinations of inputs), select ByPoints.
  4. The ByPoints method expects a StartPoint and an EndPoint in order to create a Line.
  5. Click on the StartPoint variable under the ByPoints method.
  6. To select an existing Feature as the StartPoint HOLD DOWN THE CTRL KEY, then hover over the point in the geometry view until the name of the Feature appears in the input window
  7. Now press a ‘Data Point’ (left-mouse button) or the Return key.
  8. Repeat this process for the EndPoint.
  9. Once sufficient inputs have been defined (in this case the StartPoint and the EndPoint) the Apply button is enabled.
  10. Press the Apply Button and the Line is created.

Creating a Responsive Offset Line

We now want to create a vertical offset point above the base point of the roof. To do this we are going to create another Line, but this time based on the location of the base point (as its StartPoint) and in a vertical direction, with a Length equal to the first Line we created.

Testing the Model Relations

We now need to test the model we have created. We can exercise a model (in dynamics) by moving one of the input points and observing the resulting behavior of the model.

Adjusting the relation

While we have established some sort of relationship, we might observe that the vertical Line becomes shorter the closer Point01 is to Point02. If the StartPoint of Line02 represents the base point of the roof, then EndPoint of Line02 represents the height of the roof. We want the roof to be higher, the closer it is to the tree (represented by point01). What we have is the inverse of the relationship we required. So to change this:

 

Creating a Grid of Points from the Base Point

At the moment Point02 and Line02 represent a ‘sample’ point within the proposed courtyard. We now want to ‘replicate’ Point02 (and hence Line02) to represent the ‘grid’ of points within the courtyard

Finally we click Apply (and ‘fit’ the view).

We now need to exercise the model, but first we need to ‘tune’ the display.

Exercising the Model

Adding a Roof Surface

 We can now add a surface to represent the roof.

 

Exercising the model

We can now exercise the complete model using the move command with point01.