Mit VBA Modelle löschen


 Produkt(e):MicroStation
 Version(en):10.00.00.25
 Umgebung:Windows 8
 Produktbereich:Programmierung
 Produktunterbereich:VBA

 

Hintergrundinformation

Häufig ist es notwendig, dass Veränderungen gleichzeitig an einer großen Anzahl von Zeichnungen durchgeführt werden müssen. Ein manuelles Durchführen kann dabei sehr aufwendig sein, ein Batchprozess ist dabei sehr hilfreich.
Das Löschen von bestimmten Modellen ist manuell aufwendig, da jedes zu löschende Modell bestätigt werden muss.

Jedoch  bietet das VBA Objektmodell eine Methode zum Löschen von Modellen

Erforderliche Schritte

Im VBA Objektmodell gibt es die Methode .Delete zum Löschen von Modellen. Folgendes Beispiel zeigt eine Möglichkeit, wie dies umgesetzt werden kann.
Dabei wird der Name des zu löschenden Modells als Aufrufparameter mitgegeben. Dies erleichtert die Anwendung im Batchbetrieb:

Sub DeleteModel()
Dim omod As ModelReference

Dim moName As String
modname = Trim(KeyinArguments)
If Len(modname) = 0 Then
    MsgBox "Aufrufparameter fehlt, bitte Modellname angeben", vbCritical
    Exit Sub
End If
For Each omod In ActiveDesignFile.Models
    If (omod.Name = modname) Then
        ActiveDesignFile.Models.Delete omod
        Exit Sub
    End If
Next
End Sub


Wenn man ein VBA Projekt mit dem Namen ModelDelete erstellt und die .mvba Projektdatei in einem Ordner ablegt, der in der Variablen MS_VBASEARCHDIRECTORIES liegt, dann kann ein Aufruf als Tastaturbefehl so aussehen:

VBA RUN [modeldelete]modeldelete <modellname>

<modellname> muss durch einen konkreten Namen eines Modells ersetzt werden, das gelöscht werden soll. 
Konkret ist dann dieser Tastaturbefehl auch in einer Befehlsdatei für einen Stapelbetrieb verwendbar.

 Ursprünglicher Autor:Artur Goldsweer