Professional Documents
Culture Documents
VOGT
THOMAS MICHAEL
W14008230
08 January 2016
January 2016
All rights reserved – no part of this publication may be reproduced without the prior permission of the author.
DECLARATION FORM
I declare the following:
In the event of the service detecting a high degree of similarity between the
content of my dissertation/thesis and the documents contained within the
database, this will be reported back to my supervisor and examiners, who may
decide to undertake further investigation that may ultimately lead to
disciplinary action (according to ARNA), should instances of plagiarism be
detected.
Signed: ................................................
Date: ....................................................
Please remember to sign this declaration and include it before submitting your
dissertation/thesis for binding. This declaration form should be placed in each
Wiro bound copy after the title page.
“The result is complex without being complicated.”
(Shane Burger)
ii
ACKNOWLEDGEMENTS
TABLE OF CONTENTS
Acknowledgements ..................................................................................... ii
Preface ......................................................................................................... xi
1 Introduction ..................................................................................... 1
1.1 Background ................................................................................................... 1
1.2 Rationale of the study .................................................................................... 2
1.3 Research aim and questions .......................................................................... 3
1.4 Research objectives ....................................................................................... 4
1.5 Scope of research ........................................................................................... 5
1.6 Research method ........................................................................................... 6
1.7 Limitations..................................................................................................... 7
1.8 Dissertation structure ..................................................................................... 8
6 Discussion..................................................................................... 77
7 Conclusion .................................................................................... 82
APPENDICES.............................................................................................. 85
A Appendix ....................................................................................... 85
A.1 Survey participant introductions ................................................................. 85
A.2 Survey questions and data distribution ........................................................ 86
A.2.1 Question 1 ............................................................................................... 86
A.2.2 Question 2 ............................................................................................... 87
A.2.3 Question 3 ............................................................................................... 89
A.2.4 Question 4 ............................................................................................... 90
A.2.5 Question 5 ............................................................................................... 91
A.2.6 Question 6 ............................................................................................... 92
A.2.7 Question 7 ............................................................................................... 93
A.2.8 Question 8 ............................................................................................... 94
A.2.9 Question 9 ............................................................................................... 95
A.2.10 Question 10 ............................................................................................. 96
A.2.11 Question 11 ............................................................................................. 98
A.2.12 Question 12 ........................................................................................... 102
A.2.13 Question 13 ........................................................................................... 105
A.2.14 Question 14 ........................................................................................... 106
v
References................................................................................................ 119
LIST OF ILLUSTRATIONS
Figure 5.9: Are textual programming skills important to use Dynamo successfully?
................................................................................................................. 55
Figure 5.10: Are textual programming skills important to use Dynamo successfully? .
.......................................................................................................... 56
Figure 5.11: Motivation to learn textual programming by using graphical
programming ........................................................................................... 57
Figure 5.12: Textual programming skills are important to use Dynamo successfully:
Agreements.............................................................................................. 61
Figure 5.13: Percentages of designers who should be able to create and adjust
Dynamo definitions ................................................................................. 62
Figure 5.14: Percentages of designers who should be able to use existing Dynamo
definitions ................................................................................................ 62
Figure 5.15: Development of Dynamo nodes ............................................................ 65
Figure 5.16: Textual programming skills of all participants (dashed) in comparison
with participants who have developed Dynamo nodes before (grey) and
the ratio between them ............................................................................ 66
Figure 5.17: Are the developed Dynamo nodes published ? ..................................... 67
Figure 5.18: Is a node-package store beneficial to the Dynamo community? ........... 70
Figure 5.19: Contribution to the development of Dynamo on GitHub ...................... 74
Figure A.1: Survey flyer: Participant information ..................................................... 85
Figure A.2: Participant introduction and survey Question 1...................................... 86
Figure A.3: Survey question 2 ................................................................................... 87
Figure A.4: Question 2 distribution: Office percent of cases..................................... 88
Figure A.5: Survey question 3 ................................................................................... 89
Figure A.6: Survey data question 3: Role distribution of the participants ................. 89
Figure A.7: Survey question 4 ................................................................................... 90
Figure A.8: Answer distribution of textual programming skills ................................ 90
Figure A.9: Survey question 5 ................................................................................... 91
Figure A.10: Age distribution of the participants .................................................. 91
Figure A.11: Survey question 6 ................................................................................. 92
Figure A.12: Revit Skills of the participants ......................................................... 92
Figure A.13: Survey question 7 ................................................................................. 93
Figure A.14: Usage of Revit Macros ..................................................................... 93
Figure A.15: Survey question 8 ................................................................................. 94
viii
Figure A.16: Average usage hours of graphical programming per week .............. 94
Figure A.17: Survey question 9 ................................................................................. 95
Figure A.18: Dynamo skills of all participants ...................................................... 95
Figure A.19: Survey question 10 ............................................................................... 96
Figure A.20: Are textual programming skills important to use Dynamo successfully?
.. 97
Figure A.21: Survey question 11 ............................................................................... 98
Figure A.22: Survey question 12 ............................................................................. 102
Figure A.23: Survey question 13 ............................................................................. 105
Figure A.24: Percentages of designers in the office who are able to create Dynamo
definitions .............................................................................................. 105
Figure A.25: Survey question 14 ............................................................................. 106
Figure A.26: Percentages of designers who should be able to create and adjust
Dynamo definitions ............................................................................... 106
Figure A.27: Survey question 15 ............................................................................. 107
Figure A.28: Percentages of designers who should be able to use existing Dynamo
definitions .............................................................................................. 107
Figure A.29: Survey question 16 ............................................................................. 108
Figure A.30: Development of Dynamo nodes ......................................................... 108
Figure A.31: Survey question 17 ............................................................................. 109
Figure A.32: Are the developed Dynamo nodes published ?................................... 109
Figure A.33: Survey question 18 ............................................................................. 110
Figure A.34: Motivation to learn textual programming by using graphical
programming ......................................................................................... 110
Figure A.35: Survey question 19 ............................................................................. 111
Figure A.36: Contribution to the development of Dynamo on GitHub ................... 111
Figure A.37: Survey question 20 ............................................................................. 112
Figure A.38: Reasons for companies not to share custom nodes with the community .
113
Figure A.39: Survey question 21 ............................................................................. 113
Figure A.40: Possible motivations for developers to share nodes with the community
114
Figure A.41: Survey question 22 ............................................................................. 115
Figure A.42: Is a node-package store beneficial to the Dynamo community? ........ 115
ix
LIST OF TABLES
PREFACE
Some years ago, when I came in contact with Revit for the first time at the University
of Leeds at my Erasmus year, I was fascinated by the software. In Stuttgart
(Germany) the university was still teaching hand sketching and AutoCAD and they
never mentioned something like BIM or model-based design. A classmate in Leeds
was researching for his bachelor thesis about BIM and he has explained me the
basics of BIM and the possibilities. So the first step after coming back from Leeds
was to find someone who has experience with BIM and Revit. There was one office
in Stuttgart, an Autodesk partner with proven experience at Revit and BIM:
HAFNER’S BÜRO and my future mentor Ralf Schmitz – an early adopter and a
consulting office for Revit and BIM implementation. Still be a student at the
University of Applied Science Stuttgart I have worked there part-time, to search for
an interesting bachelor thesis topic, to learn Revit in more detail, to read books and
magazines about Revit and BIM stuff. Thus I discovered the company FARO and its
laser scanner Focus 3D. They have their headquarters not far away from Stuttgart
and I asked them for supporting my work with a laser scanner – at these days it was a
new way of working, especially with the combination with Revit. After I have
successfully finished my bachelor degree I have worked about one year for ‘Boll und
Partner’ a structural engineering office in Stuttgart. They got already outstanding
experience with Revit and SOFiSTiK. And one of the directors got some
programming skills and used it to automate some steps. For me it was fascinating and
at the same time I have discovered the visual programming tool Dynamo. The
community was still very small but I saw the potential of using it without having
serious troubles without textual programming skills. I was attending several events in
Europe and met other Dynamo enthusiasts. Today Dynamo is on a good way to
becoming a mainstream tool. So the research topic for my master thesis was obvious
– Graphical programming with Dynamo. How is it used? Who can learn it? What is
the opinion of others?
As you will see in my research it is a helpful tool for nearly everyone working with
Revit. But there is a limitation at some point and you have to go the extra mile and
learn how to program to solve all problems out there. Thus I will start in 2016 to
extend my skills with textual programming and I hope to be able then to extend
Dynamo and can be a part of the developer team.
xii
LIST OF ABBREVIATIONS
ABSTRACT
In the last decade the design process in the AEC industry was strongly influenced by
new tools, which are based on the method Building Information Modelling.
Shortcomings like the lack of suitable computational approaches available for
designers and engineers were identified. Several textual programming approaches for
automating tasks have failed due to various reasons. The success of Grasshopper has
highlighted the demand for tools, which can be used by non-programmers but still
have the ability to create algorithms for multi-criteria design optimisations. Several
software manufacturers have started to offer graphical programming tools in the last
years. Thus the promising graphical programming tool ‘Dynamo’ and its usage have
been studied in detail. Therefore a survey about Dynamo was conducted and
evaluated and compared with the findings from existing literature. The research
presents technical details about the software and possible future developments. The
results show a clear acceptance by non-programmers and also areas for
improvement. Overall Dynamo has proven to be a suitable approach for the BIM
design workflow by reducing labour time, better quality assurance, and by supporting
interoperability of software.
1 INTRODUCTION
1.1 Background
The emergence of Building Information Modelling (BIM) and its latest development
to become a mainstream method for designing and analysing the lifecycle of the built
environment has consequences on how to handle and use the increasing amount of
data effectively. With BIM enabled tools all data has a direct or indirect relationship
to each other by creating a database which represents a digital copy of a project. The
database can be visually represented as a digital model and it has also intelligence
and properties embedded in its objects. Despite all that, the design process with BIM
tools is still a widely manual process. To some degree parametrical intelligence and
dependencies are embedded in the objects. But artificial intelligence spanning the
whole model by using algorithms is rarely integrated in this workflow. The high
expectations by clients, the complexity of given sites and conditions, and the
pressure to optimize the design workflow has resulted in new data management and
data manipulation tools. These are graphical programming tools. They use the
intelligence and flexibility of textual programming languages and embed its
functionalities into graphical nodes which can be visually connected to each other.
Thus non-programmers are not confronted with abstract syntaxes and receive instant
visual feedback of their actions.
Graphical programming is used since the early days of programming to simplify the
understanding by using a visual representation of logical connections and its results.
It is also known as visual programming, but this term has equivocal meanings and to
prevent misunderstandings former term is used.
Several graphical programming tools for design have emerged over the last years and
nearly every BIM enabled design tool has today its counterpart for graphical
programming. In this research project the focus is on the graphical programming tool
Dynamo.
Dynamo has been originally developed as a data manipulation tool for Autodesk
Revit. But the open-source strategy and the demand by users has led to many
additional software connections.
1. Introduction 2
The literature about Dynamo is very limited. There are only papers that cover
Dynamo rudimentarily and internet resource like blogs from the Dynamo
community. So it will be a valuable resource for companies and BIM Users.
Companies are always looking for possibilities to simplify, optimize and improve
their processes. They want to reduce especially labour-intensive tasks. The results of
the research shall reveal the potential of Dynamo to help companies and employees
improving their BIM workflows.
Innovators do already understand Dynamo and use it in practice. The study shall give
the early adopters and the early majority in the Architectural, Engineering and
Construction (AEC) industry an overview about the possibilities and areas of
applications. With the results of the research they can assess, if there are areas that
suit to their BIM workflow and how they can improve their BIM workflow to be
more efficient.
This research intends to study applications and possibilities of Dynamo and how to
improve with Dynamo specific BIM workflows.
Research questions
To ensure that the aim is met, the following questions are to be investigated:
What are the key factors for successful graphical programming software?
Who and how much percent of a design team should be able to use graphical
programming (Dynamo)?
To ensure that the aim is met, the following objectives need to be investigated:
Gather information how companies already use the software to improve their
BIM workflow
The scope of this research is to investigate how the design phase of BIM project can
be affected by the usage of the graphical programming tool Dynamo. The research
investigates the current application opportunities of Dynamo and how and why it can
be integrated into a BIM workflow. The research is broken into four stages:
A literature study about graphical programming, a review study of graphical
programming with Dynamo, a survey about Dynamo and its results, and a discussion
of the findings in relation to the literature.
In the first and second stage a literature study is conducted to get an understanding
about graphical programming, the software Dynamo and its possibilities. This
includes software tutorials and reading of blog posts as well, because an initial
research has indicated that there are only very few scientific papers about Dynamo
available.
In the last stage the primary data from questionnaire and the secondary data from the
literature study are discussed to identify typical scenarios and patterns in which
Dynamo is applied. In the conclusion all findings are assembled and the propositions
or hypotheses produced can serve as a basis for further research.
1. Introduction 6
There are two major philosophical schools of thought – positivism and post-
positivism (interpretivism). This research uses interpretivism to compare the effects
of cause of interest relative to other conditions (with Dynamo and without Dynamo).
It is an inductive research because it begins with specific observations and measures
to detect patterns and regularities, formulate some tentative hypotheses that can be
explored, and finally end up developing some general conclusions or theories
(Trochim, 2006a). “Inductive reasoning […] is more open-ended and exploratory,
especially at the beginning” (Trochim, 2006a).
“Epistemology is the philosophy of knowledge or of how we come to know”
(Trochim, 2006b). A positivist view needs a truth (internal validity) to understand the
world, but to measure thoughts of how and why (Trochim, 2006b), a post-positivism
approach is used in this research. Critical realism recognises “that all observation is
fallible and has error and that all theory is revisable” (Trochim, 2006b). Because
everyone constructs a view of ‘the world’ based on their perceptions (different
background / discipline) a constructivist view is used. Objectivity cannot be achieved
because every individual observation is biased. To approach objectivity different
perspectives are researched (Trochim, 2006b).
The research in construction and especially in BIM is relatively ‘nascent’ in maturity.
Edmondson and McManus (2007, p. 1160) propose in a table for a nascent state of
prior theory and research open-ended inquiry about a phenomenon of interest. Thus
this research uses quantitative and qualitative data in the questionnaire. The goal of
the data analysis is to identify a pattern and to provide a suggestive theory as an
invitation for further work on the issue (Edmondson and McManus, 2007, p. 1160).
Fellows and Liu (2015) distinct pure research and applied research. They argue “pure
research is undertaken to develop scientific knowledge, to contribute to the body of
theory which exists – to aid the search for the ‘truth’”(Fellows and Liu, 2015, p. 8).
Further they argue applied research seeks to address issues of applications to help
solve a practical problem.
Thus the proposed overall methodology is not strictly an action research approach,
because investigated “open ended problem” (Fellows and Liu, 2015, p. 8) scenarios
are based on results of the questionnaires.
In this case of action research the interest of knowledge generation is practical
interest.
1. Introduction 7
1.7 Limitations
The author has no control about the honesty and accuracy of the participants’
responses.
1. Introduction 8
It is likely that only participants from very innovative companies answer the
questionnaire, because BIM is still a very new method and applied BIM
combined visual programming is very rare.
The reader should be familiar with the general background of BIM and Revit.
The focus researcher is not programming new scripts or nodes. Instead the
available nodes are used to show possible solutions. Due to the large number
of nodes, most of the nodes cannot be covered in detail.
The dissertation is structured into seven main chapters and the appendix:
In in the first chapter the work is introduced with reasons, aim, research questions,
scope and suitable methods of the research. The second and third chapter are based
on literature, practical experience with graphical programming and opinions by
experts. The second chapter evaluates the fundamentals of graphical programming
and looks back into the history of graphical programming to the integration of
graphical programming into BIM. The third chapter has the focus on the graphical
programming tool Dynamo. It is discussed how it works, what is possible with
Dynamo, technological challenges and a future outlook. The fourth chapter justifies
the research method and explains the survey setup. In the fifth chapter important
survey results are presented and discussed. The data analysis and the discussion are
based on many graphs and tables. Chapter six compares the research findings to the
existing literature and in chapter seven the research conclusion is presented.
2. Fundamentals of graphical programming 9
In this chapter available literature is analysed and relevant topics are discussed: the
current BIM design data authoring process, its limitations, and ways to overcome
them (chapter 2.1); how multi-criteria design optimisation (chapter 2.2) can be
automated with algorithms (chapter 2.3). Subsequently the discussion continues with
the technical solution by using programming and advanced scripting (chapter 2.4)
and how the usage of programming can be simplified by graphical programming
(chapter 2.6). As a practical example of graphical programming in the context of
BIM, the software Dynamo is introduced and evaluated in chapter 3.
Coenders (2010, p. 1113) argues that current state of practice is far from the ‘BIM
vision’, because “current software applications are too simplistic” and “only support
limited complexity in objects and geometry”. The “lack of use and availability of
suitable computational approaches in the design process” (Coenders, 2010, p. 1113)
and the lack of interoperability between software leads to information loss. As
intelligent, parametric objects “are saved as generic 3D geometry to be processed by
Computer Aided Manufacturing (CAM)”, all intelligence is lost and “changes to the
parametric design cannot directly propagate to the CAM environment” (Braumann
and Brell-Cokcan, 2014, p. 101)
The foundations to be able to use computational approaches are available, but are not
used properly. Prototyping comes often with manual “problem-solving through trial
and error” (Braumann and Brell-Cokcan, 2014, p. 101) and experience instead of
using intelligent algorithms based on data and facts. The typical properties of digital
models are defined in the literature as data-rich, object-oriented, intelligent,
parametric, digital, shared knowledge resource, whole life-cycle. In addition the user
has the ability to “insert, extract, update, or modify information” (‘National Building
Information Modeling Standard’, 2010, p. 21). “Today, a significant part of the
technical feedback in the construction industry is generated by software” (Braumann
2. Fundamentals of graphical programming 10
There are no suitable tools to access and handle the data in an intelligent way. No
one can assure the veracity of the vast amount of collected data. The challenge is to
connect data with design standards, the real world conditions, and beyond. The
current BIM tools focus mainly on data storage and have difficulties to deal with
design changes in a mature level of design (Coenders, 2010, p. 1122).
Add-ons and specialized analysis software “often reflect the assumptions of the […]
creator and may be restricted by these assumptions, while at the same time such
generality may not be matched to the specific design problem being tackled” (Aish et
al., 2012, p. 3). But “rather than fully automating the design process, approaches are
required that allow quick and intuitive changes of key parameters” (Braumann and
Brell-Cokcan, 2014, p. 101)
Lopez has investigated several textual and visual programming languages for
generative design. His conclusion leads to “a great need for a modern programming
environment for” generative design, because the “most used tools” available in 2012
were “unsuitable choices” (Lopes, 2012, p. 69). Lopez suggested four necessary
properties of a programming language:
be pedagogic
portability
parametric elements
functional operations
algebra of sets
algebraic equivalences
traceability
immediate feedback
Until today this can be achieved not sufficiently with advanced scripting or textual
programming techniques (chapter 2.4). And particularly the average software user
has no skills in textual programming to create such an iterative process. Thus these
scripting techniques are “(a) only applicable for use on well-defined problems in
complex large scale projects (b) are not sufficiently general reusable (c) require
considerable insight on the part of the users and (d) are therefore not practical for the
use by non-experts” (Aish et al., 2012, p. 3). The focus of a designer moves in the
future from modelling, analysing and evaluating to a “strategic role of ‘controlling’”
(Aish et al., 2012, p. 5) functions, rules and variables (Figure 2.1).
A simulation and analysis of one single case is not enough, instead “statistical
methods, adaptive modelling, machine learning and pattern recognition algorithms
for identifying persistent structures in models (Hanna et al., 2010, p. 1). Instead a
generative way of design with many differing simulations is needed “for re-
evaluation of constraints and a ‘geometry building’ process” (Fischer et al., 2012, p.
541).
2. Fundamentals of graphical programming 13
Google has shown recently interest in the building industry (Deutsch, 2014, no page),
as they get their strength from the collected data. The well-known strategy of google
is to use data to make profit. Flux, a software manufacturer financed among others
by Google, has plans to automate the design process and “shorten the time from the
start of planning to market by 30-60%” (Deutsch, 2014, no page). And the designers
should be interested to use the available data to design better as well.
Human abilities are limited in comparing a vast amount of possible options with
overlooking many criteria and parameters. Human decisions are based on experience.
This can be observed at traditional buildings and typical houses for specific areas,
which have all similar appearance, functionality and materials. Especially modern
buildings with many special requirements are difficult to optimize without advanced
decision techniques. Manual algorithm techniques are limited, and thus
computational techniques with software using algorithms are essential to include all
criteria.
2.3 Algorithms
Both, Computational design and generative design are based on algorithms. And
there are various definitions of the term ‘algorithm’ and some of them suitable to the
topic under discussion are listed below:
2. Fundamentals of graphical programming 14
Algorithms have the ability to solve computational problems like sorting and
searching, data structure operations, combinatorial problems, numerical problems,
2. Fundamentals of graphical programming 15
and computational geometry. But the quality of the final result depends on the
designer’s coding, interpretation and manipulation skills. Even with powerful
computers of today, a poor defined algorithm will produce poor or erroneous results.
A well-defined algorithm, with the support of multicore computers, will solve the
problem faster, more efficiently and produce the correct answer (Cormen, 2009, pp.
10–11).
influenced by his brother, Ivan Sutherland, who wrote the ‘Sketchpad’ in 1963. The
Sketchpad has influenced the human-computer interaction (Sutherland, 1964) and
Smiths computer program Pygmalion (Smith, 1977) which coined the term ‘icon’,
making it clearer that graphical images could portray a programming language
(Blackwell and Rodden, 2003). “For example, in the late ‘70s, logic design systems
were made available in a [Latent Semantic Indexing ] (LSI) CAD environment”, but
this kind of system “is highly application-specific and its generality is limited” and
the “development of general-purpose visual programming languages/systems has
been carried out since the middle ‘80s” (Hirakawa and Ichikawa, 1992, p. 538).
The first attempts were targeting to completely avoid text, because “the one-
dimensional, textual, and static representation” was seen as main reason for
frustration and difficulties (Glinert and Tanimoto, 1984, p. 7; Schiffer, 1996, p. 7).
Schiffer claims such attempts as impractical, because graphical components need to
have a meaningful label and notes to explain important program parts (Schiffer,
1996, p. 7). Shu (1988, p. 9) defined visual programming as “the use of meaningful
graphic representations in the process of programming”. Hirakawa and Ichikawa
(1992, p. 538) have a similar point of view by defining visual programming as “the
activity of making programs through spatial manipulation of visual elements, that is,
a language which is inself visual”. According to Menzies (1998, p. 2) a visual
programming system “is a computer system whose execution can be specified
without scripting”, and according to Menzies a pure Visual Programming (VP)
system must “satisfy two criteria”: “The system must execute” […] and the
“specifications of the program must be modifiable within the system’s visual
environment […]”, otherwise the system is called “visually supported” (Menzies,
1998, p. 2). In contrast, today there too many functions necessary to cover all needs.
Some types of elements can be graphically distinguished by colour or form but the
use of unique textual identifiers is inevitable.
Myers (1990, p. 1) notes that “the success of spreadsheets can be partially attributed
to the ability of users to write programs”. The created dependencies between the cells
using formulas can be interpreted as parametric behaviour. A visualization of these
dependencies reveals the similarities to modern graphical programming interfaces
(Figure 2.2).
2. Fundamentals of graphical programming 17
Due to a steep decline in computing costs and an increase in wages (Shu, 1988, p. 5)
it is valuable to have office staff with expert domain knowledge and additionally
with skills to create algorithms. Thus it is possible to minimize manual tasks and
automate workflows without “depending on programmers as middlemen to develop
their applications” (Shu, 1988, p. 6). With graphical programming the pool of
programmers can be extended to such individuals who have expert domain
knowledge but limited software engineering knowledge (Murray and McDaid, 1993;
Hayden, 1995).
The increase in popularity of graphical programming in many different software
types like music, video, media, and geometry editors laid the groundwork for modern
graphical programming environments. A online compilation of software using visual
programming is presented by Eric Hosick (Hosick, 2014) and some types are
presented below (not a definitive list):
Geometry editors like Grasshopper can be seen as the precursor in manipulating two-
dimensional (2D) and three-dimensional (3D) geometry in the AEC industry. Until a
few years ago, the focus was on algorithmic and generative approaches to describe a
shape and its manipulation by rules and constraints (Leitão and Santos, 2011, p. 549).
The development of Computers, BIM tools and BIM processes, using data rich
digital models with embedded realistic properties as parameters, required an
approach to use the embedded data. The attempt to give the average designer a
textual scripting interface (Chapter 2.4) to use the embedded data in an automated
way was not adopted by the majority than initially anticipated. Thus BIM authoring
tools try to connect today to various graphical programming tools (Grasshopper,
Dynamo, Marionette etc.).
1995), but presented in a more convenient and less abstract form for non-
programmers.
The graphical code snippets are in themselves normally without syntax errors and are
visually presented as graphical nodes. The nodes can have inlets, outlets, input fields,
sliders, buttons etc. Memorable graphical interfaces like buttons, sliders, switches
and visual display units are recognized by the users from the real world. The optical
impact, intuitive handling, low risk of errors, the direct feedback and the ability of an
easy manipulation increase to motivation of the user (Schiffer, 1996, p. 17). “At any
time and degree of completion […], the user is able to understand inspect every
single processing step” (Preidel and Borrmann, 2015, p. 4).
The usage of the visual components with embedded and pretested code prevents
typical misspelling of traditional programming code writing. The textual code used at
traditional programming is hence mainly hidden behind the graphical components
(Figure 2.3). With this flexible approach it is not necessary anymore to memorize “a
[abstract] syntax or an API” (Babic, 2012, no page) to create algorithms. Thus the
main sources of errors in graphical algorithms are logical mistakes (Vollenweider,
2013, no page). And if “errors are identified in the processing chain, the system can
be adjusted very quickly and simply according to the user’s requirements” (Preidel
and Borrmann, 2015, p. 4). A characteristic feature of graphical programming is the
combination of nodes (graphical program modules) to create new functionalities
suitable to the desired task.
A node itself has limited functionality to be able to act for different purposes, but it
has enough flexibility to avoid unnecessary node combinations. All nodes can be
individually adjusted. The semi-abstract appearance of nodes and the graphical aids
like buttons, sliders, mathematical expressions, icons, and state of the node by
colour, help to understand the logic of an algorithm. Labels with class and function
2. Fundamentals of graphical programming 20
or pictogram can help to interpret the nodes (Ritter, Preidel and Singer, 2015, p. 3).
Pictograms use less space and support the interpretation of the logic. But the great
amount of pictograms and the little difference between the functionality cannot be
interpreted intuitively (Ritter, Preidel and Singer, 2015, p. 3).
For advanced users it is still possible to extend the graphical nodes with scripting
languages by using special ‘code-block nodes’ with an embedded text editor
interface. Zhang et al. (2001) have already 1999 registered a patent for such a
functionality. The ability to change between scripting and visual programming
language, mapping one into another, helps to develop “the capacity for understanding
abstract concepts, which is extremely important in architectural design education”
(Celani and Vaz, 2012, p. 136). Babic calls this an “hybrid approach” (Babic, 2012).
The code block node can be used as a replacement for nodes, just to be faster, or to
solve special tasks in which existing nodes are not sufficient or non-existent. Celani
and Vaz point out that “even when a code window is used, it is constrained to a
specific point, so bugs can be easily located” (Celani and Vaz, 2012, p. 128). Schiffer
notes (1996, p. 8), that not everything is visually representable or efficient; for
example mathematically formulas are more precise and manageable in a textual
form.
Once a textual code block is created, it can be converted to a graphical node with the
same functionality (not every graphical programming environment supports this
function). The reusability of created code blocks leads to a higher efficiency and less
syntax errors. There are two different access types of nodes: white-box nodes and
black-box nodes (Figure 2.4). The textual code and the logic in white-box nodes is
accessible and modifiable, whereas the textual code in black-box nodes is compiled
and therefor hidden, nevertheless the node is still fully functional. According to
Green and Petre (1996, p. 136) “novices need ‘progressive evaluation’, an
environment where it is easy to check a program fragment before adding to it”, thus
black-box nodes are contra productive for understanding the logic. Preidel and
Bormann (2015) identified the lack of transparency by using black-box nodes,
because the correctness of the created routines are not verifiable. In contrast to these
opinions and the missing transparency of black-box nodes can be an advantage for
companies, as they are able to hide and protect the intelligence of their created
algorithms against competitors.
2. Fundamentals of graphical programming 21
Figure 2.4: “Schematic representation of a black-box and a white-box” node (Preidel and Borrmann,
2015)
In the last decade it was common to install plug-ins to extend the functionality of the
core application. Plug-ins are using the Application Programming Interface (API)
from the core application, but they are usually not able to interact between each other
(Figure 2.5a). In contrast to the isolated and more or less inflexible extensions, a
graphical programming environment is hosting the functionality of add-ins within the
nodes (Figure 2.5b). The nodes can “communicate with one another” (Davis and
Peters, 2013, p. 127) and an accessible programming interface allows additional
connection to further core applications with an API (Figure 2.5c). API commands
can be used to create bi-directional connections. For example data is extracted from a
BIM authoring tool and with the help of suitable nodes a bi-directional link to
Microsoft Excel is established. After the manipulation of the data in Excel and with
help of the nodes, the data can be transferred back into the BIM authoring tool.
Therefore recreation or loss of information is prevented and automated iterative
algorithms can be used to optimize solutions.
Figure 2.5: (a) Plug-Ins structure (left), (b) the integrated structure of graphical programming (mid)
(Davis and Peters, 2013, p. 127) and (c) the bi-directional connection to more than one
application (right)
2. Fundamentals of graphical programming 22
Advantages:
Using graphical “programming tools, architects and designers are now able to
create their own virtual simulation environments, where they can change key
parameters with the push of a slider and observe the results on their designs
in real time” (Braumann and Brell-Cokcan, 2014, p. 101)
“it is not necessary to compile code, but changes to the parametric definition
are reflected instantly in the viewport, allowing the designer to deduct an
immediate relationship between cause and effect” (Braumann and Brell-
Cokcan, 2014, p. 101).
“there are fewer syntactic planning goals to be met, such as paired delimiters,
discontinuous constructs, separators, or initializations of variables; higher-
level operators reduce the need for awkward combinations of primitives; and
the order of activity is freer, so that programmers can proceed as seems best
in putting the pieces of a program together” (Green and Petre, 1996, p. 166)
Disadvantages:
need to evaluate how this speculation applies for example to existing software plug-
ins with the arising of graphical programming in the BIM environment.
‘BIM 1.0’ tools are characterized by parametric objects, which “have their own [but
limited] intelligent behaviour and are configured by setting the property values of all
exposed parameters” (Boeykens, 2012). The designer creates, places and modifies
more or less manually objects and applies numeric information to it. “What is mostly
missing is overall control on the project level, e.g. where a single parameter can steer
the generation of many derived objects” (Boeykens, 2012). As by-products of ‘BIM
1.0’ “cost estimating, structural calculations, and energy analysis” were generated
(Kensek and Noble, 2014, p. 82). They were “early indicators of the potential for
analysis and simulation that more developed implementations of BIM-based process
might make possible “ (Kensek and Noble, 2014, p. 82). “Traditionally
interoperability [between applications] is thought about as transfer of static design
information. New visual programming tools will create possibilities for a more
associative kind of collaboration across modelling platforms” (Fralick, no date). The
process of designing by using text based programming or graphical programming is
also known as computational design. “Computation is the procedure of calculating,
i.e. determining something by mathematical or logical methods […]. It is about
rationalization, reasoning, logic, algorithm, deduction, induction, extrapolation,
exploration, and estimation” (Terzidis, 2006b, XI).
“With the huge amounts of data that are currently being generated inside […]
models, access to read and write this data remains difficult to those without
traditional programming skills” (Thornton Tomasetti, no date). In the context of
BIM, a visual programming script uses the information of a model, its objects and
other external sources to generate with computational algorithms new information.
Bernstein and Jezyk describe computational scripts as one part of “three related
evolutionary characteristics” of “BIM 2.0” (Kensek and Noble, 2014, p. 83). The
scripts can use the data to “generate new design solutions” and “analysis, evaluate
and optimize selected design decisions related to both the form and performance of a
building”(Kensek and Noble, 2014, p. 85).
2. Fundamentals of graphical programming 25
Compared to BIM 1.0 “implicit design objectives are made explicit by the objective
function of declaring a design goal that is represented by a script” (Kensek and
Noble, 2014, p. 89). The design feedback loop “between ideation and understanding”
makes iteration much more rapid and insightful (Kensek and Noble, 2014, p. 89).
Similar to the transition from 2D CAD to BIM, working with visual programming
and data “will require new attitudes, workflows, and expertise in a tradition that has
struggles with change” (Deutsch, 2015, p. 108). To take the use of “current
technology tools to the next level” “it is not enough anymore to learn existing tools”
(Deutsch, 2015, pp. 108, 111). Instead “design and construction professionals need to
feel comfortable either shaping existing tools to fit their needs, or otherwise creating
their own tools” (Deutsch, 2015, p. 111).
The complete new visual programming software called Dynamo, invented privately
by Ian Keough as an open source project. Autodesk recognized growth of the
Dynamo community and the sophisticated complicated needs of large projects (Jezyk
and Izzi, no date) and decided to contribute to the effort with a professional team to
accelerate the development process. “The people are using currently multiple tools,
[…] which is the state of the industry. But one thing that is really hard to do, to pull
all that information together. And the needs about pulling information back and forth
are not really met by one tool” (Jezyk and Izzi, no date). Autodesk’s competitor
2. Fundamentals of graphical programming 26
Graphisoft has recently announced a partnership with McNeels Rhino to have for
ArchiCAD similar computational design functions available (Graphisoft, 2015).
According to Shu (1988, p. 139), modern graphical programming languages like
Dynamo or Grasshopper, can be classified as high-level languages, because the
language “requires fewer but larger steps with less detail from the user” and they are
widely applicable as they can “manage multitasking operations”.
Some graphical programming interfaces can be used in AEC (not a definitive list):
Generative Components
Hypergraph (Maya)
2.8 Summary
In the second chapter various relevant literatures have been discussed and evaluated.
The findings present BIM as a good foundation for computational design. However,
today there are too many manual steps and decisions in the workflows. An intelligent
and automated approach is rarely applied, as extensive programming skills are
necessary. Without spending a lot of extra work, the existing analyse tools can
influence each other only through a limited and restricted data exchange procedure,
which is mostly one-directional. As a consequence the results of the analyses are
based in parts on assumptions and rough standard values and not on real and exact
data.
The iterative cycles are executed manually, which, due to the complexity of the
projects, leads to weak results. Nevertheless, to give average designers and engineers
the possibility to use algorithms and iterative workflows, graphical programming
turned out as a helpful tool. To understand the principals of graphical programming,
3. Graphical programming with Dynamo 27
At the end of chapter 2, the term ‘BIM 2.0’ is explained and why graphical
programming is a suitable tool to extend the intelligent behaviour of ‘BIM 1.0’. To
achieve this goal hurdles, limitations, and necessitates are discussed. Up to this point
the basics of graphical programming are covered. In the following chapter the
promising graphical programming language and tool ‘Dynamo’ is discussed,
explained, and evaluated in more detail.
Dynamo is a free, easily available, open source program that uses graphical
programming (Sgambelluri, 2015f) and “its look and feel is influenced by a number
visual programming interface that have come before” (Kensek, 2014, p. 3). “At its
core, Dynamo is built to be deployed to any application, and to create new
opportunities for cross-platform and cross-discipline collaboration” (Fralick, no
date). Dynamo is a standalone program, but the free version uses the geometry kernel
from Revit to illustrate geometry. Dynamo is based on DesignScript, which “is
extensible and using the Foreign Function Interface (FFI)” (Aish et al., 2012, p. 11).
Thus “classes in external [Dynamic Link Libraries] (DLL) can be exposed as
DesignScript Classes” (Aish et al., 2012, p. 11). “As a parametric modelling engine,
[…] it is designed to extend Revit’s […] capabilities by adding a level of
associativity” (Kensek, 2014, p. 3). Primarily Dynamo accomplish two tasks: it
“creates its own geometry with parametric relationships” and it “reads and writes to
and from external databases” (Sgambelluri, 2015f). Thus “it is a perfect fit to interact
3. Graphical programming with Dynamo 28
with Revit because” simply put Revit is “a database with parametric geometry”
(Sgambelluri, 2015f). In this case, “Dynamo reads and writes back data to and from
the Revit database via the Revit API” (Sgambelluri, 2015f) (Figure 3.1).
“The data could be just about anything, parameter values, family geometry, family
placement” (Sgambelluri, 2015f). The elements created with Dynamo are editable in
Revit and the parameters can still be adjusted manually (Akos, 2014). The links to
the created objects are maintained (Fralick, no date) and the Dynamo file can be re-
run and update those exact same elements (Akos, 2014). A typical problem solving
workflow with Dynamo is illustrated in Figure 3.2.
The developer team of Dynamo follows some principals (Keough, 2015) to create
maximum value for the users. Most of the principals are realized already and are still
further optimized:
1. The user should be able to share their tools easily and be able to use, extend
or update tools created by others
3. Every user who contributes to a building should be able to get the concept
and basic functions of Dynamo
Within a Revit family it was always possible to create formula with some limitations.
But with the availability of visual programming in BIM, parameters of different
objects can be set in a relation to each other and extended with complex algorithms.
With Dynamo it is possible to automate time and labour intensive tasks. “A designers
speed of production should increase with Dynamo in their workflow and they should
be able to explore more options and more options integrated with performance
criteria such as solar load, view corridors, or visual patterning” (Akos, 2014, no
page). The increasing data amount in digital building models can be used more
effectively. The result is an increased accuracy and a better productivity. Thus the
decisions can be based now on measureable results the risks are reduced. The visual
programming interface makes it easier for designers to enter the world of
programming. Earlier attempts to push the non-programmers to use the API of Revit
with text based programming interfaces were not very successful. Analysis can now
be integrated into the design process instead of outsourcing to consultants. The
cumbersome and time-consuming adjustment cycle of transferring information back
3. Graphical programming with Dynamo 30
and forth and the analysis and implementation of the delivered report results is
dropped.
Dynamo can be applied in various ways; for instance, it can be used with a close
connection to Autodesk software, for example, ‘Revit’ but it can be used to connect
software and hardware, which provides an API as well. “Dynamo is, quite literally,
what you make it” (Mode Lab, 2015a). The open-source concept of Dynamo enables
users to create custom nodes and to create new functionalities, which can be shared
with the Dynamo community. Due to the free available source code, it can be
implemented into other applications and can be customized for special needs or
projects. This is especially important for the heterogeneous AEC industry, where a
large variety of applications are used. But it is also possible and has been already
done, to adapt Dynamo to other industry software, like Inventor or Illustrator, among
others (chapter 3.3.3).
3. Graphical programming with Dynamo 31
The user interface of Dynamo is very simple (Figure 3.3). A typical menu bar at the
top, on the left side the search bar and the node library. The main window is called
workspace or canvas. Here are the nodes and wires placed to create a visual program.
At the bottom the script can be executed. This can be done manually or
automatically. The direction of the execution is typically from left to right. Inactive
nodes are grey, active and well-connected nodes are orange and error states are
indicated with a red node. After a successful execution a preview is displayed in the
background.
The nodes are objects, which can be placed in the workspace (Figure 3.4). They
represent Revit elements or math functions or anything else what can be created and
accessed with texted based programming code and an API. Nodes have input ports
(on the left side) and/or output ports (on the right side) with different types. Each
port type expects a certain type of data. The ports can be connected together with
wires to create relationships and to establish a program flow. There are lots of
different types of nodes, but this cannot be covered in this context.
Groups exist to organize nodes into a logical collection of nodes (Figure 3.5). They
can be converted into custom nodes. In traditional text based programming this is
known as modularisation.
3. Graphical programming with Dynamo 33
Most graphs can be built with the available core nodes; but it is sometimes quicker,
and more elegant to use a shared solution, known as Custom Nodes. Custom Nodes
can be shared with the community within the package manager (Figure 3.6) or it can
be stored and shared locally. A package needs to be downloaded and installed before
it can be used.
Due to the flexible structure of Dynamo, the field of application is very large.
Optimisation and analysis, management of data and the connection or use of other
applications and hardware are the main usage categories of Dynamo. In addition,
Dynamo has a rapid development cycle with regular new functionalities in the daily
builds.
This is achieved by integrating analysis nodes into the iterative design process.
3. Graphical programming with Dynamo 35
Readout, sort, process und write data information from and into the digital
model and to other applications (Sgambelluri, 2015d) (Sgambelluri, 2015b) E.g.
Coordinates from piles or other objects
Colourizing: Analyse visually geometry (Figure 3.8) and embedded data (Figure
3.9) (CORE studio, no date). “Information displayed with the design mode itself,
[…] guides the designer in choosing an optimal solution” (Kensek and Noble,
2014, p. 87).
The literature research and personal observations leads to a not definitive list of
advantages and areas for improvements of visual programming with Dynamo.
Advantages:
All necessary core nodes and the interface are already available and can be
extended with little effort.
abstract and has to be compiled with an IDE, but it has been used a lot by
Revit and Dynamo software developers.
“users of different skill levels can use the tool to be productive at their own
paces” (Kirschner, 2015, p. 42)
The geometric library is only available with a Revit license or with the
commercial version ‘Autodesk Dynamo Studio’
All nodes have a very similar visual appearance: Thus the user and its human
brain have difficulties to create “mental images” (Anderson, 2010, p. 92) of
the different node types. The logic of a large collection of different nodes
with the same visual appearance cannot be analysed quickly. At the moment
the only way to create a mental image of the overall logic is the textual
information embedded in the nodes or to create colourized groups. The fast
identification of node types can be achieved by using the ability of pattern
recognition (Anderson, 2010, p. 42). To enable the full potential of visual
programming the human brain needs support in form of colour, sizes, shapes
and spatial structure (Anderson, 2010, p. 105) of nodes.
3. Graphical programming with Dynamo 40
For larger applications the canvas can become messy very fast. Similar to
textual programming code, it is important to follow placement rules, to use
regularly comments about the intended functions and to structure logical parts
together.
“Programs must currently execute inside of Dynamo and cannot at this time,
be compiled to external applications” (Kirschner, 2015, p. 41).
“The granularity is quite low, as the functional nature of the program means
that nodes aggregate their outputs from multiple evaluations into a list of
results. Thus selecting a node will highlight everything, and inspecting in
more detail is difficult and requires writing more code so the user can then
select those sub nodes, which will have less output values” (Kirschner, 2015,
p. 41)
The fast growing Dynamo community and the increasing effort by Autodesk to push
the development lets expect a bright future. In addition the increasing adoption rate
of BIM will increase further the need for a tool that serves as a bridge between
applications. Boyer (no date) has started the effort to port Dynamo to Linux. This is
the first step to run Dynamo in the cloud, similar to the software Flux, which “will
free designers from the computation constraints of a desktop computer, making it
possible to perform simultaneous development of the design in parallel with the
3. Graphical programming with Dynamo 41
A not yet implemented, but patented idea, is to compile “the enhanced computational
logic [created with Dynamo] into the family definition such that the enhanced
computational logic is embed at an object level” to “automatically executing”
without further use of the Dynamo interface (Jezyk et al., 2015). This is also known
as ‘Project Honeycomb’ introduced by Autodesk.
Other hot topics under development are graphical improvements (e.g. nodes, wires,
user interface), informational improvements (e.g. tooltips, documentation, action
impacts), and functional improvements (i.e. nodes) to identify source of errors, state
of the node, suggestions for inputs/outputs, and a more robust and more intelligent
behaviour to unexpected user inputs.
The increasing availability of visual programming tools for BIM tools, requires name
standards for core functionalities which are present in every visual programming
environment. Furthermore, a node dictionary based on a database would be helpful
for users switching between different visual programming tools. This dictionary can
be embedded in the library search to find nodes with same functionality but a
different name.
Boshernitsan and Downes (2004, p. 23) speculated in 1997 that there would be
increasing attention in 3D visual programming languages. But even with the already
improved computer performance and other anticipated advantages. Some examples
3. Graphical programming with Dynamo 42
for 3D graphical programming environments are ‘Pupi’ (Prună, 2015) and ‘XYZ’
(Kirschner, 2015).
3.7 Summary
The third chapter has introduced the graphical programming tool ‘Dynamo’ in detail.
The available academic literature was analysed and therefor evaluated together with
personal knowledge and internet resources. Several areas of application are
introduced and technical details are presented. The research about Dynamo made the
flexibility of Dynamo transparent: Various textual programming languages can be
used to extend Dynamo. The relationship in Dynamo between geometry,
parametrical behaviour, database connectivity, and typical workflow are explained
and illustrated. The motives by the developers and their principles they follow to
create value for the users are evaluated. The development strategy has made bi-
directional connections to various other programs possible. Especially the connection
to Autodesk Revit is discussed in greater detail and the management, optimisation,
and checking process of a Revit model are discussed. In addition to the long list of
advantages, upcoming technological challenges and areas of improvements have
been identified. Discussions on conferences with experts and the deep dive into the
world of graphical programming literature led to a prediction for technological future
scenarios of Dynamo.
The presented topics are based on a technical nature and present mostly facts and
combinations of findings by single persons. Some of the stated research questions are
discussed already. So far this is a very good foundation to continue the research with
a survey to answer unresolved questions which are covered so far only by
assumptions and speculative opinions.
Visual programming and technical questions about Dynamo are covered so far, but
how does graphical programming (in this case Dynamo) affect the method of
operation of users with BIM? There are many questions which are so far not
answered:
Who is using Dynamo already and what are the reasons to use it?
Which skills and abilities are necessary or helpful to use Dynamo properly?
3. Graphical programming with Dynamo 43
How many employees should know how to use Dynamo or know how to
extend its capabilities?
What are the advantages of in-house development and how can someone
achieve competitive advantage by doing this?
Are the users willing to pay for the added value by Dynamo or special custom
nodes?
The open source concept of Dynamo: How are the attitudes and mind-sets?
Who supports the open source concept? What need to be changed?
4 RESEARCH METHOD
The literature review is the foundation for the researcher to reveal research gaps of
graphical programming (Dynamo) in the context of BIM and to create appropriate
survey and interview questions. The reader will get also a foundation to be able to
understand the aim and the research questions.
Single opinions to technical questions about Dynamo are already available by early
adopters and experienced Dynamo users via conference discussions, interviews,
literature, websites, blogs etc. These available sources and the authors’ knowledge
about the software were used in the second and third chapter for the literature review
to get a basic understanding about the theoretical background of visual programming
and software understanding. Thus the further research should focus primarily on all
types of Dynamo users to create a wide spread collection of opinions within a
structured format. To get as many completed questionnaires as possible it is essential
to keep the necessary answer time for the survey low. To achieve this goal, all open
ended questions were not mandatory. The combination of quantitative and qualitative
survey questions were chosen to be able to compare subsamples and on the other
hand to get unexpected answers. The identification of subsamples with similar
opinions or correlations between subsamples is an important part of the analysis.
Depending on the success of the survey analysis, optional interviews were taken into
account, to answer unresolved questions.
The initial data collection takes the form of a structured questionnaire. To collect the
data, the online survey tool ‘limesurvey’ is used with quantitative and qualitative
questions. The participants were chosen randomly in online forum, social networks
and on Dynamo websites without asking specific people. The first aim of the
questionnaire is to identify use cases of ‘how’ Dynamo is professionally used. The
second aim is to identify the distribution of participant types (disciplines) with
appropriate knowledge and experience with Dynamo and BIM. The third aim of the
4. Research method 45
questionnaire is to get the perceived advantages and barriers for the usage of
Dynamo.
However, to ensure the validity of the questionnaire an initial test with 1-2
participants and feedback discussion was conducted before the official start. To find
participants, the author has spread the survey on LinkedIn in a Dynamo group, on
GitHub, twitter and via the Dynamo community website. The amount of questions is
kept to a minimum to ensure as much completed questionnaires as possible. To be
able to contact the participants, the questionnaire is formally not anonymous because
the IP address is logged and browser cookies prevent repeated participation. But it
will initially clarified, that the findings and cases used in the dissertation are
anonymised.
One of the reasons to create a survey was to get an actual opinion of the graphical
programming and BIM community. Another reason was to close the research gaps
identified in the literature review. To goal was to create new insights with the
evaluation of the web-based survey, to reveal dependencies, and to generalize some
findings.
A sample web-based survey is appropriate for the research, because (Rea and Parker,
2014, p. 28):
In the pre-test the questionnaire was checked for clarity, comprehensiveness and
acceptability (Rea and Parker, 2014, p. 38). According to Flick the participants
should be “concerned and experienced with the issue under study” (Flick, 2007, p.
29) and this is achieved to ask for participation in Dynamo related communities,
forums, websites etc.
4. Research method 46
One claim of this study is to develop a grounded theory which applies to the specific
field of Building Information Modelling. Flick terms this as a “substantive theory”
(Flick, 2007, p. 42). The aim is to find an internal generalizability, which "refers to
the generalizability of a conclusion within the setting or group studied" (Maxwell,
2005, p. 115). The quality of the survey is mainly assured through standardization of
the research design, “to control as many influences […] as possible” (Flick, 2007, p.
42).
To analyse the collected data, all answers were imported into SPSS. Most of the
closed-ended questions were already pre-coded. Some from the open-ended
questions were categorized to create statistics, sub-samples and tests. All
uncompleted surveys were not included in the data analysis. To create correlations
between sub-samples additional variables were created. After cleaning up the forms
the pre-coding from the tool ‘limesurvey’ was optimized. Nearly all graphs and
tables were adjusted to a suitable format and then saved in the syntax editor, to run
the tests again with all samples after the survey has ended. Most of the created tables
were transferred to Excel. Thus it was possible to use colours to reveal patterns in the
data.
Question 23 got an error because of an incorrect array type. Thus this question was
removed from the survey. The survey data can be found on the CD. All questions and
simple statistics is listed in Appendix A. The statistical tests with SPSS was difficult,
because the sample of 70 and the even smaller sub-samples with many categories
with less than 5 answers were not statistical significant. Thus only a tendency or a
descriptive statistics or vague correlations among variables were possible.
CHAPTER 5
During the 20th November and the 3rd December 2015 a survey was conducted. The
main topic of the survey was about Dynamo - a graphical programming software. To
reach out to potential participants, the flyer and links to the survey were distributed
in LinkedIn Groups, on twitter and in online forums. The strategy not to push
specific persons to answer the survey and instead of asking in a more general public
way was quite successful: 145 participants have started to answer the survey, 73 of
them have completed the survey and 70 of the cases were valid. The 3 invalid cases
have not been accepted as the research participant have not followed instructions or
have answered questions are obviously not serious. Thus these 3 invalid cases are not
included in the analysis. Two control questions about Revit Skills and Dynamo Skills
were asked 2 times, at the first quarter and at the end of the survey. 17 of 70 valid
cases exposed a discrepancy of maximum one skill category. All control
discrepancies are negligible because the differences are small and have occurred
between the skill categories ‘intermediate’ to ‘guru’. Most of the participants with
discrepancies assessed their skills at the beginning lower than at the end of the
survey. The reason for this can be the visible comparison with other similar software,
which has maybe influenced their ratings.
5.1 Introduction
The descriptive statistics of all closed and some open questions are presented in
Appendix A.2. The detailed data analysis in the following chapters uses the
descriptive statistics to point out interesting findings and particularities of specific
samples. With cross tabulation analysis the results of participants with specific
characteristics are analysed. Due to the small number of cases, especially with even
smaller sub-samples, the statistical significance was never attained. Thus all
observed effects and conclusions should be seen as a reflection or a tendency of the
sample which cannot be transferred with a statistical significance to the whole
population.
5. Survey Results and Data Analysis 48
Most of the questions were presented in a categorical form with given answers to
choose from. If appropriate the given answers were sorted in a logical way. An
additional input field was given to cover unexpected answers. Most of the ‘other’
answers were re-coded in the analysis phase into existing categories. The last
question reveals that nearly all participants have used Dynamo before (A.2.24 -
Question 25). Thus the survey results represent to some extent the population of
Dynamo users. The most frequent office type comprises architecture (60%), followed
by BIM consulting (41.4%) and structural engineering (30%) (A.2.2 - Question 2).
The given distribution of office types has similarities with the adoption rate of BIM
in combination with the usage rate of Autodesk Revit by disciplines. All of the top 5
office types are working typically with digital models and this enables them to use
Dynamo in some way.
Most participants’ roles at work are directly related to BIM management and
coordination: 28.6% are BIM Managers, 20% BIM Technicians and 21.4% have
architecture related roles at work (A.2.3 - Question 3). The year of birth was recoded
into age groups with 5 year steps (A.2.5 - Question 5). The participant distribution
indicates a peak at the age 25-29 with a declining amount the older the participants
are. The reason for this can be attributed to the conducted participant search, which
was focused on social media networks, it can be an indicator of available time of the
participants groups or older people are not so much receptive to new technologies
like Dynamo and BIM. Nearly 92% of the participants have an advanced to guru skill
in Autodesk Revit (A.2.6 - Question 6). This can be expected, because Dynamo is
strongly associated with Revit and to apply Dynamo effectively the basic functions
of Revit have to be known well.
The answer distribution of the question about the level of the general textual
programming skills (Figure 5.1) of Dynamo users is interesting but not surprising. As
already mentioned in chapter 3, it is possible to use Dynamo solely as a graphical
programming tool or in combination with textual programming. But to reveal
characteristics of specific sub-samples of questions regarding the usage of ‘Revit
5. Survey Results and Data Analysis 49
The macro functionality for Revit was first introduced in ‘Revit 2009’and is designed
to save time by automating repetitive tasks (Autodesk, 2008, p. 1549). A macro can
use Revit API commands and can be executed in Revit without an additional
installation process. It was introduced by Autodesk as “the next evolution of Visual
Basic for Applications (VBA)” (Autodesk, 2008, p. 1549). The advantages of the
macro functionalities in Revit are covered by Dynamo as well: 98.6% of the survey
participants agree to the statement that Dynamo can automate repetitive tasks (A.2.10
- Question 10). To consider the research questions from chapter 1.3, e.g. how
effective a graphical programming tool like Dynamo is compared to other
automation methods, the usage of Revit macros is evaluated and compared with
Dynamo. Figure 5.2 reveals that only 31.4% of the Dynamo users have used the
Revit macro functionality successfully and 20% have tried to use or create a macro,
but they were not successful. A resulting question is: why are some of the Dynamo
5. Survey Results and Data Analysis 50
users able to use macros successfully and some not? Therefore a more detailed data
analysis was examined.
To show the dependencies between Revit skills and the usage of Revit Macros a
cross tabulation was created. Table 5.1 shows clearly that many advanced to guru
Revit users, have not used the Revit macro function before or they were not able to
do it successfully. A bit strange is that one guru Revit user does not know what a
Revit Macro is, but this can be attributed to the self-assessment of the skills.
Table 5.1: Cross tabulation of Revit skills and usage of Revit Macros
Have you used the Macro function in Autodesk
Revit before?
Not
I don't know
sucessfully, Total
what a
but I have
Yes No 'Autodesk
tried to
Revit Macro'
create/use a
is
Macro.
beginner 0 1 0 0 1
What level
is your intermediate 1 2 1 1 5
skill in advanced 2 10 4 2 18
Autodesk expert 10 14 2 1 27
Revit?
guru 9 2 7 1 19
Total 22 29 14 5 70
5. Survey Results and Data Analysis 51
Why is a large part of the guru Revit users not able to use macros successfully? Even
though an automation of repetitive tasks was always demanded by the Revit users to
save time in the design stage, why is the overall ability to use macros very low?
In the following procedure 22 cases that have used Revit macros successfully are
investigated, to see on which level their programming and Dynamo skills are (Figure
5.3).
Figure 5.3: Participants’ textual programming skills who have used Revit macros successfully
This distribution in Figure 5.3 is compared with the general textual programming
skills of all participants (Figure 5.4). The graph shows that the ratio between these
two groups increases continuously with better textual programming skills:
Figure 5.4: Comparison of textual programming skills between all participants (dashed bars) and
participants who have used Revit macros successfully (grey bars)
Even if this is not a statistically significant finding, it shows a clear tendency that the
skill level of textual programming correlates with the chance to use successful Revit
macros. But to have advanced textual programming skills is not a guarantee to use
macros successful as well. There are some participants with advanced to expert skills
in textual programming who have tried to, but were not able to use Revit Macros
successfully (Figure 5.5).
Figure 5.5: Textual programming skills of participants who wanted but were not able to use Revit
Macros
5. Survey Results and Data Analysis 53
Thus, Revit users without programming skills need another suitable method to
automate repetitive tasks. This new method is the graphical programming tool
Dynamo, introduced in chapter 3.
Dynamo is still in a beta stage and such type of software in combination with BIM is
still a quite new way of managing data. Thus the distribution of Dynamo skills by the
participants shows a declining curve the higher the skill level is:
Figure 5.7 shows the Dynamo skill distribution of participants who have used Revit
Macros successfully. Beginners are hardly evident and it can be argued that a higher
Dynamo skill level is easier to reach for people who are already able to create and
use Revit macros.
5. Survey Results and Data Analysis 54
Figure 5.7: Participants’ Dynamo skills who have used Revit macros successfully
In Figure 5.8 the sub-sample with none or little textual programming skills and none
to intermediate Dynamo skills were asked for their opinion if textual programming
skills are important to use Dynamo successfully. As can be seen in the graph not all
of them agree with this statement. The ‘agree group’ was maybe not able to solve
their problems. But the agreement can have various reasons. The basic and common
problems are covered by Dynamo nodes, but to solve a special problem it is
necessary to know a large library of nodes or to have textual programming skills to
bridge the missing nodes. Another reason could be the large amount of nodes and as
a beginner it is difficult to find the right node to create a working algorithm.
5. Survey Results and Data Analysis 55
Figure 5.8: Are textual programming skills important to use Dynamo successfully?
Thus it is interesting to modify the sub-sample and select participants with non to
little textual programming experience, but with advanced to guru Dynamo skills.
These properties got only 6 of 70 participants and the result is still mixed (Figure
5.9). It can be assumed that these users know a lot of nodes and have enough
experience with the graphical system. And still 2 of 6 users say textual programming
is important to solve problems with Dynamo. But there are some experienced
Dynamo users who could solve their problems without textual programming skills.
The conclusion could be: It is nice to have textual programming skills, but to a
specific degree problems can be solved without textual programming skills.
Figure 5.9: Are textual programming skills important to use Dynamo successfully?
5. Survey Results and Data Analysis 56
Figure 5.10: Are textual programming skills important to use Dynamo successfully?
The analysis of the different sub-samples indicates that both programmers and non-
programmers are able to work with the Dynamo platform successfully. The question
how effective the two different working styles are, is still to answer. The motivation
by many Dynamo users to learn textual programming caused by the usage of a
graphical programming (Figure 5.11) can be an indication that the use of textual
programming has some benefits.
5. Survey Results and Data Analysis 57
However, we have seen that over 70% of participants get motivated by graphical
programming to dive deeper into textual programming (Figure 5.11), but why do
some disagree with this statement? A reason could be the already existing textual
programming skills. But Table 5.2 shows that this assumption cannot be the reason.
Only 3 of 11 participants (dashed blue) who have disagreed with the statement have
advanced to expert textual programming skills. Thus it can be argued that the
remaining 8 participants (dashed green) have other reasons to be not motivated to
dive deeper into textual programming. A further research of these 8 cases has not
discovered any common characteristics (e.g. age).
5. Survey Results and Data Analysis 58
Table 5.2: Motivation to learn textual programming as a function of the textual programming
skills
Graphical programming What level is your general textual programming skills?
has motivated me to dive
Total
deeper into textural no exp. beginner intermediate advanced expert guru
programming
Count 2 10 4 6 2 0 24
Agree
strongly % of textual
22,2% 33,3% 36,4% 40% 50% 0% 34,3%
progr. skills
Count 5 11 4 5 0 1 26
Agree
somewhat % of textual 55,6% 36,7% 36,4% 33,3% 0% 100% 37,1%
progr. skills
Neither Count 1 2 0 2 0 0 5
agree nor % of textual
disagree progr. skills 11,1% 6,7% 0% 13,3% 0% 0% 7,1%
Count 0 4 1 1 0 0 6
Disagree
somewhat % of textual 0% 13,3% 9,1% 6,7% 0% 0% 8,6%
progr. skills
Count 0 2 1 1 1 0 5
Disagree
strongly % of textual 0% 6,7% 9,1% 6,7% 25% 0% 7,1%
progr. skills
Count 1 1 1 0 1 0 4
No
opinion % of textual
11,1% 3,3% 9,1% 0% 25% 0% 5,7%
progr. skills
Count 9 30 11 15 4 1 70
Total % of textual
100% 100% 100% 100% 100% 100% 100%
progr. skills
In the subsequent question, the participants were asked which special tasks or
problems they have solved with Dynamo. Many of them are similar to the entries in
list above, but some outstanding and interesting tasks are:
Code checking
Erection sequencing
Tessellations
Automatically documenting created custom nodes
Acoustic optimisations
Node to identify who created objects
The complete list of answers can be found in Appendix A.2.11 and A.2.12. The lists
are helpful to get inspiration how Dynamo can be used.
To get a clear result, the ordinal scale of five agreement levels was recoded into
‘agree’, ‘disagree’ and ‘no opinion & undecided’ (Table 5.4). For the assessment of
the statement, the agreement and disagreement percentage is decisive. Nearly all
statements have a strong tendency to ‘agree’ with one exception: The statement
‘Textual programming skills are important to use Dynamo successfully’. A high
agreement ratio (agreements minus disagreements) above 0.75 is assessed as true. All
other statements have to be examined in more detail.
5. Survey Results and Data Analysis 60
The most controversial statement about the importance of textual programming skills
with 20.3% of disagreement votes, is investigated in more detail. Therefore the cases
who disagreed are divided into their Dynamo skills (Figure 5.12) and the ratios are
calculated:
It is not possible to calculate convincing ratios and the chi-square test is of course not
successful as well, because the sub-samples are too small.
5. Survey Results and Data Analysis 61
Figure 5.12: Textual programming skills are important to use Dynamo successfully: Agreements
The actual ratio of people who can create Dynamo definitions in the office is as
expected still quite low (A.2.13). The majority of 68.6% participants has answered
that only 1 to 10% of their designers in the office are able to create Dynamo
definitions.
A logical consequence is to ask them what percentage they prefer to able to create
and adjust Dynamo definitions from an economic point of view (Figure 5.13). The
answers are widely spread across the scale. More than 15% of the participants can
see so much value in creating Dynamo definitions to vote for the maximum
percentage. But a majority thinks that it is enough to have only a lower portion of
designers who are able to create Dynamo definitions. A minority sees not enough
value to have such kind of designers.
5. Survey Results and Data Analysis 62
Figure 5.13: Percentages of designers who should be able to create and adjust Dynamo
definitions
It is possible to prepare a library with Dynamo definitions for regular tasks. So how
many designers in an office should be able to apply already existing nodes from an
economic point of view? Figure 5.14 illustrates that 31.4% thinks all designers
should be able to use Dynamo definitions and more than 68% believe that at least the
half of the designers should be able to use Dynamo definitions.
Figure 5.14: Percentages of designers who should be able to use existing Dynamo definitions
5. Survey Results and Data Analysis 63
There are some cases with extreme answers. To evaluate the experience of the cases
in Figure 5.13 and Figure 5.14the corresponding Dynamo skills are listed in two
cross tables below. Table 5.5 indicates, that the extreme cases with the answer of 0%
(of designer) can be neglected, because two of these participants have no experience
and one has only intermediate experience. The most votes of advanced to expert
users are in the range between 1 to 30% and the remaining participants of this skill
level and two guru Dynamo users think a higher percentage is economically
beneficial. A correlation with the Dynamo skills cannot be identified.
Table 5.5: Percentages of designers who should be able to create and adjust Dynamo definitions in
comparison with the Dynamo skills
What level is your skill in Dynamo?
percentage
no Total
of designer beginner intermediate advanced expert guru
experience
Count 2 0 1 0 0 0 3
0%
% of skill 100% 0,0% 5,0% 0,0% 0,0% 0,0% 4,3%
Count 0 6 6 0 3 0 15
1% to 10%
% of skill 0,0% 26,1% 30,0% 0,0% 42,9% 0,0% 21,4%
Count 0 4 3 3 1 0 11
11% to 20%
% of skill 0,0% 17,4% 15,0% 18,8% 14,3% 0,0% 15,7%
Count 0 5 1 4 2 0 12
21% to 30%
% of skill 0,0% 21,7% 5,0% 25,0% 28,6% 0,0% 17,1%
Count 0 1 2 2 0 0 5
31% to 40%
% of skill 0,0% 4,3% 10,0% 12,5% 0,0% 0,0% 7,1%
Count 0 1 3 1 0 1 6
41% to 50%
% of skill 0,0% 4,3% 15,0% 6,3% 0,0% 50,0% 8,6%
Count 0 2 1 1 0 0 4
51% to 60%
% of skill 0,0% 8,7% 5,0% 6,3% 0,0% 0,0% 5,7%
Count 0 0 0 0 0 1 1
61% to 70%
% of skill 0,0% 0,0% 0,0% 0,0% 0,0% 50,0% 1,4%
Count 0 1 0 1 0 0 2
71% to 80%
% of skill 0,0% 4,3% 0,0% 6,3% 0,0% 0,0% 2,9%
Count 0 3 3 4 1 0 11
91% to 100%
% of skill 0,0% 13,0% 15,0% 25,0% 14,3% 0,0% 15,7%
Count 2 23 20 16 7 2 70
Total
% of skill 100,0% 100,0% 100,0% 100,0% 100,0% 100,0% 100,0%
Table 5.6 indicates nothing unexpected. There is a general tendency of all skill levels
to a higher percentage with a peak at 91 to 100%. But to identify a clear pattern a
larger sample is necessary and the Dynamo skills should be verified with a Dynamo
quiz.
5. Survey Results and Data Analysis 64
Table 5.6: Percentages of designers who should be able to use existing Dynamo definitions in
comparison with the Dynamo skills
What level is your skill in Dynamo?
Percentage
no Total
of designer beginner intermediate advanced expert guru
experience
Count 1 1 1 0 0 0 3
0%
% of skill 50,0% 4,3% 5,0% 0,0% 0,0% 0,0% 4,3%
Count 0 1 4 0 0 0 5
1% to 10%
% of skill 0,0% 4,3% 20,0% 0,0% 0,0% 0,0% 7,1%
Count 1 0 1 0 1 0 3
11% to 20%
% of skill 50,0% 0,0% 5,0% 0,0% 14,3% 0,0% 4,3%
Count 0 3 1 1 2 0 7
21% to 30%
% of skill 0,0% 13,0% 5,0% 6,3% 28,6% 0,0% 10,0%
Count 0 1 1 1 0 0 3
31% to 40%
% of skill 0,0% 4,3% 5,0% 6,3% 0,0% 0,0% 4,3%
Count 0 0 1 0 0 0 1
41% to 50%
% of skill 0,0% 0,0% 5,0% 0,0% 0,0% 0,0% 1,4%
Count 0 4 0 2 2 0 8
51% to 60%
% of skill 0,0% 17,4% 0,0% 12,5% 28,6% 0,0% 11,4%
Count 0 0 2 1 1 0 4
61% to 70%
% of skill 0,0% 0,0% 10,0% 6,3% 14,3% 0,0% 5,7%
Count 0 4 3 3 0 0 10
71% to 80%
% of skill 0,0% 17,4% 15,0% 18,8% 0,0% 0,0% 14,3%
Count 0 2 1 1 0 0 4
81% to 90%
% of skill 0,0% 8,7% 5,0% 6,3% 0,0% 0,0% 5,7%
91% to Count 0 7 5 7 1 2 22
100% % of skill 0,0% 30,4% 25,0% 43,8% 14,3% 100% 31,4%
Count 2 23 20 16 7 2 70
% of skill 100% 100% 100% 100% 100% 100% 100%
5. Survey Results and Data Analysis 65
58.6% of all participants have already developed Dynamo nodes (Figure 5.15). A
further research of this sub-sample reveals that it is possible without textual
programming skills to develop a new Dynamo node.
The reason for this is there are several ways to create a new node: A graphical
method with combining existing nodes or method by usage of textual programming
code. The ratio (red) in Figure 5.16 shows a correlation between the general textual
programming skills of all participants and the general textual programming skills of
the participants who have developed a Dynamo node. The better the textual
programming skills the higher is the likelihood to be a node developer.
5. Survey Results and Data Analysis 66
Figure 5.16: Textual programming skills of all participants (dashed) in comparison with
participants who have developed Dynamo nodes before (grey) and the ratio between
them
5. Survey Results and Data Analysis 67
All participants who have developed Dynamo nodes were asked if their company
publish the nodes to the community or not and the reason for their decision:
With the wisdom of hindsight the questions should be stated more clearly and it
should be asked for publishing the nodes to the whole Dynamo community in the
package manager to prevent misunderstandings.
This question reveals that a majority of the companies do not share their developed
nodes or only a minority of the nodes. In an additional comment box the participants
could give reasons for the companies’ behaviour. All comments by the participants
were analysed and every group is presented with corresponding arguments:
special family or on special parameters. Some nodes are still under development and
not mature enough to share. And one participant mentions it took a lot of time to
create it and it is therefore too valuable to share. One participant mentions he have
just reworked already existing nodes.
This was the opinion by the node developers themselves but what are possible
reasons for a company not to share their developed nodes and how can they be
motivated to publish the nodes for free? To push every participant into such a
situation, a fictional statement (which is likely to be true) is presented to the
participants: ‘Some companies don’t share developed custom nodes with the
community. What do you think are the reasons?’ All answers are recoded into similar
opinions and are presented in Table 5.7.
5. Survey Results and Data Analysis 69
Table 5.7: Possible reasons for companies not to share custom nodes with the community
Responses Percent of
Reasons not to publish Dynamo nodes
N Percent Cases
Competitive advantage 31 31,6% 44,3%
No opinion / I don't know 13 13,3% 18,6%
There is no economic benefit to share nodes 12 12,2% 17,1%
Attitude and mentality of people to share things 11 11,2% 15,7%
Intellectual property and Copyrights 10 10,2% 14,3%
Nodes are too (project) specific are only useful
7 7,1% 10,0%
with companys Revit parameters
Liability & legal issues 6 6,1% 8,6%
Reluctance to provide support, extra work for
4 4,1% 5,7%
publishing
NDA agreements, company policies prohibit
3 3,1% 4,3%
sharing
The strength of open source concept and sharing
1 1,0% 1,4%
is not understood
Total 98 100,0% 140,0%
As we have seen in Figure A.17 and Table 5.7, there is a reluctance to share custom
nodes with the community. The detailed analysis shows that it can be attributed to
various reasons. To expedite the development and the availability of a broad
functionality it is essential to motivate all developers and companies to publish their
custom nodes and relevant documentation. As a consequence the question ‘How can
developers and companies be motivated to publish their nodes for free?’ is stated.
This question was several times mentioned as difficult to answer and as a result the
majority has no suggestion provided and all other answers are widely spread.
Therefore it should be seen as a collection of ideas instead of ranking about the
effectiveness. All answers are recoded into multiple response variables and the data
is presented in Table 5.8 and Figure A.40. The controversial suggestion of economic
incentives was expected by the author and thus the subsequent question about
commercial node-packages was stated and will be analysed in chapter 5.11.
5. Survey Results and Data Analysis 70
Table 5.8: Possible motivations for developers to share nodes with the community
Responses Percent of
Possible motivation to publish nodes for free
N Percent Cases
No opinion / I don't know / no appropriate answer 36 44,4% 52,2%
Acknowledgement / reputation / advertisment opportunity 13 16,0% 18,8%
Economic incentives 8 9,9% 11,6%
Not possible 4 4,9% 5,8%
Not necessary / there is already enough motivation 4 4,9% 5,8%
Explain benefits and reasons to share 4 4,9% 5,8%
Give them sth. in return for doing so 3 3,7% 4,3%
Premium support by software manufacturer 2 2,5% 2,9%
Discount on licences 2 2,5% 2,9%
Patents 1 1,2% 1,4%
Hackathons 1 1,2% 1,4%
A quality improvment system to test and improve the
1 1,2% 1,4%
published nodes
More control over published work 1 1,2% 1,4%
Easier and more transparent publishing process 1 1,2% 1,4%
Total 81 100,0% 117,4%
Following questions was stated: ‘Do you think a node-package store (to sell custom
nodes) would be beneficial to the Dynamo community?’
This is as expected a controversial topic because many Dynamo users like the open-
source concept to use all nodes for free and be able to extend its functionality with
improvements and enhancements. To learn by study the textual programming code
helps developers to develop other nodes faster and with better quality. Bugs and
errors can be solved together as a community. There are many developers who like
the concept of sharing their work for free – but of course there are other groups of
developers: Some offices or companies employ a development team to creating
highly complex Dynamo nodes. And another potential developer group are
specialized software companies with developers. They are hired by clients and offer
services like task specific nodes to extend their capabilities. Both of them spend
money to get a competitive advantage.
The difficult task is how to preserve the open-source concept of sharing, learning and
helping – and at the same time how to give professional developers or principals a
reason to share or a compensation for their invested time and money.
27.9% of the participants have voted in favour and 41.2% against the commercial
node-package store. Many of them have stated requirements and suggestion how this
has to be done. All answers have been analysed, sorted, and extended into three
different proposals:
Details:
Only highly complex error free nodes which have passed a quality check are
able to be charged. Similar to Google Play Store, there should be a commercial
node version with full functionalities and a free version with limited
functionalities or adverts (see option B below). A specific percentage of the
revenue should be transferred into a community foundation to support the
development of free nodes
Details:
After the quality check of the submitted node (similar to the Autodesk add-in
store), the developers can place adverts by themselves (for example job
advertisements, company logo, or service offers) into the nodes or they can
activate an advertising system. By tracking the usage of the node the revenue is
calculated and the developer gets a monetary compensation. The advertising
space is sold in a commercial e-store.
Very specific and complex nodes are not used often to generate enough
advertising revenues to compensate the effort by the developers
Companies can create an additional revenue, especially if the nodes are used
regularly
Details:
Instead of a commercial node-package store, a platform is provided to share,
discuss, and explain nodes. Advertisements can be placed on each node page to
generate some compensation. Node specific problems can be discussed and
solved without disappearing in the Dynamo forum.
It is likely that high quality and complex nodes will be used only internally
and are not available to the community. Instead every big company develop
their own nodes without sharing the effort.
As stated in chapter 5.9 more than 58% of the survey participants have already
developed a node for Dynamo. But the analysis of the question about the
contribution to GitHub to help developing the Dynamo software itself is
disappointing. Figure 5.19 shows that only five participants have contributed as an
active developer.
5. Survey Results and Data Analysis 74
Of course many users have not the skill and experience in software development. But
there are also some users who have an account and like to help but don’t know how
to use GitHub for example to report bugs. And eight participants do not contribute
because they have not enough time to do it. Another fact is that Autodesk develops
and discuss Dynamo in their internal and non-public meetings. Maybe Autodesk
should make monthly open developer meetings to discuss with the external developer
community what are they working on and where someone could possibly assist them.
It would be interesting for non-programmers as well and could form a stronger
Dynamo developer community, because they can interact with professional
developers.
The analysis of the survey so far shows that Dynamo has the right to exist. But there
are some critical bottlenecks that limit the potential of Dynamo. To reveal the
limiting factors the question ‘What factors are important to make Dynamo more
successful?’ was stated in the survey.
5. Survey Results and Data Analysis 75
The result of this question represents the software knowledge of people who are
interested in Dynamo. A survey with a focus on Grasshopper or other graphical
programming tools would show different results for Rhino, Revit and Dynamo etc. of
course.
CHAPTER 6
6 DISCUSSION
BIM enabled design tools and the current BIM based design process are criticized in
the literature as too simplistic, with limited complexity, lack of computational
approaches and missing interoperability between software. Design tools are blamed
to focus on data storage instead of using, manipulating and creating data in an
intelligent way. Problems are solved through trial and error procedures and mainly a
manual modelling approach is applied.
The open-source concept of Dynamo enables companies to use the existing code
base to develop and enhance their BIM workflow (chapter 5.6). Companies and their
developers have started to develop an in-house collection of nodes to get a
6. Discussion 78
competitive advantage. Some developers share their nodes and workflows with the
community because they like the community spirit to learn from each other. But
there is still reluctance by a majority of the developers / companies to share their
nodes and workflows (chapter 5.10). Especially complex and valuable nodes are less
likely shared with the community due to preserve a competitive advantage, no
compensation, or increased effort for support and documentation.
Especially for complex problems, textual programming is still in demand. And once
the Dynamo definition is created and well documented by more experiences users, it
can be shared with colleagues and be reused by all designers. Thus not all employees
need to be an expert in how to create Dynamo definitions. According to the survey
result, 1-30% of designer should have advanced skills in creating and adjusting
Dynamo definitions and the majority of designers should at least be able to use
existing definitions.
By solving more tasks with algorithms the labour time is reduced and thus economic
value is created. It is hard to define an exact measure for value, but the research
indicates fewer errors and reduced labour time for the same amount of work.
6. Discussion 79
The research reveals that automation of tasks with textual programming (e.g. Revit
Macros or add-ins) is more difficult to apply or create than graphical programming
with Dynamo. With Dynamo it is now possible for an average designer to apply the
computational power of the computer in various situations. Especially tedious tasks
can be automated with Dynamo and labour time is reduced. With Dynamo it is easier
to create a rule-driven testing process to check for errors or deviations. If the early
design is created with algorithms in Dynamo, changes of parameters can be
evaluated quickly and intuitive.
Some barriers are encountered at all new technologies: There is a reluctance to invest
time to learn an additional tool. The benefit of applying algorithms is still often
neglected. Small design offices have no programmers in their team, thus the
designers think they have not suitable skills to create algorithms. Some have
answered in the survey that there is a lack of documentation / tutorials for daily tasks
solvable with Dynamo. Stability and performance issues, and too frequent releases of
new versions resulting in a failure of existing definitions.
What are the key factors for successful graphical programming software
in the context of BIM?
In chapter 2.1 Lopes suggest several key factors for a programming language. All
these properties are valuable, but in contrast to Lopes’ findings in 2012, Dynamo is
supporting all principles (some of them only to a limited degree). But to have a
programming language suitable for improving BIM process, the list should be
extended with following principles:
Provide ability to bake created intelligence into 3D geometry (native file formats
& IFC)
6. Discussion 80
Open-source access
Large projects can benefit a lot, because specific tasks have to be done many times or
are so valuable that an optimized design can save much money. Thus the time to
create a working algorithm is amortizing soon. But small projects are also suitable,
6. Discussion 81
because normally the tasks are repeated with each project. At the moment building
construction projects are most common, because of the strong connection to Revit.
But other software connections are developed as well and thus civil engineering and
other types of projects are getting more common in the future.
Manual and often repeated tasks are perceived as boring and as a waste of skills. And
if there are no interns who can do these boring tasks, an employee with high wages is
bound to such work. By using graphical programming, designers have more time for
application of skills and can concentrate on optimizing the design and apply their
domain knowledge more effectively.
CHAPTER 7
7 CONCLUSION
The literature research about graphical programming clearly shows that the goals at
the beginning of the first graphical programming tools until today are similar: They
are supposed to simply workflows. In the last decade the design process in the AEC
industry was strongly influenced by new tools, which are based on BIM.
Shortcomings like the lack of suitable computational approaches available for
designers and engineers were identified. The success of Grasshopper has highlighted
the demand for tools, which can be used by non-programmers but still have the
ability to create algorithms for multi-criteria design optimisations. Advanced
scripting with textual programming is not an option for the average designer. Thus
the outstanding graphical programming tool ‘Dynamo’ and its usage have been
studied in detail.
The initial intended research was founded on a tri-angulated method, by the use
practical experience with Dynamo, a literature research, a survey and interviews. But
the survey which used a mixed research approach of quantitative and qualitative
questions, have resulted in very many and rich answers. Thus the intended follow up
interviews were not conducted.
use the open-source access to create additional connections. Shu (1988, p. 136) has
“classified visual languages into three categories: (1) languages for processing visual
information, (2) languages for supporting visual interaction, and (3) languages for
programming with visual expressions”. However, in modern visual programming
environments like Dynamo all the three categories are included. In addition such an
environment comprises several graphical programming languages, textual scripting
languages, and compiled textual components. Thus the author suggests for such
developer environments to use the name ‘multi-dimensional programming language’.
Many participants have developed nodes for Dynamo, but there is still a strong
reluctance to share nodes with the community. Only 30% actively share their
developments with the community. The main reasons for not sharing nodes are to
gain a competitive advantage, no economic benefit, and the attitude of people. To
A. Appendix 84
APPENDICES
A APPENDIX
Every participant was informed on the first survey page about the reasons, the
research framework, the expected length of the survey, and about the personal data
security.
The Information Flyer is available in full size on the following file path on the CD:
CD\Survey\Survey_participant_instructions.pdf
A.2.1 Question 1
A.2.2 Question 2
A.2.3 Question 3
A.2.4 Question 4
A.2.5 Question 5
A.2.6 Question 6
A.2.7 Question 7
A.2.8 Question 8
A.2.9 Question 9
A.2.10 Question 10
Figure A.20: Are textual programming skills important to use Dynamo successfully?
A.2.11 Question 11
Raw data:
Design intent finds expression in code in the very early stages of the
conceptual design process.
Manipulating parameters
Data mining
Design forms
Automation
Auto data input (parameter); add shared parameter; auto join / unjoin and cut;
auto create wall / floor / pipe / tree etc. by CAD
Design
Structural design
Automating Repetition
Structural design
A.2.12 Question 12
Answers:
Architectural design schemes that are developed purely with code (Design
Script) using data relevant to the site, without any preconceived ideas.
Too many to name but most are centred around automating documentation
tasks
Model auditing and a fairly advanced sheet creation script within built
checkers
Pushing type name information to type mark, removing CAD import junk
Extracting information from large projects with multiple linked files per
model, consistency testing / clash testing, parameter manipulation
Creating custom bill of quantities, create grids from CAD, list and rename
levels based on Excel, push information from Excel to Revit
Place every family types of a specific family on a view; place a family in its
destination room; delete imported line styles; place survey point in Revit;
view and sheet creation
Read and Write Parameter by Excel, batch add shared parameter to families,
Control the filter visibility / colour / pattern, topography manipulation, place
family be point
Acoustic optimisations
Data sorting
A. Appendix 104
Forms
Automating tasks
Wall finish area calculations, sheet and view creation, geometry creation and
manipulation, parameter editing
Randomization of Facades
A.2.13 Question 13
Figure A.24: Percentages of designers in the office who are able to create Dynamo definitions
A. Appendix 106
A.2.14 Question 14
Figure A.26: Percentages of designers who should be able to create and adjust Dynamo
definitions
A. Appendix 107
A.2.15 Question 15
Figure A.28: Percentages of designers who should be able to use existing Dynamo definitions
A. Appendix 108
A.2.16 Question 16
A.2.17 Question 17
A.2.18 Question 18
A.2.19 Question 19
A.2.20 Question 20
Table A.5: Possible reasons for companies not to share custom nodes with the community
Responses Percent of
Reasons not to publish Dynamo nodes
N Percent Cases
Competitive advantage 31 31,6% 44,3%
No opinion / I don't know 13 13,3% 18,6%
There is no economic benefit to share nodes 12 12,2% 17,1%
Attitude and mentality of people to share things 11 11,2% 15,7%
Intellectual property and Copyrights 10 10,2% 14,3%
Nodes are too (project) specific are only useful
7 7,1% 10,0%
with companys Revit parameters
Liability & legal issues 6 6,1% 8,6%
Reluctance to provide support, extra work for
4 4,1% 5,7%
publishing
NDA agreements, company policies prohibit
3 3,1% 4,3%
sharing
The strength of open source concept and sharing
1 1,0% 1,4%
is not understood
Total 98 100,0% 140,0%
A. Appendix 113
Figure A.38: Reasons for companies not to share custom nodes with the community
A.2.21 Question 21
Table A.6: Possible motivations for developers to share nodes with the community
Responses Percent of
Possible motivation to publish nodes for free
N Percent Cases
No opinion / I don't know / no appropriate answer 36 44,4% 52,2%
Acknowledgement / reputation / advertisment
13 16,0% 18,8%
opportunity
Economical incentives 8 9,9% 11,6%
Not possible 4 4,9% 5,8%
Figure A.40: Possible motivations for developers to share nodes with the community
A. Appendix 115
A.2.22 Question 22
Survey question 23 was deleted shortly after the start of the survey due to a logical
error.
A. Appendix 116
A.2.23 Question 24
A.2.24 Question 25
REFERENCES
Aish, R., Fisher, A., Joyce, S. and Marsh, A. (2012) ‘Progress towards Multi-Criteria
Design Optimisation using DesignScript with SMART Form, Robot Structural
analysis and Ecotect building performance analysis’, in. ACADIA. Available at:
http://companyshed.com/downloads/documents/2012_ACADIA.pdf (Accessed: 1
March 2015).
Akos, G. (2014) ‘Mode Lab Education | Two answers for “Why Dynamo”?’, Mode
Lab, 26 March. Available at: http://modelab.is/education/two-answers-for-why-
dynamo/ (Accessed: 16 May 2015).
Anderson, J. R. (2010) Cognitive psychology and its implications. 7th ed. New York:
Worth Publishers.
Autodesk (ed.) (2008) ‘Revit MEP 2009 User’s Guide’. Available at:
http://revit.downloads.autodesk.com/download/RME2009/Documents/ENU/HelpME
PENU.pdf (Accessed: 12 November 2015).
Babic, D. (2012) Visual programming and why it sucks, Davor Babic. Available at:
http://blog.davor.se/blog/2012/09/09/Visual-programming/ (Accessed: 2 September
2015).
Brown, R. B. (2006) Doing your dissertation in business and management. 1st ed.
Thousand Oaks, CA: Sage Publications (Sage study skills).
A. Appendix 120
CORE studio (no date) ‘Visualizing Loads and Capacity with Dynamo’, CORE
studio Thornton Tomasetti. Available at:
http://core.thorntontomasetti.com/visualizing-loads-and-capacity-with-dynamo/
(Accessed: 17 May 2015).
Daylight Analysis for Dynamo (no date) Dynaom Wiki. Available at:
https://github.com/DynamoDS/Dynamo/wiki/Daylight-Analysis-for-Dynamo
(Accessed: 17 May 2015).
Deutsch, R. (2014) ‘Google’s BIM-busting App for Design and Construction’, BIM
+ Integrated Design, 24 October. Available at:
http://bimandintegrateddesign.com/2014/10/24/googles-bim-busting-app-for-design-
and-construction/ (Accessed: 15 August 2015).
Ebrahim, G. . and Sullivan, K. . (1995) Mother and child health: research methods.
London: Book-Aid.
Fellows, R. and Liu, A. (2015) Research methods for construction. Third edition.
Chichester, West Sussex, United Kingdom ; Malden, MA, USA: John Wiley and
Sons, Inc.
A. Appendix 121
Fischer, T., De Biswas, K., Ham, J. J., Naka, R. and Huang, W. X. (2012)
‘Parametric and Generative methods with BuildinG information modellinG’.
Available at:
http://cumincad.architexturez.net/system/files/pdf/caadria2012_089.content.pdf
(Accessed: 1 March 2015).
Guerra, E. (2014) BIM - One Version of the Truth. Dynamo: Visual Programming for
Revit/Vasari. Available at: https://www.youtube.com/watch?v=xm26L0P2MPE.
Hanna, S., Hesselgren, L., Gonzalez, V. and Vargas, I. (2010) ‘Beyond simulation:
designing for uncertainty and robust solutions’, in Proceedings of the 2010 Spring
Simulation Multiconference. Society for Computer Simulation International, p. 182.
Available at: http://dl.acm.org/citation.cfm?id=1878727 (Accessed: 18 August
2015).
Herr, K. and Anderson, G. L. (2005) The action research dissertation: a guide for
students and faculty. Thousand Oaks, Calif: SAGE Publications.
Jezyk, M. D., Lipkin, L., Elliott, S. J. and Boyer, P. B. (2015) ‘Computational design
method and interface’. Available at:
http://www.google.com/patents/US20150095881.
Jezyk, M. and Izzi, A. (no date) What’s New for Dynamo. Available at:
http://inthefold.autodesk.com/in_the_fold/2015/05/autodesk-launches-dynamo-
studio-and-formit-360-pro-at-aia.html (Accessed: 16 May 2015).
Kumar, V. (2013) ‘Excel Tip: Options using INQUIRE’, Vinod Kumar (Blog home),
6 November. Available at: http://blogs.extremeexperts.com/tag/excel/page/6/
(Accessed: 25 December 2015).
Schutt, R. K. (2006) Investigating the social world: the process and practice of
research. Thousand Oaks, Calif.; London: Pine Forge Press ; SAGE Publications.
Sgambelluri, M. (2013) ‘Learn How to Align and Measure a Scope Box in Revit
without the API’, Simply Complex, 23 August. Available at:
http://therevitcomplex.blogspot.co.uk/2013/08/learn-how-to-align-and-measure-
scope.html (Accessed: 17 May 2015).
Sgambelluri, M. (2015b) ‘Get the Area of a Ramp From Revit Using DynamoBIM’,
Simply Complex, 3 May. Available at:
http://therevitcomplex.blogspot.co.uk/2015/05/get-area-of-ramp-from-revit-
using.html (Accessed: 17 May 2015).
Sgambelluri, M. (2015d) ‘How to Get The Revit Version and Build Number Using
DynamoBIM.’, Simply Complex, 4 November. Available at:
http://therevitcomplex.blogspot.co.uk/2015/04/how-to-get-revit-version-and-
build.html (Accessed: 17 May 2015).
Sobon, K. K. (2014a) ‘create placeholder sheets using excel with dynamo v.1.5’,
Archi Lab, 13 October. Available at: http://archi-lab.net/create-placeholder-sheets-
using-excel-with-dynamo-v-1-5/ (Accessed: 17 May 2015).
Sobon, K. K. (2014b) ‘element tagging with dynamo’, Archi Lab, 18 July. Available
at: http://archi-lab.net/element-tagging-with-dynamo/ (Accessed: 17 May 2015).
Sobon, K. K. (2014c) ‘managing family types with dynamo’, Archi Lab, 30 June.
Available at: http://archi-lab.net/managing-family-types-with-dynamo/ (Accessed: 17
May 2015).
Trochim, W. M. (2006a) The Research Methods Knowledge Base, 2nd Edition, The
Research Methods Knowledge Base, 2nd Edition. Available at:
http://www.socialresearchmethods.net/kb/dedind.php (Accessed: 26 May 2015).
Trochim, W. M. (2006b) The Research Methods Knowledge Base, 2nd Edition, The
Research Methods Knowledge Base, 2nd Edition. Available at:
http://www.socialresearchmethods.net/kb/philosophy.php (Accessed: 26 May 2015).
Vermeulen, D. (2015) ‘Dynam(o)ite your Design for Engineers’, Revit beyond BIM,
5 April. Available at: https://revitbeyondbim.wordpress.com/2015/05/04/dynamoite-
your-design-for-engineers-part-5/ (Accessed: 17 May 2015).
Wülfing, A., Windisch, R. and Scherer, R. J. (2014) ‘A visual BIM query language’,
eWork and eBusiness in Architecture, Engineering and Construction: ECPPM 2014,
p. 157.
Zhang, R., Dye, R., McKaskle, G. and Cifra, C. (2001) ‘Code node for a graphical
programming system which invokes execution of textual code’. Available at:
http://www.google.com/patents/US6282699 (Accessed: 12 August 2015).
127
BIBLIOGRAPHY
Aksamija, A., AP BD, L., Mario Guttman, A. I. A., Rangarajan, H. P. and Meador,
T. (no date) ‘PARAMETRIC CONTROL OF BIM ELEMENTS FOR
SUSTAINABLE DESIGN IN’.
Asl, M. R., Bergin, M., Menter, A. and Yan, W. (2014) ‘BIM-based Parametric
Building Energy Performance Multi-Objective Optimization’.
Asl, M. R., Stoupine, A., Zarrinmehr, S. and Yan, W. (2015) ‘Optimo: A BIM-based
Multi-Objective Optimization Tool Utilizing Visual Programming for High
Performance Building Design’, in Proceedings of the Conference of Education and
Research in Computer Aided Architectural Design in Europe (eCAADe), pp. 673–
682. Available at:
https://www.researchgate.net/profile/Mohammad_Rahmani_Asl/publication/283351
762_Optimo_A_BIM-based_Multi-
Objective_Optimization_Tool_Utilizing_Visual_Programming_for_High_Performan
ce_Building_Design/links/5636806508aeb786b703f21d.pdf (Accessed: 26
December 2015).
Attia, S., Hamdy, M., O’Brien, W. and Carlucci, S. (2013) ‘Assessing gaps and
needs for integrating building performance optimization tools in net zero energy
buildings design’, Energy and Buildings, 60, pp. 110–124. doi:
10.1016/j.enbuild.2013.01.016.
A. Appendix 128
Bentrad, S., Meslati, D. and others (2011) ‘Visual Programming and Program
Visualization–Towards an Ideal Visual Software Engineering System’, IJIT-ACEEE
International Journal on Information Technology, 1(3), pp. 56–62.
Blackwell, A. F., Whitley, K. N., Good, J. and Petre, M. (2001) ‘Cognitive factors in
programming with diagrams’, Artificial Intelligence Review, 15(1-2), pp. 95–114.
Bradner, E., Iorio, F. and Davis, M. (2014) ‘Parameters tell the design story: ideation
and abstraction in design optimization’, in Proceedings of the Symposium on
Simulation for Architecture & Urban Design. Society for Computer Simulation
International, p. 26. Available at: http://dl.acm.org/citation.cfm?id=2664349
(Accessed: 1 March 2015).
Breslav, S., Goldstein, R., Doherty, B., Rumery, D. and Khan, A. (2013) ‘Simulating
the sensing of building occupancy’, in Proceedings of the Symposium on Simulation
for Architecture & Urban Design. Society for Computer Simulation International, p.
15. Available at: http://dl.acm.org/citation.cfm?id=2500019 (Accessed: 1 March
2015).
Breslav, S., Goldstein, R., Tessier, A. and Khan, A. (2014) ‘Towards visualization of
simulated occupants and their interactions with buildings at multiple time scales’, in
Proceedings of the Symposium on Simulation for Architecture & Urban Design.
Society for Computer Simulation International, p. 5. Available at:
http://dl.acm.org/citation.cfm?id=2664328 (Accessed: 1 March 2015).
A. Appendix 129
Burger, S. M. (no date) ‘Natural and Intuitive’, words & images. Available at:
http://shaneburger.com/2011/08/designing-design/ (Accessed: 25 September 2015).
Catarci, T. and Santucci, G. (1995) ‘Are visual query languages easier to use than
traditional ones? An experimental proof’, in BCS HCI, pp. 323–338. Available at:
https://books.google.com/books?hl=en&lr=&id=OlZONLkAtVMC&oi=fnd&pg=PA
323&dq=%22the+effectiveness+of+various+query+styles+and+interfaces+have+bee
n+conducted+in%22+%22developing+a+task+for+users+to%22+%22in+the+query
+system+under+study.+In+query+writing,+the+question+is:+%E2%80%9CGiven+a
%22+&ots=cK6M3w97rI&sig=RJb85zCX0beFKtpMFteoXMqXoow (Accessed: 19
August 2015).
Chang, S.-K. K., Glinert, E., Bonar, J. G., Graf, M. and Berztiss, A. T. (1990)
Principles of visual programming systems. Prentice Hall Professional Technical
Reference.
Chronis, A., Tsigkari, M., Giouvanos, E., Aish, F. and Zaki, A. A. (2012)
‘Performance driven design and simulation interfaces: a multi-objective parametric
optimization process’, in Proceedings of the 2012 Symposium on Simulation for
Architecture and Urban Design. Society for Computer Simulation International, p.
14.
August 2015).
Dynamo: The Secret to Working Smarter and Making Your Life Easier | ArchDaily
(no date). Available at: http://www.archdaily.com/773079/dynamo-the-secret-to-
working-smarter-and-making-your-life-easier (Accessed: 4 September 2015).
ExcelPrecedents-5.png (PNG Image, 1767 × 1080 pixels) (no date). Available at:
http://i0.wp.com/www.extremeexperts.com/blogimages/ExcelPrecedents-5.png
(Accessed: 25 December 2015).
Fun with Dynamo for BPA - Automatic shading design - Building Performance
Analysis (no date). Available at: http://autodesk.typepad.com/bpa/2013/08/more-fun-
with-dynamo-for-bpa-automatic-shading-design.html (Accessed: 16 May 2015).
Goldstein, R., Breslav, S. and Khan, A. (no date) ‘Towards Voxel-Based Algorithms
for Building Performance Simulation’. Available at:
http://www.autodeskresearch.com/pdf/Goldstein__Towards_Voxel_Building_Simula
tion__2014-02-28_1020.pdf (Accessed: 1 March 2015).
‘Graphical programming system and method for enabling a person to learn text-
A. Appendix 131
Hall, T. W., Jabi, W., Passerini, K., Borcea, C. and Jones, Q. (2008) ‘An Interactive
Poster System to Solicit Casual Design Feedback’, in Proceedings of the 28 th
Conference ACADIA, pp. 438–447. Available at:
http://wjabi.net/portfolio/Papers/2008acadia.pdf (Accessed: 1 March 2015).
Hanna, S. (2011) ‘The inverted genotype and its implications for the flexibility of
architectural models’, The Journal of Space Syntax, 2(2), pp. 247–272.
Hu, C.-H. and Wang, F.-J. (1998) ‘Constructing an integrated visual programming
environment’, SOFTWARE-PRACTICE & EXPERIENCE, 28(7), pp. 773–798.
Jabi, W. (2014) ‘Parametric spatial models for energy analysis in the early design
stages’, in Proceedings of the Symposium on Simulation for Architecture & Urban
Design. Society for Computer Simulation International, p. 16. Available at:
http://dl.acm.org/citation.cfm?id=2664339 (Accessed: 1 March 2015).
Jacobson, I., Griss, M. and Jonsson, P. (1997) Software reuse: architecture process
and organization for business success. New York, NY : Harlow, England ; Reading,
MA: ACM Press ; Addison Wesley Longman.
Journal of Visual Languages and Computing - Elsevier (no date). Available at:
http://www.journals.elsevier.com/journal-of-visual-languages-and-computing
(Accessed: 12 August 2015).
Kiper, J. D., Howard, E. and Ames, C. (1997) ‘Criteria for evaluation of visual
programming languages’, Journal of Visual Languages & Computing, 8(2), pp. 175–
192.
Langenhan, C., Ha\s s, S., Weber, M., Petzold, F., Liwicki, M. and Dengel, A. (2011)
‘Investigating research strategies for accessing knowledge stored in semantic
models’, eCAADe, Ljubljana. Available at:
http://cumincad.architexturez.net/system/files/pdf/ecaade2011_014.content.pdf
(Accessed: 1 March 2015).
Liao, A. (no date) The 21st-Century Skill Set for Architects, Architect. Available at:
http://www.architectmagazine.com/practice/the-21st-century-skill-set-for-
architects_o (Accessed: 6 September 2015).
Maloney, J., Resnick, M., Rusk, N., Silverman, B. and Eastmond, E. (2010) ‘The
Scratch Programming Language and Environment’, ACM Transactions on
Computing Education, 10(4), pp. 1–15. doi: 10.1145/1868358.1868363.
Marriott, K. and Meyer, B. (2012) Visual language theory. Springer Science &
Business Media. Available at:
https://books.google.de/books?id=FsXcBwAAQBAJ&pg=PP7&dq=Visual+Languag
e+Theory++von+Kim+Marriott,Bernd+Meyer&hl=de&sa=X&ved=0CCEQ6AEwA
GoVChMIi5as5YzexgIVcCPbCh1iUAVy#v=onepage&q=Visual%20Language%20
Theory%20%20von%20Kim%20Marriott%2CBernd%20Meyer&f=false.
Ormerod, T. (1990) ‘Human cognition and programming’, Hoc et al, 307, pp. 63–82.
Petre, M. (1995) ‘Why looking isn’t always seeing: readership skills and graphical
programming’, Communications of the ACM, 38(6), pp. 33–44.
Petre, M. and Blackwell, A. F. (1999) ‘Mental imagery in program design and visual
A. Appendix 135
Ritter, F., Schubert, G., Geyer, P., Borrmann, A. and Petzold, F. (no date) ‘Design
Decision Support–Real-time Energy Simulation in the Early Design Stages’, in
Computing in Civil and Building Engineering (2014). ASCE, pp. 2023–2031.
Available at: http://ascelibrary.org/doi/abs/10.1061/9780784413616.251 (Accessed:
19 August 2015).
Singer, D. (no date) ‘Entwicklung eines Prototyps für den Einsatz von Knowledge-
based Engineering in frühen Phasen des Brückenentwurfs’. Available at:
http://www.cms.bgu.tum.de/publications/theses/singer_2014_amann.pdf (Accessed:
19 August 2015).
slate material editor - Design Corps Design Corps (no date). Available at:
http://www.design-corps.co.uk/tag/slate-material-editor/ (Accessed: 6 September
2015).
Srinivasan, R., Kibert, C., Thakur, S., Ahmed, I., Fishwick, P., Ezzell, Z. and
Lakshmanan, J. (2012) ‘Preliminary research in dynamic-BIM (D-BIM) workbench
development’, in Proceedings of the Winter Simulation Conference. Winter
Simulation Conference, p. 53. Available at:
http://dl.acm.org/citation.cfm?id=2429828 (Accessed: 1 March 2015).
Staepels, L., Verbeeck, G., Roels, S., Van Gelder, L. and Bauwens, G. (2013)
‘Evaluation of indoor climate in low energy houses’, in Proceedings of the
Symposium on Simulation for Architecture & Urban Design. Society for Computer
Simulation International, p. 8. Available at:
http://dl.acm.org/citation.cfm?id=2500012 (Accessed: 1 March 2015).
Sternberg, R. J., Sternberg, K. and Mio, J. S. (2012) Cognitive psychology. 6th ed.
Belmont, CA: Wadsworth/Cengage Learning.
Systematic Software Reuse: Architecture, Process and Organization are Crucial (no
date). Available at: http://martin.griss.com/pubs/fusion1.htm (Accessed: 12 August
2015).
Thomas, M., Fachtagung Informatik und Schule and Gesellschaft für Informatik
(eds) (2011) Informatik in Bildung und Beruf: 14. GI-Fachtagung ‘Informatik und
Schule - INFOS 2011’, 12. - 15. September 2011 an der Westfälischen Wilhelms-
Universität Münster. Bonn: Ges. für Informatik (GI-edition Proceedings, 189).
Tjan, B. S., Breslow, L., Dogru, S., Rajan, V., Rieck, K., Slagle, J. R. and Poliac, M.
O. (1993) ‘A data-flow graphical user interface for querying a scientific database’,
in. IEEE Comput. Soc. Press, pp. 49–54. doi: 10.1109/VL.1993.269578.
Zhang, K. and Zhang, K.-B. (2003) ‘Graph grammars for visual programming’, in
Software Visualization. Springer, pp. 3–27.