Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Autodesk GIS Produkte
  Geometrie in Map nach Objektdaten auswählen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Geometrie in Map nach Objektdaten auswählen (2226 mal gelesen)
TomSt
Mitglied
Geograf


Sehen Sie sich das Profil von TomSt an!   Senden Sie eine Private Message an TomSt  Schreiben Sie einen Gästebucheintrag für TomSt

Beiträge: 89
Registriert: 05.09.2006

Intel Core i7-4790 3,60 GHz, 16 GB, Windows 10 Prof. 64 bit, AutoCAD Map 3D 2022 und Civil 3D 2021

erstellt am: 06. Jul. 2007 10:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich habe in Autodesk Map 2007 eine Zeichnung mit Objektdaten an Linien. Jetzt möchte ich einzelne Linien anhand der Objektdaten auswählen. Laut Hilfe muss ich dazu eine Arbeitssitzung einrichten, die entsprechende Zeichnung zuordnen und die Linie abfragen. Das ist mir zu umständlich, ich will die Linie in der aktuellen Zeichnung von Map gesucht und markiert haben. Geht das?

Grüße

Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Tsonne
Mitglied
Landschaftsplaner


Sehen Sie sich das Profil von Tsonne an!   Senden Sie eine Private Message an Tsonne  Schreiben Sie einen Gästebucheintrag für Tsonne

Beiträge: 71
Registriert: 06.03.2007

AutoCAD Map 2008

erstellt am: 06. Jul. 2007 12:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für TomSt 10 Unities + Antwort hilfreich

Hallo Thomas,
wenn du keine externe Zeichnung abfragen möchtest, dann geht das m.W. nur über eine Topologie. Diese Topologie kannst du dann über Abrage /Topologieabfrage definieren ... ähnlich abfragen wie eine externe Zeichnung (Daten / Eigenschaft ändern).

Gruß, Thorsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

TomSt
Mitglied
Geograf


Sehen Sie sich das Profil von TomSt an!   Senden Sie eine Private Message an TomSt  Schreiben Sie einen Gästebucheintrag für TomSt

Beiträge: 89
Registriert: 05.09.2006

Intel Core i7-4790 3,60 GHz, 16 GB, Windows 10 Prof. 64 bit, AutoCAD Map 3D 2022 und Civil 3D 2021

erstellt am: 06. Jul. 2007 17:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Thorsten,

Topologie erscheint mir noch komplizierter als externe Zeichnung abfragen. Ich möchte möglichst einfach ein paar Sachdaten in der Zeichnung pflegen, und dachte, es wäre möglich, die Geometrie zu den Sachdaten über einen Filter oder die Schnellauswahl fassen zu können. Aber dort habe ich die Objektdatentabelle und ihr Feld zum Anwählen nicht gefunden.
Wenn ich mal so weit bin, Topologien anzulegen, werde ich es ausprobieren.

Viele Grüße

Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Moderator
CAD-Administrator




Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 06. Jul. 2007 19:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für TomSt 10 Unities + Antwort hilfreich

Hi,
AdeskMap hat eine exzellente Lisp-Api. Ich habe mir zu diesem Zweck eine Lisp Funktion geschrieben die Auswahlsätze nach Objektdaten erzeugen kann. Ich arbeite dabei allerdings auch teilweise mit dem direkten Zugriff auf die Map-Extension-Dictionaries, könnte also sein, das die Lisp-Api alleine nicht ausreicht ;-). Auf jeden Fall geht es. Und die Funktion arbeitet auch erstaunlich schnell.
Hier mal ein Auszug, insbesondere die Kommentare sind für einen Neueinstieg in die Thematik interessant... (Dies ist KEINE ALLEIN laufende Funktion, es ist nur ein Auszug aus meiner Bibliothek):

Code:

;|
Funktion ermittelt die an ein Objekt angehängten Objektdaten
und zwar mit allen für die weitere Verarbeitung notwendigen
Daten, so z.B. auch die für den schnellen Zugriff auf die
Feldinhalte relevante RecordID die von der Funktion ADE_ODGETRECFIELD
verwendet wird.
(setq recid (ade_odgetrecord ename strTablename recordnumber))
Anmerkung: recordnumber beginnt mit dem Zählen bei 0
(setq fielddata (ade_odgetrecfield recid strFieldname))

