BimRv SDK: グラフィックオーバーライドの変更

この記事では、ビューで定義された要素、カテゴリ、およびフィルターのグラフィックオーバーライドを取得、変更、および削除する方法について説明します。

オーバーライドの取得

グラフィックオーバーライドを取得するには、OdBmDBViewクラスの対応するメソッドを使用します。

  • 要素のオーバーライドを取得: getElementOverrides()。
  • カテゴリのオーバーライドを取得: getCategoryOverrides()。
  • フィルターのオーバーライドを取得: getFilterOverrides()。
オーバーライドの変更

グラフィックオーバーライドを変更するには、OdBmDBViewクラスの次のメソッドを使用します。

要素のオーバーライドを変更するには、setElementOverrides()メソッドを使用します。例:

 OdBmObjectId elemId = pDb->getObjectId(iHandle);

      //Create an empty override and set it as a graphic override for an element
      OdBmOverrideGraphicSettingsPtr pEmptyOverrider = OdBmOverrideGraphicSettings::createObject();
      pActiveView->setElementOverrides(elemId, pEmptyOverrider);

カテゴリのオーバーライドを変更するには、setCategoryOverrides()メソッドを使用します。例:

OdBmElementHeaderPtr pHeader = elemId.getHeader();
      OdInt64 iCategory = static_cast<OdInt64>(pHeader->getCategoryId().getHandle());
      
      OdBm::BuiltInCategory::Enum category = static_cast<OdBm::BuiltInCategory::Enum>(iCategory);
      pActiveView->setCategoryOverrides(category, pEmptyOverrider);

フィルターのオーバーライドを変更するには、setFilterOverrides()メソッドを使用します。以下の例は、要素IDを使用して目的のフィルターのオーバーライドを変更する方法を示しています。

OdBmFilterOverridesPtr pFilterOverrides = pActiveView->getFilterOverrides();
      OdBmFilterGraphicSettingsPtrArray aGraphicsSettings;
      pFilterOverrides->getFilterGraphicsSettings(aGraphicsSettings);

      for (auto pSetting : aGraphicsSettings)
      {
        OdBmFilterElementPtr pFilterElem = pSetting->getFilterElemId().safeOpenObject();
        if (pFilterElem->isMatched(elemId))
        {
          pActiveView->setFilterOverrides(pSetting->getFilterElementId(), pEmptyOverrider);
        }
      }

取得メソッドは OdBmOverrideGraphicSettings クラスのオブジェクトを返し、変更メソッドには同じクラスのオブジェクトが必要です。このクラスのメソッドを使用して、グラフィック設定を制御できます。

 

オーバーライドを削除

ビューからすべてのグラフィックオーバーライドを削除するには、removeAllOverrides() メソッドを呼び出します。また、新しく作成された OdBmOverrideGraphicSettings オブジェクトを設定すると、古いオーバーライドが削除されます。

完全なコード例は、BimRv/Examples/TB_Commands ディレクトリにある BmRemoveOverridesCmd コマンドを参照してください。

今すぐ始める

ODAソフトウェアを60日間無料でお試しください。
リスクなし、クレジットカード不要。

無料で試す