Im working on a plugin that will iterate through hidden objects and delete them if they are mesh and meet certain criteria. I wrote some simple code to see if this will work but its not deleting any of the hidden objects. I know im hitting the if statement and im getting the WriteLine that says its deleting each object, but when I check after the command is run, the hidden objects are still there. Am I missing something? New to RhinoCommon
// Start of the class
public Result deletehiddenface(RhinoDoc doc)
{
var settings = new ObjectEnumeratorSettings();
settings.HiddenObjects = true; // This includes objects that are explicitly hidden or on hidden layers.
settings.VisibleFilter = false;
settings.LockedObjects = true;
settings.NormalObjects = false;
settings.ReferenceObjects = false;
// Get the hidden objects.
RhinoObject[] hiddenObjects = doc.Objects.FindByFilter(settings);
RhinoApp.WriteLine($"Found {hiddenObjects.Length} hidden objects in enumerator.");
var go = new GetOption();
go.SetCommandPrompt("You have dense meshes that are hidden. This may cause submission errors. Do you want to delete them?");
int y = go.AddOption("Yes");
int n = go.AddOption("No");
GetResult res = go.Get();
if (res == GetResult.Option)
{
int picked = go.OptionIndex();
if (picked == y)
{
RhinoApp.WriteLine("The user selected yes");
foreach (var cadobj in doc.Objects)
{
if (cadobj.Geometry is Mesh hmesh)
{
doc.Objects.Delete(cadobj.Id, true);
RhinoApp.WriteLine("If deleted");
}
else
{
doc.Objects.Delete(cadobj);
RhinoApp.WriteLine("ELse deleted");
}
}
}
if (picked == n)
{
}
}
else
{
// Do nothing
}
return Result.Success;
}