Computational Thinking does not necessitate the use of computers. It is a problem-solving method that is being taught in schools to breakdown complex problems into solvable steps.

To investigate, we tested our computational thinking capabilities by digitally recreating the design of a frame and string model, first in SketchUp and then in Dynamo Revit to compare the processes!

Computational Thinking has four characteristics:

  • Decomposition
  • Pattern Recognition
  • Abstraction
  • Algorithmic Resolution
An introduction to Computational Thinking through physical models


Also known as factoring, decomposition is breaking a system into parts that are easier to conceive, understand and program. If we broke down the chosen cube to its fundamental elements, the design was simply made up of 12 cylindrical dowels and 9 strings.

Physical model constructed manually

Pattern Recognition

We recognized that there were three main regularities in the model, the first was that all the dowels were of equal length, forming a cube. The second was that each end of the 9 strings were attached at equal distances along the length of each dowel. The third was that each end of the strings were attached to different dowels.

Understanding the quantity of each element and then recognizing the three patterns used to arrange the elements was enough information to recreate the model in Sketchup. But what if we wanted to see different iterations, yet comply with the recognized patterns?

Digital model reconstructed manually in Sketchup


Recreating the design allowed us to embed the underlying properties of the design into the model. We separated the core information from extraneous details and focused on the information that were important and translated them into “language” that Dynamo could understand.

For instance, Dynamo was not concerned about the physical differences between “dowel” and “strings”, all of them are lines referred to as Curves. The quantity of each element was of no concern either, as long as the Curves designated to be “dowels” would always form a cube and the Curves designated to be “strings” would always segment two “dowels” in equal parts.

This meant that the model is highly customizable without any need to manually adjust each element just to see a different iteration. Furthermore, the model would not even generate if the settings do not comply with the recognized patterns.

Digital model as generated in Revit

Algorithmic Resolution

From left to right, the script begins with a node that generates a cube through dimensions provided by the number slider. The next node identifies the edges of the cube while the subsequent node generates curves (dowels) from those edges. It extends out to two other nodes that indexes the chosen curves from which the “strings” should attach to. The following two nodes segments the dowel equidistantly and the last node generates the curves (strings) as a result.

The underlying properties of the design concept scripted in Dynamo Revit


Although easier than building a physical model, which required an amount of dexterity to tie the strings in the right position, the SketchUp model was inflexible and could not notify whether the iterations were compliant.

Making an iterative change takes about 1 minute in Sketchup

The Dynamo Revit model required far more mental investment at the start but is also far more flexible as a result. There is also a certainty in the Dynamo Revit model that the iterations would comply to the pre-existing patterns.

Making iterative changes in Dynamo Revit is instantaneous

Some characteristics of Computational Thinking are already present in the Design Thinking process that has become second nature to us Architects. The addition of abstractions and algorithmic resolutions help us to be more critical about the underlying nature of our design so that digital application can enable us to iterate much faster than ever before.