1. Create Pattern

Generating a Pattern is the start of the form-finding process. Pattern is the line segments of the FormDiagram and describes the topology of the structure. The FormDiagram is generated from a Pattern, which represents one possible way for the loads to flow down horizontally towards the supports. The topology of the pattern will also be reflected in the generation of the ForceDiagram.

In the case of the rib layout variations for the rib-stiffened funicular floor system, the boundary remains fixed (the footprint and depth of the floor). However, depending on the topology of the form diagram, the distribution and flow of forces change drastically.

More information about pattern can be found in the Bonus.

Create a Pattern from Serialized Data

In this tutorial, a quad grid pattern will be used, which defines the force flow in the two main directions of the shell. A Pattern object is a mesh data structure, and it can be constructed in the same method as mesh (see week 4).

Here you can download the serialized data of the pattern.

Here the pattern is generated from serialized data in pattern.json and visualized with MeshArtist. Pattern class is the inheritance of Mesh class, which means it inherits all the methods and properties from Mesh.

# ==============================================================================
# Import
# ==============================================================================
import os
from compas_rv2.datastructures import Pattern
from compas_rhino.artists import MeshArtist

# ==============================================================================
# Create Pattern
# ==============================================================================
HERE = os.path.dirname(__file__)
FILE = os.path.join(HERE, 'data', 'pattern.json')
pattern = Pattern.from_json(FILE)

# ==============================================================================
#  Visualization
# ==============================================================================
artist = MeshArtist(pattern, layer="CSD2::form")
artist.clear_layer()
artist.draw()

Last updated