vaElement with Grasshopper - update when input changes?

Say I have a vaElement that takes a curve (or whatever) as input to generate some object, and I change/move this input curve. Is there a way to tell the vaElement to update itself automatically? Can’t find another way than picking the curve again from the property panel.

The GH component should still have the reference stored to this (now updated) curve, and thus should be able to re-evaluate in some way I guess.
EDIT: The va update function does not help.

Best regards

Hi Eugen,
Unfortunately what you are asking for is not possible right now. The reason is that the curve assigned to an element doesn’t get attached to it, so the object doesn’t update if you edit the curve. It happens a similar thing if you create a wall from a curve and you edit that curve. The wall has “absorbed” that curve parameters but it’s not linked anymore to the original one.
We take this request as a suggestion for future versions!

1 Like

Understood, thank you!
And yes - if technically doable, a ‘modelling relation’ would be a very good thing to have!

EDIT: a question: does the wall (or element) store the GUID of the input curve, so it could ‘find’ it again when refreshed?

No, it doesn’t. There are methods to obtain the wall path curve (or other geometry that objects use), but the curve is a different one than the curve used to create the wall.

Ok! Since we are talking about it:
So, the va object (slab, wall, …) stores the curve internally. Would it be feasible (additionally) to ‘expose’ that absorbed curve again, so it can be edited?
One can edit the va object’s native vertices of course, but often I missed the possibility to insert a point, for example, or do other curve operations.

1 Like

Oh, Revit’s “sketch mode” is really great since it allows some convinient operations including filleting, offsetting, trimming and messy-draft-working on the objects input. The input might be edited as a separate block, created temporarly just for the operation and erased, updated in objects definition after closing block editor (with checking for it’s validity).

You can edit a wall with the same control points as the curve used to generate it. You can also split a wall from a point or from a curve so you get more wall segments to work with.
What other options do you miss?

True, wall editing is ok. Thinking more about slabs and roofs here.

Or, maybe it would be simpler to add commands that simply extract the boundary curves from slabs or roofs… or even walls (the axis)
When I’ve ‘lost’ a boundary curve I created a slab from, I find myself often duplicating the slab, exploding it, extracting the boundary, editing the curve, and creating another slab from it, then cleaning up the useless parts. That could be simplified that way.
Might be worth a thought…

Edit: with slabs, the subtracted curves could be extracted that way, too.

Here’s a short macro that simplifies that a bit; Navigate to a top view and run:

Silhouette CurveBoolean DeleteInput=All Pause

Then just click inside of the slab boundary and press Enter.

Hi @Eugen,

For walls you can use the command vaWallExtractPath
We could add the same for other objects like slabs.

1 Like

That sounds reasonable enough… Thanks in advance!