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

来源:互联网 发布:java备忘录源码下载 编辑:程序博客网 时间:2024/05/06 18:26

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


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

RevitApp.SharedParametersFilename = @"C:\YourDefinitionFile.txt"; // set the shared file if haven'tDefinitionFile definitionFile = RevitApp.OpenSharedParameterFile();DefinitionGroup group = definitionFile.Groups.Create("A New Group"); // create a new group, or get an existing groupExternalDefinitonCreationOptions edco = new ExternalDefinitonCreationOptions("ParaName", ParameterType.Text);Definition definition = group.Definitions.Create(edco); // create a new definitionCategorySet 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

0 0
原创粉丝点击