Files
speckle-sharp-connectors/Converters/Revit/Speckle.Converters.RevitShared/Helpers/LevelExtractor.cs
T
Oğuzhan Koral 744b185cfe Feat(revit): proxify levels with their all props (#940)
* Unpack levels as proxy

* Dynamically attach elevation and units to data object

* Do not add level properties to collection

* Bump SDK to 3.4.3
2025-06-23 17:48:18 +03:00

41 lines
866 B
C#

namespace Speckle.Converters.RevitShared.Helpers;
public sealed class LevelExtractor
{
// stores the map of level id to level name
private readonly Dictionary<DB.ElementId, DB.Level> _levelCache = new();
public LevelExtractor() { }
public string? GetLevelName(DB.Element element)
{
var level = GetLevel(element);
if (level is null)
{
return null;
}
return level.Name;
}
public DB.Level? GetLevel(DB.Element element)
{
// get level, if any
if (element.LevelId != DB.ElementId.InvalidElementId)
{
if (_levelCache.TryGetValue(element.LevelId, out DB.Level? cachedLevel))
{
return cachedLevel;
}
if (element.Document.GetElement(element.LevelId) is DB.Level level)
{
_levelCache[element.LevelId] = level;
return level;
}
}
return null;
}
}