Revit API共享参数的使用

共享参数相当于为某一类别元素增加一个额外的参数。
需要读取值的时候,就当作普通参数值来读。
这里仅仅把读取共享参数文件,然后绑定到某一类别的代码贴出来。
API创建组,创建参数具体代码详见源码。
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public  class Command4 : IExternalCommand
{
     public Result Execute(ExternalCommandData cmdData,  ref  string message, ElementSet elements)
    {
        UIDocument uiDoc = cmdData.Application.ActiveUIDocument;
        Selection selection = uiDoc.Selection;

        Transaction ts =  new Transaction(uiDoc.Document,  " LevelDuct ");
        ts.Start();

         // 打开文件
        cmdData.Application.Application.SharedParametersFilename =  @" C:\Users\HongYe\Desktop\RevitParameters.txt ";
        DefinitionFile sharedParametersFile = cmdData.Application.Application.OpenSharedParameterFile();
         // 绑定到类别
        CategorySet categories =  null;
        categories = cmdData.Application.Application.Create.NewCategorySet();
        Category wallCategory =  null;
         // wallCategory = commandData.Application.ActiveUIDocument.Document.Settings.Categories.get_Item("Walls");
        wallCategory = cmdData.Application.ActiveUIDocument.Document.Settings.Categories.get_Item( " ");

        categories.Insert(wallCategory);

        InstanceBinding instanceBinding =  null;
        instanceBinding = cmdData.Application.Application.Create.NewInstanceBinding(categories);
         // 参数
        
// 参数分组
        Autodesk.Revit.DB.DefinitionGroup sharedParameterGroup =  null;
        sharedParameterGroup = sharedParametersFile.Groups.get_Item( " RevitParameters ");
         if ( null == sharedParameterGroup)
        {
            sharedParameterGroup = sharedParametersFile.Groups.Create( " RevitParameters ");
        }
         // 参数值
        Definition sharedParameterDefinition =  null;
        sharedParameterDefinition = sharedParameterGroup.Definitions.get_Item( " APIParameter ");
         if (sharedParameterDefinition ==  null)
        {
            sharedParameterDefinition = sharedParameterGroup.Definitions.Create( " APIParameter ", ParameterType.Text,  true);
        }

        cmdData.Application.ActiveUIDocument.Document.ParameterBindings.Insert(sharedParameterDefinition, instanceBinding);

        ts.Commit();

         return Result.Succeeded;
    }
}
更多示例源码: http://revit.5d6d.com/thread-1305-1-1.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值