Objective
Hi All, I'm working on making a button in Revit that is meant to add a single viewport to a new sheet and then change the viewport to show a viewTitle instead of being empty or just a line
Error
When I run the button for the first time, everything works except the view title is not set to the loaded family although the view title "line" is showing. My error occurs when I run the button the second time.
This is the error I get when I try to run the button a second time:
Exception thrown: 'Autodesk.Revit.Exceptions.InternalException' in RevitAPI.dll
A managed exception was thrown by Revit or by one of its external applications.
The error occurs at this line :
Viewport newViewPort = Viewport.Create(doc, viewSheet.Id, duplicatedPlan2Copy, new XYZ(location.U, location.V, 0));
Exploration
From what I've researched, the button is trying to access an element that is already being accessed but if I'm changing the scale, I should be able to change the ViewTitle. See references at the bottom of this question
here is some of my code which is in the transaction
FamilySymbol firstSheet = colTitleBlocks.FirstElement() as FamilySymbol;
ViewSheet viewSheet = ViewSheet.Create(doc, firstSheet.Id);
UV location = new UV((viewSheet.Outline.Max.U - viewSheet.Outline.Min.U) / 2,
(viewSheet.Outline.Max.V - viewSheet.Outline.Min.V) / 2);
ElementId duplicatedPlan2Copy = duplicatedPlan.Duplicate(ViewDuplicateOption.WithDetailing);
Viewport newViewPort = Viewport.Create(doc, viewSheet.Id, duplicatedPlan2Copy, new XYZ(location.U, location.V, 0));
Findings
I've found that if I remove this line from my code:
bool elementType = doc.GetElement(newViewPort.GetTypeId()).get_Parameter(BuiltInParameter.VIEWPORT_ATTR_LABEL_TAG).Set(viewTitleIdCommand);
It works and is able to create new sheets and place viewports with the view title line only repeatedly.
Any and all help is appreciated. This link here shows how having 2 separate transaction commits solved the problem however I tried it and that didn't work. this one shows something similar
Here is a reference to my other related question regarding the button
I've figured it out. I was initially trying to using the TitleView's elementId loaded in from my LoadFamily
class that I had instead of finding the elementId through a Filtered Element Collector.
I'm not sure why that was throwing me an error but it was.