This project is part of Unfolding the Archive: New Dimensions of Access to Born-digital Architecture Collections, led by Ania Molenda at the Nieuwe Instituut. It explores new ways to access and interpret born-digital architecture archives, combining methods from museum studies, archival studies, architecture, and digital humanities. The goal is to develop prototypes and tools that enable dynamic, multimodal, and participatory exploration of digital archival materials, focusing on underused metadata as new forms of discovery.
This repository provides scripts to extract, count, and filter geometries and layer names from a collection of AutoCAD DWG/DXF files. It also includes utilities for handling plot styles and visualizing the results.
unfolding-the-archive/
├── data/ # Source DWG/DXF files (not included in repo)
├── extract-layer-names/ # Scripts for extracting layer names and plot styles
├── file-structure/ # Scripts to generate file-structure.json
├── file-structure-app/ # Svelte app for visualization
├── geometries/ # Scripts for extracting and filtering geometry data
├── output/ # Generated JSON files (results)
├── libredwg/ # LibreDWG integration
├── dxf-json/ # DXF to JSON utilities
├── dxf2json/ # Alternative DXF to JSON utilities
├── prototypes/ # Experimental or prototype scripts
├── package.json
├── readme.md
- Node.js (v18+ recommended)
- DWG/DXF files in the
data/
folder
From the project root:
cd file-structure
node index.js --folder "Folder Name"
This will scan the data/
folder and generate output/file-structure-Project_Name.json
, which is required by the other scripts.
cd extract-layer-names
node index.js --folder "Folder Name"
This will process all DWG/DXF files listed in output/file-structure-Project_Name.json
and write the results to output/layer-names-Project_Name.json
.
cd geometries
node index.js --folder "Folder Name"
This will process the files and output:
output/geometries-Project_Name.json
— all geometriesoutput/geometries-count-Project_Name.json
— geometry usage counts
To parse CTB plot style files:
cd extract-layer-names/plot-styles
node index.js
This will parse all .ctb
files in data/
and output JSON files in output/
. This is helpful when visualising the layer names.
The
prototypes/
folder contains additional SvelteKit prototypes. For more details, see the README files within those folders.
This project uses LibreDWG and dxf-parser, among other open-source tools.