public static void RunCategorySetup(Document currentDoc)
        {
            RevitCategories cats = new RevitCategories(currentDoc);

            if (!currentDoc.IsFamilyDocument)
            {
                CategoryMethod method = new CategoryMethod(cats.CategorySetup);
                int            i      = CategoryCalls.CategoryLoop(method);
                TaskDialog.Show("Categories Setup", "The line weights have been set for " + i + " Categories!");
            }
            else
            {
                CategoryMethod    method = new CategoryMethod(cats.CategorySetup);
                CategoryQualifier qual   = new CategoryQualifier(cats.CategoryCheck);
                int i = CategoryCalls.CategoryLoop(method, qual);
                TaskDialog.Show("Categories Setup", "The line weights have been set for " + i + " Categories!");
            }
        }
 private void CategorySetup(CC_Category cat)
 {
     if (cat.BuiltInCategory > 0)
     {
         Category bic = GetBuiltInCategory(currentDoc, cat.BuiltInCategory);
         setCategoryStyles(bic, cat);
     }
     else
     {
         CC_Category     parentcat = CategoryCalls.getCategory(cat.Name);
         Category        parent    = GetBuiltInCategory(currentDoc, parentcat.BuiltInCategory);
         CategoryNameMap map       = parent.SubCategories;
         if (!map.Contains(cat.Name))
         {
             Category subcat = currentDoc.Settings.Categories.NewSubcategory(parent, cat.Name);
             setCategoryStyles(subcat, cat);
         }
         else
         {
             Category subcat = map.get_Item(cat.Name);
             setCategoryStyles(subcat, cat);
         }
     }
 }