Es sind oftmals pauschale Änderungen an vielen Zeichnungsdateien notwendig, die man gerne mit VBA ausführen möchte. Deshalb möchte ich hier ein Beispiel zeigen, das beispielsweise das Ändern vieler Eigenschaften gleichzeitig zeigt. Es werden im folgenden Beispiel die Ebenen aller Modelle und aller an diesen Modellen angehängter Referenzen geändert. Wobei die Überschreibungen (Ebenensymbolik) der Ebenen der Modelle ausgeschaltet wird und gleichzeitig die Ebeneigenschaften und Ebenensymbolik aller Referenzebenen auf bestimmte Werte gesetzt. Zum Abschluß wird noch die Ebenensymbolik bei allen Ansichten, die eingeschaltet sind, aktiviert. Hier nun das Beispiel: Sub Ebeneneigenschaften() Dim oModel As ModelReference Dim oModactive As ModelReference Dim oAtt As Attachment Dim oLv As level Dim oVw As view Set oModactive = ActiveModelReference For Each oModel In ActiveDesignFile.Models oModel.Activate ' die Ebenensymbolik des Modells aus: For Each oLv In oModel.Levels If Not oLv.IsFromLevelLibrary Then oLv.UsingOverrideColor = False oLv.UsingOverrideLineWeight = False oLv.UsingOverrideLineStyle = False End If Next oModel.Levels.Rewrite ' Änderungen speichern For Each oAtt In oModel.Attachments ' Die Ebenensymbolik und Eigenschaften ändern: For Each oLv In oAtt.Levels If Not oLv.IsFromLevelLibrary Then ' Ebeneneigenschaften ändern: oLv.ElementColor = 1 oLv.ElementLineWeight = 2 Set oLv.ElementLineStyle = ActiveDesignFile.LineStyles(4) 'Ebenensymbolik ändern oLv.OverrideColor = 2 oLv.OverrideLineWeight = 3 oLv.OverrideLineStyle = ActiveDesignFile.LineStyles(5) End If Next oLv oAtt.Levels.Rewrite Next oAtt Next oModel oModactive.Activate 'ursprüngliches Modell wieder aktivieren ' Ebenensymbolik in allen Ansichten aktivieren: For Each oVw In ActiveDesignFile.Views oVw.DisplaysLevelSymbology = True oVw.Redraw Next End Sub Viel Spaß beim Ausprobieren und Anpassen an die eigenen Anforderungen.
↧