32 lines
835 B
C#
32 lines
835 B
C#
using System;
|
|
|
|
using Autodesk.Revit.DB;
|
|
|
|
namespace ShrlAlgo.Toolkit.Mvvm.Converters;
|
|
|
|
public static class RvConverters
|
|
{
|
|
public static Element ToElement(this ElementId elementId, Document doc)
|
|
{
|
|
return doc.GetElement(elementId);
|
|
}
|
|
|
|
public static Category ToCategory(this BuiltInCategory builtInCategory, Document doc)
|
|
{
|
|
return Category.GetCategory(doc, builtInCategory);
|
|
}
|
|
|
|
public static BuiltInCategory ToBuiltInCategory(this Category category)
|
|
{
|
|
#if REVIT2018 || REVIT2020
|
|
var builtInCategory = (BuiltInCategory)category.Id.IntegerValue;
|
|
#elif REVIT2025
|
|
var builtInCategory = (BuiltInCategory)category.Id.Value;
|
|
#endif
|
|
|
|
return Enum.IsDefined(typeof(BuiltInCategory), builtInCategory)
|
|
? builtInCategory
|
|
: throw new ArgumentNullException(nameof(category), "不存在该内建类别");
|
|
}
|
|
}
|