上一篇文章中是关于在Revit中添加共享参数的步骤, 下面是使用代码来添加共享参数: 主要代码如下:
// 创建共享参数 private void CreateShareInfor(Autodesk.Revit.ApplicationServices.Application revitApp, Document revitDoc, string definitionName) { try { string groupName = "AssetsManagement"; ParameterType parameterType = ParameterType.Text; CategorySet categorySet = new CategorySet(); Category pipeCategory = revitDoc.Settings.Categories.get_Item(BuiltInCategory.OST_PipeCurves); categorySet.Insert(pipeCategory); bool instanceParameter = true; BuiltInParameterGroup parameterGroup = BuiltInParameterGroup.PG_DATA; using (Transaction trans = new Transaction(revitDoc,"AddParameter")) { trans.Start(); revitApp.SharedParametersFilename = sharedParametersFilename; DefinitionFile definitionFile = revitApp.OpenSharedParameterFile(); if (definitionFile == null) { throw new Exception("Can not open shared parameter file"); } DefinitionGroups groups = definitionFile.Groups; DefinitionGroup group = groups.get_Item(groupName); if (group == null) { group = groups.Create(groupName); } Definition definition = group.Definitions.get_Item(definitionName); if (definition == null) { definition = group.Definitions.Create(new ExternalDefinitionCreationOptions(definitionName, parameterType)); } ElementBinding binding = null; if (instanceParameter) { binding = revitApp.Create.NewInstanceBinding(categorySet); } else { binding = revitApp.Create.NewTypeBinding(categorySet); } if (!revitDoc.ParameterBindings.Contains(definition)) { bool insertSuccess = revitDoc.ParameterBindings.Insert(definition, binding, parameterGroup); if (!insertSuccess) { throw new Exception("Failed to bind definition to category"); } } trans.Commit(); } } catch (Exception ex) { throw new Exception(ex.Message); } }