Skip to content

Commit

Permalink
Creates assets/1-2.jpg
Browse files Browse the repository at this point in the history
Auto commit by GitBook Editor
  • Loading branch information
gitbook-bot committed Jan 18, 2017
1 parent 3084872 commit 8ccf6ce
Show file tree
Hide file tree
Showing 11 changed files with 71 additions and 45 deletions.
64 changes: 36 additions & 28 deletions 05_Geometry-for-Computational-Design/5-3_points.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,36 @@
## Points
If Geometry is the language of a model, then Points are the alphabet. Points are the foundation upon which all other geometry is created - we need at least two Points to create a Curve, we need at least three Points to make a Polygon or a Mesh Face, and so on. Defining the position, order, and relationship among Points (try a Sine Function) allows us to define higher order geometry like things we recognize as Circles or Curves.

![Point to Curve](images/5-3/PointsAsBuildingBlocks-1.jpg)
>1. A Circle using the functions ```x=r*cos(t)``` and ```y=r*sin(t)```
2. A Sine Curve using the functions ```x=(t)``` and ```y=r*sin(t)```
### What's a Point?
A Point is defined by nothing more than one or more values called coordinates. How many coordinate values we need to define the Point depends upon the Coordinate System or context in which it resides. The most common kind of Point in Dynamo exists in our three-dimensional World Coordinate System and has three coordinates [X,Y,Z].

![Point](images/5-3/Point.jpg)

### Point as Coordinates
Points can exist in a two-dimensional Coordinate System as well. Convention has different letter notation depending upon what kind of space we are working with - we might be using [X,Y] on a Plane or [U,V] if we are on a surface.

![Point as Coordinates](images/5-3/Coordinates.jpg)
> 1. A Point in Euclidean Coordinate System: [X,Y,Z]
2. A Point in a Curve Parameter Coordinate System: [t]
3. A Point in a Surface Parameter Coordinate System: [U,V]

Although it might seem counter intuitive, Parameters for both Curves and Surfaces are continuous and extend beyond the edge of the given geometry. Since the shapes that define the Parameter Space reside in a three-dimensional World Coordinate System, we can always translate a Parametric Coordinate into a "World" Coordinate. The point [0.2, 0.5] on the surface for example is the same as point [1.8, 2.0, 4.1] in world coordinates.


![Points in Dynamo](images/5-3/Dynamo-Points.jpg)
> 1. Point in assumed World XYZ Coordinates
2. Point relative to a given Coordinate System (Cylindrical)
3. Point as UV Coordinate on a Surface

>Download the example file that accompanies this image (Right click and "Save Link As..."): [Geometry for Computational Design - Points.dyn](datasets/5-3/Geometry for Computational Design - Points.dyn). A full list of example files can be found in the Appendix.
## Points

If Geometry is the language of a model, then Points are the alphabet. Points are the foundation upon which all other geometry is created - we need at least two Points to create a Curve, we need at least three Points to make a Polygon or a Mesh Face, and so on. Defining the position, order, and relationship among Points \(try a Sine Function\) allows us to define higher order geometry like things we recognize as Circles or Curves.

![Point to Curve](images/5-3/PointsAsBuildingBlocks-1.jpg)

> 1. A Circle using the functions `x=r*cos(t)` and `y=r*sin(t)`
> 2. A Sine Curve using the functions `x=(t)` and `y=r*sin(t)`
> ### What's a Point?
>
> A Point is defined by nothing more than one or more values called coordinates. How many coordinate values we need to define the Point depends upon the Coordinate System or context in which it resides. The most common kind of Point in Dynamo exists in our three-dimensional World Coordinate System and has three coordinates \[X,Y,Z\].
![Point](images/5-3/Point.jpg)

### Point as Coordinates

Points can exist in a two-dimensional Coordinate System as well. Convention has different letter notation depending upon what kind of space we are working with - we might be using \[X,Y\] on a Plane or \[U,V\] if we are on a surface.

![Point as Coordinates](images/5-3/Coordinates.jpg)

