# Parametric design

Parametric design is a design method in which features, such as building elements and engineering components, are shaped based on algorithmic processes rather than direct manipulation. In this approach, parameters and rules establish the relationship between design intent and design response. The term parametric refers to the input parameters that are fed into the algorithms.
While the term now typically refers to the use of computer algorithms in design, early precedents can be found in the work of architects such as Antoni Gaudí. Gaudí used a mechanical model for architectural design (see analogical model) by attaching weights to a system of strings to determine shapes for building features like arches.
Parametric modeling can be classified into two main categories:
Propagation-based systems, where algorithms generate final shapes that are not predetermined based on initial parametric inputs. Constraint systems, in which final constraints are set, and algorithms are used to define fundamental aspects (such as structures or material usage) that satisfy these constraints. Form-finding processes are often implemented through propagation-based systems. These processes optimize certain design objectives against a set of design constraints, allowing the final form of the designed object to be "found" based on these constraints.
Parametric tools enable reflection of both the associative logic and the geometry of the form generated by the parametric software. The design interface provides a visual screen to support visualization of the algorithmic structure of the parametric schema to support parametric modification.
The principle of parametric design can be defined as mathematical design, where the relationship between the design elements is shown as parameters which could be reformulated to generate complex geometries, these geometries are based on the elements’ parameters, by changing these parameters; new shapes are created simultaneously.
In parametric design software, designers and engineers are free to add and adjust the parameters that affect the design results. For example, materials, dimensions, user requirements, and user body data. In the parametric design process, the designer can reveal the versions of the project and the final product, without going back to the beginning, by establishing the parameters and establishing the relationship between the variables after creating the first model.
In the parametric design process, any change of parameters like editing or developing will be automatically and immediately updated in the model, which is like a “short cut” to the final model.

## Parameter

The word parameter derives from the Greek for para (besides, before or instead of) + metron (measure). If we look at the Greek origin of the word, it becomes clear that the word means a term that stands in for or determines another measure.
In parametric CAD software, the term parameter usually signifies a variable term in equations that determine other values. A parameter, as opposed to a constant, is characterized by having a range of possible values. One of the most seductive powers of a parametric system is the ability to explore many design variations by modifying the value of a few controlling parameters

## History (early examples)
### Analogue parametric design

One of the earliest instances of parametric design was the upside-down model of churches by Antoni Gaudi. In his design for the Church of Colònia Güell, he created a model of strings weighted down with birdshot to create complex vaulted ceilings and arches. By adjusting the position of the weights or the length of the strings, he could alter the shape of each arch and observe the impact on the connected arches. He placed a mirror at the bottom of the model to see how it would appear when built right-side-up.

#### Features of Gaudí's method

Gaudí's analog method incorporated the main features of a computational parametric model (input parameters, equation, output):
The string length, birdshot weight, and anchor point location function as independent input parameters.
The vertex locations of the points on the strings serve as the model's outcomes. The outcomes are derived using explicit functions, in this case, gravity or Newton's law of motion. By modifying individual parameters of these models, Gaudí could generate different versions of his model while ensuring the resulting structure would stand in pure compression. Instead of manually calculating the results of parametric equations, he could automatically derive the shape of the catenary curves through the force of gravity acting on the strings.
German architect Frei Otto also experimented with non-digital parametric processes, using soap bubbles to find optimal shapes of tensegrity structures such as in the Munich Olympic Stadium, designed for the 1972 Summer Olympics in Munich.

## Architecture

Nature has often served as inspiration for architects and designers. Computer technology has provided designers and architects with the tools to analyze and simulate the complexity observed in nature and apply it to structural building shapes and urban organizational patterns. In the 1980s, architects and designers began using computers running software developed for the aerospace and moving picture industries to "animate form".
One of the first architects and theorists to use computers to generate architecture was Greg Lynn. His blob and fold architecture are early examples of computer-generated architecture. The new Terminal 3 of Shenzhen Bao'an International Airport, completed in 2013, was designed by Italian architect Massimiliano Fuksas with parametric design support from engineering firm Knippers Helbig. It serves as an example of the use of parametric design and production technologies in a large-scale building.
In the general architectural design, all design aspects and their dimensions can be considered as parameters, such as location, orientation, shape, solar radiation and so on.
The iterative process is an approach to continuously improving a concept, design, or product. Creators produce a prototype, test it, tweak it, and repeat the cycle with the goal of getting closer to the solution.
In the case of parametric architecture, iteration can, in principle, create variation at every pass through the same set of instructions. Examples may include varying the size and shape of a floor plate as one builds a skyscraper, or changing the angle of a modular cladding system as it is tiled over an undulating surface. In addition to producing variation, iteration can be a powerful tool for both optimization and minimizing the time needed to achieve that optimization. Using a fluid parametric system, which can give immediate feedback, a designer can generate solutions and test them rapidly by iterating through many possibilities, each created with a different set of parameters.

