// dodgy code from TRex, doesn't really give me the parent in all cases... private static Component GetParentComponent(IdentifiableObject component) { UsedItemsFilter usedItemFilter = new UsedItemsFilter(component.Session) { IncludeBlueprintParentItem = true, ItemTypes = new[] { ItemType.Component }, BaseColumns = ListBaseColumns.Id }; IEnumerable <IdentifiableObject> usedItems = component.GetUsedItems(usedItemFilter); if (usedItems == null) { return(null); } usedItems = usedItems.Where(usedItem => usedItem.Id.ItemId.Equals(component.Id.ItemId)); if (usedItems == null) { return(null); } return((Component)usedItems.First()); }