博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Revit API共享参数的使用
阅读量:7195 次
发布时间:2019-06-29

本文共 1954 字,大约阅读时间需要 6 分钟。

共享参数相当于为某一类别元素增加一个额外的参数。
需要读取值的时候,就当作普通参数值来读。
这里仅仅把读取共享参数文件,然后绑定到某一类别的代码贴出来。
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://vqvkm.baihongyu.com/

你可能感兴趣的文章
Unity 3D读取Excel表格、导入信息、导出Json
查看>>
html5-文件的基本格式
查看>>
css3 练习
查看>>
iPad中国内地商标权诉讼调查
查看>>
[UIKit学习]05.关于plist
查看>>
JPEG-LS extensions标准
查看>>
【1171】C语言实验——保留整数 (栈)SDUT
查看>>
SQLite查询记录总数
查看>>
聚类算法优秀博客链接
查看>>
php 事物处理
查看>>
android 手机拍照返回 Intent==null 以及intent.getData==null
查看>>
从远程服务器上下载图片代码
查看>>
C#和JavaScript交互(asp.net前台和后台互调)总结 (转)
查看>>
[转]Android Binder设计与实现 - 设计篇
查看>>
都9102年了,还在给磁盘分区?
查看>>
python第十二周:MySql
查看>>
2019亚洲物联网安全创新国际峰会将于5月在上海开幕!
查看>>
C#反射的实现
查看>>
【想法】滴滴更新迭代功能
查看>>
aircrack-ng破解WiFi密码
查看>>