Files
speckle-sharp-connectors/Converters/Revit/Speckle.Converters.RevitShared/Extensions/ElementExtensions.cs
T
2024-07-04 11:56:34 +01:00

36 lines
895 B
C#

using Autodesk.Revit.DB;
namespace Speckle.Converters.RevitShared.Extensions;
public static class ElementExtensions
{
// POC: should this be an injected service?
public static IList<ElementId> GetHostedElementIds(this Element host)
{
IList<ElementId> ids;
if (host is HostObject hostObject)
{
ids = hostObject.FindInserts(true, false, false, false);
}
else
{
var typeFilter = new ElementIsElementTypeFilter(true);
var categoryFilter = new ElementMulticategoryFilter(
new List<BuiltInCategory>()
{
BuiltInCategory.OST_CLines,
BuiltInCategory.OST_SketchLines,
BuiltInCategory.OST_WeakDims
},
true
);
ids = host.GetDependentElements(new LogicalAndFilter(typeFilter, categoryFilter));
}
// dont include host elementId
ids.Remove(host.Id);
return ids;
}
}