Beispiel:
(setq recid (ade_odgetrecord (car (entsel)) "ASSETNETZKLASSE" 0))
(setq Fielddata (ade_odgetrecfield recid "BITCODENETZKLASSE")) -> 8
(setq Fielddata (ade_odgetrecfield recid "TESTFELD")) -> 10


Rückgabe:
Vollständige Information für ein Element oder nil
z.B.:
'(("Tablename"
    (((RECNUM . RECID)
       (("Feldname" . FELDWERT) ("Feldname2" . FELDWERT) . . .)
     )
      ((RECNUM2 . RECID2)
        (("Feldname" . FELDWERT) ("Feldname2" . FELDWERT) . . .)
      )
      .
      .
      .
    )
  )
   ("Tablename2"
     (((RECNUM . RECID)
        (("Feldname" . FELDWERT) ("Feldname2" . FELDWERT) . . .)
      )
       .
       .
       .
     )
   )
   .
   .
   .
)
|;
(defun DT:MAP-OD-READ2 (ENAME       /           CT          FIELDLST
                        FIELDVALS   FLDNAMELIST FLDNME      FLDTYP
                        FLDTYPELIST NUMREC      RECID       RETVAL
                        TABLE       TBLDEFINITIONS          VAL
                        VALLIST
                       )
  (if (setq TBLDEFINITIONS (DT:MAP-OD-TBLDEFINITIONS-READ ENAME))
    ;; ((("Tablename" . "Flaechennr")("TableDesc" . "")
    ;;   ("Columns"
    ;;    (("ColName" . "Nummer") ("ColDesc" . "Flaechennummer")
    ;;     ("ColType" . "Integer") ("DefaultVal" . 0)
    ;;    )
    ;;    ... mehrere möglich
    ;;   )
    ;;  )
    ;;  ... mehrere möglich
    ;; )
    (progn
      (foreach TBLDEFINITION TBLDEFINITIONS
        (setq FIELDLST    (cdr (nth 2 TBLDEFINITION))
              TABLE       (cdar TBLDEFINITION)
              FLDNAMELIST NIL
              FLDTYPELIST NIL
              FIELDVALS   NIL
        ) ;_ end of setq
        (foreach FLD FIELDLST
          (setq FLDNME      (cdr (nth 0 FLD))
                FLDTYP      (cdr (nth 2 FLD))
                FLDNAMELIST (append FLDNAMELIST (list FLDNME))
                FLDTYPELIST (append FLDTYPELIST (list FLDTYP))
          )
        )
        ;; Für ein Feld können n-Datensätze erfaßt werden...
        (setq NUMREC (ade_odrecordqty ENAME TABLE)
              CT     0
        )
        (while (< CT NUMREC)
          (setq VALLIST NIL
                RECID   (cons CT (ade_odgetrecord ENAME TABLE CT))
          )
          (foreach FLD FLDNAMELIST
            (setq VAL     (cons FLD (ade_odgetrecfield (cdr RECID) FLD))
                  VALLIST (cons VAL VALLIST)
            )
          )
          (setq FIELDVALS (cons (list RECID (reverse VALLIST)) FIELDVALS)
                CT        (1+ CT)
          )
        )
        (setq
          RETVAL (cons (cons (cdar TBLDEFINITION) (list (reverse FIELDVALS)))
                       RETVAL
                 )
        )
      )
    )
  )
  RETVAL
)

;|
DT:MAP-OD-GET-OBJECTS-BY-VALUE findet Objekte die für einen
bestimmten Datensatz einen bestimmten Wert aufweisen.

Argumente:
WITH-LAYOUT? = Flag, ob auch die Layouts miteinbezogen werden sollen.
  'T = Ja auch Layouts einbeziehen
STRTABLENAME = String mit der Definition der gesuchten Tabelle
STRFIELD = String mit dem Feldnamen
VALUE = gesuchter Wert, Datentyp unterschiedlich.


