# RaumReport – Schnelleinstieg

> Dieser Guide führt dich in **6 Schritten** vom Archicad-Export bis zum fertigen Raumbuch-PDF und zurück nach Archicad.

---

## Schritt 1 – Archicad: Eigenschaften erstellen

1. Öffne dein Archicad-Projekt.
2. Menü **Optionen → Eigenschaften-Manager** 
3. Erstelle eine Gruppe "Raumbuch" und darin die gewünschten Hauptheader und Subheader für das Raumbuch (1.).
4. Erstelle je Header eine Gruppe (2.) und innerhalb dieser Gruppe alle gewünschten Eigenschaften (3.).
5. Klicke auf "OK"`.
![Eigenschaften]({{base}}/Eigenschaften.png)


---

## Schritt 2 – Archicad: Interaktive Auswertung erstellen

1. Gehe im Navigator auf **Auswertungen → Elemente → Rechtsklick: "Neues Auswertungsschem"** und benenne es "Raumbuch" o.ä.
2. Erstelle in dem Schema, welches als Kriterium oben "Elementtyp ist gleich Raum" enthält, alle gewünschten Auswertungsfelder, angefangen von der GUID des Raumes, über Raumnummer und Raumnamen (alles Pflichtfelder), sowie Raumabmessungen und alle vorher für das Raumbuch erstellten Eigenschaften und Überschriften. Ordne die Überschriften, welche Du in den EIgenschaften erstellt hast immer oberhalb von den folgenden Eigenschaftenfeldern an, welche ausgewertet werden sollen. 
![Auswertung_Schema]({{base}}/Auswertung_Schema.png)
3. **Rufe die Auswertung auf**:
- Überschriften bzw. Header (also die späteren Bereichsüberschriften im Raumbuch) der Hauptebene erhalten das Suffix [H] hinter dem Headertext (mit Leerzeichen)
- Header der 1. Subebene erhalten das Suffix [H1] hinter dem Headertext (usw.). 
- Alle Eigenschaftenwerte erhalten das Suffic [P] (Properties)
- Archicad Built-in Properties wie Raumname und Raumnummer: [BI]
- GDL-Parameter erhalten das Suffix [GDL] 
- alle automatisch berechneten Werte wie Raumfläche haben kein Suffix.
![Auswertung_AC]({{base}}/Auswertung_AC.png)
4. Menü **Ablage → Sichern als ... → Tab Text** – nicht XLS oder CSV, z. B. `Raumbuch_EFH.txt`

---

## Schritt 3 – Installation von RaumReport

1. Rufe die vergebene URL auf (lokaler oder Web-Server).
2. Folge den Installations-Schritten 
![Install_02]({{base}}/Install_02.png)

---

## Schritt 4 – Import in RaumReport

1. Melde dich als **Admin** oder später als **Redakteur**  an.
2. Öffne ein Projekt (oder erstelle über **Neues Projekt** eines).
![NeuesProjekt]({{base}}/NeuesProjekt.png)
3. Klicke auf **Räume importieren**.
4. Wähle deine `.txt`-Datei aus und klicke **Importieren**.
5. RaumReport erkennt automatisch:
   - Spaltenstruktur und Abschnitte (`[H]`, `[BI]`, `[P]`, `[GDL]`)
   - Geschoss-Spalte (z. B. `Geschoss`, `Story Name`)
   - Archicad-GUID (für spätere Reimport-Zuordnung)
![ImportRaum]({{base}}/ImportRaum.png) 

Nach dem Import erscheint die **Raumliste** gegliedert nach Geschossen.
![Raeume_Geschoss]({{base}}/Raeume_Geschoss.png)

---

## Schritt 5 – Räume bearbeiten

### Raumdetails ansehen
Klicke auf einen Raumnamen → **Raumdetail-Ansicht** zeigt alle Felder mit Herkunfts-Kennzeichnung:
- **Kein Badge** – Wert direkt aus Archicad (berechnet)
- **AC** (grau) – Archicad-Eigenschaft, nicht geändert
- **Manuell** (orange) – vom Benutzer überschrieben

### Felder bearbeiten
Klicke auf **Raum bearbeiten** (oben rechts):
- Felder mit `[BI]`- oder `[P]`-Suffix sind editierbar.
- Felder ohne Suffix oder mit `[GDL]` sind schreibgeschützt (Archicad-Werte).
- Geänderte Felder erhalten einen **orangefarbenen Rahmen** und ein `✎`-Badge.
- Mit dem **Uhr-Icon** öffnest du den Änderungsverlauf eines Feldes.
- Über das **Sprechblasen-Icon** kannst du einen Kommentar zum Feld hinterlegen.

### Status setzen
Wähle im Bearbeitungsformular den Status:
`ausstehend` → `in Bearbeitung` → `freigegeben`

### Fotos und Grundrisse
Im Bearbeitungsformular gibt es Photo-Slots (**Grundrissausschnitt**, **Ansicht 1**, **Fotovorschau**):
- Fotos per Klick hochladen oder ersetzen.
- Grundrisse können automatisch per **Grundriss-Import** (ZIP aus Python-Script) befüllt werden.

---

## Schritt 6 – PDF-Ausgabe

### Einzel-Raum-PDF
Auf der Raumdetail-Seite: Klicke **PDF** (oben rechts) → öffnet sich in einem neuen Tab.

### Gesamt-Raumbuch
Im Projekt unter **Exporte → PDF Raumbuch** oder direkt auf der Projektseite:
- **Alle Räume** oder nach Geschoss/Gebäude filtern.
- Optional: Selektion über Checkboxen in der Raumliste, dann „PDF (Auswahl)".
- Das PDF enthält: Deckblatt (optional), Inhaltsverzeichnis (optional), alle Raumblätter mit Fotos, Abschlussblatt mit Statistik.

### ZIP (Einzelblätter)
**Exporte → ZIP** erzeugt ein Archiv mit einem PDF pro Raum – praktisch für die Weitergabe an Fachplaner.

### Layout anpassen
Unter **Layout-Vorlagen** (Admin) lassen sich Schriftgrößen, Farben, Seitenränder, Header/Footer und Fotoslots konfigurieren.

---

## Schritt 7 – Bauteile importieren (Fenster, Türen, Objekte, Lichtquellen)

RaumReport kann Bauteile aus Archicad einlesen und mit eigenen Eigenschaften anreichern.

### Python-Sync-Script herunterladen
Unter **Bauteile → Script herunterladen** ein vorkonfiguriertes Script laden:
```
raumbuch_elements_{Gebäude-ID}.py
```
Das Script enthält bereits URL, API-Token und Gebäude-ID.

### Sync ausführen
Voraussetzungen: Python 3.9+, `archicad`-Paket (`pip install archicad`), Archicad geöffnet.

```bash
python3 raumbuch_elements_{ID}.py
```

Das Script liest alle Bauteile der Räume aus Archicad und überträgt sie an RaumReport.

### Bauteile ansehen und bearbeiten
Im Raum-Detail (Tab **Bauteile**) erscheinen Fenster, Türen, Objekte und Lichtquellen mit ihren Archicad-Eigenschaften.
- **Spaltenansicht:** Jedes Bauteil als Zeile, Properties als Kacheln
- **Zeilenansicht:** Properties als Zeilen, Bauteile als Spalten — ideal für den Vergleich
- Editierbare Properties (`[P]`) können direkt in der Tabelle überschrieben werden

### Overrides zurückschreiben (Writeback)
Manuell geänderte Werte können per Writeback-Script zurück nach Archicad übertragen werden:

**Bauteile → Writeback-Script herunterladen**, dann:
```bash
python3 raumbuch_elements_writeback.py
```

---

## Schritt 8 – JSON/Python-Export und Reimport nach Archicad

Damit geänderte Werte aus RaumReport zurück in die Archicad-Eigenschaften übernommen werden:

### JSON exportieren
**Exporte → JSON herunterladen** – erzeugt eine Datei `raumbuch_{Projektnummer}.json` mit allen Raumwerten, die Archicad-GUIDs als Schlüssel nutzen.

> **Hinweis:** Der JSON-Export erfordert, dass alle Räume eine **Archicad-GUID** haben. Falls die Spalte in der TAB-Datei fehlte, erscheint ein Warnhinweis auf der Export-Seite.

### Python-Script herunterladen
**Exporte → Python-Script** – lädt ein vorkonfiguriertes `.py`-Script herunter:
```
raumbuch_{Projektnummer}_reimport.py
```
Das Script enthält bereits:
- die Zuordnung aller `[BI]`-Spalten zu Archicad Built-in Properties
- die Zuordnung aller `[P]`-Spalten zu Archicad User Properties (mit Gruppenname)
- die Logik zum Überschreiben via GDL API

### Reimport in Archicad durchführen
**Voraussetzungen:** Python 3.9 oder höher; Archicad geöffnet mit aktivierter JSON-API.

Keine manuelle Paket-Installation nötig — das Script richtet sich beim ersten Aufruf automatisch ein.

```bash
# Archicad starten, dann im Terminal:
python3 raumbuch_2026-001_reimport.py       # macOS / Linux
python  raumbuch_2026-001_reimport.py       # Windows
```

Beim **ersten Lauf** legt das Script eine isolierte Python-Umgebung (`.raumreport_venv`) im selben Ordner an und installiert das `archicad`-Modul (ca. 30–60 Sek). Bei späteren Läufen startet der Reimport sofort.

Das Script:
1. Verbindet sich mit der laufenden Archicad-Instanz
2. Sucht jeden Raum anhand seiner GUID
3. Schreibt nur die Felder zurück, die in RaumReport **manuell geändert** wurden (erkennbar am `[P]`-Suffix)
4. Gibt ein Log mit allen Änderungen und eventuellen Fehlern aus

---

## Übersicht: Workflow-Diagramm

```
Archicad  ──► TAB-Export (.txt)          Archicad  ──► Python Sync-Script
                    │                                         │
                    ▼                                         ▼
             RaumReport Import                      Bauteile importieren
                    │                              (Fenster/Türen/Objekte/Licht)
         ┌──────────┼──────────┐                             │
         ▼          ▼          ▼                             ▼
      Felder     Fotos/     Status              Bauteile bearbeiten (Overrides)
     bearbeiten Grundrisse  setzen                           │
         │                                                   ▼
         ▼                                        Writeback-Script
     PDF / ZIP                                  (Overrides → Archicad)
     (Ausgabe)
         │
         ▼
     JSON + Python-Script
         │
         ▼
    Archicad Reimport
    (Raumeigenschaften aktualisieren)
