Zum Inhalt springen

Shape : 2D Punkte mit Beschriftungs-Informationen


relume

Frage

Geschrieben

Hallo

 

Wir habe die umfangreichen Geodaten eines ganzen Stadtgebietes als Shape-Files erhalten. Die Lokalisationsinformationen wie z.B. Strassennamen, Hausnummern, Liegenschaftsnummern etc. sind über 2D Punkte mit verkünpfter DB repräsentiert (in der VW Zeichnung sieht man nur die 2D-Punkte).

 

Nun müssten wir die entsprechenden Lokalisationsinformation bzw. Beschriftungen zu den jeweiligen 2D Punkte in die Zeichnung bringen (so dass in der VW Zeichnung die z.B. die Strassennamen etc. sichtbar sind).

 

Das würde grundsätzlich über den Multistempel gehen. Leider kann der Multistempel nicht gleichzeitig auch noch DB-Feld basiert entsprechend rotiert werden. Ein kleines Script um den Multistempel nachträglich zu rotieren wäre denkbar. Leider ist aber der Multistempel nicht direkt mit der Objekt-DB verbunden um so den Rotationswinkel aus der DB zu lesen, so dass dieser Ansatz wieder ein gewisse Komplexität verursacht.

 

Aus einem 2D Punkt lässt sich aber leider, so weit ich das verstanden habe, auch kein "inteligentes Objekt" erstellen, also so etwas wie ein customized 2D Punkt dem eine spezifische Method anhaftet - in diesem Fall den 2D Punkt durch ein Text-Objekt mit Bezug zum DB-Feld "Beschriftung" sowie mit der Rotation aus dem DB-Feld "Orientation" überblendet/überschreibt/darstellt.

 

Mit einem Marionetten Object-Node würde sich das vielleicht lösen lassen, allerdings werden Object-Nodes ständig nachgeführt, was bei zahlreichen 2D-Punkte die Zeichnung wohl sehr langsam werden liese.

 

Welche Möglichkeiten gäbe es sonst noch um diesen Aufgabe möglichst schlank zu erledigen?

 

Vielen Dank für mögliche Hinweise!

2 Antworten auf diese Frage

Empfohlene Beiträge

Geschrieben

Hallo relume

 

Ich würde wie folgt vorgehen:

- Symbol mit gewünschten Texten erstellen

- Texte im Symbol mit Datenbankfeldern verknüpfen

- 2D-Punkte aktivieren und Befehl "Druch Symbol ersetzen.." verwenden

 

-> Nun hast das bei jedem Punkt ein Symbol mit dem von dir zugewiesenen Einträgen aus der Datenbank.

 

Nun erstellst du die ein VectorScript im Zubehör-Manager mit folgende Eintrag:

PROCEDURE Test;

VAR

Objekt : HANDLE;

WinkelausDB : STRING;

Wertumw : INTEGER;

BEGIN

Objekt:=FSActLayer;

WinkelausDB:=GetRField(Objekt,'Datenbank-1','Winkel');

Wertumw:=Str2Num(WinkelausDB);

Rotate(Wertumw);

END;

RUN(Test);

 

"Datenbank-1" ist der Name der Datenbank

"Winkel" ist der Name des Datenbankfeldes

 

Sobald ein Symbol aktiviert ist und du einen Doppelklick machst, wird das Symbol entsprechend des Datenbankeintrages gedreht. :D:D:D

 

Das Script könnte man bestimmt noch erweitern, damit alle aktiven Symbol gedreht werden. Im Moment musst das Script pro Symbol ausführen.

 

Gruss, Marc

Leiter BIM Consulting

ComputerWorks Schweiz

________________________________________

Vectorworks - Führende BIM-Spitzentechnologie und Flaggschiff der Nemetschek Gruppe

Weltweit verwirklichen über eine halbe Million Architekten und Designer grossartige Projekte mit Vectorworks!

Geschrieben

Hallo Marc

 

Vielen Dank für Deine Antwort mit dem Script-Vorschlag. Ich hatte gefürchtet es würde nicht ohne Scripting gehen :). Gerne poste ich hier im Forum das entsprechende Script für die Bearbeitung aller aktivierten Objekte/Symbole - ich habe dafür bei mir schon einige Vorlagen bereit.

 

beste Grüsse

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
      25,4Tsd
    • Beiträge insgesamt
      131,4Tsd
×
×
  • Neu erstellen...