Para atualizar um modelo de exibição com os símbolos importados

Se você tiver usado símbolos personalizados em seus modelos de exibição e desejar atualizá-os com os símbolos modificado, poderá abrir o modelo de exibição, gerar o gráfico, e usar MAPSYMBOLIMPORTEXPORT para importar os símbolos modificados. Para obter detalhes, consulte Para importar símbolos.

    Para importar símbolos em lote sem uma interface de usuário

  1. Em Opções do modelo da indústria global Gerar gráfico, selecione Reutilizar os desenhos atuais.
  2. Abra o projeto ao qual seu modelo de exibição se aplica, e comece com um desenho vazio.
  3. Defina as variáveis de sistema CMDDIA e FILEDIA como 0 (zero).
  4. No prompt de comando, insira TBDMOPEN.
  5. Seguindo o prompt, insira o caminho para o modelo de exibição que você desejar modificar.
  6. Insira o comando TBGENERATEGRAPHIC.
  7. Insira o comando MAPSYMBOLIMPORTEXPORT.
  8. Seguindo o prompt, escolha Importar.
  9. Insira o caminho para o arquivo que contém os símbolos que você desejar importar.
  10. Escolha uma opção de importação para especificar como você deseja selecionar os símbolos na interface do usuário.
  11. Conclua a importação e, a seguir, insira o comando TBDMSAVE.

Como uma alternativa, você pode automaticamente completar as etapas acima usando um script. Na linha de comando, carregue o arquivo de script com o comando SCRIPT e aguarde até que ele termine. Quando você executar diversos scripts para diferentes modelos de exibição, assegure-se de sempre iniciar com um desenho vazio, antes de abrir o modelo de exibição. Caso contrário, você irá salvar as camadas antigas do desenho anterior no novo modelo de exibição.

O seguinte é um script de amostra. Você pode salvá-lo como um arquivo com uma extensão .scr.

CMDDIA 0
FILEDIA 0
_TBDMOPEN [path to your TBDM file]
_TBGENERATEGRAPHIC
_MAPSYMBOLIMPORTEXPORT _IMPORT [choose options that fit your needs]
_TBDMSAVE
Quando terminar com o script, defina as variáveis CMDDIA e FILEDIA de volta para seus valores originais, que normalmente é '1'.

Opção de script VBA

Para poupar tempo, é possível importar os símbolos para muitos modelos de exibição em uma única operação, usando um script Microsoft Visual Basic for Applications (VBA). O seguinte é um script de amostra. É possível utilizá-lo como um modelo, fazer as modificações necessárias e, a seguir, salvá-lo como um arquivo .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

No script de exemplo, há um módulo "ImportSymbolInto_IM_DM" com um sub "ImportSymbolIntoDisplayModel()". Você precisa adaptar o número de modelos de exibição e caminhos para os arquivos DWT e .tbdm.

Para importar símbolos para múltiplos modelos de exibição usando um script VBA

  1. Na linha de comando do Map 3D, insira VBAIDE para abrir a janela Microsoft VBA.

    Uma mensagem informará para fazer o download do Autodesk AutoCAD VBA Enabler se este não estiver instalado.

  2. Na janela Microsoft VBA, faça o seguinte:
    1. Clique em Arquivo e selecione Importar arquivo.
    2. Na caixa de diálogo Importar arquivo, localize e selecione o arquivo .bas que contém o script.
    3. Clique em Abrir.
    4. Na janela Microsoft VBA, clique em Salvar.
    5. Na caixa de diálogo Salvar como, especifique o caminho e o nome do arquivo e, a seguir, clique em Salvar.
  3. Feche a janela Microsoft VBA.
  4. Na linha de comando, insira VBALOAD para carregar o arquivo .dvb salvo acima.

    Se o sistema lhe avisar sobre as macros, clique em Ativar macros.

  5. Na linha de comando, insira VBARUN e selecione a macro relacionada a ser executada.