Grasshopper Data Types
Every parameter you work with in Grasshopper will expect a particular 'Type' of input data. The simplest data types are integers, decimal numbers, strings of characters and boolean values. From these simple (or 'Primitive') types you can build more and more complex objects. For instance, a 'Point' type consists of 3 parameters: the X, Y and Z coordinates (decimal data types) of the point. A 'Curve' type consists of a list of points representing the control points of the curve etc.
Constructing and Deconstructing objects
Generally over the course of a grasshopper definition you will construct complex objects from simple data types, or deconstruct these complex objects into their simpler components in order to modify them in some fashion. Most types have 'Construct' or 'Deconstruct' components that you can search for in the menus or by double clicking on the canvas.
Grasshopper Data Flow
Grasshopper will create a copy of your object whenever you construct or deconstruct it with one of these components. For instance, using the Deconstruct Point component will output the X,Y and Z coordinates of your point. If you modify these values (using addition components or something else that operates on number values), the original point will remain unchanged. Data only 'Flows' from left (outputs of components) to right (inputs of components) in Grasshopper by default and cannot flow backwards. Why?
- To prevent the creation of 'infinite loops' where the output of a component becomes the input to the same component. Because the program has no way to finish, these tend to crash your software.
- To improve the legibility of your definition by making it as clear as possible which components are creating and modifying which geometry.
Fologram for Grasshopper contains several utility components that allow you to create safe loops in order to manipulate objects in your parametric model in mixed reality without creating copies or needing to write code.
You work with vectors all the time in Rhino, you just probably aren't thinking about it when you do. This is because you create vectors in rhino by interacting explicitly with your model: clicking to define coordinates and directions or snapping to geometry. In grasshopper you create and manipulate vectors mathematically. It helps to brush up on your vector maths if it's been a while since you've done any trigonometry.
Above - introduction to Vectors in Grasshopper by EXLAB.
See also - Essential Mathematics for Computational Design.