拡張ストレージの作成方法です。 |
||
まづ、スキーマを作成して名前を付けます。 |
||
読み取り/書き込みアクセスの許可をスキーマに設定します。 |
||
1つまたは複数のデータフィールドを定義します |
||
そしてスキーマを作成を完了することで保存します。 |
||
そしてEntityクラスで定義されたオブジェクトを作成してフィールドに値を設定し、目的の要素にEntityオブジェクトを追加します。 |
||
主要クラスですが、 |
||
Schemaクラスはスキーマオブジェクトを定義し、SchemaオブジェクトはSchemaBuilderクラスを使用して作成します。フィールドはFieldBuilderクラスを使用して作成します。Entityクラスで定義されたオブジェクトはスキーマのインスタンスを保持します。 |
||
DEMO: |
||
では、ここでデモを行います。 |
||
拡張ストレージのアプリケーションがすでにRevit にロードされています。EXECUTEめどっどにブレークポイントがセットしてあります。データをアタッチするために壁が作成してあります。ツールメニューから拡張ストレージでを実行します。ブレークポイントで止まったので、コードを見てきます。ExecuteメソッドのCommandDataからRevitのあぷけーしょんとドキュメントにアクセスできます。PickObject メソッドを使用し、UserInterface Selection そして、壁を選択してデータを追加します。データはピックした座標です。PickObjectメソッドは選択した壁と座標を取得できます。まづ面を選択するように指定します。Wallフィルタを指定いします。壁フィルタはISELECTIONFILTERを実装します。これは引数をとります。(???)このメソッドを使うと、REVITに実行が移り、壁のみを選択するように促します。 |
||
戻り値のPickObjectは参照(リファレンス)です。参照のデータフィールドの一つは要素IDです。もう一つは選択が行われた座標です。これで、選択した壁と座標を取得しました。 |
||
モデルにデータを追加します。トランザクションを開始します。新しいSchemaBuilderのインスタンスを作成します。GUIDを渡します。あたしいスキーマは読み込み専用でパブリックアクセスにします。書き込みアクセスはベンダーのみとします。ベンダーに書き込みアクセスを許可するのでベンダーIDを設定する必要がります。ベンダーIDはアドインマニフェストに設定したベンダーIDと同じです。つぎはフィールドを指定します。選択場所を保存しますので、単位タイプはリンクで、ドキュメンテーションのフィールドも指定します。スキーマ名を指定します。そしてこのデータフィールドのためのエンティティを作成します。フィールドを設定してスキーマをアタッチして、エンティティを要素に追加します。トランザクションをコミットします。それによってデータが壁に書き込まれます。 |
||