読み込まれたシンボルを使用して表示モデルを更新するには

読み込んだシンボルを使用して、表示モデル内で使用したカスタマイズ済みシンボルを更新するには、その表示モデルを開いてグラフィックスを生成し、MAPSYMBOLIMPORTEXPORT コマンドを使用してカスタマイズ済みシンボルを読み込みます。詳細については、「シンボルをインポートするには」を参照してください。

    ユーザ インタフェースを使用せずにシンボルをまとめて読み込むには

  1. [グローバル インダストリ モデル オプション] [グラフィックス生成][現在の図面を再利用]を選択します。
  2. 表示モデルの適用先となるプロジェクトを開き、空の図面を使用して操作を開始します。
  3. システム変数の CMDDIA と FILEDIA の値を両方とも「0」(ゼロ)に設定します。
  4. コマンド プロンプトで「TBDMOPEN」と入力します。
  5. プロンプトの指示に従い、変更する表示モデルのパスを入力します。
  6. 「TBGENERATEGRAPHIC」というコマンドを入力します。
  7. 「MAPSYMBOLIMPORTEXPORT」というコマンドを入力します。
  8. プロンプトの指示に従って[読み込み]を選択します。
  9. 読み込んだシンボルを保存するシンボル ファイルのパスを入力します。
  10. 読み込みオプションを選択し、UI でのシンボルの選択方法を指定します。
  11. 読み込み処理を完了し、「TBDMSAVE」というコマンドを入力します。

別の方法としてスクリプトを使用すると、上記の手順を自動的に実行することができます。コマンド ラインでスクリプト コマンドを使用してスクリプト ファイルをロードし、処理が完了するまで待ちます。異なる表示モデルに対して複数のスクリプトを実行する場合は、対象の表示モデルを開く前に、必ず空の図面を使用して操作を開始してください。空の図面を使用しないと、以前の図面の古い画層が新しい表示モデルに保存されることになります。

サンプルのスクリプトを次に示します。このスクリプトは、.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)スクリプトを使用すると、1 回の操作で複数の表示モデルに対してシンボルを読み込むことができるため、時間の節約になります。サンプルのスクリプトを次に示します。このスクリプトに必要な修正を加え、.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

このサンプル スクリプトには、ImportSymbolIntoDisplayModel () という Sub 関数を持つ ImportSymbolInto_IM_DM というモジュールが記述されています。このスクリプトで、表示モデルの数、DWT ファイルのパス、.tbdm ファイルのパスを変更する必要があります。

VBA スクリプトを使用して複数の表示モデルに対してシンボルを読み込むには

  1. Map 3D のコマンド ラインで「VBAIDE」と入力し、Microsoft VBA ウィンドウを開きます。

    Autodesk AutoCAD VBA Enabler がインストールされていない場合は、Autodesk AutoCAD VBA Enabler のダウンロードを求めるメッセージが表示されます。

  2. Microsoft VBA ウィンドウで次の手順を実行します。
    1. [ファイル]をクリックして[ファイルを読み込む]を選択します。
    2. [ファイルを読み込む]ダイアログ ボックスで、スクリプトが格納されている .bas ファイルを探して選択します。
    3. [開く]をクリックします。
    4. Microsoft VBA ウィンドウで[保存]をクリックします。
    5. [名前を付けて保存]ダイアログ ボックスで、パスとファイル名を指定して[保存]をクリックします。
  3. Microsoft VBA ウィンドウを閉じます。
  4. コマンド ラインで「VBALOAD」と入力し、上記の手順で保存した .dvb ファイルをロードします。

    マクロに関する警告が表示された場合は、[マクロを有効にする]をクリックします。

  5. コマンド ラインで「VBARUN」と入力し、 実行するマクロを選択します。