Jump to content

coloring symbols background depending on database value

Recommended Posts


I am not used to work with Marionette yet. But now I think I must start with it.

But first maybe someone can help me getting rid of the following Problem:

I have many different (also in size) Symbols in my drawing, which are all assigned to the same database. Depending on the value of one database field (8 possible values), the background of the symbols should be coloured and assigned to specific classes according to the specified values of the database field. The coloured background should be larger than the size of each specific symbol.
The values will change during the project. That's why I need this process to work automatically.


Do you see a chance to get this work in Marionette easily 😉 ?


Thank you all in advance for a reply.





Share this post

Link to post

The problem here is that you seem to be asking Marionette to do something that Vectorworks itself cannot do, and that is, to color symbol instances based on class. All instances of a symbol are 100% reflections of the symbol definition, including class and attributes. I think what you want to do can be achieved using Marionette, but you'll have to think about this particular limitation. You could for example draw a box behind each symbol in the desired color based on the symbol size, the symbol location and the value of your database field. That's pretty straightforward, but you'll have to think about things like -where- to draw the boxes, etc.

Share this post

Link to post

Thank you for the quick reply. I know about the limitations regarding the instances of a symbol. You exactly descriped my idea - drawing a coloured box behind each symbol and assign both, the symbol including the box to a specified class. But what happens, if the values change? Will the boxes be replaced then?


But I think, this will not be straightforward for me. I am completely new to Marionette and scripting.

Would it be possible to get some help?

Share this post

Link to post

I think the approach would be to assign the colored boxes to a special class that is used only for that purpose. Then your Marionette command script could start by deleting all (old) objects of that class and re-run. The other approach is a little different, and it allows automatic updating, but a change in workflow. In this approach, you would make a Marionette plug-in object that incorporates both the symbol instance and the colored background, and it reassigns colors based on the record value. The problem with this is that I assume you want to work from existing drawings, i.e. existing layouts of symbols. I think the first approach would be more practical.


BUT... (and it's a big "but"...)


I would be doing you a mis-service if I didn't also mention Live Data Visualization. Built into Vectorworks 2020. If you're a Service Select customer especially, you will be able to do what you want to do without scripting.

Share this post

Link to post

It seems that Live Data Visualization is exactly what I'm looking for?! But this will be a feature of the upcoming VW2020 I have to wait for. Anyway, thank you very much for this information.

As I am not familiar with Marionette yet, I don't know how to solve both suggestions you have made. I think I have to do it by hand, to meet the tomorrow deadline.

Thank you for your given support.

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...