Category Archives: Rhinoceros

Architectural Geometry Informed by Static and Dynamic Loading Conditions. 02

Different panelization options are generated via the code for the geometry with the assigned curve function:  F= sin (v)+cos (u). The script*  performed at RhinoScript platform. Because planar quadrilateral panels obtain advantage of having a lower node complexity and are feasible for manufacturing, planar quadrilateral panels are operated for the geometry. The code enables that the architectural designer can identify if the geometry contains any holes. If yes, then the shapes of them needs to be defined. The algorithm runs with the following procedural steps which the user needs to identify during the execution of the code:

  • Selecting the NURBS surface.
  • Defining the U and V values of the surface.
  • Specifying types of holes if exists any.
  • Introducing the shapes of the holes.
  • Defining the percentage of the holes within overall panels.
  • Deciding if the hole sizes vary or not.

*Special thanks to Fabio Mantuano.


Form Active Structures. 03

(a) Surface curvature analyses are undertaken to identify problem areas by running gaussian and mean tools. (b) The double-curved surface is subdivided into components where quadrilateral panels are assigned to the points on divisions of the x and y directions (U-V curves).

Architectural Geometry Generated Through Curve Functions

Klein Surface is investigated in terms of architectural geometry which represents a usable volume. It is a non-orientable closed surface which is homeomorphic to a connected sum of a number of copies of the real projective plane. 

//Parameters : range values (β, μ); re-built curve values

//Definitions of curve functions

Function X = (1 + cos(β /2)*sin(μ) – sin(β /2)*sin(2* μ))*cos(β)

Function Y = (1 +cos(β /2)*sin(μ) – sin(β /2)*sin(2* μ))*sin(β)

Function Z = sin(β /2)*sin(μ) + cos(β /2)*sin(2* μ)

Organized Complexity. 03

Components Generated by GH 02

Generative Design Through Coding 02


Option Explicit

‘Call sinusyuzeyi()
Sub sinusyuzeyi()
Dim cisim, nokta, i, noktaKoordinati
‘ girdiler: noktalar + cisim
cisim = Rhino.GetObject(“tekrarlanacak cisimleri seçiniz”)
nokta = Rhino.GetObjects(“cisimlerin atanacağı noktaları seçiniz”)
‘ tüm noktalar için döngü oluştur
For i = 0 To UBound(nokta)
‘ noktanın pozisyonu belirlenir
noktaKoordinati = Rhino.PointCoordinates(nokta(i))
‘ cismi belirlenen posizyona atama
Rhino.CopyObject cisim, Array(0,0,0), noktaKoordinati
End Sub