《一》通过共享参数与项目参数绑定
在二次开发功能中,很多模型需要添加附加参数,这时候就得使用共享参数或者项目参数来实现,在文档中对于可载入族添加参数时,一般都是为族添加共享参数,因为项目参数仅在当前文档中能够使用,无法脱离文档,而族共享参数则可以跟随族文件载入项目而一同添加进入项目,当族载入项目以后,族绑定的共享参数就自动转换为当前的一个项目参数。项目参数保存在项目文档中,删除共享参数或者共享参数文件,都不会对项目参数产生影响,项目参数在创建的时候,就已经和类别绑定了,也就是和类别对应的元素添加了新的参数。
元素信息绑定的两种方法

《二》可扩展存储(ExtensibleStorage)
现在Revit API允许开发者定制一个像类一样的样式(Schema)结构,并且可以将该结构的实例附着到Revit模型中的任意元素。这个功能可以完全替代不可见的共享参数。基于样式的数据保存在 Revit 模型中,并且允许高层的、元数据增强的和面向对象的数据结构。样式数据可以被设置为对不同的用户可读或者可写。目前Revit API支持的用户类别有“所有用户”、“指定应用程序供应商”和“一个供应商提供的指定应用程序”。

public void StoreDataIn(Element ele, double dataToStore)
{
Transaction createSchemaAndStoreData = new Transaction(ele.Document, “tCreateAndStore”);
createSchemaAndStoreData.Start();
SchemaBuilder schemaBuilder = new SchemaBuilder(new Guid(“36068E44-CD47-47D7-A642-66AA0FAD86A1”));
schemaBuilder.SetReadAccessLevel(AccessLevel.Public);
schemaBuilder.SetWriteAccessLevel(AccessLevel.Vendor);
schemaBuilder.SetVendorId(“ADSK”);
FieldBuilder fieldBuilder = schemaBuilder.AddSimpleField(“长”, typeof(double));
fieldBuilder.SetUnitType(UnitType.UT_Length);
fieldBuilder.SetDocumentation("A stored " + "location value representing a wiring " + “splice in a wall.”);
schemaBuilder.SetSchemaName(“长”);
Schema schema = schemaBuilder.Finish();
Entity entity = new Entity(schema);
Field fieldSpliceLocation = schema.GetField(“长”);
entity.Set(fieldSpliceLocation, dataToStore, DisplayUnitType.DUT_METERS);
ele.SetEntity(entity);
createSchemaAndStoreData.Commit();
}
元素信息绑定的两种方法

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-27
相关资源
相似解决方案