-   
- public void BOMQuery() 
-         { 
-             if (assemblyDocument.ComponentDefinition.IsiAssemblyMember) 
-             { 
-                 iAssemblyFactory assemblyFactory = assemblyDocument.ComponentDefinition.iAssemblyMember.ParentFactory; 
-                 iAssemblyTableRows tableRows = assemblyFactory.TableRows; 
-                  
-                 string str = ""; 
-                 foreach (iAssemblyTableRow tableRow in tableRows) 
-                 {                                      
-                    //iAssemblyMember member = ....                     
-                    //BOM oBOM = member.Parent.BOM; <-- интересно можно ли перейти от iAssemblyFactory к каждому iAssemblyMember, а затем к его BOM 
-                      
-                     BOM oBOM = assemblyFactory.Parent.BOM; 
-   
-                     oBOM.StructuredViewFirstLevelOnly = true; 
-                     oBOM.StructuredViewEnabled = true; 
-                     BOMView oBOMView = oBOM.BOMViews[2]; 
-   
-                     assemblyFactory.DefaultRow = tableRow; // <-- можно ли здесь по-другому реализовать 
-                     oBOMView.iAssemblyMemberName = tableRow.MemberName; 
-                      
-                     //Пока выводим только PartNumber и количество для каждой конфигурации 
-                     string str3 = ""; 
-                     foreach (BOMRow oRow in oBOMView.BOMRows) 
-                     { 
-                         Document oDoc = (Document)oRow.ComponentDefinitions[1].Document; 
-                         string str1 = oDoc.PropertySets["Design Tracking Properties"]["Part Number"].Value.ToString(); 
-                         string str2 = oRow.ItemQuantity.ToString(); 
-                         str3 += str1 + "\t:" + str2 + "\n"; 
-                     } 
-                     str += str3 + "\n"; 
-                 }                    
-                 MessageBox.Show(str); 
-             } 
-         } 
-   
-