Refresh VisualARQ walls without baking


How can VA Objects (ie. walls) be manipulated in Grasshopper and then refreshed in Rhino without rebaking (duplicating) them?

As we understand VisualARQ outputs objects as Geometry Cache of each instance, so the above should be possible.

Sample desires worflow (ie. for Pocket Windows):

  1. Gather all windows, walls and windows with Va Geometry Pipeline
  2. Filter/Select only sliding windows
  3. Create wall solids for the pockets, with dimensions based on window/door properties.
  4. Subtract each solid from the corresponding wall (wall host property)
  • Up to here the workflow is somewhat clear -
  1. Refresh existing walls (adding the solid cuts) without creating new walls.

Any thoughts?

Can this be solved by creating a Door/Window Style through GH and exporting it somehow as a VA Style? What is the workflow for that?

Thank you in advance.

ps. We comprehend that this will work if we build the whole building through grasshopper, walls and opening included, but that is not a viable solution for most usage cases, other than full parametric builds.

Hi @flatform,

I am sorry but I don’t understand very well steps 3 and 4 of your workflow. What do you mean by “pockets”?

Anyway, I think what you need is to modify the wall geometry and then substitute this geometry in the Rhino viewport. You can update property and parameter values but not the geometry. If you need to “substitute” the geometry maybe you can create it and delete the original geometry afterwards.

I am not sure if this would solve your issue because, as I say, I didn’t understand very well steps 3 and 4 of your workflow. Anyway, if you want to create a style through a Grasshopper definition and import it to VisualARQ, you can do it with a Grasshopper Style:

1 Like

Pocket Windows are Windows that slide within Walls (within Pockets in the Walls), which are not currently available in VisualARQ (they should be added soon!). This could be created by boolean subtracting a solid to create the pocket.

A way for user to “inject” (like parametres) the grasshopper actions by modifying the wall definition before it is sent to rhino (adding the boolean in the process, and then Va would re-create the geometry).

So grasshopper would read the internal reference polyline of each wall (and not the wall as an object, to avoid circular references), recreate the wall, sent the data to VisualARQ, then VA would keep them as cached and use them even if grasshopper definition is closed, until it detects new changes in the GH definition.

We will check the links you provided to see if they help.

Thank you.


The above could be achieved by VA GH Styles BUT, only one opening is allowed in the wizard.

If you offer a second opening in the VA GH Style Wizard, pocket sliding doors (and many other stuff) could be achieved.

So, wishlist:

  1. In the Grasshopper Style Wizard Dialog, add the option to select many curves as openings. Each curve should have it’s own Depth of Cut and Offset.

Hi @flatform,

Unfortunately it is not possible to update the geometry of a wall from Grasshopper. The only way to do it is by creating the new objects with a Grasshopper definition and deleting the old ones.

I agree, there should be a way to create this pockets for Grasshopper styles as well. However, I think this should be done with a solid. If you define it with a curve as an opening, this opening would cut all the thickness of the wall so you would get two gaps instead of one gap and one pocket.

I have already added all these requests to the wishlist for future development.

1 Like

That is why we suggest to add separate depth of cut (boolean solid extrusion depth), and offset to each curve. The Offsets and depths of cuts would be visible in the rhino va object properties panel for all curves, as it is now for the single curve (opening). The objective is for these parametres to be able to be adjusted on Style, but also overridden on Object Properties Level.

Thank you for adding it to the wishlist. Since pocket doors and windows are very often used, it is very, very much missed.

This is a very good idea. Grasshopper Style Wizard could have the ability to add any number of solids, and for each solid the boolean operation (Add, Subttract, etc,) would be selected.

This could offer many possibilities with a simpler backbone change.

1 Like

Hi @flatform,

This could be interesting as well. I will discuss with the development team both ideas to check which one could work better.

1 Like

What I want to do is have one opening cut two different walls. I’m seeing a few situations with walls, floors and ceilings where I want the elements separated (for more control and independence between layers).

Hi @keithscadservices,

Why do you need to have two walls instead of one in this case? Please, could you send me some more information about it? Maybe we can improve something in walls so that you don’t need to do this.

