Adaptive Component does not update correctly until rotation parameters are reset again

Hi everyone,

I’m experiencing an issue with Dynamo and Adaptive Components in Revit.

I have a Dynamo script that updates rotation parameters such as Rot_XY_A, Rot_XY_B, and Rot_XY_C for a set of Adaptive Components. The script works correctly the first time it runs. However, when I run the script again with new values, some components do not update properly in the Revit 3D view.

What’s interesting is that the parameter values are successfully written to the elements, but the geometry either does not regenerate or is displayed incorrectly.

If I manually perform the following steps:

  1. Set the rotation parameters to 0

  2. Apply the changes

  3. Set the parameters back to the calculated values

the component immediately updates and displays correctly.

I have attached a video demonstrating the issue. In the example shown, the component displays correctly with a rotation angle of approximately -53.82°. After changing the parameter to , Revit regenerates the geometry. When I set the parameter back to -53.82°, the component displays correctly again.

What is this error and how can I fix it? I would really appreciate any help.

Thank you!

Try adding doc.Regenerate() after the final transaction commit / task done

Hi Mr. Mike Buttery.

Thanks for your suggestion. But can you give me a sample?

I’m using revit but can not find this node.

I can not find this node too :sweat_smile:

Transaction.End should trigger a regeneration.

I assumed you had a python node doing some work. @jacob.small’s suggestion is correct as the Transaction.End node calls DocumentManager.Instance.CurrentUIDocument.RefreshActiveView() See here


I used Transaction.End() as shown below. Is this the correct way to do it?

Impossible to know if that’s the “right” location without seeing the rest of your graph, but yes, it’s a simple “in and out” connection. Typically, you’d use a Transaction node after an element has been created and before you modify its properties.

You’re basically ensuring that Revit has completed the first transaction and the created element now exists in the model to be modified. Otherwise, you’re potentially telling Revit to create and modify an object at the same time. It can’t modify the properties of an object that doesn’t actually exist yet.