Jump to content


  • Posts

  • Joined

  • Last visited

Posts posted by TSG-Sim

  1. Raymond you are a legend, thank you, I tested that and that works perfectly for what we need, I definitely owe you a drink for sorting that. I did not know that the user origin was shifted away from 0,0 on that file so the template at some point must have been moved and I have not checked the origin since then. I will make sure my templates are an unmoved user origins going forward, I thought I had used the base metric template from Vectorworks as my starter for all my templates and just put things like title blocks and things like that in so at some point it must have been changed, when I get home tonight I will look through the whole script because it will be helpful to me learning that as well. I didn't even realise functions were the same, I thought you had to use procedures so that is very useful information throughout your code for both learning scripting and doing the work we need. you just saved me a lot of time doing symbols. Thank you,

  2. thank you I appreciate it a lot you creating that so quickly it helps considerably  @MullinRJ , I am going to have to make some time to get my head around scripting in Vectorworks because it would save a lot of time for some of our repetitive tasks. viewport creation and symbol creation are two of the longest tasks that are the most repetitive in our work.


    With regards to the items I don't need to move the items together I would do that when creating them they would be normally together, the 1m from top to bottom gap was me just showing it like that so it was easier to see the 2d item and 3d item for scripting it.


    If I wanted the insertion point for each symbol to be always at the front centre of the chair so 0,0 would always be front centre of the chair, created from each group and never be any different, how would I change the code you provided for that. I am guessing that would be part of the hMove or is it when it is defining the hCenter?


    truly thank you I owe you a drink 🙂

    • Like 1
  3. Hi Pat, thanks for getting back to me, that is from chatGPT, I started writing my own script but then I couldn't get it to work, so I put it into chatgpt to see if it could help me fix, I stupidly deleted the conversation in chatgpt once I knew that it wasn't doing what I wanted but forgot to copy my code back from it, I should have probably just come on here instead. I understand about constants and variables, while and for loops but putting the basics together and into practice is a little more difficult. Is there any useful ways to start working with vectorscript?


    Attached is the extract of a few groups and a already manually completed symbol. I hope I made sense in what I am trying to ask for and any help would be greatly appreciated.


    Thank you, 


    test file.vwx

  4. PROCEDURE GetFrontCenter(groupHandle : HANDLE; groupCenter : VECTOR);
    VAR groupHandle : HANDLE;
    VAR groupCenter : VECTOR;
        groupCenter := GetGroupCenter(groupHandle);
    PROCEDURE IsTextInGroup(groupHandle : HANDLE) : BOOLEAN;
        groupObjects : DYNARRAY[] OF HANDLE;
        numObjects, i : INTEGER;
        groupObjects := GetGroupObjects(groupHandle);
        numObjects := GetArrayCount(groupObjects);
        IsTextInGroup := FALSE;
        FOR i := 1 TO numObjects DO
            IF GetType(groupObjects[i]) = 9 THEN
                IsTextInGroup := TRUE;
    PROCEDURE CreateTextSymbolFromSelectedGroups(groupNamePrefix : STRING);
        h : HANDLE;
        numSelected, i : INTEGER;
        groupName : STRING;
        groupCenter : VECTOR;
        numSelected := NumSelectedObjects;
        FOR i := 1 TO numSelected DO
            h := FSActLayer;
            FOR i := 1 TO numSelected DO
                h := NextObj(h);
                groupName := GetName(h);
                IF (Pos(groupNamePrefix, groupName) = 1) AND IsTextInGroup(h) THEN
                    GetFrontCenter(h, groupCenter);
                    CreateSymbol(h, groupName, groupCenter);


    I am trying to create a script that will use the currently selected groups, each group will have a 2d and 3d item in each group and a piece of text and I need each item to go into the relevant 2d part and 3d part of the symbol (so the 2d goes into top/plan and the 3d goes into the 3d in the symbol). The text inside each group should be used for the symbol name and be shown in the 2D. Is it possible to do this? I understand some things about scripting but not much about the way vectorscripting works. is this possible, I have shown a quick stab in the dark go at trying to create a script but I know that I have made mistakes in this. Any help would be greatly appreciated because we use this every single day on thousands of symbols, currency manually creating them. Thank you, Sim

  5. hi pat sorry I didn't get back from 2023 I had sorted a way of doing everything I needed using graphic legends in the end I managed to create my own workflow for it and got graphic legends working how I want and now saves me a lot of time manually creating sheets for everything by putting all the sheets onto one document page so I have x number of sheets on one page. thank you for getting back to me though and sorry for the delay its been pretty hectic here.

  6. When using renderworks textures and you apply the texture (for example a plywood edge on a desktop) to a multiple filleted shape.

    What is the best way to get a texture UV wrapped correctly so all the faces are the correct way up and aligned correctly, when I need a texture just on the edges of a shape not the top and bottom, how do I get it to align all the way around without manually mapping each one. I have included a file that shows the rotation of the UV. In some other programs I can use UV unwrapping or other UV methods to make the texture align correctly but I can't seem to do this quickly within vectorworks within picking every face individually and rotating them.


    Any help would be greatly appreciated.

    Kind regards,


    Sample Fillet renderworks texture.zip

  7. When using renderworks textures and you apply the texture (for example a plywood edge on a desktop) to a multiple filleted shape, what is the best way to get the texture UV wrapped correctly so all the faces are the correct way up and aligned correctly, when I need a texture just on the edges of a shape not the top and bottom, how do I get it to align all the way around without manually mapping each one. I have included a file that shows the rotation of the UV. In some other programs I can use UV unwrapping or other UV methods to make the texture align correctly but I can't seem to do this quickly within vectorworks.


    Any help would be greatly appreciated.

    Kind regards,


    Sample Fillet renderworks texture.zip

  8. Does anybody know how to script the sheets and viewports so that it can loop through all my design layers in a file and generate for example 8 viewports we need per item and an overview but with the codes for each item displayed on the overview.


    we have hundreds of viewports to create and I have looked into partially scripting this but I wasn't understanding fully how the viewports worked with the design layers to get each item and how we could maybe use either cameras or a fixed viewport to define the view properties for all other viewports.


    For example we have 10 design layers, on each design layer is a symbol titled as the code of the product and the design layer is named the same code. They are all centred in the middle of the origin in the same place for each item, we need for each design layer, 1 sheet layer that will show the plan view and all 8 custom view / camera view rotations all around the item, think turntable. After this overview sheet we will have the 8 separate rotations all as separate sheets but we might have to repeat this for 1000's of items and on each overview page we need text that displays what the symbol name is.


    I would highly appreciate any help with this.


    Thank you,




    On 1/26/2023 at 4:59 PM, Pat Stanford said:

    Assuming this is actually a 3D object the only way I can think of is to create a design layer for each object with the object in the same location on each layer. You then create the first Sheet Layer and layout the Viewports the way you want with appropriate layer (Only one Design Layer active) and class setting and view and rendermode for each viewport.


    Duplicate the Sheet Layer, Go to the new sheet Layer, select all the Viewports. Click the Layers... button and change the visibility so that the "next" Design Layer is the only one visible. When you update the viewports you should have the second object.  Repeat for all the other layers.


    This is scriptable, but I don't have time right now (next two weeks) to work on it. 😞



  9. Hi @line-weight thanks that almost works fully but with the amount of sheets and hidden line geometry it may get very slow and may even stop but I need to check the main file, I haven't had chance to try it with all the items I had so I might when I get chance with all 300 items (I managed to complete the project over the weekend that I was doing, creating them partially manually each page using a graphics legend for the 300 separately) but I just tried your method with 14 random items from vectorworks library and it seems like you can use this way to create them.


    It looks like you can use your way and get rid of the margin which is a way of creating the titleblocks side by side and it creates one PDF with all the pages in which does work and if I wanted individual images I can create individual images like that but the only downside to this method is that there is no automatic method of naming the pages like sheets and no way of exporting as individual PDF pages so only one per PDF.


    It is almost there but definitely if the graphic legend had an output to separate sheets or even a publish like window for generating separate sheets that would be perfect so you could just create one template page and output lots of sheets from that with whatever filters you have, speeding up multiple page creation.


    I think vectorworks is definitely improving with each release, just needs some streamlining to things like this and certain user interface tweaks,

    I could see some vectorworks improvements as:


    1. have something like the graphics legend that is similar to affinity publisher or indesign master pages so you can create one page and all other pages you assign the master too automatically uses that master for creating views from and automatically publishes from a filter setup a bit similar to publish pages but with this graphics legend built in.


    2. maybe something like a hybrid stretching 2D and 3D symbol that has an offset and the offset allows all items outside the offset to be fixed and everything on the inner of the symbol stretches, I know we have marionette but if we had a dynamic stretching style block we wouldn't need to take ages setting up marionettes for some things. 


    3. in addition to the above hybrid stretching symbol have a pulldown option that is configurable by the user so you can hide and show things in a symbol and assign the hide and show to a dropdown item, you could assign any 2D or 3D item to the dropdown and it just hide or show depending on what option is picked. I know autocad has dynamic blocks like this but they were limited but if vectorworks allowed hybrid stretching and hybrid visibilities and it automatically creates a plugin symbol it would be very useful.


    4. making startup times a lot quicker (maybe removing plugins from startup until you run the tool for the first time and then after that first run each plugin runs quicker because you started it already from the tool, it would speed up startup a lot I think. It might slow down the tool a little for the first use but I could see a lot of speed increase in that as each user doesn't use every tool / plugin inside of vectorworks and if you use the plugin / tool you are more than likely to use it more than once in the session your running. I might be wrong with my thinking on this though.


    5. Worksheets update the user interface to be more like apple numbers like style filters / categories and build in better formatting for cells, maybe improve and put in auto dimensioning into worksheets as well (it may be that graphics legends could be the replacement for this but its not advanced enough yet, but certainly getting there. 


    Thanks for your help with this graphics legend.



  10. Having a look into Graphic legends myself my understanding and I might be wrong though:


    if you had multiple extrudes the only thing you can do with them for listing off into a graphics legend is display what foreground or background fill or any of the image attributes or pen display or properties of the extrude there isn't a way I can see of listing extrusion lengths off unless you create them as hybrid symbols.


    The pulldown you posted @line-weight  you might already know this but you are correct it has to fit one of those object modes apart from if you choose legend type object attributes instead of object, if you pick object attributes you can list materials, textures, fill colours and everything else related to image / appearance.


    The object list above I can see working is as follows:


    1. Hybrid Object = 2D/3D Symbol Hybrid just means the 2D/3D Symbol could be a door, window, furniture item anything that is a symbol or some built in items (best to test a single item by filtering it to one item first but very handy for displaying most items)




    2. Vertical wall = as described any vertical wall takeoff that you would want from any of the walls in your file it is created to show vertically up and down the page as image below




    3. Component can be a wall item by component or anything that is component based that you can break down, handy for dimensioning wall parts (others may know additional uses for this)



    hardscape is as it says and planting is any plant from the database you can list from basically an image of a plant and descriptions etc you can put into a legend.


    I only use graphic legends for furniture items but I am seeing how it can be quite handy.

    they are very powerful but need a little more work and they would be perfect.





    • Like 1
  11. The thing I would really love and put it above anything else for the graphic legend as a feature is splitting up across pages as that as a feature would have saved me 3-4 days of work creating 300 sheets manually.


    I think the graphics legend is very powerful what you can do with it and hope its pushed for future releases and will help us do so much more with sheets.


    I am thinking graphics legend is like master pages in indesign or affinity publisher where you can change one and it changes hundreds of pages. even if the updates for the pages take over night to process it is still one night compared with days for hundreds of items.

    • Like 2
  12. Hi,


    Example file attached, apologies the file is a little large I took the original and stripped it so it was easier for me to send you the example.


    I hope I have made sense with what I am trying to do and I don't even know if this is a good way of doing this but it seems to work for me at the moment. Just the wait time in-between updating the views I have to cope with.


    I am very grateful for you coming back to me on this as I say we do this kind of thing a lot.


    I would like to have the views looking a little better than they do as well with the dimensions and positions but I ran out of time and I was trying to keep everything at 1:100 so it was easy for anybody to take dimensions from it with any ruler and I just had to get these done for now but for future work this would be really handy to have a quicker way of doing these kind of views.


    Thank you,




  13. Hi, Thanks for replying back that was my first thought, but instead of selecting multiple views on a sheet layer what I have done is created one graphics legend filtered to the specific Hybrid 2D/3D symbol I need with a few filters and that 1 graphics legend has all the views setup in it with the text and everything else from records that are set on the symbol, so when I duplicate my sheet layer all I need to do is change the filter in the graphics legend and it updates everything else including text etc. ( I can extract a sample page if you want so I can show you my legend.)


    the only thing I couldn't do was script the graphics legend to create all the sheets in one go automatically filtering each symbol and placing that new graphic legend that was filtered on individual sheets.

    It would be very useful going forward even if it's not straight away but something that could automate doing this task whether it is with viewports or graphics legends as we usually have to do this a lot with different projects. I have tried scripting some things but I would be very grateful even if it's just some hints for the future on how to script this or if Vectorworks themselves could add something that could automate large tasks like this.


    Marionette is amazing and I have managed to use some of it on some project and vectorscript / python is amazing to have but a lot of the time, a lot of users don't have time to spend on scripting due to project deadlines (which I know is very backwards for companies as scripting something could speed things up considerably) but it would be nice to have some way to automate sheet creation from either graphic legends or from a template page a little like a master page in indesign or something like that and then you could just set your vectorworks filters up on a template page and leave it running over night and come back to everything that would take days to do all within one night.


    I would be very grateful when you do get time if possible just some hints on how to do this in the future or how to script just that sheet creation from symbols.


    Thank you,


  14. Does anybody know a way I can automatically create something like the attached sheet for a lot of sheets from lots of symbols (I have edited this to remove client information). I have 300 symbols and need to create a sheet like this for every one and place on a separate sheet is there a way to do this with scripts or the built in tools?


    Currently I thought Vectorworks graphic legend could help me but I will have to filter each sheet individually for the item.

    I would be grateful for any help that would speed this up please.


    Thank you,


    Symbols - Graphic Legend.jpg

  15. What I have found is when you use vectorworks favourites it has a delay when it looks through all the symbols but now instead of using that method to hold any of our symbols, styles or anything. what we did was create a shared workgroup folder on our server that was a copy of the local vectorworks library then placed our custom symbols into the folders within the symbols and styles and anywhere else we needed templates or anything then add the folder the workgroup library from within vectorworks preferences workgroup and project folders and this made the whole process of using the symbols a lot quicker for both replacing symbols and for placing them in from the library. I use no favourites at all now and it seems a lot quicker this way. havent tested favourites in 2023 but I am still using workgroup and is a lot quicker in all releases, especially if you have a large library.

    • Like 3
  16. this is a feature request that I have seen quite a few new users do when learning and using vectorworks, so this would help them but would also speed up initial 3D views for all users, in 3D camera views, perspective views and all isometric views have an option to automatically hide the dimensions layer in 3D Viewports, so that the dimensions class only displays in top / plan, top, front, right, bottom, back and left views in any viewport.


    even though it is only a few clicks to turn off the dimensions this one tick box in preferences would save hundreds of clicks throughout a year of using vectorworks.

  17. For any new user wanting the number keypad to type instantly into the length field you can set the option under the little gear icon top right of vectorworks and check allow numeric keypad entry for instant data bar activation, this is one of the first things I had to find to speed things up. This helps by allowing you to type straight into the first data field with the numeric keypad so you can draw quicker, Click the line tool for example select start point, type in length in numerical keypad and then choose your angle, then click to end.


    • Like 2
  18. Does anybody know whether there is a way on import of AutoCAD files to turn off all hatches and fills so that you only get linework without any fills as I have a lot of files that need cleaning up but I have to manually delete all the hatch patterns.


    Thank you,

  19. Hi Jim

    Brilliant information in this feed for understanding what Vectorworks takes use of from the machine, will Vectorworks be ever able to use things more along the lines of a combined hybrid CPU and GPU for processing even basic things to speed up the process or have you ever thought about using specific things on each platform like Metal 2 (probably be Metal 3 before long) on Mac OS to speed up Vectorworks using direct access to GPU (take a look at affinity designer and affinity photo they are brilliant apps designed using Metal to speed up certain processes with live previews throughout) Overall Vectorworks is fantastic and I don't think I know many other packages that can work with a 10 floor building as easy but I just feel sometimes that Vectorworks needs that bit of a speed increase when working on large projects.

    Thank you,

  20. A couple of wish list item that I would love is to do with marionette I will break down into 3 parts as follows but all 3 are connected into choosing, moving and stretching an item easier:


    1.  a new connection marionette that links this new node up to an item/object (Polygon, Group, Symbol etc) 
      Rather than having to name the item and place a name marionette to save time you should be able to connect the marionette node directly to the polygon so you could have it so you can just drag a special node handle over an item it highlights the item and whatever it is then is connected to the node and have the node name the item automatically or have a manual type in box to override the auto name to simplify users connecting Geometry of any kind to Marionette so you can visually see what you are connecting.
    2. a marionette that will allow you to stretch the named item (from part 1) using bounding boxes
      have this new node so that when you feed an object connection in it detects the item and then using a bounding box approach like@DomCapproach to stretching an item or something similar to that, where you specify two or more boxes whether they be 2D or 3D and a dimension input on the dialogue with a direction input to choose which orientation to stretch in either or all (X, Y or Z) so you can stretch the item easily in all or just 2 directions (example: you could use this to stretch say the ends of a desk with legs say in X: 200mm increments and at the same time stretch the depth of the desk between 600mm and 800mm depths without having tons of nodes to do this)
    3. a marionette object that will allow you to lock / move instead of stretching the item (from part 2)
      On the back of the above have a third marionette that has an input object and a stretch input object and you can pick either X, Y or Z like above but when the above marionette stretches the item this locks the dimensions of the input object so it cannot change dimensions have either a bound box again or named input.


    I think the above would speed using marionette massively so you can reduce a massive structure of marionettes down to 3 marionette items/nodes.

    I might be wrong but this is just an idea for speeding up workflow in marionette.

  • Create New...