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