Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by twk

  1. I am trying to get wall data, via the wall style selectors on this page: https://developer.vectorworks.net/index.php/VS:Function_Reference_Appendix#wallstyle The note at the bottom of the table says: Pass the handle returned by GetWallPreferences or GetSlabPreferences to access Wall/Slab Preferences values for all selectors. I can't seem to get the description or mark values for a wall style. Has anyone else had the same issue?
  2. Nice share @_c_! Finally got my group widgets working after months of trial and error. My widget indent calls were in the kObjOnWidgetPrep function not the kObjOnInitXProperties. (Funny that indentation works in kObjOnWidgetPrep without the Grouping) Again, thank you and thank you.
  3. I'll chime in for the NZ market, we are using the MasterSpec system that has plugins for both Archicad and Revit (Master Key). If we could get integration for vectorworks that would be awesome! https://masterspec.co.nz/
  4. We have also transitioned into vw2021, from vw2019, and just getting my head around the General Notes/Call Out Notes/Notes Manager workflow. A colleague who is setting up notes for the General Notes tool has found out that you can't Add multiple notes at the same time with this new workflow. You were able to in 2019. Is this WAD?
  5. I may have a copy of 12.5 somewhere. I have used in past for Windows 10 successfully, opening older projects for clients wanting changes/renovations some 10 years later! I will PM you, @Victoria Bowles
  6. Another thing that comes to mind is the position of the model in the design layer. We've noticed if you draw too far away from the origin, or your model is too far away, the openGL render craps out.
  7. twk


    Set a class to the roof object. And control the fill/pen attributes (colors) through that. Once it is classed, you can also then set this new roof class you've created to gray visibility when you're in plan view, and then set visibility back to visible when in 3D view.
  8. =('VAA Title Block'.'__DwgScale') __DwgScale is the field you're looking for
  9. wow, I did not know this. Very similar to the script I have. Apart from not being able to pre-select scaling conditions:
  10. +1 to have the Titleblock do this automatically, even for the numerical scale part of the titleblock. I wrote a script that automatically fills in scale info from viewports at time of publishing. In instances where we have you multiple viewports with different scales on the same sheet, you preset what you want the script behavior to be (largest scale/smallest scale of collected viewports on sheet, or concatenate scales, or display 'as shown'). It makes sense that a functionality should be added into the titleblock object, as it is such a pain publishing your 100 page set, then realising scales were not set correctly. (That's what happened to us, and that's why the script was written 😁)
  11. Hmm, yes that is what I'm currently doing, importing then deleting. I thought there was a different way. Thanks for the insight. I'm looking at the build resource list calls, in what use case would the addResoureceToList function call be used for? Is it just a container mechanism for VS? The same functionality can be done using lists in python correct?
  12. Greetings, I'm trying to read default record field values from another file using the BuildResourceListN function: def vs.BuildResourceListN(type, fullPath): return (LONGINT, numItems) I manage to read in the record names from the other file, however using the GetResourceFromList function returns NIL on resource handles. And, as the dev wiki documentation describes, this will return NIL if resource is not in document. Is there another function call I'm missing? or is this not possible. I see that the titleblock tool can open and display issue data from another file. How is it doing this? @JBenghiat, @Vlado, anyone? Thanks in advance
  13. Maybe create a temporary symbol > add all other symbols in there > place on drawing > export as image > delete temporary symbol
  14. To add to this discussion, we have found that unchecking 'subset fonts' reduces the file size quite a lot. Approx. file size reductions i'd say 8Mb to 200kb.
  15. Possibly the level of error checking in Visual Studio? I use PyCharm and have not much experience in VS. Pycharm recommends the h is not None flavor. Using the h != None, displays a warning to adjust my code.
  16. Ahh yes, that would be me, I forgot I had even signed up as a contributor.
  17. @_c_ this is nothing short of amazing. Truly, thank you for reviving this! Happy New Year from the southern hemisphere!
  18. Interesting, crashes on me every time, even as a standalone script as you've shown. Are you on Mac? It must be a Windows specific thing.
  19. Yep, all simple strings in my testing, I shall submit a bug. Do you use ListBrowsers in your plugins @JBenghiat? Have you ported to 2021 yet? All my plugins work and the only ones crashing were the ones with this function in them. Commenting it out solved the issue, but there wasn't anyother way for me to get a proper width value for setting column widths from text strings. I've had to resort to hard coding guessed string lengths for now.
  20. vs.GetLBHeaderTextWidth(className, allowForSortIcon) The function above is crashing my VW 2021. Anyone else can confirm before I try a reinstall/bug submission? It gets pixel width for specified string (param:className for some reason??) for use with Dialog ListBrowsers.. Cheers, Tui
  21. twk

    2021 Public Roadmap

    @M5d, very well collated a very good read. Gotta love company politics 😅 I personally don't have a dog in this fight, as I use Lumion, however it was very telling when the EpicGames roadmap was released and no vectorworks integration was even mentioned.
  22. twk

    2021 Public Roadmap

    I thought that sentence was going to end better.. Ha!. On topic though, these are much welcomed discussions by VW. Even though I agree, the Architecture tools that are under research need to be released as soon as, I am happy to know VW is listening and providing users an opportunity to have a look at the drawing board and hopefully assist in steering development that benefits us all.
  23. I understand normal hotmail accounts have free one drive storage. So you would sign into onedrive on your PC/Mac with your free account and sync as needed. Similar to dropbox I believe. We are on office365 here, but I know others with free accounts we can send links to and have folders sync'd between us
  24. No expert, but doesn't each VW object have a UUID? Could maybe the data tags that tag the external ref objects, store these? Watching this thread fervently, as data tagging of DLVP and ref DLVP objects is much needed in our practice as well. (eg, doing apartments/real estate development, you have floor plan types via DLVPs)
  25. fixed/tweaked your code: (minor errors in GetLBEventInfo call) import vs kLB001 = 4 kPB_Expand = 5 kPB_Collapse = 6 import vs def dialogHandler(item, data): if item == 12255: nCol = vs.InsertLBColumn(dialID, kLB001, 0, 'Item', 150) bResult = vs.SetLBControlType(dialID, kLB001, 0, 1) bResult = vs.SetLBItemDisplayType(dialID, kLB001, 0, 3) # Some Lines to fill the listbrowser nItem = vs.InsertLBItem(dialID, kLB001, 0, '2D-Axis') nItem = vs.InsertLBItem(dialID, kLB001, 1, '2D-Cap') nItem = vs.InsertLBItem(dialID, kLB001, 2, '2D-Housing-Back') nItem = vs.InsertLBItem(dialID, kLB001, 3, '2D-Housing-Frame') nItem = vs.InsertLBItem(dialID, kLB001, 4, '2D-Housing-Glass') nItem = vs.InsertLBItem(dialID, kLB001, 5, '2D-Leaf-Back') nItem = vs.InsertLBItem(dialID, kLB001, 6, '2D-Leaf-Frame') nItem = vs.InsertLBItem(dialID, kLB001, 7, '2D-Leaf-Glass') nItem = vs.InsertLBItem(dialID, kLB001, 8, '3D-Axis') nItem = vs.InsertLBItem(dialID, kLB001, 9, '3D-Cap') nItem = vs.InsertLBItem(dialID, kLB001, 10, '3D-Housing-Frame') nItem = vs.InsertLBItem(dialID, kLB001, 11, '3D-Housing-Glass') nItem = vs.InsertLBItem(dialID, kLB001, 12, '3D-Leaf-Frame') nItem = vs.InsertLBItem(dialID, kLB001, 13, '3D-Leaf-Glass') vs.EnableLBSorting(dialID, kLB001, False) vs.SetLBHierDispColumn(dialID, kLB001, 0) vs.EnableLBHierDisplay(dialID, kLB001, True) global numLBItems # has to be a global, otherwise it won't work... numLBItems = vs.GetNumLBItems(dialID, kLB001) elif item == kLB001: LBrecursive = True bResult, LBeventType, LBrowIndex, LBcolumIndex = vs.GetLBEventInfo(dialID, kLB001) if vs.HierLBItemIsClosed(dialID, kLB001, LBrowIndex): numbRedisplItems = vs.HierLBItemOpened(dialID, kLB001, LBrowIndex, False) else: vs.HierLBItemClosed(dialID, kLB001, LBrowIndex, False) elif item == kPB_Expand: for i in range(numLBItems): if vs.HierLBItemIsClosed(dialID, kLB001, i): numbRedisplItems = vs.HierLBItemOpened(dialID, kLB001, i, True) elif item == kPB_Collapse: for i in range(numLBItems): if vs.HierLBItemIsClosed(dialID, kLB001, i) == False: vs.HierLBItemClosed(dialID, kLB001, i, True) def rundialog(): global dialID dialID = vs.CreateResizableLayout('Test Listbrowser', True, 'OK', 'Cancel', False, False) vs.CreateLB(dialID, kLB001, 60, 20) vs.CreatePushButton(dialID, kPB_Expand, 'Expand') vs.CreatePushButton(dialID, kPB_Collapse, 'Collapse') vs.SetFirstLayoutItem(dialID, kLB001) vs.SetRightItem(dialID, kLB001, kPB_Expand, 0, 0) vs.SetBelowItem(dialID, kPB_Expand, kPB_Collapse, 0, 0) if vs.RunLayoutDialog(dialID, dialogHandler) == 1: pass rundialog()
  • Create New...