Visualarq - GH style - multiple Inputs

Hi there,

i created a custom profile with grasshopper style for VisualARQ. I’ld like to choose multiple points on my line to create holes in it. But with picking I can only choose one point.

I got it to work with a geometry pipeline in GH but was wondering if there’s a way to choos multiple Objects in Rhino at once?


Hello @interkinactive,

I understand that what you need is to choose multiple geometry from one input, is that it?

For example:

Is that your request? If so, we already have it in our wishlist but it is not implemented yet, I’ll add your vote to it.

For now you can create different parameters for each point or use the Pipeline (with this last option, take into account the style you create in VisualARQ will keep updating taking all the points in the file).

Why do you need to create this points manually? Is it not possible to automate it so you don’t need to pick them manually afterwards?

Hi Alfonso,

thanks for your reply. Yes, thats my request - thanks for adding my vote for it.

the line and points are already result of a automation process. I try to automate as much as possible, but nearly every beam is a cusom result. After my automation process, I’ll have to change some points by hand before creating a 3D Object.

I’ve got some more questions about VisualARQ + Grasshopperstyle. Maybe you could help me there at some point:

  • Is it possible, to forward the name of the curve to become the name of the new Beam?
  • I would like to give it user attributes or additional information (eg. length)
  • would it be possible to get more control about the way beams connect - especially with a gap between them?

Thanks :slight_smile:

Hi @interkinactive,

You can do this after you have created the beam objects. I have made a Gh definition which should work as you need. (7.3 KB)
NameBeams.3dm (2.8 MB)

User attributes can be assigned to objects, not to styles, no matter if they are Grasshopper styles or regular styles. What do you mean?

Sure, could you tell me which control features are you missing? How would you like them to work?

I guess you are using VisualARQ to model structures, how do you do the structural calculations afterwards? I am interested to know how you are using it and what for, in order to have a better understanding on what you might need. Thank you for your feedback!

Hi again @interkinactive,

As for this:

Do you mean custom parameters? It is not possible to create custom parameters from the Grasshopper definition when you are defininf a Grasshopper Style for now (I’ll add your vote to this feature), but maybe you can create a Grasshopper definition to automatically create these parameters once the objects or styles have been created in VisualARQ.

I would also like to add my vote on this. And especially to the point of allowing Gh-style to generate some information also - not just geometry. Maybe as object’s Key-value info. Or as a VARQ parameter as you say.

Use cases (that come to mind right away):
Adjustable fastener: inside the gh-style is a simple calculation, whether the values go beyond the physical limits of the fastener. It would raise a flag-parameter: Valid=False

Beam fabrication data: Beam object, that based on the dimensions and length, could generate the fabrication code automatically and save the str as a parameter, which can be easily read from multiple beams and compiled.

Beam plane: calculation of the beam’s plane inside the Gh-style and output that as a parameter. And BTW, the VARQ beam should have a plane output already. It’s really a pain in the *** to calculate beam planes with the orientation, rotation and offset.


That’s exactly my intention. Couldn’t write it better.

I don’t mind if the information comes as VARQ parameter or user attribute / key-values.

I have already a code to generate a Systemline for our beam with all information as is for example:

  • name
  • length
  • holes for fixation
  • angle of cut-Planes

and compiling it into a list for fabrication. But on the one hand, we need to go next level with BIM and on the other, its easier for quality management to check the model if created in right dimensions instead of lines.

I stumbled over the option to use grasshopperPlayer to create the VAobjects with user attributes, but then, they won’t stay parametric - the object doesn’t update if I change the origin input.

Thanks for your code to name the beams, will have a look into it tomorrow (No license here at moment).

About the gap - our beams are due to linear expansion not connected. There need to be a gap of e.g. 4mm. Thus I have to create seperately cut volumes to generate the angles at the end. Don’t know how i’ld like them to work yet. That was just a sponaneous idea. Will think about it.

And our structure doesn’t need to be calculated afterwards. Our construction is on top of the supporting structure.

Hello @Toni_Osterlund,

I have added your vote to it as well. Please, take into account you can already use this workflow to achieve the uses cases you used as an example.

What do you need the plane for? Which plane would you like to get in a beam? Should it be related to any phisical property or it is just to place and reorient the beam objects?

Hi @interkinactive,

So did you use a similar definition to the one I sent you? The object doesn’t update or the parameters don’t update? Could you send us an example of this? It might be something to be fixed.

Ok, if you could send us any example of this, it would be helpful as well in order to understand how the gap is and which problems you are facing.

@alfmelbev I am well versed in utilising scrip-based workflows, and painfully aware of the limitation of the beam objects and how to workaround some things. (VisualARQ used in the facade design of the Nokia Arena - VisualARQ)

The need of the beam plane currently involves fabrication data creation and quality control of the fabrication geometry.
Currently I’m doing fabrication of a wooden structure in the Netherlands, which is fabricated in Finland using Hundegger K2 machinery and BVN file format. I have created an export procedure for that machine, which reads the VARQ beam geometry and joint operations (as blocks), and then exports the fabrication code to a file. In order to generate fabrication geometry of the beam, I have to be aware of the profile, and orientation of the beam, in order to match a certain milling operation to a certain side of the beam. Here I need to create the beam’s plane, as it needs to be consistent between differently orientated beams.

And for QC reasons, I store that plane as a comment line into the fabrication code itself, so once I run it through the actual fabrication software, I can read the generated fabrication mesh back into Rhino, and position it from its default XY orietation back to the beam’s orientation and location.

That’s the long story short. There are other cases as well, but this one is currently on the table.

The plane that I’m using, the origin is in the beam’s start point, XYZ point to the Length, Width, Height orientation of the beam, respectfully. Obviously, in curved beams, the length would be curve’s start tangent - but I’m not currently dealing with curved beams.

Hello @Toni_Osterlund,

Thank you so much for your answer.

I usually get the beam plane like this to rotate it or reorient it in the position I prefer

This procedure returns a different plane from the one you are looking for, although you can use the beam’s curve to orient it in the right position. Is something like this what you need?

I need to solve the plane on orientations and cases like these. These are aluminium beams, from another project I’m working on, but these convey the idea as well. And each time I want to refer to the “left” side of the beam, I need to have the exact same side picked up on each of these cases.

I can solve it, but it’s tedious and complicated. When, on the other hand, you already know this plane, because the beam is oriented based on that plane.

As a very quick test, create a normal plane based on beam crv, and orient based on “Roll”. You see that the orientation of the plane is not consistent in all the cases.

Here it works:

Here there are some inconsistencies:

I’m just saying - it’s hard to do afterward, but VARQ already has info on that plane. It’s just not released outside.

Hello @Toni_Osterlund,

Ok, I thought you were requesting a different plane. I agree this could be useful, so that you could check the profile orientation to place important geometrical dimensions such as the position of the strong axis. I understand that you need it to work as columns do. I’ll add this issue to our list with your vote!

1 Like