public virtual Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { UIDocument activeDoc = commandData.Application.ActiveUIDocument; Autodesk.Revit.DB.Document doc = activeDoc.Document; if (null == doc) { return(Result.Failed); } try { // Start detailed steel modeling transaction using (FabricationTransaction trans = new FabricationTransaction(doc, false, "Update connection parameters")) { // for more details, please consult http://www.autodesk.com/adv-steel-api-walkthroughs-2019-enu Reference eRef = activeDoc.Selection.PickObject(ObjectType.Element, "Pick a base plate connection"); Element elem = doc.GetElement(eRef.ElementId); if (null == elem || !(elem is StructuralConnectionHandler)) { return(Result.Failed); } StructuralConnectionHandler rvtConnection = (StructuralConnectionHandler)elem; FilerObject filerObj = Utilities.Functions.GetFilerObject(doc, eRef); if (null == filerObj || !(filerObj is UserAutoConstructionObject)) { return(Result.Failed); } UserAutoConstructionObject asConnection = (UserAutoConstructionObject)filerObj; // //read connection parameters IFiler connectionFiler = asConnection.Save(); if (connectionFiler != null) { //I choose to modify thickess of the base plate connectionFiler.WriteItem(Convert.ToDouble(50.0), "BaseThickness"); //units must be milimmeters; asConnection.Load(connectionFiler); //update connection parameters asConnection.Update(); // //if the connection parameters are modified, than we have to set this flag to true, //meaning that this connection has different parameters than it's connection type. rvtConnection.OverrideTypeParams = true; } trans.Commit(); } } catch (Autodesk.Revit.Exceptions.OperationCanceledException) { return(Result.Cancelled); } return(Result.Succeeded); }