> 1. A Point in Euclidean Coordinate System: \[X,Y,Z\]
> 2. A Point in a Curve Parameter Coordinate System: \[t\]
> 3. A Point in a Surface Parameter Coordinate System: \[U,V\]
Although it might seem counter intuitive, Parameters for both Curves and Surfaces are continuous and extend beyond the edge of the given geometry. Since the shapes that define the Parameter Space reside in a three-dimensional World Coordinate System, we can always translate a Parametric Coordinate into a "World" Coordinate. The point \[0.2, 0.5\] on the surface for example is the same as point \[1.8, 2.0, 4.1\] in world coordinates.

![Points in Dynamo](images/5-3/Dynamo-Points.jpg)

> 1. Point in assumed World XYZ Coordinates
> 2. Point relative to a given Coordinate System \(Cylindrical\)
> 3. Point as UV Coordinate on a Surface
>
> Download the example file that accompanies this image \(Right click and "Save Link As..."\): [Geometry for Computational Design - Points.dyn](datasets/5-3/Geometry for Computational Design - Points.dyn). A full list of example files can be found in the Appendix.


52 changes: 35 additions & 17 deletions 12_Best-Practice/12-2_Graph-Strategies.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,56 +119,74 @@ Python scripting is a powerful tool to use in your program as shown in Python No
* If you need to implement subdivision

### Exercise - Architectural Roof
Now that we have established several best practices, let’s apply them to the architectural roof program that was put together rather quickly. Though the program generates the roof quite well, the state of the graph is a "mind-map" of the author. We will walk through our best practices to organize and describe the program so other users can understand how to use it.

![](/assets/00.jpg)
> Download the example file that accompanies this exercise \(Right click and "Save Link As..."\). A full list of example files can be found in the Appendix.
Now that we have established several best practices, let’s apply them to a program that was put together quickly. Though the program succeeds in generating the roof, the state of the graph is a "mind-map" of the author. We will walk through our best practices to organize, describe, and analyze the program so other users can understand how to use it.

![](/assets/00.jpg)

> Download the example file that accompanies this exercise \(Right click and "Save Link As..."\). A full list of example files can be found in the Appendix.
> The program is functioning, but the graph is disorganized.
**1. Groups:**
**Groups:**

![](/assets/01ws.png)
![](/assets/1-2.jpg)

> Now we can start to see the structure of the program by identifying what each part does and grouping it together.
>
> 1. Import 3D site model
> 2. Translate point grid based on Sine equation
> 3. Sample portion of point grid
> 4. Create architectural roof surface
> 5. Create glass curtain wall
> 6. Apply Python drainage simulator
**2. Alignment:**
**Alignment:**

![](/assets/02ws.png)
![](/assets/2.jpg)

> Aligning the graph gives it visual continuity, allowing us to see implicit relationships in the groups.
> 1. Vertical alignment
> 2. Horizontal alignment
**3. Rename Sliders and add Notes:**
**Rename Sliders and add Notes:**

![](/assets/2-2.jpg)

![](/assets/03ws.png)
> These graphic improvements tell the user more about what the program is doing.
> 1. Notes
> 2. Number sliders with descriptive names
> 3. Multi-color Groups
**4. Node to Code and Custom Node: **
**Integrate Scripting:**

![](/assets/scripting.jpg)

![](/assets/04ws.png)
> We've chosen to integrate scripting at this point in the program so the drainage simulation can be run on the original, single roof surface. That specific surface is hidden, but it saves us from having to choose the top surface of the chamfered Polysurface.
>
> 1. Source node for script input
> 2. Python node
> 3. Input sliders
> 4. On/off "switch"
**Node to Code and Custom Node: **

![](/assets/3-2.jpg)

> Condensing our program with Node to Code and Custom Node has greatly reduced the size of the graph. The groups that create the roof surface and walls have been converted to code since they are very specific to this program. The point translation group is contained in a Custom Node as it could be used in another program. In the example file, create your own custom node from the translate points group.
> 1. Custom Node
> 2. Node to Code
**5. Presets:**
**Set Presets:**

![](/assets/presets.jpg)

> We've saved two presets so other users can see the potential range of roof forms that the program can create.
> 1. Preset 1
> 2. Preset 2
**6. Integrate Scripting:**

![](/assets/presets-script.jpg)

> 1. Preset 1
> 2. Preset 2
Binary file added assets/01.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/02.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/03.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/1-2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/2-2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/3-2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/presets-script.jpg
Binary file not shown.
Binary file added assets/scripting.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 8ccf6ce

Please sign in to comment.