已知一个族类型,需要复制一份该族类型,然后使用该新的族类型。
可以使用Duplicate得到复制后的对象。
var symbol = this.Document.FindFamilySymbol("机械设备", "运煤", "B=1200");
var newSymbol = symbol.Duplicate("C=1200") as FamilySymbol;
其中FindFamilySymbol是查找“B=1200”的族类型,这个方法您懂的。得到了族类型对象symbol后,使用Duplicate可以复制一个新的。
为了给您带来方便,下面的代码是用于查找族类型的,即FindFamilySymbol()方法
/// <summary>
/// 查找族类型
/// </summary>
/// <param name="currentDocument">当前打开的文档</param>
/// <param name="categoryName">大类名称</param>
/// <param name="familyName">族名称</param>
/// <param name="familySymbolName">族类型名称</param>
/// <returns>返回多个族类型</returns>
public static IList<FamilySymbol> FindFamilySymbols(this Document currentDocument, string categoryName, string familyName, string familySymbolName)
{
if (string.IsNullOrEmpty(familySymbolName))
{
throw new ArgumentNullException();
}
List<FamilySymbol> familySymbols = new List<FamilySymbol>();
var familySymbolList = currentDocument.GetFamilySymbolList();
foreach (var item in familySymbolList)
{
if (null == item)
{
continue;
}
if (null == item.Category)
{
continue;
}
if (!string.IsNullOrEmpty(categoryName) && categoryName != item.Category.Name)
{
continue;
}
if (!string.IsNullOrEmpty(familyName) && familyName != item.FamilyName)
{
continue;
}
if (familySymbolName != item.Name)
{
continue;
}
familySymbols.Add(item);
}
return familySymbols;
}
祝您用餐愉快。