algorithmic modeling for Rhino



KSD research group

AkadR. Dr.-Ing. Architekt
Christoph Langenhan

Technische Universität München
Faculty of Architecture
Chair for Architectural Informatics
Prof. Dr.-Ing. Frank Petzold

Development team:

Thomas Stocker

Dario Banfi

Jana Pejic

Thomas Kühner

Markus Dausch

Bishwa Hang Rai

Dominic Henze

Arno Schneider

Hardik Arora

Jessica Bielski

Members: 16
Latest Activity: Sep 20, 2023

Download Dolphin

Dolphin 4.0 Plug-In

Dolphin 4.0 template file

AgraphML Files

Room dictionary: example file


The goal of “Dolphin” for “Grasshopper” is to support the early stages of the design process using information technology in order to find architectural solutions as a source of inspiration, an explicit solution, or a means to better understand current design problems.  

The “Dolphin” plugin allows the use of digital semantic building information in the parametric work environment of “Grasshopper” and “Rhinoceros” using the XML-based AGraphML exchange format developed by the “KSD research group”. The AGraphML format stores spatial and topological information that can be accessed through local sources and web-based sources. The information can either be downloaded in aGraphML files or accessed using a backend web services directly that handles spatial information in a graph database, geometric information on a BIM Server and meta-information in a content management system. All databases of this information system are freely available:




To encode spatial information in AGraphML, automatic and semi-automatic methods have been developed and implemented by the “KSD research group”. To formalize architectural configurations digitally we propose to create semantic fingerprints of buildings, to be used to identify a building as we use actual fingerprints to identify individuals. In order to map the spatial structure of architectural situations, graph-based approaches are being investigated to mathematically represent fingerprints for information such as space and their connections, alignment, orientation or urban integration. The nodes represent room types. In the latest version of Dolphin 4.0, their fixed taxonomy has been modified to allow custom room dictionaries, defined by the user. The labels of the edges [DOOR, ENTRANCE, PASSAGE, WALL, WINDOW] are used as the visualization of relations between spaces. In order to use the information in “Grasshopper” the “Dolphin” components are distinguished in the categories “Analyzer”, “Coordinator”, “BIM Tools”, “Filter”, “Local Source”, “Statistics” and “Web Source”.

As most changes from the version 3.0 to 4.0 of “Dolphin” plugin concern the “Coordinator” namespace, to be specific the “Semantic Graph” component, the updated description begins with this namespace and in a more detailed manner.


The “Dolphin” "Coordinator" components allow the creation of aGraphML documents from Rhinoceros 3D (Rhino 3D) drawing, as well as querying the existing online repository of floor plans.

The updated “Semantic Graph”, designed to understand and draw spatial configurations using Rhinoceros 3D (Rhino 3D), was improved for simplified transformation process of floor plans, increased flexibility,  and can handle more complex data. The component transforms the spatial semantics into an aGraphML file, converting spatial configurations in graph structures that can be visualised in programs, like Gephi or yEd. Rooms are represented by outlines, their room names are assigned by using text and finally the accessibility type is visualised by different coloured Lines, which is read by the “Semantic Graph” component and written as an aGraphML file.

Circles, which were used to represent rooms in the former version of Dolphin, were replaced by Polyline Curves to accurately outline rooms, improve the control over the geometries and precisely detect its corner points.

In order to add another level of complexity, in the current version each room can be associated with a building and ways to interconnect these buildings. If at least one room lies completely inside the Polyline Curve outline, the updated “Semantic Graph” component considers a polyline curve as a building and assigns the building ID to the respective room. However, the placing of a room within a building outline, is completely optional for the component to work.

Dolphin 4.0 can detect room types using room names, and a user can have its own set of room types and room names using a personalized room dictionary. A room dictionary needs to be created to associate the used room names with room types. The room dictionary can be continuously expanded by each user, depending on their needs, and is set through a JSON file in the following manner. As shown in the picture, the whole text is set within curly brackets. The first word within quotation marks (String), e.g. “Toilet”, followed by a colon (:), is the room type, which list of words, e.g. “WC” and “00”, set within square brackets, are getting translated into.

Two buildings can be connected using the "Entrance" Edge Type, which will be discussed in the next section. It is also possible to connect two rooms which belong to different buildings. The current version allows to create more edge types by drawing lines between two rooms or two buildings for increased flexibility. Dolphin 4.0 expands the possible edge types of the “Semantic Graph” by three types, such as the Passage, Window and Entrance. The last listed type can only be used to connect two different buildings or two rooms of different buildings.

