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