Objektattribute pro Variante
Wenn sich Projekte weiterentwickeln oder komplexer werden, ergibt sich oft die Notwendigkeit, einem Attribut eines Objekts in verschiedenen Varianten unterschiedliche Werte zuzuweisen, während die meisten übrigen Objektattribute - insbesondere die Objektgeometrie - unverändert bleiben, z. B.:
- wenn die Auswirkung eines Tempolimits auf einer Straße durch den Vergleich zweier Varianten evaluiert werden soll -> unterschiedlicher Wert für das Attribut VPKW in den einzelnen Projektvarianten.
- wenn die Auswirkungen eines veränderten Verkehrsflusses durch Vergleich der prognostizierten mit den aktuellen Verkehrszahlen bewertet werden sollen -> unterschiedlicher DTV in den einzelnen Projektvarianten.
Im Allgemeinen gibt es zwei Ansätze, um unterschiedliche Objekteigenschaften in verschiedenen Projektvarianten zu erreichen:
- Ansatz 1: Duplizieren des Objekts und Bearbeiten der Attribute der Kopie. Der Aktivierungszustand (eventuell auch unter Verwendung des ObjectTree und der Gruppen) definiert, welches Objekt (Original oder Kopie) in welcher Variante aktiv ist bzw. verwendet wird.
- Vorteile: Sehr flexibel, funktioniert für jeden CadnaA-Objekttyp und jedes Attribut.
- Nachteile: Die Erstellung und Handhabung von 2 Kopien mit nahezu identischen Attributen kann umständlich sein. Außerdem sind einige Sonderfälle mit Kombination von Haus, Hausbeurteilung und Ergebnistabelle nicht möglich (z.B. unterschiedliche Hausreflexionseigenschaften in verschiedenen Projektvarianten und bei gleichzeitiger Gegenüberstellung der Ergebnisse der Hausbeurteilungen in der Ergebnistabelle).
- Ansatz 2: Ein Objekt verwenden und dessen Attributen je Variante direkt unterschiedliche Werte zuweisen.
- Vorteile: einfachere Handhabung von nur einem Objekt, einfache Übertragung von Attributen zwischen Varianten mit der Funktion Attribute kopieren
- Nachteile: Nicht ganz so flexibel, nicht alle CadnaA-Objekttypen und nicht alle Attribute (insbesondere Geometrie-bezogene) sind bei diesem Ansatz verfügbar
Dieses Kapitel beschreibt detailliert Ansatz Nummer 2 für die Verwendung individueller Objektattributwerte in verschiedenen Varianten.
Grundlegendes Konzept von Objektattribute pro Variante
Jedes Objekt hat immer einen Satz von Attributen, der "Master" genannt wird,
- der in jeder Variante verwendet wird, sofern für es für die jeweilige Variante nicht explizit anders definiert wurde (über das entsprechende Kontrollkästchen im Objektdialog oder das Attribut VARUSED).
- in dem jedes Attribut editiert werden kann - einschließlich z. B. Bezeichnung, ID, Aktivierung, Memo und Geometrie-bezogene Attribute.
Für jede einzelne Variante,
- kann festgelegt werden, dass die Attribute dieser Variante unabhängig vom "Master" sind (über die Checkbox im Objektdialog oder das Attribut VARUSED).
- können varianten-individuelle Attributwerte eingegeben werden (entweder direkt im Objektdialog oder z.B. über „Attribute verändern“), nachdem die Variante als unabhängig vom "Master" festgelegt wurde.
Hinweis
Wurde eine Variante als unabhängig vom "Master" festgelegt, haben Änderungen im "Master" keine Auswirkungen auf diese Variante. Die Funktion "Attribute kopieren" kann jedoch verwendet werden, um Attribute zwischen den verschiedenen Varianten zu übertragen.
Hinweis
Einige Attribute sind ausschließlich Teil des "Master" und können für die einzelnen Varianten nicht geändert werden, wie z.B. Name, ID, Aktivierung, Memo und Geometrie-bezogene Attribute.
Objektdialog und Attribut VARUSED

