Autodesk.Revit.DB.ExtensibleStorage.FieldBuilder
是一个创建可扩展存储字段的类,它属于Revit API中的 Autodesk.Revit.DB.ExtensibleStorage
命名空间。使用该类可以轻松地创建自定义的可扩展存储方案,以存储Revit软件中的数据。
FieldBuilder(string name)
该构造函数接受一个字符串参数,用于指定自定义字段的名称。名称必须是唯一的,以确保正确识别和检索存储在可扩展存储中的数据。
SetSimpleValue(object value)
该方法将一个简单的值(如字符串或整数)分配给创建的自定义字段。传入的参数必须与所创建的字段类型相匹配。
SetRawValue(byte[] value)
该方法接受一个字节数组参数,并将该参数分配给创建的自定义字段。此方法专门用于处理复杂数据类型,例如图像或模型集合。
SetBooleanValue(bool value)
该方法将一个布尔值分配给创建的自定义字段。
SetDoubleValue(double value)
该方法将一个双精度浮点数分配给创建的自定义字段。
SetIntegerValue(int value)
该方法将一个整数分配给创建的自定义字段。
以下示例演示如何使用 FieldBuilder
类在可扩展存储中创建和分配值给自定义字段:
FieldBuilder fieldBuilder = new FieldBuilder("MyCustomField");
// 设置字符串值
fieldBuilder.SetSimpleValue("This is a string value");
// 设置布尔值
fieldBuilder.SetBooleanValue(true);
// 设置双精度值
fieldBuilder.SetDoubleValue(3.14159);
// 设置字节数组(用于图像或模型等复杂类型)
byte[] byteArr = GetByteValues();
fieldBuilder.SetRawValue(byteArr);
// 将字段添加到存储方案中
SchemaBuilder schemaBuilder = new SchemaBuilder(Guid.NewGuid());
schemaBuilder.AddField(fieldBuilder);
Schema schema = schemaBuilder.Finish();
// 在元素上保存自定义数据
Entity entity = new Entity(schema);
entity.Set<string>("MyCustomField", "This is a string value");
entity.Set<bool>("AnotherCustomField", true);
entity.Set<byte[]>("ComplexCustomField", byteArr);