collector = FilteredElementCollector(doc)
categories = doc.Settings.Categories.Cast[Category]().Where(lambda x: x.CategoryType == CategoryType.Model and x.HasMaterialQuantities).Select(lambda x: x.Id).ToList[ElementId]()
filter = LogicalAndFilter(ElementMulticategoryFilter(categories), ElementIsElementTypeFilter(True))
elements = collector.WherePasses(filter).ToElements()
lookup(elements)