Das Dropdown-Menü ermöglicht die Auswahl der Attributsätze für den "Master" oder die einzelnen Varianten des Projekts. Das Kontrollkästchen neben dem Dropdown-Menü ermöglicht es, die Varianten-Sets als unabhängig vom "Master" zu definieren. Ein gesetztes Häkchen bedeutet unabhängig vom "Master", ist gleichbedeutend mit dem Attribut VARUSED=1 und wird in der Auswahlliste mit gelber Farbe angezeigt. Ein nicht gesetzts Häkchen bedeutet „wie Master“ (VARUSED=0)
Farbcodierung von Attributen im Objektdialog
Attribut in gelb: Attributwert in dieser Variante weicht vom Attributwert in "Master" ab.
Attribut in grün (wenn "Master" ausgewählt ist): in mindestens einer Variante hat dieses Attribut einen anderen Wert als der Master.
![]() |
![]() |
Attributwerte und explizite Adressierung von Varianten
Im Allgemeinen können die variantenindivuellen Werte von Attributen explizit im folgenden Format ATTRIBUT@V# adressiert werden, d.h. durch Hinzufügen von @V# zum Attributnamen, wobei # die Variantennummer 1...16 oder 0 für Master ist, z.B.:
- DTV@V0 adressiert den "Master"-Wert des Attributs DTV
- DTV@V2 adressiert den Wert der Variante Nr. 2 des Attributs DTV
Der Wert des ATTRIBUT selbst ohne ausdrückliche Angabe einer Variante (z. B. nur DTV, ohne @V#)
- adressiert den Wert für den Master (d.h. ATTRIBUT@V0), wenn die aktuell gewählte Projektvariante als "wie Master" festgelegt wurde (VARUSED@V<aktuell>= 0), oder
- adressiert den Wert für die aktuelle Projektvariante (d.h. ATTRIBUT@V<aktuell>), wenn die aktuell ausgewählte Projektvariante als unabhängig von "Master" festgelegt wurde (VARUSED@V<aktuell> = 1).
Die obigen Aussagen gelten sowohl für das Lesen als auch für das Schreiben von Attributen. Einzige Ausnahme ist, dass das Schreiben eines Attributs (z.B. ATTRIBUT@V2) für eine explizite Variante nur möglich ist, wenn diese Variante als unabhängig vom "Master" festgelegt ist (d.h. VARUSED@V2=1 in diesem Beispiel).
Beispiel
Das folgende Beispiel zeigt die möglichen Fälle anhand eines Projekts mit 2 Varianten und DTV als Attribut.
| Varianten im Projekt: |
Strassenobjekt mit Attributsätzen: |
| Attribut | Aktuelle Variante im Projekt | Lesender Zugriff | Schreibender Zugriff |
|---|---|---|---|
| DTV | V01 | DTV@V0 | DTV@V0 |
| DTV | V02 | DTV@V2 | DTV@V2 |
| DTV@V0 | egal | DTV@V0 | DTV@V0 |
| DTV@V1 | egal | DTV@V0 | - |
| DTV@V2 | egal | DTV@V2 | DTV@V2 |
Attribute kopieren
Attribute kopieren ist eine Funktion, mit der bequem einzelne, mehrere oder alle Attribute von einer Variante auf eine oder mehrere Zielvarianten übertragen werden können. Sie ist über das Kontextmenü eines Objekts oder über Objekte verändern verfügbar (wenn das Projekt mehr als eine Variante hat). Die Attribute selbst sind im Handbuch Attribute und Schlüsselwörter dokumentiert.

Hinweis
Zielvarianten (" Nach Variante(n)") müssen als unabhängig vom "Master" (VARUSED@V<Ziel>=1) definiert sein, damit die Attribute erfolgreich übertragen werden können.
Um ein einzelnes Attribut zu kopieren, kann auch „Attribute verändern“ verwendet werden. Im folgenden Beispiel wird der DTV-Wert von Vaiante 2 nach "Master" kopiert:

Best Practice und empfohlener Arbeitsablauf mit Objektattributen pro Variante
Genereller Arbeitsablauf: Erstellung der Objekte mit einem vollständigen und endgültigen Satz von Attributen im "Master". Dann einzelne Varianten als unabhängig vom "Master" festlegen und die varianten-spezifischen Änderungen hinzufügen. Wenn im "Master" ein Fehler gefunden wurde, wird dieser im "Master" korrigiert und mit "Attribute kopieren" auf die Varianten übertragen, die als unabhängig vom "Master" festgelegt wurden.
Wie setzt man eine Variante auf "Master" zurück? VARUSED für diese Variante auf 0 setzen, entweder durch Deaktivieren des Kontrollkästchens im Objektdialog oder über "Attribute verändern" (VARUSED auf 0 setzen, wenn die aktuelle Variante auf Master zurückgesetzt werden soll, oder VARUSED@V# auf 0 für eine explizite Variante)
Wie werden Daten für bestimmte Varianten importiert? In der Regel werden Objekte beim Import mit dem Attributset "Master" erstellt. Mit dem Datenbankimport können jedoch auch Daten für bestimmte Varianten hinzugefügt werden: VARUSED für die Zielvariante auf 1 setzen und sicherstellen, dass während des Datenbankimports die Daten-Zielvariante auch die aktuell ausgewählte Projektvariante ist.

