1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Revit】AdWindows.dllとは何か

Last updated at Posted at 2024-08-09

概要

Revitのアドイン開発に関連するAPIのひとつに、「AdWindows.dll」というdllがありました。
このdllについて、少しまとめました。

Revitの公式にはサポートされていないdllだった

Revit APIの公式ドキュメントにはAdWindows.dllの記載がありませんでした。
また、Revitにおいては公式にサポートがされていないdllでした。

どうやらAutoCAD.NETのAPIらしい

AdWindows.dllはRevitのAPIではなく、AutoCAD.NET APIのひとつらしいです。なので、特定のケースではRevitの環境でも利用できる可能性はありますが、上記に記載したようにAutodeskからの公式サポートやドキュメントがないため、自己責任で利用する必要があります。

このAPIで何ができるの?

自分がRevitでこのAPIを利用した場面は、下記の2つでした。

① コードから特定のRevitのタブをアクティブにする

/// <summary>
/// 特定のリボンタブをアクティブにする
/// </summary>
/// <param name="tabName">アクティブにするリボンタブの名前</param>
public void ActivateRibbonTabByName(string tabName)
{
    if (tabName == null) return;

    // AdWindows.dllを使用して、特定のリボンタブを見つける
    var ribbon = Autodesk.Windows.ComponentManager.Ribbon;
    var tab = ribbon.FindTab(tabName);
    if (tab == null) return;

    // 見つかったリボンタブをアクティブにする
    ribbon.ActiveTab = tab;
}

② ユーザーが特定のリボンタブを押下したときにイベント処理を走らせる

/// <summary>
/// イベントを購読する
/// </summary>
private void SubscribeEvent()
{
    // AdWindows.dllを使用して、特定のリボンタブを見つけてイベントを接続する
    // ※①のFindTab()とは異なる見つけ方。Tabsでリボンタブの一覧を取得できる
    foreach (var Tab in Autodesk.Windows.ComponentManager.Ribbon.Tabs)
    {
        if (Tab.Name == "サンプル")
        {
            // イベント接続
            Tab.Activated += new EventHandler(TabActivated_SampleTab);
            break;
        }
    }
}

/// <summary>
/// 「サンプル」タブが選択状態になった際のイベント
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TabActivated_SampleTab(object sender, EventArgs e)
{
    // 何かしらの処理
}

② についてはTab.Deactivatedというものもあり、こちらは特定のタブが選択状態から未選択状態になったときに走る。

上記のように、Revitのタブに関して特定の操作を行いたいときには使用する (使用したい) 場面がありそうです。

AdWindows.dllに関するリンク集

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?