The table below shows all the edges, their colour representations and functions. Further, the boolean option of “WindowsExist” was assigned a colour representation to change its value to “true”, by drawing a Line within a room. The default value of the boolean option “enclosedRoom” is now “true”, automatically changing to ‘false’ with the use of the “Passage” edge type.


Edge Type

Colour Representation



RGB (255,0,0)

Creates an edge in the AgraphML representing, two rooms are connected with a door


RGB (0,255,0)

Creates an edge in the AgraphML representing, two rooms are adjacent to each other


RGB (255,255,255)

Sets the enclosedRoom property of both the rooms as False


RGB (0,0,255)

Creates an edge in the AgraphML representing, two rooms are connected with a window to each other.


Dark blue,
RGB (0,0,139)

Sets the WindowExist property of the room as True


RGB (255,255,0)

Either two rooms which have Exterior as the room type or two  Buildings can be connected using this edgeType


Three “Analyzer” components have been implemented to analyze building information and visualize the information in “Rhino”. The first component, the “Node Analyzer”, retrieves the data of all nodes, the second one, the “Edge Analyzer”, imports all edge data and the third component, the “Graph Analyzer”, imports the coordinates of the graph. The output can be used by standard “Grasshopper” components to visualize the information. Furthermore, the information can be used with other “Grasshopper” plugins like “Kangaroo”, “Spider Web”, “Space Syntax”, “Galapagos”, “Embryoviz” or “Sandbox”.

BIM Tools

Four “BIM Tools” component facilitate the interaction with BIM models to ease the design process. Presently the access is possible on two BIM servers, the “Open Source BIM Server” ( and “bim+” from “Nemetschek” ( The download components comprise models from both servers as IFC files and the Grasshopper components check the results, enabling further processing in order to visualize building models with the “Geometry Gym” Plugin. The access to the “Open Source BIM Server” is more complex because a “Serializer” is required to find out which model specification should be used. The “BIM Visualiser”, lets the user select the building model out of a set of found models in the information cloud.


Two “Filter” components were developed to make it possible to define basic requirements and to automatically check, which conditions are fulfilled by which part of the floor plan. Basically two types of conditions are distinguished: the ‘simple conditions’ that are having direct access to the AGraphML data and the ‘complex conditions’ that have to derive the values from the aGraphML data to make a decision if a condition is fulfilled. The “File Filter” and the “Room Filter” can be used to filter and display the remaining files from a set of files or rooms from a set of rooms by “room type”, “roomname”, “window yes/no”, “enclosed room yes/no”, light, “privacy” and “connection type” (edges).

Local Source

The “aGraphML Reader” loads several aGraphML files from one folder and the “File Checker” component tests if the single file has all required aGraphML attributes. The output is either a list of aGraphMLs or a single aGraphML.


Three “Statistics” components compute aGraphML data, like room type, togetherness, arrangement and sequence as well size, number and likelihood of connections to other rooms. The first component, the “Room Area Share”, considers the room sizes relatively to each other to make determine how the room size is comparable to a calculated average. For example if a bathroom is larger or smaller than an average bathroom. The second component “Room to Room Edge Occurrences” calculates and displays percentage probabilities of room connections (passage, door, wall, no connection), for example between bedroom and bath. The third component “Average Edge Occurrences” calculates the average number of connections.

Web Source

Four “Web Source” components integrate the “neo4j” and the “mediaTUM” data stock in “Grasshopper” and “Rhino” to enable further processing. As a result a list of aGraphML files will be returned, which also could be reduced to a certain number of results regarding defined criteria. The “Textual Filter” enables the definition of search parameters for the request to “mediaTUM”, e.g. the definition of a certain architect or a project date. The “Spatial Filter” enables the definition of search parameters for the “neo4j” request, e.g. number of rooms or certain room type. The third and central component, the so-called “Building Searcher”, manages the searching through “mediaTUM” and “neo4j” in consideration of the “Search Credentials” component, that are specified by other components. Additionally in the “Building Searcher” component the number of results can be restricted.


KSD research group

Chair for Architectural Informatics

AgraphML Plugin for Gephi

Please contact us, if you need support:


Previous version: Dolphin 3.0 Plug-In

Discussion Forum

This group does not have any discussions yet.

Comment Wall


You need to be a member of Dolphin to add comments!

Comment by architect on April 16, 2018 at 6:40pm

any example file pls ?!


Members (16)






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service