AeccPipeSettingsRoot には、ドキュメント内の使用可能なすべてのパーツ タイプ リストの読み込み専用コレクションである PartLists プロパティも含まれています。各リストは、パーツ ファミリの読み込み専用コレクションである AeccPartList 型のオブジェクトです。 パーツ ファミリはパーツの幅広いカテゴリで、GUID (Globally Unique Identification)値によって識別されます。パーツ ファミリは、パイプまたは構造物のいずれかのパーツだけで構成できます。パーツ ファミリには、パーツの特定のサイズであるパーツ フィルタの読み込み専用コレクション(AeccPartSizeFilter)が含まれます。パーツ ファミリは、パーツのさまざまな側面を定義するフィールドのコレクションである AeccPartSizeFilter.PartDataRecord プロパティによって定義されます。
次の例では、ドキュメント内のすべてのパーツのリストを出力します。
Dim oSettings As AeccPipeSettingsRoot Set oSettings = oPipeDocument.Settings ' Get a reference to all the parts lists in the drawing. Dim oPartLists As AeccPartLists Set oPartLists = oSettings.PartLists Debug.Print "Number of part lists: "; oPartLists.Count Dim oPartList As AeccPartList For Each oPartList In oPartLists Dim oPartFamily As AeccPartFamily Dim oSizeFilters As AeccPartSizeFilters Dim oSizeFilter As AeccPartSizeFilter Dim sPipeGuid As String Dim sStructureGuid As String Dim oPipeFilter As AeccPartSizeFilter Dim oStructureFilter As AeccPartSizeFilter Debug.Print: Debug.Print Debug.Print "PART LIST - "; oPartList.Name Debug.Print "-------------------------------------------" ' From the part list, looking at only those part families ' that are pipes, print all the individual parts. Debug.Print " Pipes" Debug.Print " =====" For Each oPartFamily In oPartList ' Look for only pipe families. If (oPartFamily.Domain = aeccDomPipe) Then sPipeGuid = oPartFamily.guid Debug.Print " Family: "; oPartFamily.Name ' Go through each part in this family. For Each oPipeFilter In oPartFamily.SizeFilters Debug.Print " Part: "; oPipeFilter.Name Next End If Next ' From the part list, looking at only those part families ' that are structures, print all the individual parts. Debug.Print Debug.Print " Structures" Debug.Print " ==========" For Each oPartFamily In oPartList ' Look for only structure families. If (oPartFamily.Domain = aeccDomStructure) Then sStructureGuid = oPartFamily.guid Debug.Print " Family: "; oPartFamily.Name ' Go through each part in this family. For Each oPipeFilter In oPartFamily.SizeFilters Debug.Print " Part: "; oPipeFilter.Name Next End If Next Next