Eine schlanke Arbeitsumgebung für die bidirektionale Konvertierung zwischen ArchiCAD GSM-Dateien und HSF-Quelldateien (Human-Source-Format).
GDLnucleus Light ermöglicht es, ArchiCAD GDL-Bibliothekselemente in einem textbasierten Format (HSF) zu bearbeiten:
ihr-projekt.project/
├── 01_gsms/ # GSM-Bibliotheksdateien
│ └── bibliotheksname/ # Name Ihrer Bibliothek
│ └── objektname.gsm # Ihre GDL-Objekte
│
├── 02_hsf/ # HSF-Quelldateien
│ └── objektname/
│ └── objektname/
│ ├── scripts/ # GDL-Scripts (1d.gdl, 2d.gdl, etc.)
│ ├── images/ # Eingebettete Bilder
│ ├── paramlist.xml # Parameterliste
│ └── ...
│
├── 03_backups/ # Backups & Arbeitsverzeichnis
│ ├── objektname/ # Temporär während GSM2HSF
│ └── timestamped/ # Zeitgestempelte Backups
│
├── 04_logs/ # Log-Dateien
├── .vscode/ # VS Code Konfiguration
│ ├── tasks.json # Build-Tasks
│ ├── settings.json # Projekt-Einstellungen
│ └── launch.json # Debug-Konfiguration
│
├── bin/
│ └── gdlconverter.py # Konvertierungs-Script
│
├── gdlconfig.json # Konfigurationsdatei
└── projekt.code-workspace # VS Code Workspace
Auf macOS heißt der Befehl normalerweise python3, aber die Tasks verwenden python.
Erstellen Sie einen Symlink (einmalig):
# Terminal öffnen und ausführen:
sudo ln -s /usr/bin/python3 /usr/local/bin/python
# Passwort eingeben und fertig!
Alternative: Sie können auch die Tasks manuell in .vscode/tasks.json von python auf python3 ändern.
Hinweis (empfohlen): Das Script bin/gdlconverter.py enthält nun einen Shebang (#!/usr/bin/env python3) und ist ausführbar. Die VS Code Tasks sind so konfiguriert, dass sie das Skript direkt ausführen (${workspaceRoot}/bin/gdlconverter.py) und PYTHONUNBUFFERED=1 setzen — das entspricht dem bisherigen -u-Flag. Prüfen Sie die Dateiberechtigungen mit ls -l bin/gdlconverter.py und machen Sie die Datei ggf. ausführbar mit chmod +x bin/gdlconverter.py.
Erstellen Sie die Basis-Ordnerstruktur:
mkdir -p 01_gsms/ihre-bibliothek
mkdir -p 02_hsf
mkdir -p 03_backups/timestamped
mkdir -p 04_logs
Kopieren Sie Ihre GSM-Dateien nach:
01_gsms/ihre-bibliothek/objekt1.gsm
01_gsms/ihre-bibliothek/objekt2.gsm
Wichtig: Der Ordnername unter 01_gsms/ wird automatisch als Bibliotheksname erkannt!
GDLnucleus Light funktioniert auf Windows genauso wie auf macOS. Beachten Sie nur folgende Unterschiede:
python --version
Sollte zeigen: Python 3.x.x
Typische Pfade unter Windows:
C:\Program Files\Graphisoft\ArchiCAD 27\LP_XMLConverter.exe
C:\Program Files\Graphisoft\ArchiCAD 26\LP_XMLConverter.exe
C:\Program Files\Graphisoft\ArchiCAD 28\LP_XMLConverter.exe
Die Konfiguration in gdlconfig.json ist bereits für Windows vorbereitet:
"platforms": {
"windows": {
"lpxmlconverter": "C:\\Program Files\\Graphisoft\\ArchiCAD 27\\LP_XMLConverter.exe"
}
}
| Aspekt | macOS | Windows |
|---|---|---|
| Python Befehl | python3 |
python |
| Pfadtrennzeichen | / |
\ (wird automatisch behandelt) |
| Tastenkürzel | Cmd+Shift+B |
Ctrl+Shift+B |
| Terminal | Terminal.app / iTerm | PowerShell / cmd |
Gute Nachricht: Die Tasks in VS Code/Cursor funktionieren auf beiden Plattformen identisch!
python3 auf macOS/Linux, python auf Windows) wird automatisch verwendetÖffnen Sie gdlconfig.json und passen Sie den Pfad zum LP_XMLConverter an:
{
"lpxmlconverter": "/Applications/Graphisoft/AC27/ArchiCAD 27.app/Contents/MacOS/LP_XMLConverter.app/Contents/MacOS/LP_XMLConverter",
"printtimes": false,
"passwords": {},
"gsmbackupdirectories": [
{
"directory": "{$projectpath}/03_backups/timestamped",
"filename": "{$filename}_{$strftime}.gsm",
"strftime": "%Y_%m_%d_%H_%M"
}
],
"platforms": {
"windows": {
"lpxmlconverter": "C:\\Program Files\\Graphisoft\\ArchiCAD 27\\LP_XMLConverter.exe"
},
"darwin": {
"lpxmlconverter": "/Applications/Graphisoft/AC27/ArchiCAD 27.app/Contents/MacOS/LP_XMLConverter.app/Contents/MacOS/LP_XMLConverter"
}
}
}
macOS:
# Standard-Pfad ArchiCAD 27
/Applications/Graphisoft/AC27/ArchiCAD 27.app/Contents/MacOS/LP_XMLConverter.app/Contents/MacOS/LP_XMLConverter
# Standard-Pfad ArchiCAD 26
/Applications/Graphisoft/AC26/ArchiCAD 26.app/Contents/MacOS/LP_XMLConverter.app/Contents/MacOS/LP_XMLConverter
Windows:
C:\Program Files\Graphisoft\ArchiCAD 27\LP_XMLConverter.exe
Benennen Sie gdl-nucleus-light.code-workspace um, damit sie zu Ihrem Projekt passt:
mv gdl-nucleus-light.code-workspace ihr-projekt.code-workspace
Öffnen Sie die Datei und ändern Sie den Namen:
{
"folders": [
{
"name": "ihr-projekt.project",
"path": "."
}
],
"settings": {}
}
Die GDL Task Runner Extension macht die Verwendung der Tasks noch einfacher:
Extension installieren:
.vscode/task-runner-extension/gdl-task-runner-1.0.0.vsixExtensions → ... (Drei Punkte) → Install from VSIX....vsix DateiVerwendung:
Vorteile:
In VS Code / Cursor öffnen:
.code-workspace DateiTask ausführen:
GSM2HSF (all files)Cmd+Shift+P → Tasks: Run Task → GSM2HSF (all files)Ergebnis:
02_hsf/objektname/objektname/ erstellt02_hsf/objektname/objektname/scripts/Scripts bearbeiten:
.gdl Dateien in 02_hsf/objektname/objektname/scripts/Task ausführen:
HSF2GSM (all files)Cmd+Shift+P → Tasks: Run Task → HSF2GSM (all files)Ergebnis:
01_gsms/bibliothek/objektname.gsm wird überschrieben03_backups/timestamped/ erstellt⸻
Bilder in GDL-Objekte einbetten
GDLnucleus Light kümmert sich automatisch um die Bildregistrierung während der HSF → GSM-Konvertierung.
Hinweis: Picture_0.png ist immer das Objektsymbol und wird nie umbenannt oder neu registriert.
| Task | Beschreibung |
|---|---|
| GSM2HSF (all files) | Konvertiert alle GSM → HSF |
| HSF2GSM (all files) | Konvertiert alle HSF → GSM |
Hinweis: Die Tasks führen jetzt das ausführbare Skript bin/gdlconverter.py direkt aus (Shebang #!/usr/bin/env python3) und verwenden PYTHONUNBUFFERED=1 für unbuffered-Ausgabe — äquivalent zu python3 -u.
Dieses Projekt nutzt die GDL Task Runner Extension für VS Code/Cursor:
Task Runner öffnen:
Task ausführen:
Output beobachten:
Alternative (ohne Extension):
Cmd+Shift+B (macOS) / Ctrl+Shift+B (Windows)Cmd+Shift+P → Tasks: Run TaskOrdnername:
mv gdl-nucleus-light.project ihr-projekt.project
Workspace-Datei:
cd ihr-projekt.project
mv gdl-nucleus-light.code-workspace ihr-projekt.code-workspace
In der Workspace-Datei:
{
"folders": [
{
"name": "ihr-projekt.project", ← hier ändern
"path": "."
}
]
}
Der Bibliotheksname wird automatisch aus dem ersten Ordner unter 01_gsms/ erkannt:
01_gsms/
└── meine-bibliothek/ ← Dieser Name wird verwendet
└── objekt.gsm
Wichtig: Der Ordnername sollte keine Leerzeichen enthalten!
In gdlconfig.json:
{
"lpxmlconverter": "/Applications/Graphisoft/AC28/ArchiCAD 28.app/...",
"platforms": {
"darwin": {
"lpxmlconverter": "/Applications/Graphisoft/AC28/ArchiCAD 28.app/..."
}
}
}
Problem: Python ist nicht installiert oder nicht im PATH.
Lösung:
python --versionProblem: Der Pfad zum LP_XMLConverter ist falsch.
Lösung:
gdlconfig.json anlpxmlconverter (Haupteintrag) und platforms.darwin.lpxmlconverterProblem: Es existiert kein HSF-Ordner für das Objekt.
Lösung:
GSM2HSF aus02_hsf/ vorhanden sindProblem: Kein Ordner unter 01_gsms/ gefunden.
Lösung:
mkdir -p 01_gsms/ihre-bibliothekProblem: GSM-Dateien liegen im falschen Ordner.
Erwartete Struktur:
01_gsms/
└── bibliotheksname/ ← Bibliotheksordner (wird automatisch erkannt)
├── objekt1.gsm ← GSM-Dateien hier!
└── objekt2.gsm
Bei jeder HSF → GSM Konvertierung wird automatisch ein Backup erstellt:
03_backups/
└── timestamped/
├── objekt_2025_12_23_14_30.gsm
├── objekt_2025_12_23_15_45.gsm
└── objekt_2025_12_23_16_10.gsm
Format: objektname_YYYY_MM_DD_HH_MM.gsm
Tipp: Alte Backups können Sie manuell löschen, wenn sie nicht mehr benötigt werden.
| Feature | Light | Vollversion |
|---|---|---|
| GSM ↔ HSF | ✅ | ✅ |
| GSM ↔ XML | ❌ | ✅ |
| LCF-Container | ❌ | ✅ |
| Parameter-CSV Export | ❌ | ✅ |
| Bild-Verwaltung | ✅ | ✅ |
| SVG → TIFF | ❌ | ✅ |
Versionskontrolle:
02_hsf/ Verzeichnis zu Git hinzu03_backups/ und 04_logs/ in .gitignoreWorkflow:
Sicherheit:
Team-Arbeit:
Bei Fragen oder Problemen:
04_logs/Version: GDLnucleus Light 1.1 Letzte Aktualisierung: Februar 2026
Kostenlose Light-Version für den persönlichen und kommerziellen Gebrauch.