| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: MV-Block - Daten übernehmen... (1482 mal gelesen)
|
seppelbi Mitglied
Beiträge: 68 Registriert: 10.02.2005 ACA 2010 - DACH Erweiterungen Revit Architecture 2010 <P>Windows 7
|
erstellt am: 21. Feb. 2005 12:19 <-- editieren / zitieren --> Unities abgeben:
Hallo! Ich habe mir eine Eigenschaftsdatensatz-Definition für Türen erstellt, die viele manuelle Eigenschaften enthält. Ist es irgendwie möglich, nachdem man diese Daten in der Zeichnung bei z.B einer Tür eingegeben hat (unter "Erweiterte Daten"), diese Daten einer anderen Tür zuzuweisen - sinngemäß dem Befehl Eigenschaften anpassen? Es ist mir bekannt, dass man bei "gleiches Bauteil hinzufügen" die manuellen Daten des Bauteils übernehmen kann, doch mir geht es um Änderungsmöglichkeiten bei schon vorhandenen Bauteilen. Schon jetzt vielen Dank für Eure Mühe! Viele Grüße Sebastian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tmoehlenhoff Moderator Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 AutoCAD, AutoCAD Architecture, Revit Architecture, Building Design und Honeymoon Suite und das ganze auch gerne mal auf einem Mac
|
erstellt am: 21. Feb. 2005 16:03 <-- editieren / zitieren --> Unities abgeben: Nur für seppelbi
|
flaschenpost Mitglied Architekt
Beiträge: 497 Registriert: 29.09.2004 ADT 2004 / Windows XP
|
erstellt am: 21. Feb. 2005 19:00 <-- editieren / zitieren --> Unities abgeben: Nur für seppelbi
Hallo Sebastian, bei den ADT-Funktionen hab ich dazu auch nichts gefunden. Die Frage ist, was will man überhaupt alles übertragen, wie ist das z.B. mit den Ankern. Zum Ausprobieren ein paar Zeilen, kannst ja mal testen, ob es sinnvoll ist.(Start: tuet) (defun c:tuet (/ obj1 obj2 objn) (prompt "\nTür wählen, die überschrieben werden soll") (setq obj1 (car (entsel))) (prompt "\nTür wählen, deren Eigenschaften übertragen werden sollen") (setq obj2 (car (entsel))) (setq objn (subst (assoc 10 (entget obj1))(assoc 10 (entget obj2)) (entget obj2))) (setq objn (subst (assoc 15 (entget obj1))(assoc 15 (entget obj2)) objn)) (setq objn (subst (assoc 16 (entget obj1))(assoc 16 (entget obj2)) objn)) (setq objn (subst (assoc 40 (entget obj1))(assoc 40 (entget obj2)) objn)) (setq objn (subst (assoc 41 (entget obj1))(assoc 41 (entget obj2)) objn)) (setq objn (subst (assoc 360 (entget obj1))(assoc 360 (entget obj2)) objn)) (entdel obj1) (entmake objn) ) Gruß Carsten (edit) Zum Testen keine wichtige Zeichnung nehmen, Probleme gibt es anscheinend bei Türen, die schon mal beschriftet waren ! [Diese Nachricht wurde von flaschenpost am 22. Feb. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
seppelbi Mitglied
Beiträge: 68 Registriert: 10.02.2005 ACA 2010 - DACH Erweiterungen Revit Architecture 2010 <P>Windows 7
|
erstellt am: 22. Feb. 2005 09:08 <-- editieren / zitieren --> Unities abgeben:
Hallo Carsten! Zunächtst einmal vielen Dank für Deine Antwort. Ich habe die Funktion gestest - doch irgendwie funktioniert es nicht so wirklich - eine Tür verschwindet nach der Auswahl. Leider habe ich von lisp absolut keine Ahnung - versuche mich da gerade etwas schlau zu machen - kann man diese erweiterten Daten vielleicht über getxdata bzw. setxdata erreichen? Getestet habe ich Deine lsp mit einer ADT Standard-Tür, die ich mit der Vorgabebeschriftung "Tür (1)" versehen habe - hier möchte ich alle manuell einzutragenden Daten wie. z.B. Aufschlagsrichtung, Brandschutzklasse, Schließart... übernehmen können. Dürfte eignetlich für viele interessant sein... vielleicht geht das ja auch alles etwas einfacher mit ADT 2006... Gruß Sebastian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tmoehlenhoff Moderator Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 AutoCAD, AutoCAD Architecture, Revit Architecture, Building Design und Honeymoon Suite und das ganze auch gerne mal auf einem Mac
|
erstellt am: 22. Feb. 2005 09:11 <-- editieren / zitieren --> Unities abgeben: Nur für seppelbi
Ohne es ausprobiert zu haben: Damit werden aber Eigenschaften der Tür übertragen und es ging doch um manuelle Eigenschaften der Eigenschaftssatzdaten der Tür (auf der Eigenschaftspalette unter "Erweiterte Daten".) Das kann man auch programmieren, nur ohne Programmierung gehts meines Wissens nicht. sayonara Torsten Möhlenhoff ACAD-Systemhaus Bremen ------------------ Alles wirD guT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
seppelbi Mitglied
Beiträge: 68 Registriert: 10.02.2005 ACA 2010 - DACH Erweiterungen Revit Architecture 2010 <P>Windows 7
|
erstellt am: 22. Feb. 2005 09:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Torsten! Wäre prima, wenn Du mir einen Tipp geben könntest, mit welchen Befehlen man diese Daten auslesen kann bzw. vielleicht hast Du auch eine Beispiel-lsp, die etwas ähnliches bewirkt, so dass ich mir eine eigene lsp herleiten kann. Danke! Gruß Sebastian [Diese Nachricht wurde von seppelbi am 22. Feb. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tmoehlenhoff Moderator Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 AutoCAD, AutoCAD Architecture, Revit Architecture, Building Design und Honeymoon Suite und das ganze auch gerne mal auf einem Mac
|
erstellt am: 22. Feb. 2005 12:29 <-- editieren / zitieren --> Unities abgeben: Nur für seppelbi
Hi Sebastian, nee, fertig habe ich da auch nichts und im Moment fehlt mit die Zeit um auch nur ansatzweise was zusammen zu hacken (mit Chance kann ich am Wochenende noch mal gucken, wenn denn bis dahin nicht jemand anderes was gepostet hat). Für die Zwischenzeit würde ich schon mal die Datei scheduleauto-reference.chm aus dem Help-Ordner des ADT-Verzeichnisses als Lektüre empfehlen. sayonara Torsten Möhlenhoff ACAD-Systemhaus Bremen ------------------ Alles wirD guT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
flaschenpost Mitglied Architekt
Beiträge: 497 Registriert: 29.09.2004 ADT 2004 / Windows XP
|
erstellt am: 22. Feb. 2005 13:59 <-- editieren / zitieren --> Unities abgeben: Nur für seppelbi
Hallo Torsten und Sebastian, da bei der Funktion lediglich die Tür2 auf Tür1 gesetzt wurde und in Tür2 alle Infos enthalten sind, hätte es evtl. klappen können. Geht also nicht - man muß vermutlich über die MV-Blocks Türbeschriftung gehen. Das ist mir jetzt zu aufwendig. Außerdem hat sich jeder User sein individuelles Eigenschaftsprofil entwickelt. Da würde ich sagen, erstmal auf Version 2006 hoffen. Die Funktion von oben geht jetzt auch bei beschrifteten Türen. Hab sie zum Probieren noch einmal rangehängt. Gruß Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tmoehlenhoff Moderator Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 AutoCAD, AutoCAD Architecture, Revit Architecture, Building Design und Honeymoon Suite und das ganze auch gerne mal auf einem Mac
|
erstellt am: 25. Feb. 2005 21:28 <-- editieren / zitieren --> Unities abgeben: Nur für seppelbi
So, Wochenende und wie angedroht ein paar Lispzeilen. Jeweils eine Funktion zum Lesen und eine zum Schreiben von Eigenschaften der ADT Eigenschaftssätze: Code:
;liefert den Wert der Eigenschaft propname des Eigenschaftssatze ;psdName des Elementes en (defun getADTproperty(en psdName propName / vlaObj acadObj schedApp propSets psdName propSet properties propVal) (setq vlaObj (vlax-ename->vla-object en) acadObj (vlax-get-acad-object) schedApp (vla-getInterfaceObject acadObj "AecX.AecScheduleApplication.4.5") propSets (vlax-invoke-method schedApp 'PropertySets vlaObj) ) (if (setq propSet (vlax-invoke-method propSets 'Item psdName)) (progn (setq properties (vlax-get-property propSet 'Properties)) (vlax-for prop properties (if (equal (vlax-get-property prop 'Name) propName) (setq propVal (vl-catch-all-apply 'vlax-get-property (list prop 'Value)) propVal (if (vl-catch-all-error-p propVal) nil ;else (vlax-variant-value propVal) ) ) ) ) ) ) (vlax-release-object schedApp) propVal );schreibt den Wert propVal der Eigenschaft propname des Eigenschaftssatze ;psdName des Elementes en (defun putADTproperty(en psdName propName propVal / vlaObj acadObj schedApp propSets psdName propSet properties result) (setq vlaObj (vlax-ename->vla-object en) acadObj (vlax-get-acad-object) schedApp (vla-getInterfaceObject acadObj "AecX.AecScheduleApplication.4.5") propSets (vlax-invoke-method schedApp 'PropertySets vlaObj) ) (if (setq propSet (vlax-invoke-method propSets 'Item psdName)) (progn (setq properties (vlax-get-property propSet 'Properties)) (vlax-for prop properties (if (equal (vlax-get-property prop 'Name) propName) (if (vlax-property-available-p prop 'Value T) (setq result (vl-catch-all-apply 'vlax-put-property (list prop 'Value propVal))) ) ) ) ) ) (vlax-release-object schedApp) (if (vl-catch-all-error-p result) (vl-catch-all-error-message result) ) )
Bei ADT 2004 muss es vermutlich (denn ich habe gerade keinen) statt AecX.AecScheduleApplication.4.5 nur AecX.AecScheduleApplication.4 heissen. Mal eine Tür mit dem mitgelieferten Stempel und somit dem Eigenschaftssatz Türen vorausgesetzt benutzt man es wie folgt: Lesen der Beschreibung: (getADTproperty (car (entsel)) "Türen" "Beschreibung") Ändern der Beschreibung: (putADTproperty (car (entsel)) "Türen" "Beschreibung" "schöne Tür") Beide Funktionen setzten voraus, dass es den Eigenschaftssatz am Objekt schon gibt! Ist sicher noch nicht perfekt, sollte aber für weitere eigene Experimente reichen ... Torsten Möhlenhoff ACAD-Systemhaus Bremen ------------------ Alles wirD guT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
seppelbi Mitglied
Beiträge: 68 Registriert: 10.02.2005 ACA 2010 - DACH Erweiterungen Revit Architecture 2010 <P>Windows 7
|
erstellt am: 26. Feb. 2005 18:39 <-- editieren / zitieren --> Unities abgeben:
|
flaschenpost Mitglied Architekt
Beiträge: 497 Registriert: 29.09.2004 ADT 2004 / Windows XP
|
erstellt am: 28. Feb. 2005 11:34 <-- editieren / zitieren --> Unities abgeben: Nur für seppelbi
Hallo allerseits, eigentlich wollte ich mich damit nicht so intensiv beschäftigen, zumal sich meine Kenntnisse bei VisualLisp in den Anfängen befinden. Aber Torsten hat sich die Mühe gemacht und eine schöne Vorlage erarbeitet - da wärs wirklich schade, wenns dann im Archiv versickern würde. Das kleine Programm läßt sich evtl. noch optimieren. Am besten erstmal testen, wie es in der Praxis funktioniert. Gruß Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
seppelbi Mitglied
Beiträge: 68 Registriert: 10.02.2005 ACA 2010 - DACH Erweiterungen Revit Architecture 2010 <P>Windows 7
|
erstellt am: 28. Feb. 2005 12:30 <-- editieren / zitieren --> Unities abgeben:
Hallo Carsten! Bin begeistert - funktioniert perfekt. Wenn man nun noch in einem Schritt die Eigenschaften mehrerer Türen ändern könnte, wäre es für die Praxis noch besser. Bin Euch allen für die Hilfe sehr dankbar! Gruß Sebastian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
flaschenpost Mitglied Architekt
Beiträge: 497 Registriert: 29.09.2004 ADT 2004 / Windows XP
|
erstellt am: 28. Feb. 2005 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für seppelbi
Hallo Sebastian, ist noch nicht optimal, z.B. fehlen Mehrfachauswahl Zielobjekt und die Möglichkeit, Inhalte auszuschließen. Ich wollte mal ein paar Tage warten und zum Testen anregen, um eventuelle Konflikte aufzuspüren. Gruß Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |