Autodesk Community Tips- ADNオープン
Autodesk Community Tipsではちょっとしたコツ、やり方、ショートカット、アドバイスやヒントを共有しています。

AutoCAD Plant3D .net APIで機器にノズルがついているかを判定する方法はありますか

質問

AutoCAD Plant3D .net APIで機器にノズルがついているかを判定する方法はありますか

 

回答

機器に設定したノズルは、Plant3Dの.net API Equipment.AllSubPartsにより取得が可能です。

ノズルが設定されていない場合、Equipment.AllSubParts.Countが0となるため、これによりノズルの有り無しを判定が可能です。

以下は選択したエンティティのEquipment.AllSubParts.Countを取得し、コマンドラインにメッセージを表示するサンプルコードです。

 

Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
PromptEntityResult res = ed.GetEntity("Pick Object : ");
if (res.Status == PromptStatus.OK)
{
    ObjectId objectId = res.ObjectId;
    Database trDatabase = objectId.Database;
    using (Transaction tr = trDatabase.TransactionManager.StartTransaction())
    {
        Equipment equipment = tr.GetObject(objectId, OpenMode.ForRead) as Equipment;

        if(  equipment != null)
        {
            ed.WriteMessage("\n Selected equipment has {0} nozzles.", equipment.AllSubParts.Count);
        }
        else
        {
            ed.WriteMessage("\n Selected entity is not a equipment.");
        }
    }
}