So aktualisieren Sie ein Darstellungsmodell mit importierten Symbolen

Wenn Sie in Ihren Darstellungsmodellen benutzerdefinierte Symbole verwendet haben und sie mit geänderten Symbolen aktualisieren möchten, können Sie das Darstellungsmodell öffnen, die Grafik generieren und die geänderten Symbole mit dem Befehl MAPSYMBOLIMPORTEXPORT importieren. Weitere Informationen finden Sie unter So importieren Sie Symbole.

    So importieren Sie Symbole ohne Benutzeroberfläche in einem Stapel

  1. Wählen Sie unter Globale Fachschalenoptionen Grafik erstellen die Option Aktuelle Zeichnungen wiederverwenden.
  2. Öffnen Sie das Projekt, für das Ihr Darstellungsmodell gilt, und beginnen Sie mit einer leeren Zeichnung.
  3. Setzen Sie die Systemvariablen CMDDIA und FILEDIA auf den Wert 0 (Null).
  4. Geben Sie in der Befehlszeile TBDMOPEN ein.
  5. Geben Sie bei entsprechender Aufforderung den Pfad zum zu ändernden Darstellungsmodell ein.
  6. Geben Sie den Befehl TBGENERATEGRAPHIC ein.
  7. Geben Sie den Befehl MAPSYMBOLIMPORTEXPORT ein.
  8. Wählen Sie bei entsprechender Aufforderung Importieren.
  9. Geben Sie den Pfad der Symboldatei ein, die die zu importierenden Symbole enthält.
  10. Wählen Sie eine Importoption, um anzugeben, wie Sie die Symbole in der UI auswählen möchten.
  11. Schließen sie den Import ab und geben Sie dann den Befehl TBDMSAVE ein.

Alternativ dazu können Sie die oben beschriebenen Schritte mithilfe eines Skripts automatisch ausführen. Laden Sie in der Befehlszeile mit dem SCRIPT-Befehl die Skriptdatei, und warten Sie, bis dieser abgeschlossen wurde. Wenn Sie mehrere Skripte für verschiedene Darstellungsmodelle ausführen, vergewissern Sie sich, dass Sie immer mit einer leeren Zeichnung beginnen, bevor Sie das Darstellungsmodell öffnen. Andernfalls speichern Sie alte Layer aus der vorhergehenden Zeichnung im neuen Darstellungsmodell.

Im Folgenden sehen Sie ein Beispielskript. Sie können es als Datei mit der Erweiterung .scr speichern.

CMDDIA 0
FILEDIA 0
_TBDMOPEN [path to your TBDM file]
_TBGENERATEGRAPHIC
_MAPSYMBOLIMPORTEXPORT _IMPORT [choose options that fit your needs]
_TBDMSAVE
Wenn Sie das Skript abgeschlossen haben, setzen Sie die Variablen CMDDIA und FILEDIA zurück auf ihre ursprünglichen Werte, typischerweise '1'.

VBA-Skriptoption

Zur Zeitersparnis können Sie die Symbole für viele Darstellungsmodelle mithilfe eines VBA-Skripts (Microsoft Visual Basic for Applications) in einem einzigen Vorgang importieren. Das folgende Skript ist ein Beispiel. Sie können es als Vorlage verwenden, die erforderlichen Änderungen vornehmen und es als .bas-Datei speichern.