```

---

## Häufige Fragen

**Welche Archicad-Version wird unterstützt?**
Alle Versionen, die einen TAB-Export und die Python JSON-API unterstützen (Archicad 24+). Für den Bauteile-Import wird Archicad 27+ empfohlen.

**Kann ich mehrere Gebäude verwalten?**
Ja. Pro Gebäude wird eine eigene App-Instanz betrieben (eigene URL, eigene Datenbank). → Siehe [MEHRERE_GEBAEUDE.md](MEHRERE_GEBAEUDE.md)

**Muss ich nach einem Update das Sync-Script neu herunterladen?**
Nur wenn sich das Script-Format geändert hat (steht in den Update-Hinweisen). Im Zweifel unter **Bauteile → Script herunterladen** neu laden.

**Was passiert beim erneuten Import?**
Der Delta-Import gleicht vorhandene Räume per GUID oder Raumnummer ab. Manuell geänderte Felder (erkennbar an `✎ Manuell`) werden **nicht** überschrieben.

**Wie setze ich einen manuellen Wert zurück auf den Archicad-Wert?**
Im Bearbeitungsformular das Feld leeren und speichern → der Override wird entfernt; beim nächsten Import wird der Archicad-Wert wieder eingetragen.

**Was bedeuten die Suffixe in der TAB-Datei?**

| Suffix | Bedeutung | Editierbar |
|--------|-----------|------------|
| `[BI]` | Archicad Built-in Property | Ja |
| `[P]`  | Archicad User Property | Ja |
| `[GDL]` | GDL-Parameter (read-only) | Nein |
| Kein Suffix | Berechneter Wert | Nein |
| `[H]` / `[H0]` | Bereichsüberschrift Ebene 0 | – |
| `[H1]` | Bereichsüberschrift Ebene 1 | – |
