Namespace:
Autodesk.Revit.DB.ExtensibleStorage
SchemaBuilder
Class
Description:
This class is used to create Schemas in the Extensible Storage framework.
This class is used to create Schemas in the Extensible Storage framework.
Remarks:
Named parameter idiom: Methods that set up the Schema return a reference to the builder so you can invoke multiple methods in a chain (e.g., builder.setReadAccessLevel(...).setWriteAccessLevel(...)). Methods that add fields return a FieldBuilder instead.
Named parameter idiom: Methods that set up the Schema return a reference to the builder so you can invoke multiple methods in a chain (e.g., builder.setReadAccessLevel(...).setWriteAccessLevel(...)). Methods that add fields return a FieldBuilder instead.
Examples
// Create a data structure, attach it to a wall, populate it with data, and retrieve the data back from the wall
void StoreDataInWall(Wall wall, XYZ dataToStore)
{
using (Transaction createSchemaAndStoreData = new Transaction(wall.Document, "tCreateAndStore"))
{
createSchemaAndStoreData.Start();
SchemaBuilder schemaBuilder = new SchemaBuilder(new Guid("720080CB-DA99-40DC-9415-E53F280AA1F0"));
schemaBuilder.SetReadAccessLevel(AccessLevel.Public); // allow anyone to read the object
schemaBuilder.SetWriteAccessLevel(AccessLevel.Vendor); // restrict writing to this vendor only
schemaBuilder.SetVendorId("ADSK"); // required because of restricted write-access
schemaBuilder.SetSchemaName("WireSpliceLocation");
FieldBuilder fieldBuilder = schemaBuilder.AddSimpleField("WireSpliceLocation", typeof(XYZ)); // create a field to store an XYZ
fieldBuilder.SetSpec(SpecTypeId.Length);
fieldBuilder.SetDocumentation("A stored location value representing a wiring splice in a wall.");
Schema schema = schemaBuilder.Finish(); // register the Schema object
Entity entity = new Entity(schema); // create an entity (object) for this schema (class)
Field fieldSpliceLocation = schema.GetField("WireSpliceLocation"); // get the field from the schema
entity.Set<XYZ>(fieldSpliceLocation, dataToStore, UnitTypeId.Meters); // set the value for this entity
wall.SetEntity(entity); // store the entity in the element
// get the data back from the wall
Entity retrievedEntity = wall.GetEntity(schema);
XYZ retrievedData = retrievedEntity.Get<XYZ>(schema.GetField("WireSpliceLocation"), UnitTypeId.Meters);
createSchemaAndStoreData.Commit();
}
}
SchemaBuilder Class Members:
Name | Description | Inherited From |
---|---|---|
SchemaBuilder | Constructs a new SchemaBuilder where the resulting Schema will use the input GUID. |
Name | Description | Inherited From |
---|---|---|
IsValidObject | Specifies whether the .NET object represents a valid Revit entity. |
Name | Description | Inherited From |
---|---|---|
AcceptableName | Checks whether a string is an acceptable name for a Schema or a Field. | |
AddArrayField | Creates a field containing an array of values in the Schema, with given name and type of contained values. | |
AddMapField | Creates a field containing an ordered key-value map in the Schema, with given name and type of contained values. | |
AddSimpleField | Creates a field containing a single value in the Schema, with given name and type. | |
Dispose | Releases all resources used by the SchemaBuilder | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object ) | Object |
Finish | Registers and returns the created Schema object. | |
GetHashCode | Serves as the default hash function. (Inherited from Object ) | Object |
GetType | Gets the Type of the current instance. (Inherited from Object ) | Object |
GUIDIsValid | Checks whether the supplied GUID value is valid. | |
Ready | Checks whether the builder may be used. | |
SetApplicationGUID | Sets the GUID of the application or add-in that may access entities of this Schema under the Application acess level. | |
SetDocumentation | Sets the documentation string for the Schema. | |
SetReadAccessLevel | Sets top level read access (for entities) | |
SetSchemaName | Sets the name of the Schema. | |
SetVendorId | Sets the ID of the third-party vendor that may access entities of this Schema under the Vendor acess level, and to generally identify the owner of this Schema. | |
SetWriteAccessLevel | Sets top level write access (for entities) | |
ToString | Returns a string that represents the current object. (Inherited from Object ) | Object |
VendorIdIsValid | Checks whether the given vendor ID string is valid. A valid vendor ID string: 1. Has a length of at least 4 characters and no more than 253 characters, and 2. Contains only letters, digits, or any of the following special characters: ! " # & \ ( ) + , . - : ; < = > ? _ ` | ~ |