BIM Attribute mit hilfe von Datenbak erstellen und verwalten


Hallo zusammen,

da in der Infrastrukturplanung derzeit noch keine BIM-Standards (P-Sets, Attribute,...) vorhanden sind, erarbeitet unser Büro derzeit einen umfangreichen Attributkatalog für verschiedene Pilotprojekte. Damit die Daten immer aktuell sind udn auch von verschiedenen Benutzern abgerufen werden können haben wir uns dafür entschieden, eine Datenbank (Access) anzulegen in der alle Attribute verwaltetet werden.

In Allplan ist es bekanntermaßen möglich Attribute innerhalb des Programms selbst zu erstellen. Da dies bei einer großen Anzahl Attribute aber sehr mühselig und fehleranfällig bei Änderungen ist, ist mir der Gedanke gekommen die Attribute durch ein Skript erstellen zu lassen.

Soweit mir bekannt enthält die Datei AttributeDefinitionCollectionLocal_de.xml die Attributdefinitionen. Die Idee ist jetzt diese Datei durch das Skript zu beschreiben und so automatisch die Attribute zu erstellen. Hat jemand bereits Erfahrung mit einem solchen Vorgehen gemacht?

In der Datei wird jedem Attribut beim Erstellen eine Uid zugewiesen. Wie wird diese generiert bzw. was sind zulässige Werte die hier eingetragen werden können?

Gruß
Jan

Brücken und Ingenieurbau
VIC Planen und Beraten GmbH

https://www.vic-gmbh.de/

Anhänge (1)

Typ: image/jpeg
101-mal heruntergeladen
Größe: 9,42 KiB

Hilfreichste Antwort anzeigen Hilfreichste Antwort verbergen

Der Eingabetyp "Listbox ohne Eingabe" erzeugt den Attributtyp "Enum-Attribut".

Für alle nicht Programmierer: Eine Enumeration ist ein Aufzählunstyp.
Eingeführt wurden diese Enum-Attribute eigentlich, damit man die Werte in der Definitions-XML bereits lokalisieren kann, wenn es Strings sind. z.B. beim den Attributen Gewerk , Umbaukategorie, Türanschlag oder Ansichtsart.
Eine Enumeration ist eine Liste von festgelegten Werten. Der Sinn dabei ist: Man speichert nicht den Wert im Attribut, sondern nur die Position des Wertes innerhalb der Liste. Der "entsprechende Wert" kommt aus der Definition des Attributes.

Bei der Speicherung in der AttributeDefinitionCollection.xml wird daraus jedoch ein Key-Value-Pair:

<AttributeDefinition>
...
<Enumeration>
      <Item>
        <Key>0</Key>
        <Value />
      </Item>
      <Item>
        <Key>1</Key>
        <Value>F30</Value>
      </Item>
      <Item>
        <Key>2</Key>
        <Value>F90</Value>
      </Item>
...
</Enumeration>
...
</AttributeDefinition>

Dabei wird nur der Key im Attribut gespeichert.

Nun würde man erwarten, dass, wenn man den Wert Key 1 = "F30" löscht, der Key der darauffolgenden
Werte (Key 2="F90", Key 3="BW" usw.) gleich bleibt. Das ist scheinbar nicht der Fall.

Es ist sehr gefährlich bzw. unmöglich, Werte aus der Liste zu löschen!
Durch die Änderung der Keys ändern sich projektweit die angezeigten Werte in den Attributen der Elemente! Meist unbemerkt und unbeabsichtigt!

Der Eingabetyp "ComboBox" verfährt anders. Er enthält nur eine Liste von "Vorschlagswerten" für den Attribut-Wert. Der Wert wird vollständig im Attribut gespeichert. Dadurch kann man die Auswahlliste beliebig erweitern, ohne dass die Attribut-Werte verfälscht werden.

Durch das oben genannte Verhalten verwenden wir keine Enum-Attribute mehr.
Wir verwenden ausschliesslich Attribute mit Eingabemethode "Combobox", auch wenn dadurch die Einheitlichkeit der Werte nicht gewahrt werden kann! Auch sind bei uns grundsätzlich Änderungen an den Attributen verboten!
Diese darf nur der Admin anlegen und ändern.

1 - 10 (26)

...schöne Idee, aber Vorsicht:
Wenn diese Datei nicht korrekt XML-formatiert ist, oder inhaltliche Fehler enthält,
startet Allplan nicht mehr bzw. stürzt beim Attribute-Modifizieren ab!

Es gibt Vorgaben zur Nummer (ab 2000 startend) und zur Namesgebung (Doppelte Namen dürfen nicht vorkommen!)
Die UUID ist ein normaler Universally Unique Identifier, den man mit gängigen Tools generieren kann.
Sollte halt unique sein :-)

Der Inhalt der XML-Tags ist auch ziemlich sensibel! z.B. Enum-Attribut-Definitionen ohne Values sind fehlerhaft.
Wenn man die Benutzer-Attrbiute gruppieren will, braucht man noch die Datei attrib_UD.000, deren Inhalt man jedoch nur mit Allplan verändern kann. Unglücklicherweise sind die darin definierten Gruppen Global, d.h. gelten auch für Projekt-Attribute!

Wie kann ich den die attrib_ud.000 bearbeiten?

Mit besten Grüßen!
Jürgen

Allplan Ingenieurbau V10 bis V2025

(Benutzer-) Attributgruppe in Allplan anlegen , umbennenen oder löschen

Anhänge (1)

Typ: image/png
304-mal heruntergeladen
Größe: 97,45 KiB

Wenn sich mit einem Ansinnen der Art beschäftigt wird, wäre es evtl. mit Sinnvoll sich mit den BIM-Attributen aus der Normung zu beschäftigen.
Diese haben - soweit ich das überrissen habe - alle eine UUID u der Name ist nur "Schall und Rauch"

Ah, ok. Kann der Benutzerordner auch umbenannt werden?

Mit besten Grüßen!
Jürgen

Allplan Ingenieurbau V10 bis V2025

Danke für die Antworten. Besonders der Hinweis mit dem UUID Generator war Gold wert.
Nach etwas testen ist es mir jetzt in einem ersten Schritt gelungen, mit einer Exceleingabe den entsprechenden Code zu erzeugen. Den Code habe ich dann in die besagte .xml Datei kopiert und zack, war das Attribut in Allplan vorhanden.
Sehr schön.
Im nächsten Schritt soll das ganze dann über Access laufen.

Brücken und Ingenieurbau
VIC Planen und Beraten GmbH

https://www.vic-gmbh.de/

Ich würde hier nocheinmal Anknüpfen wollen.
Ein Fragezeichen stellt für mich der Datentyp dar. Die Logik dahinter habe ich versucht durch ausprobieren herauszufinden. Sprich Attribute erstellen und schauen was für einen Code das ergibt.

Soweit sind bisher meine Erkenntnisse:
Datatype C ist ein Text bzw. string, Datatype R eine Fließkommazahl bzw. real.
Wenn ich aber eine Liste erstelle ist der Datentyp E für ein Text und ebenfalls E für eine Zahl, egal ob Ganzzahl oder Fließkommazahl. Der Unterschied liegt allein in der maximalen Datenlänge, welche bei einer Zahl 0 ist.

Gibt es vielleicht irgendwo eine Übersicht, welcher Datentyp was kann?

Zudem sind mir einige Bugs beim Erstellen der Attribute in Allplan aufgefallen, die ich auch Teilweise schon erklären kann:

  • Erstelle ich eine Liste als Fließkommazahl, wird diese beim nächsten öffnen als Ganzzahl angezeigt. Dies liegt m.M.n. an einem Fehler bei Erstellen des Codes,da sich der Code für eine Fließkommazahl nicht von dem einer Ganzzahl unterscheidet.
  • Erstelle ich ein Attribut mit einer Einheit die nicht hoch 3 bzw. Stck ist, ist kein Vorgabewert möglich.
  • Weitere Fehler, kann ich aber im Moment nicht konkret erinnern.

Brücken und Ingenieurbau
VIC Planen und Beraten GmbH

https://www.vic-gmbh.de/

Hello,

E = Enum = Enumeration (list of pre-established elements)
And there is also "I" as integer.
_______________

E = Enum = Aufzählung (Liste der vordefinierten Elemente).
Und es gibt auch „I“ als integer.


Der Eingabetyp "Listbox ohne Eingabe" erzeugt ein Enum-Attribut.

Enumerations-Attribute sind grundsätzlich eine Schlüssel-Wert-Liste aus Ganzzahl-Text-Paaren, wobei diese Liste in der Definition des Attributes angelegt wird.
Im Allplan wird dann nur der Ganzzahl-Schlüssel als Attribut-wert gespeichert, und bein Lesen des Werte mit der Paar-Liste aus der Attribut-Definition "decodiert".

Es gibt kein spezielles Enum-Attribut für Ganz- oder Fließkommazahlen. Die Zahl wird in der Paar-Liste als Text abgelegt.
Deshalb "errät" Allplan für Attribute mit Eingabetyp "Listbox ohne Eingabe" den Typ scheinbar aus den Werten.

Das Ganze ist nicht ganz durchschaubar geschweige denn dokumentiert, deshalb würde ich von "Listbox ohne Eingabe"-Attributen als Ganz- oder Fließkomma-Zahl abraten!

1 - 10 (26)