部品

部品

パーツは、次のような階層構造を持つ要素からも生成できます。

Revit API では、PartUtils クラスを使用して要素をパーツに分割できます。静的メソッド PartUtils.CreateParts()は 1 つまたは複数の要素からパーツを作成するために使用します。API の大部分の要素作成メソッドとは異なり、CreateParts()は実際にパーツを作成したり、パーツを返したりせず、PartMaker と呼ばれる要素をインスタンス化する点に注意してください。PartMaker はその埋め込まれた規則を使用して、再生成中に必要なパーツの作成を促進します。

また、API にはパーツを再分割するためのインタフェースも備わっています。PartUtils.DivideParts()には入力としてパーツ ID の集合、「交差する要素」の ID の集合(レイヤやグリッドも可能)、曲線の集合を使用することができます。日常の作業では、交差する要素や曲線を境界として使用し、そこからパーツを分割したり、新しいパーツを生成します。

GetAssociatedParts()メソッドを呼び出すと、要素に関連付けられている一部またはすべてのパーツを見つけることができ、HasAssociatedParts()を使用すると要素がパーツを持っているかどうかを判別することができます。

API では、個々のパーツ要素を削除する方法または、パーツに関連付けられている PartMaker を削除する方法(この場合、次の再生成後に PartMaker によって生成されたすべてのパーツも削除されます)のいずれかでパーツを削除することができます。

Revit API では、Revit ユーザ インタフェースと同様にパーツを操作できます。たとえば、パーツの外側の境界は PartUtils.SetFaceOffset()を使用してオフセットすることができます。

次の例では、オフセット可能なパーツのすべての面をオフセットします。

コード領域: パーツの面をオフセット

Part part = doc.GetElement(uidoc.Selection.PickObject(ObjectType.Element)) as Part;
Autodesk.Revit.DB.GeometryElement geomElem = part.get_Geometry(newOptions());

foreach(GeometryObject geomObject in geomElem)
{
    if (geomObjectisSolid)
    {
        Solidsolid = geomObject as Solid;
        FaceArray faceArray = solid.Faces;
        foreach (FacefaceinfaceArray)
        {
            if (part.CanOffsetFace(face))
            {
                part.SetFaceOffset(face, 1);
            }
        }
    }
} 

選択したパーツの面のオフセット前とオフセット後