Die Strings AUSSER VALUE (wenn String) werden hier NICHT CASE-SESITIVE verarbeitet!


Rückgabe:
nil = Wenn kein Objekt den Kriterien entsprach
Liste = aus vl-Objekten die den Kriterien entsprachen

Beispielanwendung:
(setq XX (DT:OBJECTLIST->SELSET
          (DT:MAP-OD-GET-OBJECTS-BY-VALUE
            NIL
            "assetnetzklasse"
            "bitcodenetzklasse"
            4
          )
        )
)
(sssetfirst xx xx)
|;
(defun DT:MAP-OD-GET-OBJECTS-BY-VALUE
      (WITH-LAYOUT? STRTABLENAME STRFIELD VALUE / RETVAL)
  (if (setq RETVAL (DT:MAP-OD-GET-OBJECTS-FOR WITH-LAYOUT? STRTABLENAME))
    (vl-remove-if-not
      (function (lambda (X)
                  (member VALUE
                          (DT:MAP-OD-FIND-VALUE2
                            (vlax-vla-object->ename X)
                            STRTABLENAME
                            STRFIELD
                          )
                  )
                )
      )
      RETVAL
    )
  )
)


Was ich damit sagen will: Es geht mit Lisp hier wirklich alles was Map kann und noch weitaus mehr als mit Map Funktionen. Und das auch noch sehr performant. Mit anderen Worten: Es lohnt sich sich damit zu beschäftigen.

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!
   
   

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

TomSt
Mitglied
Geograf


Sehen Sie sich das Profil von TomSt an!   Senden Sie eine Private Message an TomSt  Schreiben Sie einen Gästebucheintrag für TomSt

Beiträge: 89
Registriert: 05.09.2006

Intel Core i7-4790 3,60 GHz, 16 GB, Windows 10 Prof. 64 bit, AutoCAD Map 3D 2022 und Civil 3D 2021

erstellt am: 07. Jul. 2007 08:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Marc,

danke für die ausführliche Information. Mit mitgelieferten Bordwerkzeugen scheint es also nicht zu gehen, mit Programmierung schon: mit AutoLISP habe ich schon was gemacht, muss mich allerdings erst wieder herein finden. Das Codebeispiel wird mir dabei helfen.

Grüße

Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

TomSt
Mitglied
Geograf


Sehen Sie sich das Profil von TomSt an!   Senden Sie eine Private Message an TomSt  Schreiben Sie einen Gästebucheintrag für TomSt

Beiträge: 89
Registriert: 05.09.2006

Intel Core i7-4790 3,60 GHz, 16 GB, Windows 10 Prof. 64 bit, AutoCAD Map 3D 2022 und Civil 3D 2021

erstellt am: 27. Jul. 2007 11:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

es geht doch mit bordeigenen Werkzeugen: Zeichnung öffnen, im Aufgabenfenster "Daten" anklicken, "Zeichnungsdaten hinzufügen" wählen, "Aktuelle Zeichnung abfragen ..." wählen. Es erscheint das Dialogfeld Abfrage definieren, ich wähle "Daten...", "Objektdaten" und gebe meinen abzufragenden Wert ein. Ich kehre zum Dialogfeld Abfrage definieren zurück, "Zeichnen" ist voreingestellt und ich klicke auf "OK".
Map fügt im Aufgabenfenster einen Layer "Aktuelle Zeichnung-Element" mit den gesuchten Elementen hinzu. Gleichzeitig hat es die gesuchten Elemente aus dem Layer "Kartenbasis" herausgenommen.
(So in AutoCAD Map 2008 ausgeführt.)

Grüße
Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Moderator
CAD-Administrator




Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 27. Jul. 2007 16:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für TomSt 10 Unities + Antwort hilfreich

Klasse, dann gehts doch.
Hört sich aber echt etwas, na ja, wenig "catchy" an. Außerdem via Lisp nicht ansprechbar. Ich kann mir 'n Dialog basteln der irgend 'nen Wert abfragt und dann genau die Objekte selektiert die diese Objektdaten tragen. Oder etwas wie "Ähnliche auswählen" über Objektdaten... Via Programming null Problemo ;-)

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz