3. Notes (recaps)
Computational Design
-Computational-
• algorithmic, procedural, generative, rule-based
-Design-
• making, creating designs
Form as a process (x)
Focus on developing interactive processes that designers can engage with.
Instead of creating static design create dynamic system
Instead of making structure grow them
“ Creativity is not a talent, it is a way of operating. “ John Cleese.
The ideas the designer might never have imagined and the whole set of solutions provided
(???)
Exploration, innovation, explanation (dynamic)
:
Computational Design and
Digital Fabrication
Date: April 12, 2017
I
5. Generative design
“Generative Design is a morphogenetic process using algorithms structured as non-linear
systems for endless unique and unrepeatable results performed by an idea-code, as in
Nature” Celestino Soddu, 1992
“Generative design is not about designing a building. It’s about designing the system that
designs a building.” Lars Hesselgren, Director of KPF Research (cit. in Stocking, 2009)
Algorithmic systems are at the foundation of all Generative Systems. Stiny and Gips (1978a)
defined an algorithm as an explicit statement of a sequence of operations needed to perform
some task. Computation is the act of performing those operations.
:
Computational Design and
Digital Fabrication GD
6. Design method in which the output, image, sound, architectural models, animation , is
generated by a set of rules or an algorithm, normally by using a computer program.
Generative design has: A design scheme , A means of creating variations, A means of
selecting desirable outcomes.
The development of information environments such as the world wide web show an
accelerated evolution and adaptation when compared to more traditional media such as the
printed page.
:
Computational Design and
Digital Fabrication GD
7. Properties of Generative Systems
• The ability to generate complexity, many orders of magnitude greater than their
specification.
• The complex and interconnected relationship between organism and environment.
• The ability to self-maintain and self-repair
• The ability to generate novel structures, behaviors, outcomes or relationships.
Methodologies for Generative Design
• Self-organization and self-assembly
• Evolutionary Systems
• Generative grammars
:
Computational Design and
Digital Fabrication GD
8. Generative Design Techniques
• Parametric(variable geometry),
• combinatorial (Rule based system, templating) ,
• Substitution (L System , shape grammars),
• Agent based (artificial life swarming),
• Mathematical ( Description by equation, algorithm),
• Special partitioning (recursive Subdivision of space, voxels) ,
• procedural shape languages ( such us reptile),
• Parallel descript computation ( Polyautomata, Cellular automata)
:
Computational Design and
Digital Fabrication GD
10. Generative design
Most generative design, in which the output could be images, sounds, architectural
models, animation etc., is based on algorithmic and parametric modelling. It is a fast
method of exploring design possibilities that is used in various design fields such as Art,
Architecture, Communication design and Product design.
Generative design is becoming more important, largely due to new programming
environments (Proceessing, Vvv, Quartz Composer, Open Frame Works) or scripting
capabilities ( Grasshopper, Dynamo, Scriptographer) that have made it relatively easy, even
for designers with little programming experience, to implement their ideas. But it can
also be related with data driven architecture. Parametric architecture includes both program
generated and data-driven software.
The feedback loop: Generative methods have their roots deep in the system dynamics
modelling and are by nature repetitive processes where the solution is developed during
several iterations of design operations.
:
Computational Design and
Digital Fabrication GD
11. In traditional design, the role of the designer is to explore a solution space. Solutions may be
aesthetic, semiotic, cultural, dynamic, industrial, corporate, political, or any combination of
these and other determinants. The key relationship between designer and artefact is a
direct one (even if mediated via some third-party or medium). There is a direct relationship
between the designer’s intentions and that of the designed artefact. In contrast, design using
generative methods involves the creation and modification of rules or systems that
interact to generate the finished design autonomously. Hence, the designer does not
directly manipulate the produced artefact, rather the rules and systems involved in the
artefact’s production. The design process becomes one of meta-design where a finished
design is the result of the emergent properties of the interacting system (McCormack & Dorin
2001).
:
Computational Design and
Digital Fabrication GD
12. “Generative design mimics nature’s evolutionary approach to design. Designers or engineers
input design goals into generative design software, along with parameters such as
materials, manufacturing methods, and cost constraints. Then, using cloud
computing, the software explores all the possible permutations of a solution, quickly
generating design alternatives. It tests and learns from each iteration what works and
what doesn’t.”
Quickly generate high performing design alternatives, many that designers would never never
think of on their own, from a single idea.
:
Computational Design and
Digital Fabrication GD
13. In computing, a visual programming language (VPL) is any programming language that lets
users create programs by manipulating program elements graphically rather than by
specifying them textually. A VPL allows programming with visual expressions, spatial
arrangements of text and graphic symbols, used either as elements of syntax or secondary
notation. For example, many VPLs (known as dataflow or diagrammatic programming) are
based on the idea of "boxes and arrows", where boxes or other screen objects are treated as
entities, connected by arrows, lines or arcs which represent relations
Example:
Design By Numbers was created for visual designers and artists as an introduction to computational design. It is
the result of a continuing endeavor by Professor John Maeda to teach the “idea” of computation to designers and
artists.
It is his belief that the quality of media art and design can only improve through establishing educational
infrastructure in arts and technology schools that create strong, cross-disciplinary individuals.
DBN is both a programming environment and language. The environment provides a unified space for writing and
running programs and the language introduces the basic ideas of computer programming within the context of
drawing. Visual elements such as dot, line, and field are combined with the computational ideas of variables and
conditional statements to generate images.
:
Computational Design and
Digital Fabrication
Visual Programing (VP)
VP
14. Visual Programing
Processing is an open source computer programming language and integrated development
environment (IDE) built for the electronic arts, new media art, and visual design communities
with the purpose of teaching the fundamentals of computer programming in a visual
context, and to serve as the foundation for electronic sketchbooks.
Dynamo, the application, is a software that can be downloaded and run in either stand-alone
"Sandbox" mode or as a plug-in for other software like Revit or Maya. It is described as: A
visual programming tool that aims to be accessible to both non-programmers and
programmers alike
Grasshopper is a visual programming language and environment developed by David Rutten
at Robert McNeel & Associates, that runs within the Rhinoceros 3D computer-aided design
(CAD) application. Programs are created by dragging components onto a canvas. The outputs
to these components are then connected to the inputs of subsequent components.
:
Computational Design and
Digital Fabrication VP
18. Parametric design:
Software application
popular in EiABC
Dynamo to Revit as
grasshopper to
rhinoceros
Relations of elements
in design (size, material
(color,…), … )
Visual programing
:
Computational Design and
Digital Fabrication VP
19. Software application popular in EiABC
Dynamo to Revit as grasshopper to rhinoceros
Relations of elements in design (size, material (color,…), … )
: VP
20. Dynamo(.dyn)
• An open source Visual programming plugin for Revit
architecture
• Stand alone software (stand alone version) called Dynamo studio
o Integrates computational design capability to BIM (building
information model)
o Parametric capability of Revit and visual programing environment in
dynamo = computation design in BIM
o Sophisticated data manipulation
o Geometric control
: VP
21. Dynamo(.dyn)
• Definition
Nodes
o Nodes are building blocks of dynamo definition, nods have inputs
and outputs called ports
o There are different types of nodes example: number node, point
node, watch node …in dynamo a point is an abstract coordinate, Not
an actual geometry.
o Watch node helps to inspect the current status of a node by viewing
the output data
: VP
22. Dynamo(.dyn)
• Definition
Nodes
o Nodes are building blocks of dynamo definition, nods have ports that
have inputs and outputs side
o There are different types of nodes example: number node (core -
input), point node (geometry), watch node(core_view), sin (core-
math)…
These nodes have different functions, Eg. Watch node helps to inspect
the current status of a node by viewing the output data
o In dynamo a point is an abstract coordinate, Not an actual geometry.
We can transfer this point to revit (revit_point).
: VP
23. Dynamo(.dyn)
Dynamo definition
• Node (building block of
a definition)
• Ports (input an output types)
• Connecting wires
• Watch node / watch 3d node
• Code blocks (numbers, strings
and formulas)(eg. 10; , “eiabc!”;
10*5;) read this with watch node
To apply code blocks double
in dynamo
• Packaging
: VP
24. Dynamo(.dyn)
• Sequence of numbers (start, amount, step)
• Range of numbers (start, end, step)
• (L..M) (starts with L and ends with M. The numbers step by one in
default) (range of numbers)
• (L..M..N) (starts with L and ends with M. The numbers step by N)
(range of numbers)
• (L..M..#N) (starts with L and ends with M. The numbers step by equal
range. The number of values are N) (range of numbers)
• (L..#M..N) (starts with L. Steps by N and has M values) (sequence of
numbers)
• (L..XCount..Spacing) or (L..Ycount..Spacing)
: VP
26. Syntax for Formulas Revit architecture
Formulas support the following arithmetic operations: addition, subtraction,
multiplication, division, exponentiation, logarithms, and square roots.
Formulas also support the following trigonometric functions: sine, cosine,
tangent, arcsine, arccosine, and arctangent.
The valid formula abbreviations for arithmetic operations and trigonometric
functions are
•Additionó +
•Subtractionó -
•Multiplicationó*
•Divisionó/
•Exponentiationó^: x^y, x raised to the power of y
•Logarithmólog
•Square rootósqrt: sqrt(16)
•Sineó sin
•Cosineó cos
•Tangentó tan
•Arcsineóa sin
•Arccosineó acos
•Arctangentó atan
•e raised to an x poweró exp
•Absolute Valueó abs
27. Syntax for Formulas Revit architecture
You can enter integers, decimals, and fractional values in formulas, using
normal mathematical syntax, as shown in the examples below:
•Length = Height + Width + sqrt(Height*Width)
•Length = Wall 1 (11000mm)+ Wall 2 (15000mm)
•Area = Length (500mm) * Width (300mm)
•Volume = Length (500mm) * Width (300mm) * Height (800 mm)
•Width = 100m * cos(angle)
•x = 2*abs(a) + abs(b/2)
•ArrayNum = Length/Spacing
Parameter names in formulas are case sensitive. For example, if a
parameter name begins with a capital letter, such as Width, you must enter
it in the formula with an initial capital letter. If you enter it in a formula
using lower-case letters instead, for example, width * 2, the software will
not recognize the formula.
Note: It is recommended that you do not use a dash (-) when naming
parameters.
You can use conditional statements in formulas to define actions in a family
that depend on the state of other parameters. With conditional statements,
the software enters values for a parameter based on whether a specified
condition is satisfied. Conditional statements are useful in certain
circumstances; however, they make families more complex and should be
used only when necessary.
28. Syntax for Formulas Revit architecture
For most type parameters, conditional statements are unnecessary because
the type parameter itself is like a conditional statement: If this is the type,
then set this parameter to a specified value. Instance parameters are a
more productive place to use conditional statements, particularly when they
are used to set a parameter that does not vary continuously.
Syntax for Conditional Statements
A conditional statement uses this structure: IF (<condition>, <result-if-
true>, <result-if-false>)
This means that the values entered for the parameter depend on whether
the condition is satisfied (true) or not satisfied (false). If the condition is
true, the software returns the true value. If the condition is false, it returns
the false value.
Conditional statements can contain numeric values, numeric parameter
names, and Yes/No parameters. You can use the following comparisons in a
condition: <, >, =. You can also use Boolean operators with a conditional
statement: AND, OR, NOT. Currently, <= and >= are not implemented. To
express such a comparison, you can use a logical NOT. For example, a<=b
can be entered as NOT(a>b).
29. Syntax for Formulas Revit architecture
The following are sample formulas that use conditional statements.
Simple IF: =IF (Length < 3000mm, 200mm, 300mm)
IF with a text parameter: =IF (Length > 35', ìString1î, ìString2î)
IF with logical AND: =IF ( AND (x = 1 , y = 2), 8 , 3 )
IF with logical OR: =IF ( OR ( A = 1 , B = 3 ) , 8 , 3 )
Embedded IF statements: =IF ( Length < 35' , 2' 6" , IF ( Length < 45' , 3'
, IF ( Length < 55' , 5' , 8' ) ) )
IF with Yes/No condition: =Length > 40 (Note that both the condition and
the results are implied.)
Examples of Conditional Statement Usage
Typical uses for conditional statements in formulas include calculating array
values and controlling an elementís visibility based on a parameter value.
For example, you can use conditional statements to
•Prevent an array parameter from taking a value less than 2.In Revit
Architecture, arrays can only have an integer value of 2 or greater. In some
situations, it may be useful to create a conditional formula that maintains
an array parameter of 2 even if the calculated value is 1 or 0. With such a
formula, if the calculated array value is 2 or greater, the formula retains the
value. However, if the calculated value is 1 or 0, the formula changes the
value to 2.
30. Syntax for Formulas Revit architecture
•Formula: Array number = IF (Arrayparam < 2, 2, Arrayparam)
•Make muntins visible only when the number of window lights is greater
than 1.For example, if you have a Lights parameter that you want to use to
control the visibility of muntin geometry, you can create a Yes/No parameter
like MuntinVis, and assign it to the Visible parameter on the Properties
palette for the muntin geometry. Because the MuntinVis parameter is a
Yes/No (or Boolean) operation, both the condition (IF) and the results are
implied. In this example, when the condition is met (true), the MuntinVis
parameter value is selected, and the muntin geometry is visible. Conversely,
when the condition is not met (false), the MuntinVis parameter is cleared,
and the muntin geometry is not visible.
•Formula: MuntinVis = Lights > 1