GDL, CSV & Automation – A case study on signage package creation

Accepting the challenge

In preparation for the opening of the aquarium, we were tasked by the client to submit a signage package for tender. The package would need to show the design of all selected signages for final client approval, alongside auxiliary information such as location plans and schedules.

However, at the inception of this exercise, only the concept framework was officially approved; the final list of signage and content were still subject to change.

To reduce idle time, we decided to devise a workflow that would allow us to work concurrently with the finalization process. As long as the placeholders were set in place, once the finalized content come in, we would be able to mass produce for the final submission in a timely manner.

Screenshots from Archicad model. The signages vary in sizes and purposes. Constrained by a variety of circumstances, it was critical to automate the creation process as much as possible.

Standardization and Automation

For automation to be as smooth and obstruction-free as possible, standardization is key. Standardized designs, where only the content but the layout varies (such as room tags on doors), would be the most suitable to be mass produced.

Additionally (and coincidently), as part of the design decision, dimensions of the signage were standardized to keep cost low, so we were able to take advantage of this decision to allocate the time saved to work on the customized designs, such as directional signs. About 90% of our final exports are of standardized format.

Samples of Room Tags with standardized layout, thus can be mass produced through automation.
Samples of Directional Signs where both the content and layout varies, and would require work for customization.


To facilitate the automation process, we had to first understand and identify the final deliverables. For the package submission, we would need to provide location plans to indicate the placements of all the signs, elevations to show the design of each sign, some 3D views to show the signs in context, as well as schedules with details such as dimensions and electric provision requirements.

Once we clarify what was the required for the final outcome, we planned for the tools we need to achieve the goals.

For the location plans, we would utilize a custom label object for this purpose. Information to be displayed include signage subtype, unique ID, electric provision indication and a leader pointing to the exact location on the plan.

For the rest of the requirements, we would utilize a custom 3D geometry object, where the physical geometry of the sign and the design would be presented in the 3D model space.

A diagram that illustrates the data and work flow of producing the signage package.

Custom GDL Object

Once we identified the tools we need, we could proceed to create the custom GDL objects.

With over 200+ signs to be produced, it would be the most effective to organize the records in tabular format. Since GDL objects reads CSV files, CSV was the obvious choice of format for data exchange. The GDL objects would act as containers that first receive the data, and then display them in the desired format in Archicad.


Since the custom GDL object rely on getting data from the CSV file to display and generate relevant geometries, managing and maintaining the data on Airtable ensures that there is only one source of data, and that the data is always up to date. Airtable also allows team to work on the same database collaboratively, which is essential for a team that works across regions and time zones.

For this project, Airtable was utilized to create 2 main datasets.

In the first dataset CSV 1, which was considered the master dataset, each record (i.e. sign) would contain an unique ID which acted as the key point of reference for the rest of the data. In Archicad, the user simply need to select the unique ID of the signage they wish to display the information of, and the rest of the information would be called out from the CSV and displayed automatically. There was no need to manually enter or set up parameters such as dimensions in Archicad anymore. This workflow ensured data integrity was maintined throughout the project, since there would only be one single source of truth.

Unique ID generation in Airtable (Click to expand for extra info!)

In Airtable, the Unique ID was generated from a custom formula which concatenates the Subtype and Index together. For example, the 3rd sign in the type group “AA” would have a unique ID of “AA-03” (“AA” and “03” put together).

Following that, the image file name was derived from a formula that concatenates the unique ID with “-img.png”. Expanding from the previous example, the image file name would then be “AA-03-img.png”.

Generating the unique ID and file names by formulas with variables ensured consistency across the records.

Example 1

For the 2D labels, the subtypes’ representative colours had to be displayed. This information was recorded as numbers that corresponds to the pen index in Archicad. When the label is placed in Archicad, the GDL would automatically display the color according to the pen index. This way, manual work is omitted, and if mistakes were made, only one original data source (airtable) had to be amended. The rest of the documentation (plans and schedules) would be updated accordingly.

Example 2

Each signage require an image file to be used as the front face of its 3D geometry. As long as there’s a PNG with a name that correspondings to the one in the dataset, the GDL object would place that image in the object, meaning the manual selection of image file per object is omitted. This was also a practical workflow to anticipate any graphical amendments, since it could be instantly incorporated by simply replacing the file with an identical name.


As for the batch creation and export of graphics with varied data, that was when the second CSV file came in. Let’s say we would like to create educational panels for 100 animals, one per animal, and each educational panel would contain the name, an image and a description of the animal.

Since the design layout was already approved, all we had to do was to fill in the relevant information and do a batch export to finish the work. Layouts were set up in Illustrator, with text and images placeholders in place, awating for the final content. The Illustrator script “Variable Importer” by Vasily Hall was a great tool be to used for this purpose. Further information of the plugin can be found here:

Layout with variables placeholders.

Then, CSV 2, which contained all the records with the respective fields (animal name, animal image and animal description), were imported via Variable Importer into Illustrator.

Once loaded, Illustrator will create one image per record with all the respective data from the CSV file.

Obviously, the samples given here were simplied. In reality, each piece of texts had to be translated into 3 more languages, quadupling the amount of fields per record. With 100 animals, it would have been tedious to handle without a standardized and automated workflow.

Illustrator workflow in a nutshell.

Creation of LCFs

Time to bring all that was talked about into Archicad!

Before placing the objects in Archicad, one key step had to be done first in order for the objects to work properly, was to create LCFs (Library Container Files) via the library manager. For details, do let us know if you’re interested – we can share in another blog post in the future! For now, we will move on to the next step.

Objects placement in Archicad

Once all the objects are loaded in and the CSV data updated (by LCFs), simply place the 3D signage object to where it should be on the layout plans.

Then, in the settings dialogue, select the Subtype and Unique ID from the drop-down list. Relevant information, such as dimensions, placement level, and image file name from the finish floor, would be automatically extracted from the CSV. These data will then inform the GDL object to create a 3D geometry that corresponds to the sizes indicated, pull in the corresponding image file as the front surface, as well as place the signage at the height level it was recorded.

Select the subtype and the unique ID of the signage to be displayed. Move slider sideways to see how the different records are displayed.

Lastly, place the label object on top of the 3D object to create a tag that would automatically display information such as the subtype, ID, subtype color and electrical provision indication. The control of which parameter to be displayed in the label can be found in the object’s settings dialogue, as well as in MVO settings. Hotspots are available for controlling the size and location of the leaders.

Label object settings dialogue. Move the slider sideways to see the parameter display control in work.

Additional parameters for controlling the 2D representation, such as adding handlers, projection view, lines/ colors, etc. can be found in the object settings and the MVO.

MVO settings.


The more we work on projects where decisions are always delayed and changes are inevitable, the more we uphold the principle that designers should think more about the process of design ahead of the actual act of designing.

In this case, we started by outlining what the final outcomes were, set up a framework and devised a workflow where standardization can be applied in maximal for as much automation as possible, while keeping a certain amount of flexibility so as to be prepared for changes.

This exercise was also a great example of team collaboration where people with different expertise work towards the same goal. Without a vision, the process would not have gone as smoothly.

All in all, creative way of utilizing suitable tools helps boost productivity. The key is to not be afraid of exploring technologies and identifying the suitable ones to incorporate in your design process. We hope you enjoyed this article and would consider applying similar principles to your projects in all shape and sizes.

Article contributors:
Melissa Chan, Jae Kim, Grzegorz Wilk