1 Like

I was going to give a detailed answer but I realized I was hijacking the post. Perhaps I can post in more detail in the future, complete with pictures. But to be honest I am looking for something that even the most expensive BIM programs don’t do well.

I will just mention something Revit does: It has a “void” system. You create a void and it ‘cuts’ every element it touches. I believe you can override each element’s ability to be affected by the void. Imagine having a 50 storey tower and realizing you need to create a new elevator shaft! This would also work great for components that have unique ‘voiding’ requirements like a pocket door. You could have a Brep that acts like a void or something. For the pocket door the special void brep would need only cut it’s host. But for say, an elevator shaft, the brep would cut any VARQ object it touches (unless the object’s “can be cut with void” property is overriden).


This concept has been invented by the ARC+ software developers, in some mid 90s, I think. I haven’t used it for years, but the idea is to have a “negative” solid, interacting with any other “positive” ones. And it can be a parametric solid, of course. Some time ago I told Enric about this solution, well, without any further development :wink:
Cheers, Jaro

Hi @keithscadservices and @jerry.bakowski,

You can do this with VisualARQ using the _vaSubtractSolids command:

Subtract solids

1 Like

Well, you cannot, at least you cannot the way we would like to.
Because we are talking about an automatic solution, when you have a style element, with some parameters, and the subtraction is a built-in option. This way a subtracted solid could also be a dynamic element.
The idea of a “negative” or “void” element could solve quite a lot of problems, especially when there are interacting different objects types.
Cheers, Jaro

1 Like

Hi @jerry.bakowski,

Which features do you think we could add to this workflow so that you can use it in the way you need?

I think maybe you may need to tag any Rhino geometry as “void” so that it is automatically subtracted to any VisualARQ object. Another posibility could be having the option to edit the geometry while it is being subtracted to a VisualARQ object (this way you wouldn’t need to extract the geometry, edit it and subtract it again). What else do you think we could add to this workflow?

You can use a normal Door, Window or Opening. It will attach to one wall but Cut all Walls it touches if you make it tall enough. It will not cut Slabs though. Maybe that is the solution, to have an option on windows/openings: “Interact with Slabs”, or “Cut Slabs” and so on.

The way we users would like is real-time subtraction, real-time union, and real-time intersection. I do not want to do same thing again and again.


Alfonso had the idea of allowing a Subtracting Solid in a Grasshopper style (discussed above). That will pretty much unleash possibilities and solve many issues. Just make sure this solid interacts with wals and slabs, and have switches to turn interaction on/off, per object type.

So, adding to the above wishlist:

In the grasshopper style add solid(s) options, choose type of boolean per solid (add, subtract, etc) plus choose affected object types per solid (walls, curtain walls, slabs, beams, etc.)

These options should be also present per rhino VA object, available in the edit va object properties panel, so the user can override the style defaults.

They could appear in the main properties panel or as parametres.


This is definitely a useful in many situations and allows for a lot of freedom. As others mentioned, some sort of “real time” grasshopper solution would work well too.

Being able to cut objects with other visual ARQ objects would be very helpful as well. And in exactly the same away as the vaSubtractSolids command.

I mocked up a dropped ceiling:

Also, the floor finish is modelled extremely thin to hide the fact that it’s cutting into the wall:

One work around for either issue is simply to have multiple floor (slab) layers. As mentioned, this is something that Revit doesn’t do well. And having freedom allows us to work around issues like these. To me that’s the big flaw with Revit is that when it can’t do something, you really have to scramble to model it the way you want.
With the floor/ceiling issue, I would probably copy the model, explode all the walls so that they are solids, do the vaSubtractSolids, and then copy my floor/Ceiling back into the original model.

Maybe an option, something like “this layer is cut by other vaObjects” would work? Or some sort of hierarchy so objects don’t overlap. For example, carpet would be automatically subtracted by a wall.

It would be cool but it also feels like a lot to ask for!!

1 Like

A like this would also be very useful and that can be reflected in the documentation of sections or elevations, since this would allow it to be very flexible, which is the innate characteristic of visualarq

1 Like