Sketch クラスは、3D モデルの作成に使用される平面の閉じられた曲線を表します。キーフィーチャは、SketchPlane および CurveLoop プロパティによって表されます。
Revit ファイルを編集する場合は、すべての Sketch オブジェクトは一時的な要素であるため、Document.Elements の列挙を反復して Sketch オブジェクトを取得することはできません。ファミリの 3D モデリング情報にアクセスする場合は、Sketch オブジェクトは、ジオメトリの形成に重要です。詳細は、「3D スケッチ」を参照してください。
SketchPlane は、ModelCurve や Sketch などのすべての 2D スケッチ クラスの基礎となるものです。SketchPlane も、DetailCurve などのsketchPlane 2D 注釈要素の基礎です。ModelCurve と DetailCurve の両方には SketchPlane プロパティがあり、対応する作成メソッドで SketchPlane が必要です。SketchPlane は、Revit UI では常に非表示となっています。
ModelCurve は、SketchPlane に配置されている必要があります。つまり、UI で、または API を使用して ModelCurve を描画する場合は、常に SketchPlane が存在する必要があります。したがって、ModelCurve 描画される場合は、少なくとも 1 つの SketchPlane が 2D ビューに存在する必要があります。
2D ビューには、CeilingPlan、FloorPlan、Elevation ViewTypes が含まれています。既定では、SketchPlane はこれらのすべてのビューに自動的に作成されます。2D ビューに関する SketchPlane Name は、「レベル 1」 または「北」などのビュー名を返します。
図 77: 平面を選択して新しい作業面を指定
新しい作業面を指定した場合は、前の図で示すように、面を選択できます。面を選択した後で、次の図のように壁などの特定の要素の面を選択します。この場合、SketchPlane.Name プロパティは、その要素に関連する文字列を返します。たとえば、下図では、SketchPlane.Name プロパティは、Wall.Name プロパティと同じ「Generic - 8」を返します。
図 78: 作業面として壁で平面を選択
次の情報が SketchPlane メンバーに適用されます。
面には、SketchPlane ジオメトリ情報が含まれています。下図のとおり、SketchPlane は Plane を使用して面の座標系を設定します。
図 79: SketchPlane および Plane 座標系
次のコード サンプルでは、新しい SketchPlane を作成する方法を示します。
コード領域 17-1: 新しい SketchPlane を作成 |
private SketchPlane CreateSketchPlane(UIApplication application) { //try to create a new sketch plane XYZ newNormal = new XYZ(1, 1, 0); // the normal vector XYZ newOrigin = new XYZ(0, 0, 0); // the origin point // create geometry plane Plane geometryPlane = application.Application.Create.NewPlane(newNormal, newOrigin); // create sketch plane SketchPlane sketchPlane = SketchPlane.Create(application.ActiveUIDocument.Document,geometryPlane); return sketchPlane; } |