Se sono stati utilizzati simboli personalizzati nei modelli di visualizzazione e si desidera aggiornarli con i simboli modificati, è possibile aprire il modello di visualizzazione, generare gli elementi grafici e utilizzare MAPSYMBOLIMPORTEXPORT per importare i simboli modificati. Per ulteriori informazioni, vedere Come importare i simboli.
Come importare i simboli in batch, senza un'interfaccia utente
In alternativa, è possibile completare automaticamente la procedura descritta sopra in base allo script. Nella riga di comando, caricare il file di script con il comando SCRIPT e attendere il termine. Quando si eseguono più script per diversi modelli di visualizzazione, accertarsi che inizino sempre con un disegno vuoto, prima di aprire il modello di visualizzazione. In caso contrario, verranno salvati vecchi layer dal disegno precedente nel nuovo modello di visualizzazione.
Di seguito è riportato uno script di esempio. È possibile salvarlo come file con un'estensione .scr.
CMDDIA 0 FILEDIA 0 _TBDMOPEN [path to your TBDM file] _TBGENERATEGRAPHIC _MAPSYMBOLIMPORTEXPORT _IMPORT [choose options that fit your needs] _TBDMSAVEDopo aver completato lo script, impostare le variabili CMDDIA e FILEDIA ai valori originali, che corrispondono solitamente a "1".
Per risparmiare tempo, è possibile importare i simboli in molti modelli di visualizzazione in un'unica operazione mediante uno script Microsoft Visual Basic for Applications (VBA). Lo script riportato di seguito è un esempio. Può essere utilizzato come modello, apportare le necessarie modifiche e salvarlo come file .bas.
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
Nello script di esempio, esiste un modulo "ImportSymbolInto_IM_DM" con un modulo secondario "ImportSymbolIntoDisplayModel ()". È necessario adattare il numero di modelli di visualizzazione e i percorsi per i file DWT e .tbdm.
Come importare i simboli di più modelli di visualizzazione, utilizzando uno script VBA
Verrà visualizzato un messaggio che indica di scaricare Autodesk AutoCAD VBA Enabler se non è stato installato.
Se il sistema avvisa circa le macro, fare clic su Abilita macro.