public override void DoRemove(Component c, int objectId, Component modifier) { CompositeComponent compositeModifier = (CompositeComponent)DoFindRoot(modifier); if (compositeModifier.IsObjectIdEquals(objectId)) { compositeModifier.RemoveComponent(c); c.SetAncestor(null); } else { foreach (var item in compositeModifier.GetComponents()) { item.Remove(c, objectId); } } }