Autodesk.Revit.DB.ExtensibleStorage.Entity是Revit API中的一个类,用于管理和维护可扩展存储中的实体数据。
可扩展存储是Revit API中的一个功能,它允许开发人员将自定义数据附加到Revit中的几乎任何对象上。这种数据是通过实体(Entity)来表示和组织的,每个实体都具有唯一的标识符,并可以包含一组属性(Property)。
Autodesk.Revit.DB.ExtensibleStorage.Entity就是用于表示这些实体的,它提供了一组方法来创建、查询、更新实体及其属性。
Autodesk.Revit.DB.ExtensibleStorage.Entity有两个构造函数:
Entity(Guid id)
Entity(Guid id, Schema schema)
Autodesk.Revit.DB.ExtensibleStorage.Entity提供了一组用于管理实体及其属性的方法,如下:
Guid Get<Entity>Id()
Entity SetValue<T>(string name, T value)
T GetValue<T>(string name, T defaultValue)
bool Contains(string name)
void Delete(string name)
Schema GetSchema()
bool IsValid()
Entity Clone()
以下示例演示了如何使用Autodesk.Revit.DB.ExtensibleStorage.Entity创建和读取一个实体:
// 为实体定义一个Schema
Guid schemaGuid = new Guid("3a6bfb81-51eb-4e62-95d2-6db43380623a");
SchemaBuilder schemaBuilder = new SchemaBuilder(schemaGuid);
schemaBuilder.SetReadAccessLevel(AccessLevel.Public);
schemaBuilder.SetWriteAccessLevel(AccessLevel.Append);
schemaBuilder.AddSimpleField("Name", typeof(string));
Schema schema = schemaBuilder.Finish();
// 创建一个新实体
Entity entity = new Entity(Guid.NewGuid(), schema);
entity.SetValue("Name", "My entity");
// 写入实体到文档
Document document = uidoc.Document;
ElementId elementId = document.Create.NewFamilyInstance(XYZ.Zero, FamilySymbol);
Autodesk.Revit.DB.ExtensibleStorage.Entity.Save(document, elementId, entity);
// 从文档读取实体
Entity loadedEntity = Autodesk.Revit.DB.ExtensibleStorage.Entity.Load(document, elementId);
string entityName = loadedEntity.GetValue<string>("Name", string.Empty);
这个示例创建一个简单的Schema,它定义了一个名称为“Name”的字符串属性。然后,它创建一个新的实体,为其设置名称并将其保存到Revit文档中。最后,它从文档中读取实体,并获取其名称属性的值。