Using a **Range** or **Series** to send a list of numbers into an object component will replicate the object. Useful for establishing a pattern.

transform rotation.gh

When transforming objects created from a** Series** individually it is** important to match the number of inputs** … easy way to do this is to use another **Series** component.

transform rotation top and bottom.gh

Again it’s important to match the number of outputs with the number of inputs. **Range** starts at zero … output list is (**N**) + 1 … To make the **Range** output match the input value of the component you can set the expression n-1 for (**N**)

transform scale.gh

The default center of scaling is set at 0,0,0 … add** Area** component to position center of each object. Scaling factor is a multiplier

transform scale with graph mapper.gh

One way to make the transformation less linear is to use the **Graph Mapper** component. In this example the **Graph Mapper** is added to change the **Scale factor** (**F**). Since the domain of the **Range** component is between 0 and 1 the numbers coming out of the **Graph Mapper** are small … the **Multiplication** component was added to increase the scale factor (**F**) values.

transform scale and move with graph mapper.gh

To dynamically control the cross section of the object a **Graph Mapper** can be added to change the **Z Vector** values of the** Move** component. This combined with the variable **Scale factor** can result in some interesting forms.

distribute along curve with graph mappers.gh

Any number input can be controlled with a Graph Mapper.

random.gh

Change orientation of objects by using an XZ Plane.

Info via Professor Nick Senske Lecture 3 – Part 1: Transform loops, Graph Editor, Random