PartNumber / AutoCAD MEP (ABS)
CADwiesel 20. Nov. 2018, 10:54

Moin,
Da gibt es in MEP diese MEPPartNumbering mit der Bezeichnung PartNumber
Weiß zuzfällig einer von Euch wie ich an diese Nummer per Lisp oder COM rankomme?
Ich vermute die in einem Dictionary. Kann mir dazu einer irgendwelche Anhaltspunkte geben?

CADwiesel 26. Nov. 2018, 13:57

MEP verhält sich wie vermutlich alle anderen dieser Vertikalprodukte ziemlich unterschiedlich zum Verwalten dieser oder aller anderen Informationen im Gegensatz zu einem Autocad was die Speicherung dieser Informationen angeht.
Wenn ich also ein MEP oder ADTo.ä. AutoCAD habe, kann ich über das Interfaceobject auf die Datensätze zugreifen.

Code:
(setq schedApp (vla-getInterfaceObject
                      (vlax-get-acad-object)
                      "AecX.AecScheduleApplication.7.9" ;;; AutoCAD MEP 2017
                    )
        )

Code:
(setq vlaObj (vlax-ename->vla-object (car (entsel))))
                  (setq propSets (vlax-invoke-method
                                  schedApp
                                  'PropertySets
                                  vlaObj
                                ) ;_ end of vlax-invoke-method
                  )
                  (setq propSet (vlax-invoke-method
                                  propSets
                                  'Item
                                  "MEPPartNumbering"
                                ) ;_ end of vlax-invoke-method
                  )

Über die Property Sets kann ich mir dann alle Informationen zu dem jeweils angewählten Bauteil raussuchen.

Ganz anders verhält es sich, wenn ich die gleiche Zeichnung in AutoCAD Vanilla öffne. Nun sind die Objekte erstmal Proxys, was erstmal nix macht, da die Daten ja dennoch da sein sollten.
Die Meißten Daten sind auch noch vorhanden, allerdings völlig anders abgelegt, als unter MAP. Jetzt müssen die Dictionarys durchgegangen werden um an diese Infos ranzukommen. Also das Dict des gewädlten Proxys auslesen (GC 360) dann alle darin enthaltenen Dicts durchsuchen (wieder GC 360) und dort nach den GC 309 suchen wu dann die Textinformationen abgelegt sind, die ich brauchn könnte.

Alles klar?