Zum Inhalt springen

Projektspezifische IFC pSets per Skript ergänzen – trotz dynamischem Büro-Datenmapping


HebHeb

Frage

Geschrieben

Hallo zusammen,
 

wir arbeiten in unserem Büro mit einem zentral gepflegten Datenmapping, das regelmäßig erweitert und optimiert wird. Dieses Mapping wird in allen Projekten identisch verwendet und bei Bedarf neu geladen – was in der Praxis sehr gut funktioniert.
 

Allerdings benötigen viele BIM-Projekte zusätzliche projektspezifische PropertySets. Diese projektspezifischen pSets sollen bewusst nicht Teil des allgemeinen Büro-Datenmappings sein.


Ziel:
Ich möchte projektspezifische pSets per Skript anlegen zuweisen.
Die projektspezifischen Property-Werte sollen dabei in einer separaten Vectorworks-Datenbank gepflegt werden, die vom Mapping-Import unberührt bleibt.
 

Mein Ansatz wäre grob folgender Workflow per Script:

  1. Gefilterte Objekte im Modell identifizieren (z. B. über Kriterien wie Klasse, Typ, etc.)
  2. Custom pSet anlegen
  3. pSet dem Objekt zuweisen
  4. Werte aus der zugehörigen VW-Datenbank in das pSet schreiben


Fragen dazu:

Gibt es eine Möglichkeit, eigene pSets per Marionette/Vectorscript/Python anzulegen und Objekten hinzuzufügen? - ergänzend zum bestehenden Mapping - immer wieder "neu ausführbar"

Hat jemand einen ähnlichen Workflow bereits umgesetzt und kann Erfahrungen oder Code-Snippets teilen?
 

Der Aufwand, das zentrale Mapping bei jedem Update manuell mit allen projektindividuellen pSets in mehreren Projekten synchron zu halten, ist einfach zu groß und unwirtschaftlich, diese Projekte dürfen aber hinsichtlich des "großen" Büro-Datenmappings nicht auf der Strecke bleiben...

Ich bin sicher, dass ich nicht der Einzige bin, der solche Lösungen sucht – vielleicht gibt es ja schon bewährte Ansätze?
 

Vielen Dank im Voraus!

5 Antworten auf diese Frage

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo @HebHeb

Ja, die gibt es.
Generell finden sich die Funktionen in dieser Rubrik:
https://github.com/Vectorworks/developer-scripting/tree/main/Function Reference#ifc

Die Funktionen IFC_DM* beziehen sich auf Vorgänge im Datenmanager.
 

vor 37 Minuten schrieb HebHeb:

Gibt es eine Möglichkeit, eigene pSets per Marionette/Vectorscript/Python anzulegen...

 

Um Psets per Script anzulegen gibt es die Funktionen:
IFC_DefPsetImport
IFC_DefPsetImport2

Hier die nötige Formatierung entsprechender Ausgangsdaten:
Custom PSets Format.zip

Für weitere Funktionen (Pset Objekten hinzufügen, Mapping aus Datenbankwerten definieren etc.) müsste ich nun selbst in den Funktionen stöbern.

LG

Viktor

 

Bearbeitet von Viktor Frank
  • Like 1

BIM Consultant

ComputerWorks Deutschland

Geschrieben (bearbeitet)

Super, danke!
Dann komme ich hoffentlich selbst zurecht.

Um von meiner VW-Datenbank in die pSets zu schreiben sollte ich ja wie folgt erfolgreich sein:
 

...
    IfcPSetName = self.Params.ifcPSetName.value
    IfcPropName = self.Params.ifcPropName.value
    IfcPropValue = self.Params.ifcPropValue.value

    result = vs.IFC_SetProperty(inObj, IfcPSetName, IfcPropName, IfcPropValue)
...


In dem Zusammenhang - anderes ToDo...
Wenn ich Werte in z.B. IfcSlab "Name" (also den "übergeordneten" Daten der Entity schreiben oder auslesen möchte)

In Tabellen ist die Syntax ja:
IFC.'IfcSlab'.'Name'
wie ist die Syntax in Skripten (Anfängerfragen... aber Vectorscript und VW-Phyton ist noch etwas Neuland... bisher war Marionette mein Mittel der Wahl, aber ich merke: mit "echten Skripten geht doch einiges schneller und weitreichender)

developer-scripting/Function Reference/Functions/IFC_GetPsetProp.md at main · Vectorworks/developer-scripting · GitHub

hier im Beispiel "hWall"
Bedeutet das "hEntityname" ?

Bearbeitet von HebHeb
Geschrieben (bearbeitet)

Hallo @HebHeb

 

vor 20 Minuten schrieb HebHeb:

Um von meiner VW-Datenbank in die pSets zu schreiben sollte ich ja wie folgt erfolgreich sein:

Dieser Vorgang erstellt mWn kein Mapping im Datenmanager - sondern kommt einer manuellen Eingabe in ein IFC-Datenfeld in der OIP gleich - ob du das so willst obliegt dir.
 

vor 20 Minuten schrieb HebHeb:

Wenn ich Werte in z.B. IfcSlab "Name" (also den "übergeordneten" Daten der Entity schreiben oder auslesen möchte)

Das müsste über die folgenden Funktionen gehen:
IFC_GetEntityProp
IFC_GetEntityProp2


Die entsprechende Marionette-Node nutzt IFC_GetEntityProp2.

LG

Viktor

Bearbeitet von Viktor Frank
  • Like 1

BIM Consultant

ComputerWorks Deutschland

Geschrieben (bearbeitet)

Hallo @HebHeb

hier noch ein kleiner Hinweis auf die Funktion IFC_DMSetPSetFldMap.
Diese Funktion kann Mappings im Datenmanager definieren - siehe kleine eigene Marionette Node anbei.
Diese ist nur ein Beispiel um die Funktion zu verdeutlichen - hab sie quick an dirty erstellt.

Damit könntest du nun für verschiedene Psets deine Datenquelle in den Zuordnungen im Datenmanager setzen.
Die von dir vorgeschlagene Funktion vs.IFC_SetProperty ist wie gesagt kein Mapping im Datenmanager, sondern eine Direkteingabe von Werten in PropertySets - dadurch entsteht keine dynamische Verknüpfung zw. Datenquelle und IFCEigenschaft, so wie es im Datenmanager der Fall wäre.

Durch die obenstehende Funktion schon.

LG und viel Erfolg

Viktor

Mapping in Datenmanager setzen.vwx

Bearbeitet von Viktor Frank
  • Like 1

BIM Consultant

ComputerWorks Deutschland

Geschrieben

vielen Dank - super Hinweis und Baustein!

Da habe ich schon eine ganz tolle Idee wie ich das sinnvoll einsetzen werde! Bei der Verwaltung der Bürovorlage - das spart mir einiges an Zeit! - oder irgendwann wenn Projekt-pSets etwas komplexer werden sollten.

Aktuell bei den projektspezifischen pSets brauche ich das nicht, denn tatsächlich sind alle Daten die ich dort liefern muss sowieso intern in unseren Datenmappings (klassenbasiert, eigene Datenbanken und Zuordnungsformeln) schon vorhanden, daher reicht die Einbahnstraße von A (VW-Datenbank) nach B (Projekt pSet) - mit ein paar textverkettungsregeln hier und da... sollte dann vor dem ifc Export des Fachmodells einfach einmal ausgeführt werden.

  • Like 1

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
  • Forenstatistik

    • Themen insgesamt
      26,3Tsd
    • Beiträge insgesamt
      136,7Tsd
×
×
  • Neu erstellen...