Ein BRX-Plugin (C++/Qt6) für die automatisierte Massenverarbeitung von DWG-Dateien und zur Erstellung von Planungsunterlagen für die Gebäudeautomation (nach VDI3814) in BricsCAD V26. Statt Zeichnungen einzeln zu öffnen und manuell zu bearbeiten, können wiederkehrende Aufgaben über beliebig viele Dateien in einem Durchgang erledigt werden. Dazu können Texte, Attributwerte, Layer-Operationen und Lisp-Skripte genutzt werden. Im openCirt Tab können außerdem alle Aufgaben für die Erstellung von GA-Automationsschemata inkl. GA-FL erledigt werden. openCirt ist DIE freie GA-Planungssoftware für alle - kostenlos, hocheffizient und einfach zu bedienen.
Das Plugin bietet sechs Funktionsbereiche als Tabs im Hauptfenster:
General – Quellordner, Dateifilter, Backup-Konfiguration Text – Suchen/Ersetzen in DBText und MText (inkl. Regex, Mehrfachersetzung) Attributes – Blockattribute gezielt ändern (nach Block, Tag, Sichtbarkeit filterbar) Layers – Layer löschen, umbenennen, einfrieren, Farbe/Linientyp/Transparenz ändern LISP – Eigene LISP-Skripte automatisiert auf alle DWG-Dateien anwenden OpenCirt – GA-Planungsautomatisierung (Plankopf, BMK, BAS, GA-FL, Sensorliste, IO-Belegung, Deckblatt, Inhaltsverzeichnis, PDF-Publish)
- BricsCAD V26 (Windows, 64-Bit)
- BRX SDK V26 (separat von Bricsys zu beziehen, siehe unten)
- Qt 6.8+ (MSVC 2022, 64-Bit)
- CMake 3.20+
- Visual Studio 2022 (MSVC v143 Toolset)
Das BRX SDK ist proprietär und wird von Bricsys bereitgestellt. Es ist nicht Teil dieses Repositories. Nach dem Bezug muss das SDK unter external/brx_sdk/ abgelegt werden, sodass die Struktur wie folgt aussieht:
external/
brx_sdk/
inc/ ← Header-Dateien
inc64/
lib64/ ← brx26.lib etc.
docs/
Das SDK kann über das Bricsys Developer Network bezogen werden: https://www.bricsys.com/en-eu/developers
CLEAN_BUILD.batDas Skript führt folgende Schritte aus:
- Löscht alte Build-Artefakte
- CMake-Konfiguration (Visual Studio 17 2022, x64, Release)
- MSBuild-Kompilierung
Das fertige Plugin liegt anschließend unter build_windows\Release\batchtool.brx.
mkdir build_windows
cd build_windows
cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --config ReleaseDie Pfade in der Root-CMakeLists.txt müssen ggf. an die lokale Installation angepasst werden:
set(QT6_DIR "C:/Qt/6.8.3/msvc2022_64")
set(BRICSCAD_DIR "C:/Program Files/Bricsys/BricsCAD V26 de_DE")- BricsCAD starten
- Befehl:
APPLOAD - Zur Datei
batchtool.brxnavigieren und laden - In der Kommandozeile erscheint: "Batch Processing Plugin geladen. Befehl: BATCHTOOL"
APPLOADaufrufen- Unten auf "Inhalt..." (Startup Suite) klicken
batchtool.brxzur Startup Suite hinzufügen
| Befehl | Beschreibung |
|---|---|
BATCHTOOL |
Öffnet das Hauptfenster |
- Im Tab General den Quellordner mit DWG-Dateien auswählen
- In einem oder mehreren Tabs die gewünschten Operationen konfigurieren
- Start klicken
- Fortschritt im Log beobachten
Legt fest, welche Dateien verarbeitet werden: Quellordner, Include/Exclude-Filter, Unterordner-Option und Backup-Einstellungen (Speicherort, Zeitstempel, alte Backups löschen).
Suchen/Ersetzen in allen Textobjekten. Unterstützt Regex, Groß-/Kleinschreibung, ganze Wörter und eine Ersetzungstabelle für mehrere Paare gleichzeitig. Texttypen (einzeilig, mehrzeilig, Bemaßung, Leader) sind einzeln aktivierbar.
Ändert Attributwerte in Block-Referenzen. Filterbar nach Blockname und Attribut-Tag. Ein leeres Suchfeld überschreibt den kompletten Attributwert. Optionen für unsichtbare, konstante und verschachtelte Attribute.
Layer-Operationen werden als Liste definiert und in Reihenfolge ausgeführt. Schnelloperationen: Löschen (inkl. Entitäten), Einfrieren, Farbe ändern (AutoCAD-Farbgrid), Umbenennen. Die Layer-Analyse scannt alle DWGs und listet vorhandene Layer auf.
Führt LISP-Skripte automatisiert auf alle DWGs aus. Das Plugin erzeugt eine SCR-Datei und führt sie über _.SCRIPT in der aktuellen BricsCAD-Instanz aus.
Wichtige Konvention: Der Funktionsname im LISP-Skript muss dem Dateinamen (ohne .lsp) entsprechen.
Datei: sk3.lsp → muss Funktion (defun sk3 ...) enthalten
Das Plugin generiert pro DWG:
_.OPEN "datei.dwg"
(progn (load "sk3.lsp")(princ))
(progn (sk3)(princ))
_QSAVE
_.CLOSE
LISP-Vorlage:
;;; mein_skript.lsp
(defun mein_skript ( / )
(command "_.LAYER" "_Make" "Neu" "")
(princ "\nmein_skript: Fertig.\n")
(princ)
)Hinweise:
- Das abschließende
(princ)verhindert unerwünschte Ausgaben in die Kommandozeile. - Die aktuell geöffnete Zeichnung darf nicht in der Batch-Liste enthalten sein.
- Während der Verarbeitung BricsCAD nicht manuell bedienen.
GA-Planungsautomatisierung (Gebäudeautomation) für TGA-Projekte. Funktionen:
- Plankopf – CSV-basierte Plankopf-Attribute setzen (AG, AN, PR etc.)
- BMK-Nummerierung – Betriebsmittelkennzeichen automatisch vergeben
- BAS-Generierung – Bauautomationssystem aus BAS.csv erzeugen
- GA-FL – Funktionslisten zweiphasig: Datenextraktion aus Quell-DWGs, dann GA-FL-Blätter erzeugen und füllen
- Summenblätter – ASP-Summe, Los-Summe, Projekt-Summe automatisch generieren
- Deckblatt – Deckblätter für Los/ASP/Gewerk/Anlage-Hierarchie
- Inhaltsverzeichnis – Automatische Erstellung mit 21 Einträgen pro Seite
- Sensorliste – Automatische Erstellung aus Keyword-Matching gegen Blockattribute (
SensorKeywordLoader, Referenz:sensor.csv) - IO-Belegung – ODS-Vorlagen-basierte Generierung von IO-Belegungsplänen (
OdsTemplateWriter, Referenz:iomodule.csv) - PDF-Publish – DSD-basierter Multi-Sheet-PDF-Export
├── CMakeLists.txt Root-Build-Konfiguration
├── CLEAN_BUILD.bat Build-Skript
├── LICENSE BSL 1.1 Lizenz
├── .gitignore
├── docs/
│ └── DEVELOPMENT.md Entwickler-Hinweise
├── external/
│ └── brx_sdk/ BRX SDK (nicht im Repository)
├── sample_project/
│ ├── 00- BricsCAD Plugin/ Kompiliertes BRX-Binary
│ ├── 01- Referenzen/
│ │ ├── BAS.csv BAS-Konfiguration
│ │ ├── GA_FL_VORLAGE.ods GA-FL Vorlage
│ │ ├── iomodule.csv IO-Modul-Referenzdaten
│ │ ├── opencirt_config.json Projektkonfiguration
│ │ ├── plankopfdaten.csv Plankopf-Attribute
│ │ └── sensor.csv Sensor-Referenzdaten
│ ├── 02- Skripte/ LISP-Skripte
│ ├── 03- Blockbibliothek/ DWG-Blockvorlagen
│ ├── 04- Vorlagen/
│ │ ├── OC_VORLAGE_DIN_A2_V12.dwg
│ │ ├── OC_VORLAGE_EINTRAG_INHALT_DIN_A2_V_4.dwg
│ │ ├── OC_VORLAGE_GA_FL.dwg
│ │ ├── OC_VORLAGE_IO_BELEGUNG_V_1.ods
│ │ └── OC_VORLAGE_SENSORLISTE_V_1.ods
│ ├── 05- Projekt Zeichnungen/
│ ├── 06- Plot/
│ └── BEDIENUNGSANLEITUNG.md Bedienungsanleitung (12 Kapitel)
└── src/
├── windows_fix.h Qt 6.8+ / Windows SDK Kompatibilität
├── brx_force_include.h BRX Platform-Header
├── core/
│ ├── DwgProcessor.cpp/h DWG-Verarbeitungslogik (Text, Attribute, Layer)
│ └── LispProcessExecutor.cpp/h In-Process LISP-Ausführung via _.SCRIPT
├── data/
│ ├── ProcessingOptions.h Datenstrukturen und Optionen
│ ├── ProcessingOptionsImpl.cpp LISP Script Manager
│ └── Configuration.cpp Settings-Persistenz
├── mfc_stubs/ Leere MFC/ATL-Stubs (Qt-basiert, kein MFC)
├── plugin/
│ ├── BatchProcessingPlugin.cpp/h BRX Entry Point (acrxEntryPoint)
│ └── Commands.cpp/h Befehlsregistrierung
├── ui/
│ ├── MainWindow.cpp/h Hauptfenster mit Tab-Verwaltung
│ ├── OpenCirtTab.cpp/h GA-Planungsautomatisierung
│ └── widgets/
│ └── AcadColorGrid.cpp/h AutoCAD-Farbauswahl-Widget
└── utils/
└── Logger.h Logging-Hilfsfunktionen
- Vor dem ersten produktiven Einsatz immer mit aktivierten Backups arbeiten.
- LISP-Skripte vorher manuell an einer einzelnen DWG testen.
- Layer-Analyse vor Layer-Operationen durchführen, um Tippfehler zu vermeiden.
- Mehrere Tabs können gleichzeitig aktiviert sein. Die Verarbeitung erfolgt in der Reihenfolge: Text → Attribute → Layer → LISP.
Business Source License 1.1 (BSL 1.1) – siehe LICENSE und ADDITIONAL_TERMS.
Kurzfassung: Nutzung für interne Zwecke, kommerzielle Projekte und Dienstleistungen ist erlaubt. Verkauf als eigenständiges Produkt, SaaS-Angebote und proprietäre Forks sind untersagt. Ab dem Change Date (2030-03-02) wird die Software unter AGPLv3 verfügbar. Nutzung auf eigenes Risiko – vor jedem Batch-Lauf Backups erstellen!
Entwickelt mit BRX SDK V26, Qt 6, C++17, CMake.