C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

ビューの名前変更をツリー上でも即反映する

こちらのサンプルを実行しても、ツリーのビュー名が変更されない
とコメント頂きました。
カレントビューの角度や生成スタイルの取得2 - C#ATIA

実際に試した所、ビュー名をテキストは変更が反映されていますが、
ツリー上のビュー名は反映されていませんでした。

こんな状態ですね。左側は実行前で右側は実行後です。
確かに青矢印部分は変更されますが、緑部分は変更が反映されて
いません。


海外のサイトで調べてみましたが、それらしき症状の記載が無く
見つけられませんでした。
但し、画像の状態で色々操作してみると反映される操作が複数
ありました。
一番現実的かな?と思われるのは、アクティブなビューを切り替える
事でツリー上のビュー名が即反映されます。

以前のサンプルをちょっと修正してみました。

'vba
Sub CATMain()
    
    Dim msg As String
    
    'ドキュメント
    Dim dwDoc As DrawingDocument
    Set dwDoc = CATIA.ActiveDocument
    
    'views
    Dim views As DrawingViews
    Set views = dwDoc.sheets.ActiveSheet.views

    'カレントビュー
    Dim actVi As DrawingView
    Set actVi = views.ActiveView
    
    'ビュー名の取得
    Dim prefix As String, ident As String, suffix As String
    actVi.GetViewName prefix, ident, suffix
    
'    MsgBox "Prefix:" & prefix & vbCrLf & _
'           "Ident:" & ident & vbCrLf & _
'           "Suffix:" & suffix
    
    'ビュー名の変更
    prefix = "PIYO"
    ident = " HUGA"
    suffix = " POYO"
    
    actVi.SetViewName prefix, ident, suffix
    
    '他のビューを一時的にアクティブにし、
    '再度元のビューをアクティブにする
    Dim vi As DrawingView
    For Each vi In views
        If Not vi Is actVi Then
            vi.Activate
            Exit For
        End If
    Next
    actVi.Activate

    
'    MsgBox "Prefix:" & prefix & vbCrLf & _
'           "Ident:" & ident & vbCrLf & _
'           "Suffix:" & suffix
    
End Sub

メッセージボックスも邪魔なのでコメント化しています。

ひょっとしたら他にもっと良い方法があるかも知れません。
(が、個人的にはこの方法もそれ程ストレスを感じません)