Revit API共享参数的使用
2011-11-17 08:33
363 查看
共享参数相当于为某一类别元素增加一个额外的参数。
需要读取值的时候,就当作普通参数值来读。
这里仅仅把读取共享参数文件,然后绑定到某一类别的代码贴出来。
API创建组,创建参数具体代码详见源码。
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class Command4 : IExternalCommand
{
public Result Execute(ExternalCommandData cmdData, ref string message, ElementSet elements)
{
UIDocument uiDoc = cmdData.Application.ActiveUIDocument;
Selection selection = uiDoc.Selection;
Transaction ts = new Transaction(uiDoc.Document, "LevelDuct");
ts.Start();
//打开文件
cmdData.Application.Application.SharedParametersFilename = @"C:\Users\HongYe\Desktop\RevitParameters.txt";
DefinitionFile sharedParametersFile = cmdData.Application.Application.OpenSharedParameterFile();
//绑定到类别
CategorySet categories = null;
categories = cmdData.Application.Application.Create.NewCategorySet();
Category wallCategory = null;
//wallCategory = commandData.Application.ActiveUIDocument.Document.Settings.Categories.get_Item("Walls");
wallCategory = cmdData.Application.ActiveUIDocument.Document.Settings.Categories.get_Item("墙");
categories.Insert(wallCategory);
InstanceBinding instanceBinding = null;
instanceBinding = cmdData.Application.Application.Create.NewInstanceBinding(categories);
//参数
//参数分组
Autodesk.Revit.DB.DefinitionGroup sharedParameterGroup = null;
sharedParameterGroup = sharedParametersFile.Groups.get_Item("RevitParameters");
if (null == sharedParameterGroup)
{
sharedParameterGroup = sharedParametersFile.Groups.Create("RevitParameters");
}
//参数值
Definition sharedParameterDefinition = null;
sharedParameterDefinition = sharedParameterGroup.Definitions.get_Item("APIParameter");
if (sharedParameterDefinition == null)
{
sharedParameterDefinition = sharedParameterGroup.Definitions.Create("APIParameter", ParameterType.Text, true);
}
cmdData.Application.ActiveUIDocument.Document.ParameterBindings.Insert(sharedParameterDefinition, instanceBinding);
ts.Commit();
return Result.Succeeded;
}
}更多示例源码:http://revit.5d6d.com/thread-1305-1-1.html
需要读取值的时候,就当作普通参数值来读。
这里仅仅把读取共享参数文件,然后绑定到某一类别的代码贴出来。
API创建组,创建参数具体代码详见源码。
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class Command4 : IExternalCommand
{
public Result Execute(ExternalCommandData cmdData, ref string message, ElementSet elements)
{
UIDocument uiDoc = cmdData.Application.ActiveUIDocument;
Selection selection = uiDoc.Selection;
Transaction ts = new Transaction(uiDoc.Document, "LevelDuct");
ts.Start();
//打开文件
cmdData.Application.Application.SharedParametersFilename = @"C:\Users\HongYe\Desktop\RevitParameters.txt";
DefinitionFile sharedParametersFile = cmdData.Application.Application.OpenSharedParameterFile();
//绑定到类别
CategorySet categories = null;
categories = cmdData.Application.Application.Create.NewCategorySet();
Category wallCategory = null;
//wallCategory = commandData.Application.ActiveUIDocument.Document.Settings.Categories.get_Item("Walls");
wallCategory = cmdData.Application.ActiveUIDocument.Document.Settings.Categories.get_Item("墙");
categories.Insert(wallCategory);
InstanceBinding instanceBinding = null;
instanceBinding = cmdData.Application.Application.Create.NewInstanceBinding(categories);
//参数
//参数分组
Autodesk.Revit.DB.DefinitionGroup sharedParameterGroup = null;
sharedParameterGroup = sharedParametersFile.Groups.get_Item("RevitParameters");
if (null == sharedParameterGroup)
{
sharedParameterGroup = sharedParametersFile.Groups.Create("RevitParameters");
}
//参数值
Definition sharedParameterDefinition = null;
sharedParameterDefinition = sharedParameterGroup.Definitions.get_Item("APIParameter");
if (sharedParameterDefinition == null)
{
sharedParameterDefinition = sharedParameterGroup.Definitions.Create("APIParameter", ParameterType.Text, true);
}
cmdData.Application.ActiveUIDocument.Document.ParameterBindings.Insert(sharedParameterDefinition, instanceBinding);
ts.Commit();
return Result.Succeeded;
}
}更多示例源码:http://revit.5d6d.com/thread-1305-1-1.html
相关文章推荐
- Revit API 开发 (5): 如何得到所有的categories,创建共享参数,并把它们绑定在一起
- 【Revit API】创建共享参数
- RevitAPI: 如何获取可以被明细表过滤器ScheduleFilter使用的参数Parameter?
- RevitAPI: 如何创建共享参数,并和类别绑定
- RevitAPI如何区分项目参数和共享参数
- c#中使用api(shfileoperation)进行文件操作,特别详解了回收站相关参数
- Revit API根据参数类型取得参数的值
- python:线程的使用、线程共享全局变量、列表作为参数(全局变量)、避免全局变量被修改
- 使用百度API报102错误{"status":102,"message":"MCODE参数不存在,mobile类型mcode参数必需"}
- SpringMVC 学习笔记(三) 使用ServletAPI 和 实体 做为参数
- Revit创建共享参数和获取项目参数
- python:线程的使用、线程共享全局变量、列表作为参数(全局变量)、避免全局变量被修改
- 13. SpringMVC_使用Servlet原生API作为参数
- 使用参数innodb_file_per_table支持MySQL InnoDB表数据共享空间自动收缩
- 使用validator-api来验证spring-boot的参数
- Elasticsearch——使用学习2(API常用参数)
- springmvc学习笔记(8)——使用Servlet原生API作为参数
- Android 使用Sharedpreference共享参数
- mvc web api 4.0 参数绑定 使用注意事项
- 使用参数innodb_file_per_table支持MySQL InnoDB表数据共享空间自动收缩