[ブログに戻る](/ja/blog) # BIM SDK での .bin および .csv ファイルの操作

Alexey Korolev 6月 20, 2019 [\#rvt](/ja/blog/tag/rvt) [\#rfa](/ja/blog/tag/rfa)

<a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_linkedin"></a>

#### TB\_BinGeneratorユーティリティの使用

TB\_BinGeneratorは、BuiltInCategoriesに関連付けられたオブジェクトのデータなど、大規模なデータセットのストレージに使用される.binファイルと.csvファイルを更新するユーティリティです。デフォルトでは、TB\_BinGeneratorはビルドプロセスから除外されています。除外を切り替えるには、TB\_ROOT/Projects/CMakeLists.txtの最初の行をSET(ENV{GENERATION\_MODE} 0)からSET(ENV{GENERATION\_MODE} 1)に変更します。使用方法は簡単で、引数なしでユーティリティを実行するだけです。

#### TB\_ExLabelUtilsの変更点

TB\_ExLabelUtilsは、APIをほぼ同じに保ちながら、完全に再設計されました。

すべてのラベルは、TB\_ExLabelUtilsバイナリの近くにあるCSVフォルダーに配置された個別の.csvファイルセットに保存されます。これらの値は、実行時でもいつでも変更できます。簡素化のため、また例でのパフォーマンスの問題を避けるため、各ラベルセットは最初のリクエスト時にキャッシュされます。したがって、ラベルがすでにリクエストされている場合、実行時の変更は現在のセッション中には有効になりません。

マイナーなAPI拡張は、関連するラベルを持つ列挙のリストを提示するOdBm::EnumsWithLabels::Enum列挙で構成されています。

- virtual bool OdBmLabelUtilsPE::isCommon(const OdBm::EnumsWithLabels::Enum) const;  
    ラベル値がBIMソースファイルのマクロ定義に基づいている場合はtrueを返します。それ以外の場合はfalseを返します。
- virtual bool OdBmLabelUtilsPE::hasValues(const OdBm::EnumsWithLabels::Enum) const;  
     PEが指定された列挙の値を返すことができる場合はtrueを返します。それ以外の場合はfalseを返します。

サンプルTB\_ExLabelUtilsでは、isCommonはTB\_ExLabelUtilsバイナリの近くにあるChecksums.txtファイルをチェックすることで評価されます。SHA1を使用して計算されたチェックサム値が.csvに適用されます。SHA1の実装はTB\_ROOT/Include/Common/BmSHA1.hにあります。

組み込みオブジェクトのロードに関して：TB\_ExLabelUtilsモジュールがロードされていない場合、関連する列挙（例えばBmCategoty.h）のラベルが共通である場合、またはラベルをロードできない場合（TB\_ExLabelUtilsがfalseを返す場合）、バイナリに保存されているラベルが使用されます。

配布パック内のCSVフォルダーは、BIMルートフォルダーにあるCSVフォルダーのコピーです。

#### .binと.csvの一貫性

コンパイル時に、.csvまたは.binファイルの内容がマクロ定義を含むファイル（例えばBuiltInCategories.csvとBmBuiltInCategory.h）と一貫性がない場合、ビルドは失敗します。したがって、変更はマクロ変更とTB\_BinGeneratorの実行を通じて行う必要があります。

## 今すぐ始める

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

[無料で試す](https://www.opendesign.com/ja/free-trial)
