個々のタイプのパイプと構造物は、標準のパイプ プロパティと構造物プロパティには格納できない、サイズ、ジオメトリ、設計、および構造などの多くの一意の属性を備えています。各パーツに適切な属性を与えるために、パイプ オブジェクトと構造物オブジェクトは動的なプロパティのセットを備えています。1 つのプロパティは、PartDataField オブジェクトによって表されます。データ フィールドは、PartDataRecord 型のコレクションに格納されます。これらのコレクションには、Pipe および Structure オブジェクトを継承する Part クラスの PartData プロパティを使用してアクセスできます。各データ フィールドには、他のプロパティと同様に、内部変数名、値の文字説明、フィールドを識別するためのグローバル コンテキスト、データ タイプ、およびデータ値自体が含まれています。
次のサンプルでは、パイプ オブジェクト「oPipe」に含まれるすべてのデータ フィールドを列挙し、各フィールドの情報を表示します。
// Get PartDataRecord for first pipe in the network ObjectId pipeId = oNetwork.GetPipeIds()[0]; Pipe oPipe = ts.GetObject(pipeId, OpenMode.ForRead) as Pipe; PartDataField[] oDataFields = oPipe.PartData.GetAllDataFields(); ed.WriteMessage("Additional info for pipe: {0}\n", oPipe.Name); foreach (PartDataField oPartDataField in oDataFields) { ed.WriteMessage("Name: {0}, Description: {1}, DataType: {2}, Value: {3}\n", oPartDataField.Name, oPartDataField.Description, oPartDataField.DataType, oPartDataField.Value); }
NetworkCatalogDef クラスで作成された動的プロパティは、.NET API でサポートされません。