OwnerFamily即族模板。
获取类别的方法:
Document.Settings.Categories.get_Item(BuiltInCategory.OST_Columns);
//判断是不是柱族模板
[TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class cmdCheckFamily : IExternalCommand
{    
bool ValidateDocument(Document rvtDoc)
    {        
if (!rvtDoc.IsFamilyDocument)
//判断是不是族文档
        {
            TaskDialog.Show(
"Family API", 
"This command works only in the family editor.");            
return false;
        }
        Family ownerFamily = rvtDoc.OwnerFamily;        
if (ownerFamily == 
null)
//判断是否使用了族模板
        {
            TaskDialog.Show(
"Family API", 
"This document does not have Owner Family.");            
return false;
        }        
//取得族类别的方法
        Category catColumn = rvtDoc.Settings.Categories.get_Item(BuiltInCategory.OST_Columns);        
if (!ownerFamily.FamilyCategory.Id.Equals(catColumn.Id))
        {
            TaskDialog.Show(
"Family API", 
"The category of this document does not match the context of this commands. Please open Metric Column.rft");            
return false;
        }        
return true;
    }    
public Result Execute(ExternalCommandData commandData, 
ref string messages, ElementSet elements)
    {
        UIApplication app = commandData.Application;
        Document doc = app.ActiveUIDocument.Document;
        Selection sel = app.ActiveUIDocument.Selection;
        ValidateDocument(doc);        
return Result.Succeeded;
    }
}url:
http://www.cnblogs.com/greatverve/p/ValidateDocument.html