Обновление модели отображения с помощью импортированных обозначений

Если в моделях отображения применялись пользовательские обозначения, которые требуется обновить, заменив на отредактированные обозначения, откройте модель отображения, создайте графику и используйте команду MAPSYMBOLIMPORTEXPORT для импорта отредактированных обозначений. Дополнительные сведения приведены в разделе Импорт обозначений.

    Импорт обозначений одним пакетом без пользовательского интерфейса

  1. В разделе Глобальные параметры отраслевой модели Создать графику выберите параметр Повторно использовать текущие чертежи.
  2. Откройте проект, к которому относится модель отображения, и создайте пустой чертеж.
  3. Установите для обеих системных переменных CMDDIA и FILEDIA значение 0 (ноль).
  4. В командной строке введите TBDMOPEN.
  5. При появлении запроса введите путь к модели отображения, которую требуется изменить.
  6. Введите команду TBGENERATEGRAPHIC.
  7. Введите команду MAPSYMBOLIMPORTEXPORT.
  8. При появлении запроса выберите «Импорт».
  9. Введите путь к файлу с обозначениями, которые требуется импортировать.
  10. Выберите параметр импорта, определяющий, каким образом будут выбраны обозначения в пользовательском интерфейсе.
  11. После завершения процесса импорта введите команду TBDMSAVE.

В качестве альтернативы, описанные выше операции можно выполнить автоматически с помощью сценария. В командной строке с помощью команды SCRIPT загрузите файл сценария и дождитесь завершения. При выполнении нескольких сценариев для разных моделей отображения перед открытием каждой модели всегда создавайте пустой чертеж. В противном случае в новой модели отображения будут сохраняться старые слои из предыдущего чертежа.

Ниже приведен образец сценария. Можно сохранить его как файл с расширением .scr.

CMDDIA 0
FILEDIA 0
_TBDMOPEN [path to your TBDM file]
_TBGENERATEGRAPHIC
_MAPSYMBOLIMPORTEXPORT _IMPORT [choose options that fit your needs]
_TBDMSAVE
После завершения работы со сценарием установите для переменных CMDDIA и FILEDIA исходные значения, которые, как правило, равняются 1.

Параметр «Сценарий VBA»

В целях экономии времени можно в рамках одной операции импортировать обозначения для многих моделей отображения с помощью сценария Microsoft Visual Basic for Applications (VBA). Следующий сценарий представляет собой образец. Его можно использовать в качестве шаблона, внести требуемые изменения, а затем сохранить в формате .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

В сценарии-образце имеется модуль ImportSymbolInto_IM_DM с вложенным элементом ImportSymbolIntoDisplayModel(). Вам потребуется настроить количество моделей отображения и пути к файлам DWT и .tbdm.

Импорт обозначений для нескольких моделей отображения с использованием сценария VBA

  1. В командной строке Map 3D введите VBAIDE, чтобы открыть окно Microsoft VBA.

    Появится сообщение с предложением загрузить компонент Autodesk AutoCAD VBA Enabler, если он не установлен.

  2. В окне Microsoft VBA выполните следующие действия:
    1. Щелкните «Файл» и выберите Импорт файла.
    2. В диалоговом окне Импорт файла найдите и выберите файл, содержащий сценарий .bas.
    3. Нажмите Открыть.
    4. В окне Microsoft VBA нажмите кнопку Сохранить.
    5. В диалоговом окне Сохранить как укажите путь к файлу и его имя, затем нажмите кнопку Сохранить.
  3. Закройте окно Microsoft VBA.
  4. В командной строке введите VBALOAD, чтобы загрузить сохраненный файл .dvb.

    Если система выдаст предупреждение о макросах, выберите параметр «Включить макросы».

  5. В командной строке введите VBARUN и выберите связанный макрос, который требуется выполнить.