Jump to content

Samuel Derenboim

  • Posts

  • Joined

  • Last visited

Posts posted by Samuel Derenboim

  1. @Nikolay Zhelyazkov

    Thank you! I'll double check the settings shortly.


    Pardon that I have so many questions but this is quite new to me.


    I did also want to ask


    1. Is it possible to get the graphic scale of the image inside the graphic legend? I.e. if graphic legend image scale is at 1.5in =1ft, Is it possible to display it in the legend dataset ( I found it as a resource in the tag reference, but don't know how to call it out in #ws_objectdata# or #graphiclegend# / graphic legend image )


    2. Is it possible to 'count' every instance of the graphic legend in sequence? (I.e. if there are 16 details, each has a number for reference)

    I've been playing around with the database sequence settings, but I don't think it knows how to count every instance...perhaps there is a trigger?


    Thanks so much!




  2. @Nikolay Zhelyazkov




    Mind = Blown

    I've never seen a conditional statement like that before in any of the data tags. Is this something new? Is this the only datatag conditional statement format? Just curious if I can read up more on the properties of these conditional statements. There is something to note however, the number is displayed as fractional feet, but the unit of measurement is inches. I have to actually multiply the value by 12 in order to get the correct dimension.  Like so below :




    Why does it display 1/12 of the dimension? Is it because of units in the document? I've changed the units, still doesn't seem to change the value though. I don't mind multiplying by 12, just curious why it does this.


    Also, I have created a prototype graphic legend that intended to do the same thing, however, it doesn't work the same as it does for the datatag. One of the things that happens is that after the 1st line in the description, dimensional information reverts back to decimal and displays foot information rather than ft/in information.

    I know it sounds confusing. Attaching the file here.


    Nikolay, Thank you in advance! You're a tremendous help!!!




    • Like 1
  3. @Zsombor@Anders Blomberg

    Good news,

    You can enter conditional statements into data tags. The element you were concerned about was values being shown when they were zero.

    See Screenshot below


    Note there are only 7 layers attached.


    Component Description - From outside to inside :

    #WS_IFNA((OBJECTDATA('component', 'thickness', 1)), ' ')# #fi_3_2# #WS_IF(VALUE(OBJECTDATA('component', 'thickness', 1)>0), 'in thick -', ' ')#   #WS_OBJECTDATA('component', 'name', 1)#
    #WS_IFNA((OBJECTDATA('component', 'thickness', 2)), ' ')# #WS_IF(VALUE(OBJECTDATA('component', 'thickness', 2)>0), 'in thick -', ' ')#   #WS_OBJECTDATA('component', 'name', 2)#
    #WS_IFNA((OBJECTDATA('component', 'thickness', 3)), ' ')# #WS_IF(VALUE(OBJECTDATA('component', 'thickness', 3)>0), 'in thick -', ' ')#   #WS_OBJECTDATA('component', 'name', 3)#
    #WS_IFNA((OBJECTDATA('component', 'thickness', 4)), ' ')# #WS_IF(VALUE(OBJECTDATA('component', 'thickness', 4)>0), 'in thick -', ' ')#   #WS_OBJECTDATA('component', 'name', 4)#
    #WS_IFNA((OBJECTDATA('component', 'thickness', 5)), ' ')# #WS_IF(VALUE(OBJECTDATA('component', 'thickness', 5)>0), 'in thick -', ' ')#   #WS_OBJECTDATA('component', 'name', 5)#
    #WS_IFNA((OBJECTDATA('component', 'thickness', 6)), ' ')# #WS_IF(VALUE(OBJECTDATA('component', 'thickness', 6)>0), 'in thick -', ' ')#   #WS_OBJECTDATA('component', 'name', 6)#
    #WS_IFNA((OBJECTDATA('component', 'thickness', 7)), ' ')# #WS_IF(VALUE(OBJECTDATA('component', 'thickness', 7)>0), 'in thick -', ' ')#   #WS_OBJECTDATA('component', 'name', 7)#
    #WS_IFNA((OBJECTDATA('component', 'thickness', 8)), ' ')# #WS_IF(VALUE(OBJECTDATA('component', 'thickness', 8)>0), 'in thick -', ' ')#   #WS_OBJECTDATA('component', 'name', 8)#
    #WS_IFNA((OBJECTDATA('component', 'thickness', 9)), ' ')# #WS_IF(VALUE(OBJECTDATA('component', 'thickness', 9)>0), 'in thick -', ' ')#   #WS_OBJECTDATA('component', 'name', 9)#
    #WS_IFNA((OBJECTDATA('component', 'thickness', 10)), ' ')# #WS_IF(VALUE(OBJECTDATA('component', 'thickness', 10)>0), 'in thick -', ' ')#   #WS_OBJECTDATA('component', 'name', 10)#


    I'm still working on a tidier method however. Since there are conditional statements, its possible to make this a much more elegant solution!


    @Nikolay Zhelyazkov


    I was wondering regarding the information above -


    1. Is there a function to call out component index ? i.e. 1, 2, 3, 4, etc...


    I have looked through all the variables in the insert function context menu in the worksheets, but have not found anything.


    2. Is there a way to display the dimensional information of values to fractional inches or feet rather than decimal inches / feet in the datatag layout

    I tried to use  #fi_3_2#, but it doesn't work. Is there something that I'm missing?


    Thank you in advance!

  4. With the addition of various materials and components, it would be nice to provide various hatches for insulation, (i.e. Rigid, friable, mineral wool etc... between centerline spacing) or various other configurations. I have attempted this with hatches and tiles. see below :



    When using linear configurations, the tile can reverse positions in plan like shown above. Tiles also have an inability to be exported as hatches to autocad. Something to note!


    When it comes to hatches -




    A good example of hatches do not tile appropriately because they do not have a starting point. Therefore if the wall moves, the hatch tiles differently (in both world view as well as page view). The good news it can export to dwg.


    Last experiment included using offset custom line types along component lines (left of right). However this has a major flaw - line types are reversed when using different section wall views such as this.

    Here is an example.




    The two section viewports are referencing the same wall type. However because the line type alignment is on one side, the line type reverses (as seen on the left) when the viewport switches direction.


    As such, the request is to have the opportunity to provide a linetype for the Core or Centerline of the component to have a more variable ability to create wall styles\roof styles\slab styles\hardscape styles with linetypes that can be exported to autocad properly as well as beautiful looking wall styles. See example below




    Given that vectorworks outputs the most beautiful construction drawings of any software I have used in the past, I would say this would make a nice addition with your approval!

    • Like 1
  5. Has anyone ever linked records using Marionnette tool? The reason I'm asking is - say you have an inhouse record management system and you want to synchronize it with IFC records? or say you imported revit symbols with their own record system, and want to update that with your record management and ifc. Has anyone encountered this problem before?

  6. Has anyone had any experience using the data manager and parametric objects like windows and doors?


    The reason for the question is to link external databases that have information on doors and windows to parametric objects without having to create styles individually. Going to manufacturer to manufacturer and custom make parametric objects is unfortunately very tedious, and wanted to speed up the process. Like for example Marvin and Pella windows - vectorworks created a great catalog however some information and sizing is outdated (particularly product names) which makes me feel a bit wary of using them, therefore i end up creating my own when i have the time. However there are also some other companies like anderson, and even European windows like zola etc... that would still need some kind of integration on the users behalf. VW obviously doesn't have the resources to produce something like that, and I don't expect them to since the features they're working on i believe should be the priority.


    With my recent discovery that ODBC can be referenced remotely, I have a renewed desire to link database libraries to parametric objects. How would one go about doing this?


    Has anyone experienced this? Any thoughts?

  7. On 2/25/2021 at 5:40 PM, Ben Beaumont said:

    We have constructed localised libraries of 100's, (pushing 1000's) of Materials. @Julian Carr has written a script to create Materials from Textures which helped enormously. There is also a Worksheet that can push other material values into Material Styles. This is a boon for building libraries with repetitive information. We have updated our Wall and Slab styles such that the external and internal components (only) use Materials. Typically the external face is textured with an associated surface hatch (eg; painted weatherboard) so the component has a discernable thickness. The weatherboard Material library has any given profile in multiple popular colours. There are around 5 common weatherboard profiles and 100+ popular exterior colours. I don't think we can reasonably use Classes to manage the attributes of 500+ weatherboard options alone.
    We have constructed an 'Applied Finishes' Materials library with about 150 popular and fashionable paint colours from a leading paint supplier. The Wall styles have a 0.1mm internal Component for the 'Applied finish'. The slab styles (for ceilings) have the same. The Wall Styles in our libraries have 'Natural White' associated with them, the ceilings have 'Ceiling White' associated with them.

    The Attributes of the other Wall and Slab components are still 'by Class'. We have a short list of (legacy?) Component Classes to control these attributes.  
    It is a pleasure to use the Wall and Slab Styles straight from the library and to be able to simply swap out the Material with a preferred option (also straight from the library).
    I hear the comments about the absence of Class override type control for Materials, but for me the flatter workflow of simply applying a Material to an object is a far lesser evil than trying to do it with Classes. Considering the ease with which a model can be 'painted' in some other platforms, Materials are a welcome development.

    @Ben Beaumont


    Are these scripts available? I have been searching for something like that for the longest.


    1. Script to create Materials from Textures

    2. Script to write info into the material settings

    • Like 2
  8. @elepp


    I agree . Great potential.

    I'll start another post later, but combing this with a web gui remotely will sky rocket it's potential.


    May I ask, what do you use it for in particular ? Sorry about that, too early in the morning, didn't see you mention you used it for windows.


    Do window sizes auto update upon selection of the record?


    And can you lookup database tables to cross reference records in a worksheet? ( it's a topic I will start a new post on soon )

  9. UPDATE 3


    When you start stacking up with the ODBC datasources, you still need to delete the ones that do not work.




    Go into administrative tools and ODBC Data sources and remove any data sources you do not need.


    Also, if you want to set up new datasources flexibly without VECTORWORKS, this is the way to do it! In vectorworks you cannot modify existing ODBC databases. Here you can.





    • Like 1
  10. UPDATE 2



    @jeff prince



    ODBC Works with MYSQL!!!!


    There is a pretty convoluted way of getting it to work, however it all deals with the drivers.




    1. INSTALL UPDATED DRIVERS FOR MYSQL ODBC CONNECTION. This is important for successful connection. See link below.



    Both x86 and x64 drivers should work in the connection as I was able to set up an database connection using an ANSI ODBC Driver as well as the UNI ODBC Driver for MYSQL. (albeit with A LOT of trail and error)


    2. Set up MYSQL server via localhost or docker. In my case I am running MYSQL over docker with PHPMYADMIN as the database connector. Additionally, I am using NOCODB as an airtable alternative in order to modify records remotely (i.e. via website). Additionally I am using Portainer to manage all of my containers.

    As of this note: I am currently not using a remote WAN capability for mysql server, however it is possible to do with a reverse proxy. With enough votes, i can set up a tutorial on how to do that if there are enough people interested.

    See screenshots below




    Since I have used custom portforwarding - my container port is 3306, but the facing WAN port in this case is 4040. (This is going into the real of IT, but i recommend having a bit of knowledge on that front in order to do this. Otherwise use a locally hosted version of MYSQL server.


    3. After you have recorded the information for connection, next thing to do is to connect to the database using a GUI or a hosted system. In my case I am using noco db




    Setting up nocodb is pretty easy. But in this case, using PHPmyAdmin would actually be better because you have control over database names, and table names. I recommend using a compose file with mysql, phpmyadmin as a resource in order to access everthing. Ill provide the docker file/compose code soon.


    4. image.png.1c1faecaa6ec2b8bed7230797be8801e.png






    7. image.png.a6cd585aaad1fdebc204ca73e7f21020.png


    8. image.png.2683310eb47b45e00ae88057e3d254ee.png


    9. image.png.78f55068502b854d4aacf40b24ec4cf1.png


    10. image.png.621c7ea6feb521313464cbce19cdc48b.png





    11 image.png.2bd20595feb01f0c69eb46b8cf6dc677.png


    12. image.thumb.png.e61321dbb3e350570dc04553d9866820.png


    13. image.png.d66798fde49a7076e427638ec5501013.png


    Press the Test button for additional confirmation. If connection is successful, it should work.


    14.  Press OK to create the connection. Here is the tricky part - after creating EXIT OUT database connections. It needs to repopulate the DATABASE SOURCES above the connection string.




    14. Go back into connections



    15. image.png.6e941199800c62a459ac2f3dc83de6f0.png


    The database should appear in this list.


    16. REenter your credentials for the SQL server




    UPON CONNECTION - YOU should see the database rows




    Go back into record format connection to link the database to the internal records







    DB should populate





    Connect the record fields the the database record fields


















    It should auto populate your selection after you update vectorworks connections




    For faster synchronisation

    1. Create a shortcut key for vectorworks connection update

    2. see below





    Hope this helps!!






    • Like 4
  11. great news everyone, ODBC works for mssql . however I am missing something. I am still getting an error after setting up a connection after successful test via ODBC.


    I used MS SQL server 2019. Am i to use an earlier version?


     I was able to set up a table inside the container and was able to connect via test connection when setting up ODBC parameters.







    after setting up the connection - i get this error





    Note - I have confirmed the sql tables work via noco database, so the problem lies with either the driver, sql version number, or something else. (see screenshot below)


    connection currently works, i just don't know why it rejects the connection after successful test.



  12. @jeff prince@unearthed

    I'll do some experiments, stay tuned!


    But here is the summary of what I've discovered so far (on a local level)

    When using an sqlite file, I modify the sqlite file in an open source sqlite file editor - something like



    I add tables to it specifically to what I need (I.E. product database with insulation characteristics, or pricing tables, or zoning / building code reference database and I link the database to record information in VW in read only mode.


    When i assign that record to an object - it does not update immediately, i have to use the update vectorworks database in order for it to choose. The table above was an experiment of sqlite database reference - and in large databases, a search query or search by record would be fundamental to using ODBC.


    The part that is annoying is that I can change a record in the sqlite file upon entering the information, but I cannot update the object upon selecting the record, which is a bit frustrating.




    I'll try using ODBC with mysql hosted on a local docker vm and update my progress soon.


  13. Can someone please explain this to me? We can host SQL servers to carry database information???? 😁


    Does that mean I can host an MYSQL Server on docker and use it for referencing and crossreferencing databases?



  14. 18 minutes ago, Nikolay Zhelyazkov said:

    - I am happy to have helped! If we go for Bulgarian it is "Благодаря" 🙂


    - Have you tried setting the text wrap of the objects in the tag layout? I think that this might be what you are looking for. If this is not the case, can you give me some more details on what exactly do you mean?


    @Nikolay Zhelyazkov

    In that case, Благодаря !  🙂


    Also regarding your question - see screenshot below. This is a comparison between a tag vs a annotation callout . A callout has toggles, but no database reference.

    It would be nice to resize text like a callout in a limited size viewport in case it is needed.


    (also, I have a hunch that a future feature - legends will work very similarly to a tag, only summarizing in bulk all of the elements referenced...might eliminate this need entirely if the text in the legends can be resized similarly...


    I also have a hunch that you are also directly related to that feature!....but alas, it is only a hunch! 😁 )




    • Like 4
  15. 3 hours ago, Tom W. said:

    @Samuel Derenboim see: 



    Can be used to tag materialmanufacturer, materialreferenceID, etc as well. Unless it's a Compound Material in which case you can only return the Description, Mark + Keynote fields as far as I can tell


    Thank you for letting me know! Posted a formula for regular geometry as well.


    Will be very useful in the future for detail call outs (creating a custom set). Originally intended on using symbols with custom records for annotation and callouts.

    I also noticed a custom record option in materials - it would be interesting to see how that works as well! I will keep experimenting

  16. Each detail would be a separate symbol. (to me sheet does not mean sheet layers). If by sheet you mean what is in the design layer viewport - then yes.


    Detail number for the detail works, but if it can be detail + drawing name (i.e. . But I will rename each symbol to be the detail name later if we cant do baseflashing for wall deck. etc... (like it is in the detail itself, that would be even better). But if you can't, it's not a big deal.


    Yes, I think you summarized my intent correctly.


    Modified Bitumin would be the parent folder if it only had symbols inside. Modified bitumin is part of an Asphaltic line of details, so it would be best to inherit the folders inside the base folder. I.e. Lets say Asphalt Details => Modified Bitumin => DWG symbols.


    Thank you again!!!!!

  17. @Pat Stanford





    Pardon my non specificity.


    So this is the way i did it previously - import dwg batch - > in advance preferenced i was able to set all lines to black and white. What it doesnt do is import the dwg files into their respective folders.



    Then another method came up - using import symbol (batch command)





    It in turn created all subfolders in the directory!






    what it doesn't have the option to do is convert lines to black and white as shown below




    But most importantly, it eliminates the name of the detail, and detail no. of the mfg.


    Now if i import the detail as a layer and not as a symbol - it provides all of the information that was in the record (see below)



    My concern and original question is


    1. How do i preserve the record information upon import as a 'symbol'

    2. convert all lines to black and white

    3. distribute all symbols in their respective sub-folders when importing from a directory with subfolders


    Polylines, rectangles etc.. preferably shouldn't be exploded to retain hatches or fill. i only asked because if the symbol would be converted to group, the information would be retained. But that was a sort of convoluted way of going about it.










  18. 21 minutes ago, Pat Stanford said:

    Basically No.


    The internal VW scripting model only runs in a single file. This applies to Marionette, Vectorscript, and Python. That means that you can not start a script and have it open a different VW File and manipulate that file.


    Long ago I wrote an AppleScript that took a folder of VW files and opened each one and then ran a Vectorscript to export each file to a DWG file.


    Something similar could probably be done for your import thing, but since you are on Windows, you don't have the AppleScript option.


    If this is a one time conversion project I might be able to help. If this is an ongoing need, then I don't have any other great ideas.


    Thank you for your response regarding this matter! unfortunately yes this is ongoing. Ok, ill drop that idea, however i noticed that with import symbol (batch) - vectorworks can import dwg files by folder quite seamlessly, however there are still a few things i want it to do while it is importing which is -


    batch import = > explode all symbols = > convert all lines to black = > proceed with import

  • Create New...