RevitAPI: 如何创建共享参数,并和类别绑定

共享参数给我们带来很多遍历,那么如何通过API来创建它们,并和某些类别的元素进行绑定呢?


下面我们用最少的代码来演示一下:

RevitApp.SharedParametersFilename = @"C:\YourDefinitionFile.txt"; // set the shared file if haven't
DefinitionFile definitionFile = RevitApp.OpenSharedParameterFile();
DefinitionGroup group = definitionFile.Groups.Create("A New Group"); // create a new group, or get an existing group
ExternalDefinitonCreationOptions edco = new ExternalDefinitonCreationOptions("ParaName", ParameterType.Text);
Definition definition = group.Definitions.Create(edco); // create a new definition

CategorySet categories = new CategorySet();
categories.Insert(RevitDoc.Settings.Categories.get_Item(BuiltInCategory.OST_Walls));
categories.Insert(RevitDoc.Settings.Categories.get_Item(BuiltInCategory.OST_Windows));
Binding binding = new InstanceBinding(categories); // bind categories for instances, use TypeBinding to bind the parameter with types
                
RevitDoc.ParameterBindings.Insert(definition, binding); // bind category and definition

首先指定一个共享文件,如果从来没有指定过共享文件的话,注意,该文件一定要首先存在,否则会抛异常。

OpenSharedParameterFile之后,新建组,或者通过definitionFile.Groups.get_Item("GropuName")来获取已存在的组。

然后创建一个Definition和一个Binding,可以是InstanceBinding或者TypeBinding,对应着和实例绑定还是和类型绑定。

最后调用ParameterBindings.Insert来完成绑定操作。

注意ParameterBindings.Insert要修改文档,所以,需要放在Transaction里面来操作哦,否则会有异常ModificationOutsideTransactionException抛出,请见http://blog.csdn.net/lushibi/article/details/41863651

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值