revit api共享参数
获取共享参数
// 打开共享参数文件
DefinitionFile definitionFile = RevitApp.OpenSharedParameterFile();
// 获取参数组的集合
DefinitionGroups groups = definitionFile.Groups;foreach (DefinitionGroup group in groups)
{// 获取参数组内的参数定义foreach (Definition definition in group.Definitions){string name = definition.Name;ParameterType type = definition.ParameterType;// 对参数定义的其他操作}
}
创建共享参数
string sharedParametersFilename = @"C:\shared-parameters.txt";
string groupName = "MyGroup";
string definitionName = "MyDefinition";
ParameterType parameterType = ParameterType.Text;
CategorySet categorySet = new CategorySet();
Category wallCategory = RevitDoc.Settings.Categories.get_Item(BuiltInCategory.OST_Walls);
categorySet.Insert(wallCategory);
bool instanceParameter = true;
BuiltInParameterGroup parameterGroup = BuiltInParameterGroup.PG_DATA;if (!System.IO.File.Exists(sharedParametersFilename))
{try{System.IO.StreamWriter sw = System.IO.File.CreateText(sharedParametersFilename);sw.Close();}catch (Exception){throw new Exception("Can't create shared parameter file: " + sharedParametersFilename);}
}
// 设置共享参数文件
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 (null == group)
{// 如果参数组不存在,则创建一个group = groups.Create(groupName);
}
if (null == group)throw new Exception("Failed to get or create group: " + groupName);// 获取参数定义
Definition definition = group.Definitions.get_Item(definitionName);
if (definition == null)
{// 如果参数定义不存在,则创建一个definition = group.Definitions.Create(definitionName, parameterType);
}// 调用不同的函数创建类型参数或者实例参数
ElementBinding binding = null;
if (instanceParameter)
{binding = RevitApp.Create.NewInstanceBinding(categorySet);
}
else
{binding = RevitApp.Create.NewTypeBinding(categorySet);
}// 把参数定义和类别绑定起来(下面的小节会提到“绑定”),元素的新的参数就创建成功了。
bool insertSuccess = RevitDoc.ParameterBindings.Insert(definition, binding, parameterGroup);if (!insertSuccess)
{throw new Exception("Failed to bind definition to category");
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/951231.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!