Skip to content

BIMserver Query Service

Schilling, Sebastian edited this page Jul 7, 2022 · 3 revisions

BIMserver Query Service (Port:7208)

Mit dem BIMserver Query Service können Abfragen an die API des BIMservers gestellt werden. Unter anderem lassen sich damit Projekte anlegen, IFC Dateien hochladen und Teile eines Modells abfragen. Die Abfragen werden in einer BIMserver eigenen JSON Syntax an die BIMserver API gesendet und geben IFC Teilmodelle als Antwort zurück.

Funktionsweise

General Queries

[GET] /querybimserver/create

  • Anlegen eines neuen Projektes durch Angabe eines Namens und der IFC Version (IFC2X3TC1 oder IFC4)

[GET] /querybimserver/checkin

  • Hochladen einer IFC Datei in ein Projekt durch Angabe der Projekt ID (poid)
  • (Aktuell ist die IFC Datei noch hartkodiert festgelegt)

[GET] /querybimserver/createAndCheckin

  • Anlegen eines neuen Projektes und Upload einer IFC Datei in dieses
  • (Aktuell ist die IFC Datei noch hartkodiert festgelegt)

[GET] /querybimserver/getAllProjects

  • Abfrage aller existierenden Projekte, um z.B. die Projekt ID (poid) herauszufinden

[GET] /querybimserver/getRevisionId

  • gibt die aktuelle Revisions ID (roid) für ein Projekt aus, Angabe der Projekt ID (poid)
  • (Aktuell ist die poid noch hartkodiert festgelegt)

[GET] /querybimserver/getWalls

  • Abfrage aller Wände eines Modells, dafür Angabe von Projekt ID (poid) und Revisions ID (roid)
  • (Aktuell sind poid und roid noch hartkodiert festgelegt)

Model Queries

  • bei allen Abfragen muss der Projektname eingegeben werden, unter dem das abzufragende Ifc Modell im BIMserver gespeichert ist
  • alle Abfragen haben einen Boolean Parameter "basics", dieser steuert, ob für die Ergebnisentitäten die übergeordnete Struktur (ContainedInStructure), die Owner History, die Representation und das Object Placement mit ausgegeben werden sollen

[GET] /querybimserver/getWallsByType

  • Eingabe einer GUID eines Wandtyps
  • Ausgabe aller Wände diesen Types

[GET] /querybimserver/getPropertiesFromElements

  • Eingabe einer oder mehrerer GUIDs von Elementen
  • Ausgabe aller zu diesen Elementen gehörenden Properties

[GET] /querybimserver/getExternalWalls

  • gibt alle Wände aus, bei denen das Property "IsExternal" auf "true" gesetzt ist

[GET] /querybimserver/getElements

  • Eingabe einer oder mehrerer Ifc Klassen
  • Ausgabe aller Elemente, die zu diesen Klassen gehören

[GET] /querybimserver/getElementsInStorey

  • Eingabe der GUID eines "IFCBuildingStorey", optional Angabe von bestimmten Ifc Klassen
  • Ausgabe aller Elemente in diesem Stockwerk, bzw. der Elemente der gewählten Ifc Klassen

[GET] /querybimserver/getElementsInBoundingBox

  • Eingabe der x, y, z Koordinaten eines Punktes, von dem die Bounding Box aufgespannt werden soll
  • Eingabe der Dimension der Bounding Box mit width, height, und depth
  • Auswahl, ob Elemente, die nur teilweise in der Bounding Box liegen, ebenfalls mit ausgegeben werden sollen
  • optional Eingabe von Ifc Klassen
  • Ausgabe aller Elemente im Stockwerk, bzw. alle Elemente der gewählten Klassen

[GET] /querybimserver/getElementsByProperty

  • Eingabe eines PropertySets, eines darin enthaltenen Properties und eines Wertes, den das Property haben soll
  • optional Eingabe von Ifc Klassen
  • Ausgabe aller Elemente mit dem gegebenen Property Wert, ggf. auf die eingegeben Klassen beschränkt

[GET] /querybimserver/getAllWalls

  • gibt alle Wände der Klasse "IfcWall" sowie von deren Unterklassen aus