共享参数

  1. 创建txt文件路径(string)
  2. 通过System.IO.FileStream fs = System.IO.File.Create(paraFile)建文件
  3. 通过app.SharedParametersFilename = paraFile指定文件
  4. 通过 DefinitionFile DefFile = app.OpenSharedParameterFile();打开文件
  5. DefinitionFile-------DefinitionGroups------DefinitionGroup-----Definitions------Definition
  6. CategorySet-----Category
  7. 创建TypeBinding或InstanceBinding
  8. 通过BindingMap的Insert方法将5或7步创建的文件链接。返回bool值

BingMap Insert方法

public override bool Insert(
	Definition key,
	Binding item
)

 TypeBinding和InstanceBinding都继承自ElementBinding ,ElementBinding继承自Binding。ExternalDefinition继承自Definition

//创建共享参数文件路径,后缀为txt格式文本文件
            string paraFile = System.IO.Path.Combine(AppConfig.AddinDirectory, "PS_Shared_Params.txt");

            //基于路径创建共享文件
            System.IO.FileStream fs = System.IO.File.Create(paraFile);
            fs.Close();

            //将应用的共享参数文件指定为指定文件
            app.SharedParametersFilename = paraFile;

            //打开指定定义文件
            DefinitionFile DefFile = app.OpenSharedParameterFile();

            //获取组
            DefinitionGroups myGroups = DefFile.Groups;

            //新创建组
            DefinitionGroup Group1 = myGroups.Create("Group1");

            //从原来组中选择组
            DefinitionGroup Group2 = myGroups.get_Item("Group2");

            //获取定义
            Definitions MyDefinitions = Group1.Definitions;

            //选择定义
            ExternalDefinition definition1 = MyDefinitions.get_Item("Definition1") as ExternalDefinition;

            //新建定义,需要指定参数名和参数类型。
            //可以先建选型也可以直接构造一个选型再创建定义
            ExternalDefinitionCreationOptions options = new ExternalDefinitionCreationOptions("Def1",ParameterType.Text);
            
            Definition definition2 = MyDefinitions.Create(new ExternalDefinitionCreationOptions("Definition2",ParameterType.Image));

            //改变定义分组
            definition1.OwnerGroup = myGroups.get_Item("Group3");

            //创建类别集合
            CategorySet myCategories = app.Create.NewCategorySet();
            //找到某类
            Category myCategory = doc.Settings.Categories.get_Item(BuiltInCategory.OST_Walls);
            //将类添加到类别集合
            myCategories.Insert(myCategory);

            //基于类别集合创建类型绑定
            TypeBinding typeBinding = app.Create.NewTypeBinding(myCategories);

            //基于类别集合创建实例绑定
            InstanceBinding instanceBinding = app.Create.NewInstanceBinding(myCategories);

            //获取文档的bingdingMap
            BindingMap bindingMap = doc.ParameterBindings;

            //类别绑定
            bool typeBindOK = bindingMap.Insert(definition1,typeBinding);

            //实例绑定,最后一个参数为分组,可加可不加
            bool instanceBindOK = bindingMap.Insert(definition2,instanceBinding,BuiltInParameterGroup.PG_TEXT);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值