Autodesk Community Tipsではちょっとしたコツ、やり方、ショートカット、アドバイスやヒントを共有しています。
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.");
}
}
}