C#ATIA

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

Treeの子を"新しいウィンドウで開く"

タイトルが日本語として怪しいのですが、CATIA V5です。

データがこんな状態だとします。

ここから、Treeで一番最初の子を単独の新しいウィンドウとして
開きます。このコマンドですね。

ちょっと調べてみましたが見つからなかったのですが、調べる前から
"CATIA.StartCommand" 一択でした。

後は、いかにTree上の目的の要素を選択するかだけですね。

'vba
Option Explicit

'"新しいウィンドウで開く"のコマンドID
'英語環境であれば "open in new window"
Private Const OPEN_IN_NEW_WINDOW = "新しいウィンドウで開く"


Sub CATMain()

    'トップのドキュメント取得
    'Product内のPartがアクティブであってもProductDocumentになります
    Dim prodDoc As ProductDocument
    Set prodDoc = CATIA.ActiveDocument
    
    'Partに入っている場合は一度抜ける-不要みたいです。
'    If CATIA.Application.GetWorkbenchId = "PrtCfg" Then
'        CATIA.Application.StartWorkbench "Assembly"
'    End If

    'Selection取得
    Dim sel As Selection
    Set sel = prodDoc.Selection
    sel.Clear

    'Treeの最初の子を選択
    Dim prods As Products
    Set prods = prodDoc.product.Products

    sel.Add prods.Item(1)

    'コマンド実行
    CATIA.StartCommand OPEN_IN_NEW_WINDOW

End Sub


この様に、子供のPartに入った状態でも抜ける方法を
こちらで学びましたが、試したところ不要なようです。
青い問題2 - C#ATIA