C#ATIA

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

2D属性リンクを扱いたい2

こちらの続きです。
2D属性リンクを扱いたい1 - C#ATIA

属性リンクを使ったことが無い為、イロイロと確認です。

3DでXY平面状に点を作成し、2Dでテキストを作成。
属性リンクをH→X、V→Yとして作ります。
f:id:kandennti:20190219130051p:plain
属性リンクパネルの「現行の選択」は多分、インターナルネームかな?
恐らく、式で利用できるパラメータ類が使えるのだろうと思います。

3D側で数値を変え、2D側を強制更新すると反映されます。
f:id:kandennti:20190219130120p:plain
リンクしているにも関わらず、ビューのアイコンはリンクしていない
ものでも出来るので、軽く罠のような雰囲気です。
強制更新に関してはこちらが役に立ちそうです。
任意のビューのみを強制更新 - C#ATIA

編集-リンク であればリンクしていることが確認出来ますね。
f:id:kandennti:20190219130142p:plain

ここで疑問だったのが、参照しているものが削除された場合は
どうなるの? か。
f:id:kandennti:20190219130157p:plain
知らん顔してテキストはそのままなんですね。
何らかの確認方法を確立しなければならない雰囲気がヒシヒシと。
(属性リンク使わなきゃいいのに・・・)

属性リンクを作るのは、InsertVariableメソッド出来そうだな
とは感じているのですが、リンクを削除する方法が良くわからないです。
直接textプロパティを書き換えてしまう為、こんな手抜きなものを
実行します。

Sub CATMain()

    Dim dDoc As DrawingDocument
    Set dDoc = CATIA.ActiveDocument
    
    Dim txt As DrawingText
    Set txt = dDoc.Sheets.ActiveSheet.views.ActiveView.Texts.Item(1)
    
    txt.Text = "hoge"

End Sub

実行だけしてみると
f:id:kandennti:20190219130215p:plain
おーまた知らん顔してる。リンクしている要素無いのにリンクしてます
って出ちゃうんだ。属性リンクは同期しないんだなぁ。
強制更新してもダメでした。

ダブルクリック等でテキストエディターを立ち上げ終了すると
f:id:kandennti:20190219130228p:plain
無事リンクが無くなってます。

便利以上に、リスクの方が大きいように感じるんだけどなぁ。