我编写了代码,并且在创建'中遇到了一个问题。方法。我无法弄清楚......任何想法都会受到赞赏吗?这是2016年的复兴。
public static void createSharedParam(Document doc, string name)
{
DefinitionFile defFile = doc.Application.OpenSharedParameterFile();
DefinitionGroup dg = null;
if (defFile == null) throw new Exception("No Shared Parameter File!");
if (doc.ProjectInformation.Parameters.Cast<Parameter>().FirstOrDefault(q => q.Definition.Name.Equals(name)) != null)
{
return;
}
else
{
string pgroup = "Parameter Group";
dg = defFile.Groups.FirstOrDefault(g => g.Name == pgroup);
if (dg == null)
{
dg = defFile.Groups.Create(pgroup);
}
}
Category myCategory = doc.Settings.Categories.get_Item(BuiltInCategory.OST_Views);
CategorySet myCategories = doc.Application.Create.NewCategorySet();
myCategories.Insert(myCategory);
ElementBinding binding = doc.Application.Create.NewInstanceBinding(myCategories);
Definition def = dg.Definitions.Cast<Definition>().FirstOrDefault(q => q.Name == name);
if (def == null)
def = dg.Definitions.Create(name, ParameterType.Text);
bool result = doc.ParameterBindings.Insert(def, binding, BuiltInParameterGroup.PG_DATA);
}
}
答案 0 :(得分:1)
这是标准的迁移问题。请查看Revit 2016 API的“新功能”部分。在您的情况下,Revit 2015 API中可能会发生相关更改:在创建新共享参数时引入选项类:
http://thebuildingcoder.typepad.com/blog/2014/04/whats-new-in-the-revit-2015-api.html#2.04
共享参数创建 - 描述和用户可修改性
新方法:
使用options类创建一个新的共享参数定义,其中可以设置任何或所有可用选项(名称和类型是必需的,但GUID,用户可见,用户可修改和描述是可选的)。此方法替换了现在已过时的所有其他特定版本的Definitions.Create()。
以下是一个合适的示例代码段:
//definition = group.Definitions.Create( defname, _deftype, visible ); // 2014
ExternalDefinitionCreationOptions opt
= new ExternalDefinitionCreationOptions(
defname, _deftype );
opt.Visible = visible;
definition = group.Definitions.Create( opt ); // 2015