Civil3Dのプロパティセットをプログラムで操作したい!

Civil3Dでコリドーソリッドを作成すると[プロパティ]パレットの[拡張データ]タブにプロパティセットが表示されますよね。

トンネルのコリドーソリッド 赤枠部がプロパティセット

コリドーソリッド作成時には自動的にプロパティセットが作成されますが、プロパティセットを自作する事もできます。
リボンの[管理]タブの[プロパティセットを定義]ボタンで表示される[スタイルマネージャー]ダイアログボックスから作成する事ができます。

プロパティセットを定義ボタン
スタイル マネージャ ダイアログボックス

NavisworksでDWGを読み込めばプロパティセットがそのまま属性として表示されます。

NavisworksでDWGを読み込み

このように作成して利用されるプロパティセット。
Map3Dで属性と言えばオブジェクトデータですが、Civil3Dで属性といえばプロパティセット。
これから頻繁に使う事になるであろうプロパティセットをプログラムで操作出来るようになりたい!
そんな思いでインターネット検索に励みました。

なかなか情報が少ない中で以下のようなサイトが見つかりました。
Defining a property set definition in .NET
How to set a classification in a property set definition
Get a SINGLE property set definition value by name?
助かりますです。ありがとうございます。


いつものようにVB.NETでのプログラミングです。
最初に肝となるのは参照設定で[AecBaseMgd],[AecPropDataMgd]を追加する事でした。

Visual Studio ソリューションエクスプローラー

そこさえ分かればあとはラクラク… とは行きませんでしたが、色々と悩んだ結果こんなツールパレットが仕上がりました。

実行動画

下の部分が実験で作成したツールパレットです。
選択したオブジェクトのプロパティセットを一覧表にするものです。
GISチックにオブジェクトを選択したり、ズームしたりするような機能も付けてみました。
次はオブジェクトを作成してそのオブジェクトにプロパティセットをアタッチするような事に挑戦してみたいと思います。
(宮田)

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中