| | |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | |  | AutoCAD Schulung mit IHK-Zertifizierung , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
|
|
Autor
|
Thema: iLogic benutzerdef.iProp (121 / mal gelesen)
|
dieLocke Mitglied Konstrukteurin
 
 Beiträge: 126 Registriert: 07.03.2007 Windows 11 Enterprise 64GB RAM Nvidia Quadro P2000 Inv Professional 2026
|
erstellt am: 16. Dez. 2025 08:51 <-- editieren / zitieren --> Unities abgeben:         
Hallo, In einer Excel-Tabelle sind die IDW aufgeführt und der neue Wert des iProperties. Diese Werte werden in meinem iLogic als Arraylist abgespeichert, die Anzahl der einzulesenden Zeilen wird vorher mit INPUTBOX ermittelt. Mein Programm aoll in einer FOR-Schleife die IDW's aufrufen und die benutzerdefinierten Parameter ändern. Die Zeichnungen werden aufgerufen, der neue Wert des iProperties wird in der Messagebox korrekt angezeigt, geändert werden die iProperties aber nicht. Welchen Grund könnte es dazu geben?  (ich habe diesen Befehl iProperties.Value("Custom","09_Sheet") = 5 in einer Testregel einzeln ausgeführt, dort funktioniert es auch.) ------------------ Gruß M.S., die Locke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic
       

 Beiträge: 3001 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 16. Dez. 2025 09:21 <-- editieren / zitieren --> Unities abgeben:          Nur für dieLocke
Moin iProperties ist ein iLogic Objekt, dass beim Aufrufen einer Regel im Kontext der Datei erstellt wird, aus der die Regel aufgerufen wurde. Wechselt das aktive Dokument im Laufe der Regel, wird das Objekt nicht neu erstellt oder aktualisiert. Schau mal in die am Anfang geöffnete Datei, dort steht jetzt der letzte iPropwert drin, da in jedem Durchlauf überschrieben. Entweder die Baugruppenvariante benutzen und den DocumentName mitgeben
Code: iProperties.Value("DocumentName", "Custom", "09_Sheet")
oder, wenn das auch nicht gehen sollte, den klassischen Weg (aus dem Kopf, könnte nicht ganz fehlerfrei sein): Code:
Dim oDoc As Document = ThisApplication.ActiveDocument Dim oPropSet As PropertySet = oDoc.PropertySets(4) Try oPropSet.Item("09_Sheet").Value= "DEIN_WERT" Catch oPropSet.Add("DEIN_WERT","09_Sheet") End Try
------------------ MfG Ralf
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dieLocke Mitglied Konstrukteurin
 
 Beiträge: 126 Registriert: 07.03.2007 Windows 11 Enterprise 64GB RAM Nvidia Quadro P2000 Inv Professional 2026
|
erstellt am: 16. Dez. 2025 12:27 <-- editieren / zitieren --> Unities abgeben:         
|
dieLocke Mitglied Konstrukteurin
 
 Beiträge: 126 Registriert: 07.03.2007 Windows 11 Enterprise 64GB RAM Nvidia Quadro P2000 Inv Professional 2026
|
erstellt am: 18. Dez. 2025 14:15 <-- editieren / zitieren --> Unities abgeben:         
Hallo nochmal, wie schon einmal geschrieben, funktionierte deine Hilfe auf Anhieb. Als ich es heute noch einmal versuchte, habe ich bemerkt, dass ich noch einen Zusatz benötige, ich habe diesen zwar eingebaut "ThisDoc.Document.Close(True)", aber dieser Befehl bezieht sich ja nur auf das Objekt, aus dem das Programm gestartet wurde. Könntest du mir da noch einmal behilflich sein? Ich möchte, dass der benannte Befehl sich auf alle Dokumente aus der Schleife auswirkt... vielen Dank ------------------ Gruß M.S., die Locke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic
       

 Beiträge: 3001 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 18. Dez. 2025 16:57 <-- editieren / zitieren --> Unities abgeben:          Nur für dieLocke
Moin In meinem Beispiel oben ist oDoc bereits das aktive Dokument, also sollte nach dem Erstellen des iProps ein oDoc.Close(True) genügen. Das nach dem Try-Catch statement einfügen: Code:
Dim oDoc As Document = ThisApplication.ActiveDocument Dim oPropSet As PropertySet = oDoc.PropertySets(4) Try oPropSet.Item("09_Sheet").Value= "DEIN_WERT" Catch oPropSet.Add("DEIN_WERT","09_Sheet") End TryoDoc.Close(True)
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |