private Entity MakeUnitSchema(string guid,
                                      SchemaDictionaryUsr usrSchemaFields)
        {
            SchemaBuilder sbld = CreateSchema(UnitSchemaName,
                                              RevitSettingsUnitUsr.SchemaDesc, new Guid(guid));

            MakeFields(sbld, usrSchemaFields);

            Schema schema = sbld.Finish();

            Entity entity = new Entity(schema);

            SaveFieldValues(entity, schema, usrSchemaFields);

            return(entity);
        }
        private void ReadSubSchema(Entity subSchemaEntity, Schema schema,
                                   SchemaDictionaryUsr usrSchemaField)
        {
            foreach (KeyValuePair <SchemaUsrKey, SchemaFieldUnit> kvp
                     in usrSchemaField)
            {
                Field field = schema.GetField(kvp.Value.Name);
                if (field == null || !field.IsValidObject)
                {
                    continue;
                }

                kvp.Value.Value =
                    kvp.Value.ExtractValue(subSchemaEntity, field);
            }
        }