EnumStorageExtension.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using Autodesk.Revit.DB;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace FWindSoft.Revit.ExtensibleStorage
  8. {
  9. public static class EnumStorageExtension
  10. {
  11. #region 基础扩展数据操作
  12. public static void SetExtendData<T>(this Element element,Enum en, T value)
  13. {
  14. element.SetExtendData<T>(InEnumUtil.CreateSchemaItem(en), value);
  15. }
  16. public static void SetExtendData<T>(this Element element, Enum en, IList<T> values)
  17. {
  18. element.SetExtendData<T>(InEnumUtil.CreateSchemaItem(en), values);
  19. }
  20. public static void SetExtendData<T, V>(this Element element, Enum en, IDictionary<T, V> dict)
  21. {
  22. element.SetExtendData<T, V>(InEnumUtil.CreateSchemaItem(en), dict);
  23. }
  24. public static T GetExtendData<T>(this Element element, Enum en)
  25. {
  26. return element.GetExtendData<T>(InEnumUtil.CreateSchemaItem(en));
  27. }
  28. public static List<T> GetExtendDatas<T>(this Element element, Enum en)
  29. {
  30. return element.GetExtendDatas<T>(InEnumUtil.CreateSchemaItem(en));
  31. }
  32. public static Dictionary<T, V> GetExtendData<T,V>(this Element element, Enum en)
  33. {
  34. return element.GetExtendData<T,V>(InEnumUtil.CreateSchemaItem(en));
  35. }
  36. #endregion
  37. /// <summary>
  38. /// 删除扩展数据
  39. /// </summary>
  40. /// <param name="element"></param>
  41. /// <param name="dataEnum"></param>
  42. public static void DeleteStorageData(this Element element, Enum dataEnum)
  43. {
  44. element.DeleteStorageData(InEnumUtil.CreateSchemaItem(dataEnum).SchemaGuid);
  45. }
  46. }
  47. }