Revit二次开发,已知一个族类型,需要复制一份族类型后使用

已知一个族类型,需要复制一份该族类型,然后使用该新的族类型。

可以使用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;
}

 

祝您用餐愉快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值