## Urban design

Parametric urbanism focuses on the study and prediction of settlement patterns. Architect Frei Otto identifies occupying and connecting as the two fundamental processes involved in all urbanization. Parametric processes can help optimize pedestrian or vehicle circulation, block and façade orientations, and instantly compare the different performances of multiple urban design options.
Parametric design techniques enable architects and urban designers to better address and respond to diverse urban contexts, environmental challenges, and social issues. By integrating data and analysis into the design process, parametric urbanism allows for more informed and adaptive solutions to urban design challenges, ultimately leading to more resilient and sustainable urban environments.

## Industrial design

With the development of technology and the improvement of people's quality of life, there are more and more factors that affect the final result of interior and furniture design. Space, form, color, line, light, color, pattern, and texture are all influencing elements.
The parametric design method brings industrial designers more design possibilities. The parametric design method gives furniture designers opportunities to challenge more complex furniture structures and create more complex shapes. When dealing with ergonomic problems parametric design methods can help designers create real-use digital scenarios and provide more comfortable design concepts.
Using design tables in the furniture industry to implement parametric design is useful when a large order needs to be fulfilled with different sizes of the same model of furniture, as it reduces work time and the possibility of error.

## Software

| Software | Description |
| Autodesk 3DS Max | A 3D modeling software for games, film, and motion graphics. It uses modifiers, wired parameters, and Max Creation Graph to control its geometry and functionality. |
| Autodesk Dynamo | An open source graphical programming environment for design. It extends building information modeling with the data and logic environment of a graphical algorithm editor. |
| Autodesk Maya | A 3D computer graphics software for interactive 3D applications, including video games, animated film, TV series, or visual effects. It has a node graph architecture, a scripting language called Maya Embedded Language (MEL), and supports Python. |
| Autodesk Revit | A building information modeling (BIM) software used by architects and other building professionals. It creates three-dimensional parametric models that include both geometry and non-geometric design and construction information. It updates all components, views and annotations automatically when changes are made. |
| CATIA | A 3D modeling software used by architect Frank Gehry for his curvilinear buildings such as the Guggenheim Museum Bilbao. It is the basis of Digital Project, a parametric design software by Gehry Technologies. |
| GenerativeComponents | A parametric CAD software developed by Bentley Systems that allows users to model and manipulate geometry, apply rules and relationships, or define complex forms and systems through algorithms. It supports many industry standard file formats and can integrate with Building Information Modeling systems. |
| Grasshopper 3D | A plug-in for Rhinoceros 3D that provides a visual programming language interface to create and edit geometry. It is based on graphs that map the flow of relations from parameters through user-defined functions (nodes). Grasshopper is a visual programming environment built on top of Rhino. It allows you to create visual scripts or definitions that describe a design through a series of relationships between operations, geometries, and other data. Like any programming environment, Grasshopper allows you to create algorithms, or sets of instructions, for telling a computer what to do. In traditional, text-based programming, these instructions are written using text that follows strict formatting rules and has a specific vocabulary for describing computer operations. With visual programming, the instructions are described in a visual interface using a set of nodes, or components, that describe operations, and a set of lines, or wires, that create connections between them. |
| Marionette | An open source graphical scripting tool (or visual programming environment) for the design industries that is built into the Mac and Windows versions of Vectorworks software. It enables designers to create custom application algorithms that build interactive parametric objects and streamline complex workflows within Vectorworks software. It is built in the Python programming language and consists of nodes that are linked together in a flowchart arrangement. |
| Modelur | A parametric urban design software plug-in for Trimble SketchUp, developed by Agilicity d.o.o. (LLC). Its primary goal is to help the users create conceptual urban massing. It allows users to design buildings with key urban parameters such as number of stories and gross floor area, and calculates key urban control parameters on the fly (e.g. floor area ratio or required number of parking lots). |
| Power Surfacing | A SolidWorks application for industrial design, freeform organic surface, and solids modeling. It can reverse engineer scanned meshes. |