Anuncios
Welcome to the Revit Ideas Board! Before posting, please read the helpful tips here. Thank you for your Ideas!

Revit API FamilySymbol can be actually renamed as duplicated name Bug?

Phenomenon

 

I've found out that Autodesk.Revit.Exceptions.ArgumentException is not thrown when trying to rename FamlySymbol.Name, so that familysymbols can be able to own duplicated name.

 

Code :

[Transaction(TransactionMode.Manual)]
    public class FamilyDuplicate : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            //Boilerplate Variables
            var uiapp = commandData.Application;
            var app = uiapp.Application;
            var uidoc = uiapp.ActiveUIDocument;
            var doc = uidoc.Document;

            var currentSelection = uidoc.Selection;

//First, I caught this when I tried renaming of FamilySymbol. But it also occured when the target instance is parent class.
            var symbol = doc.GetElement(currentSelection.GetElementIds().First());

            try
            {
                using (var tr = new Transaction(doc, "Rename Duplication Test"))
                {
                    tr.Start();
                    symbol.Name = "300x300";
                    tr.Commit();
                }
            }
            catch (Exception ex)
            {
                TaskDialog.Show("Rename Error", ex.Message);
                return Result.Failed;
            }

            return Result.Succeeded;
        }
    }

 

Product : Revit 2024's API

 

---

GUESS

 

I've found that the inherited property from ElementType class has no Exception catching rule.

itsjakk3_0-1713487628750.png

 

But the parent class of this (Element) has exception throw rule.

 

itsjakk3_1-1713487786057.png

 

But when I tried the renaming of Element instance, it was same with familysymbol, no exception thrown.

---

 

Suggestion

It would be better when renaming via API, the exception occurs for prevent of creating duplicated name of familysymbol if the add-in creates new familysymbol.