|
|
|
これを更にグループ化して見て行きます。
|
|
Revitの構造を大まかに表しております。
|
|
99%のオブジェクトがAPIObjectを継承しています。
|
|
そこからElementオブジェクトが派生し、さらにFamilyBase、Symbol,Group、Instance,HostObjectが派生します。
|
|
HostObjectからWallやFloorクラスが派生していますが、ドアや窓が建築では使用されると思いますが見当たりません。
|
|
ここでRevitのUIを思い出して頂きたいのですが、ドアや窓はファミリーとして外部ファイルで編集されます。
|
|
但し、壁等は外部ファミリーとして提供されません。
|
|
この違いが現れているのがこの部分になります。
|
|
次にFamilyInstanceと赤で囲われたクラスが有りますが、これがドアや窓が属するクラスとなります。
|
|
ということは標準ファミリー(コンポーネントと呼ばれる)が、このFamilyInstanceに属します。
|
|
それに対して、Revitのシステムでしか定義出来ないシステムファミリーがHostObject下のクラスに該当します。
|
|
表示されているインスタンス以外に、Symbolというクラスが有ります。
|
|
これはいわゆるファミリーシンボルですが、壁のシンボルやドアのシンボルとして定義されますが、画面の左下の赤枠のクラス2つがそれになります。
|
|
その直ぐ右上にFamilySymbolが有りますが、これは標準ファミリーのシンボルになります。
|
|
ここで構造の分け目となるのは、Symbolである要素かSymbolでは無い要素か、Symbolの中でもコンポーネント系なのか、それともシステム系なのかで判別します。
|
|
システム系であれば専用のクラスが用意されていますが、コンポーネント系であればFamilyInstanceもしくはFamilySymbolとなります。
|
|
これは外部で定義されると専用のクラスを持つことが出来ませんので、この様な構造となります。
|
|
一番左にFamilyクラスが有りますが、これが入れ物に該当します。
|
|
例えば、ドアのファミリーには大きさの異なる色々なタイプがあり、これらがFamilyクラスに含まれます。
|
|
ですから、FamilyクラスはSymbolクラスのコンテナとなります。
|
|
|