要素をコピーする

要素をコピーする

ElementTransformUtils クラスには、同一のドキュメントやビュー内のある場所から別の場所に 1 つまたは複数の要素をコピーしたり、別のドキュメントやビューにコピーするための静的メソッドがいくつか用意されています。

表: コピー メソッド

メンバー

説明

CopyElement( Document, ElementId, XYZ)

1 つの要素をコピーし、任意の変換で指定された場所にコピーを配置します。

CopyElements(Document, ICollection<ElementId>, XYZ)

一連の要素をコピーし、任意の変換で指定された場所にコピーを配置します。
CopyElements(Document, ICollection<ElementId>, Document, Transform, CopyPasteOptions) 一連の要素をソースのドキュメントから目的のドキュメントにコピーします。
CopyElements(View, ICollection<ElementId>, View, Transform, CopyPasteOptions) 一連の要素をソースのビューから目的のビューにコピーします。

CopyElement()を含むすべてのメソッドが、新しく作成した要素の ElementIds のコレクションを返します。コレクションには、依存関係によって作成された要素が含まれます。

あるドキュメントから別のドキュメントにコピーするメソッドは、ビュー固有でない要素のコピーにのみ使用できます。コピーはそれぞれの元の場所かオプションの変換によって指定された場所に配置されます。

ビュー固有の要素は、あるビューから別のビューにコピーするメソッドを使用してコピーする必要があります。このメソッドはビュー固有の要素とモデル要素の両方に使用することができますが、製図ビューをモデル要素のコピー先として使用することはできません。貼り付けた要素は、コピー先のビューで正しく配置されるように再配置されます。たとえば、あるレベルから別のレベルにコピーすると、高さが変更されます。オプションの変換引数を指定すると、コピー先のビュー内で追加の変換を実行することができます。この追加の変換は、コピー先の平面内で実行する必要があります。

あるビューから別のビューにコピーする場合、ソースおよびコピー先のビューは、詳細とビュー固有の要素(床や天井伏図、立面図、断面図、製図ビューなど)を描画する機能を持つ 2D グラフィックス ビューである必要があります。ElementTransformUtils.GetTransformFromViewToView()メソッドは、ソースのビューから目的のビューにコピーする際に要素に適用される変換を返します。

ビューやドキュメント間でコピーする場合、オプションの CopyPasteOptions パラメータを設定することで、既定のコピー/貼り付け設定を変更できます。既定では、貼り付けの操作中に重複するタイプ名があると、Revit には一意の名前のみでタイプをコピーするオプションと、操作をキャンセルするオプションの付いたモーダル ダイアログが表示されます。CopyPasteOptions を使用すると、カスタム ハンドラを指定し、IDuplicateTypeNamesHandler インタフェースを使用して、重複するタイプ名を処理できます。

ドキュメント間とビュー間でのコピーの詳細な例については、Revit SDK の複製ビューのサンプルを参照してください。