// 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());
        }