Attribute VB_Name = "ImportSymbolInto_IM_DM"
Sub ImportSymbolIntoDisplayModel()
    Dim prototypeDWG, templateDWT As String
    Dim FileDia, CmdDia As Integer
    Dim displayModelArray(0 To 2) As String     'TODO: Adapt to the number of Display Models to update
    
	' TODO - Adapt to your settings
	' Define the path to the Display Models for updating the symbol(s)
	' When adding or removing Display Models, please adapt also the size of displayModelArray
	'  and the loop over all Display Models
    displayModelArray(0) = "C:\TEST\DM1\DM1.tbdm"
    displayModelArray(1) = " C:\TEST\DM2\DM2.tbdm"
    displayModelArray(2) = " C:\TEST\DM3\DM3.tbdm"
    
    ' Attention !!!
    ' Only use the "Generic Graphic" - Application option: Reuse current drawings
    ' We need the same drawing for all operations !
        
    ' TODO - Adapt to your settings
    ' Define where the symbol(s) should be imported from
    prototypeDWG = "C:\temp\symbol_modified.dwg "
    
    ' TODO - Adapt to your settings
    ' Define the template file to be used when open a new DWG
    templateDWT = "c:\temp\Template\map2d.dwt"
    
    Dim currentSDI As Integer
    currentSDI = ThisDrawing.GetVariable("SDI")
    
    If (currentSDI = 1) Then
        MsgBox "The functions works only with multiple drawings [SDI=0]"
        Exit Sub
    End If
    
    FileDia = ThisDrawing.GetVariable("FILEDIA")
    CmdDia = ThisDrawing.GetVariable("CMDDIA")
    
    ThisDrawing.SetVariable "FILEDIA", 0
    ThisDrawing.SetVariable "CMDDIA", 0
    
    ' Loop all Display Models
    For inti = 0 To 2
        ' Open an empty drawing
        Application.Documents.Open (templateDWT)
        ' Open the Display Model
        ThisDrawing.SendCommand "_TBDMOPEN" & vbCr & displayModelArray(inti) & vbCr
        ThisDrawing.SendCommand "_TBGENERATEGRAPHIC" & vbCr
        ' Import the symbol and apply changes to the layers
        ThisDrawing.SendCommand "_MAPSYMBOLIMPORTEXPORT" & vbCr & "_IMPORT" & vbCr & prototypeDWG & vbCr & "_YES" & vbCr
        ' Save the changes of the layers to the Display Model
        ThisDrawing.SendCommand "_TBDMSAVE" & vbCr
        ' Do not save the drawing
        ThisDrawing.Close (False)
    Next
    
    ' Reset the system variables
    ThisDrawing.SetVariable "FILEDIA", FileDia
    ThisDrawing.SetVariable "CMDDIA", CmdDia
    
End Sub

Im Beispielskript ist ein Modul, "ImportSymbolInto_IM_DM", mit einem untergeordneten Element, "ImportSymbolIntoDisplayModel ()", vorhanden. Sie müssen die Anzahl der Darstellungsmodelle und die Pfade zur DWT- und zu den .tbdm-Dateien anpassen.

So importieren Sie mithilfe eines VBA-Skripts Symbole für mehrere Darstellungsmodelle

  1. Geben Sie in der Map 3D-Befehlszeile VBAIDE ein, um das Microsoft VBA-Fenster zu öffnen.

    In einer Meldung werden Sie dazu aufgefordert, den Autodesk AutoCAD VBA Enabler herunterzuladen, sofern Sie ihn noch nicht installiert haben.

  2. Gehen Sie im Microsoft VBA-Fenster wie folgt vor:
    1. Klicken Sie auf die Datei und wählen Sie Datei importieren.
    2. Suchen Sie im Dialogfeld Datei importieren die .bas-Datei, die das Skript enthält, und wählen Sie sie aus.
    3. Klicken Sie auf Öffnen.
    4. Klicken Sie im Microsoft VBA-Fenster auf Speichern.
    5. Geben Sie im Dialogfeld Speichern unter den Pfad und den Dateinamen an und klicken Sie dann auf Speichern.
  3. Schließen Sie das Microsoft VBA-Fenster.
  4. Geben Sie in der Befehlszeile VBALOAD ein, um die zuvor gespeicherte .dvb-Datei zu laden.

    Wenn das System eine Warnung aufgrund der Makros ausgibt, klicken Sie auf Makros aktivieren.

  5. Geben Sie in der Befehlszeile VBARUN ein und wählen Sie das auszuführende Makro.