Jump to content

Worksheet functions

Recommended Posts

Is there a function to show the series, size and length of, for example, an I-Beam (3D) in a worksheet column? And for other steel sections . I cannot find one anywhere in Forum posts. I have successfully listed the steel I-beams, tubes etc and shown these attributes by using record formats, manually. But there must be an automatic method? I am probably missing something obvious! Any help gratefully recieved.

Share this post

Link to post

Kind of. There are no standard Functions to return that type of data. But, since the I-Beam (3D) is a PlugIn Object, you can get most of the information that you can see in the OIP (plus maybe a little more) by using a =Record.Field format with the correct Record and Field Names.  Take a look at the thread below for the last version of the script I wrote that will take a single selected PIO on a design layer and return a worksheet showing all of the fields. While the link is to the latest version of the script, you might want to start at the top of the thread to understand what the script does and why.


For the I-Beam (3D), the formulas would be:


='I-Beam - 3D'.'Length'


='I-Beam - 3D'.'__series_1'


='I-Beam - 3D'.'__size_1'


Actually it might take some extra work as since the Series and Size are from a fixed choice menu, you probably need to use the fields given you the choice and then use that to get the Series and Size.


Ask again when you get stuck and we will try to help.



  • Like 1

Share this post

Link to post

Dear Paul, thank you so much for helping me. I would have replied earlier. But I am in Macclesfield, UK, time difference etc. ( I posted late last night now it's early morning). From my searches I believe I understand the concept and detail you clearly explain. So I'll look forward to progressing. Thank you for offering to help more if needed. Incidentally I am an ambitious VWX user and a great admirer of it, and of all who give their time generously on the Forum.

  • Like 1

Share this post

Link to post

Hi Pat, I hope this feedback is helpful to all. You were correct in saying some work had to be done in connection with fixed choice menus. I enjoyed exploring this. And thank you for your introduction to Vector Scripting, another fascinating room to explore in the complex fun-palace of Vectorworks! 


So with your help I created the worksheet needed including one workaround:-


='I-Beam - 3D'.'Length' returned lengths as needed for all series types and sizes.


='I-Beam - 3D'.'__series_2' returned series types with correct differentiation. So for data base rows generated by one criterion containing a mix of series types,  AISC (Metric) and BSI (Joists) , the appropriate types appeared in the column with this function.  I assume use of the numeral 2 in the function corresponds to the second field providing the fixed choice menue in the OIP?


='I-Beam - 3D'.'__size_2' returned the correct sizes of series type 2 beams (AISC (Metric)), but an apparently random default size for any beam of another series type, regardless of its size.....


.....so I used datebase criteria and a record format as a workaround to re-order my worksheet into separate groups of rows. Each group with one series type. Then for each group, e.g. of AISC (Metric) sections, I used the appropriate function :- So ='I-Beam - 3D'.'__size_2' for AISC (Metric) and ='I-Beam - 3D'.'__size_3' for BSI (Joists).


Maybe there is a function including "if" ..."then" etc (Boolean?) which includes more than one numeral to return differentiated sizes within rows generated by one data base rule set.....


....breaking out now then will try to earn some fees!! PS El Segundo looks warm! Cold and damp here, ideal for silk weaving which is how Macclesfield developed economically in the nineteenth century.


Share this post

Link to post

'I-Beam - 3D'.'__seriesIndex'

'I-Beam - 3D'.'__sizeIndex'


Should return the index values so you can pick them off.


There is no IF with multiple outputs, but you can do multiple nested if statements


=IF('I-Beam - 3D'.'__sizeIndex'=2, 'AISC', IF('I-Beam - 3D'.'__sizeIndex'=3, 'BSI, IF('I-Beam - 3D'.'__sizeIndex'=4, 'I Don't Know', 'Final Else. The return if the value is not in your list'))


The above line has three nested IF statements to let you return 3 different strings depending on the value in the __SizeIndex field. The Else part of each IF contains the next IF. The "inner" (most nested) IF needs an actual Else value if you want to indicate an error condition in case something has a value that you don't explicitly handle.


Sorry to hear about the cold and damp. Weather here is pretty nice this week, but makes it harder to stay inside and get work done.


Glad to be able to help you with this.

Share this post

Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114


© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.

  • Create New...