Jump to content
  • 23
Andrew Davies

A “by current class” choice in symbols

Question

Hello

 

I am 95% sure this is not possible currently, but I would love to be able to set a class within a symbol that takes it’s attributes from the current class that that symbol is assigned to.


Currently - once a symbol is defined - it’s display attributes are unaffected by which ever class it is assigned to once placed on a design layer.  (please correct me if I am wrong)

 

For example - I have a big library of scenic flats.  So that the colours show properly in viewports, I have had to duplicate them so that I have a (for example) “Black Flat”, “White Flat”, “Grey Flat” symbols (all at the various sizes) etc.  It would be helpful if I could just make a single symbol for each size - then let that symbol take the graphic attributes from whatever class is assigned to it on the design layer.


Hope this makes sense.


Andrew

 

 

 

Share this post


Link to post

23 answers to this question

Recommended Posts

  • 0
Posted (edited)

Ha ha. This is the ONLY thing that I miss from AutoCAD. The ability for geometry to be set to change by Class or by Symbol ("byLayer" or "byblock" in Acad). This would be such a terrific improvement. That said, it may play havoc with things like Data Visualisation in Sheet layers.......

 

As a workaround or indeed an alternative way of doing things, you could attach a data record to the flat symbol and let data visualisation in viewports do the work for you. I am sure that will give you the results you are looking for. Layer colours is also another solution but is a bit inflexible as well as meaning that you would need loads of layers where in fact classes seem more appropriate. 

Edited by markdd
  • Like 1

Share this post


Link to post
  • 0

Thank you for posting this! I've often wanted this sort of functionality.

 

Objects within symbols should be able to have their attributes set to "By Symbol" in addition to by Class. You should also be able to set textures "By Symbol."

 

That way, for example, 5 instances of the same symbol could have 5 different fill colors by simply changing the attributes palette of the symbols themselves. Anything within the symbol that's set to "By Symbol" would listen.

 

And if you want the contents to listen to the symbol's class (as you've described above) simply set the symbol instance to Class Style.

  • Like 1

Share this post


Link to post
  • 0

Would be handy for groups as well, maybe even other container objects.

"By Container" would be great if possible.

 

  • Like 2

Share this post


Link to post
  • 0

This has been wished for before. Things like this is why VW should take one year to fix/add all these little or not so little things that can make a lot of difference to our workflow instead of adding new features.

  • Like 4

Share this post


Link to post
  • 0

This would be a very important new feature! Currently, it is impossible to SEE which class the symbol is on, unless looking it up at the OIP.

 

We frequently struggle with symbols accidentally placed on wrong classes and showing up in viewports or worksheets where they shouldn't be.

 

In  my prehistoric Autocad life this simple thing was one of the most powerful features - you would immediately see that something is in the wrong layer(class) since the appearance of the block(symbol) would change accordingly.

 

Please! No harm in this?

 

 

Share this post


Link to post
  • 0
On 3/8/2018 at 9:47 PM, Art V said:

This has been wished for before. Things like this is why VW should take one year to fix/add all these little or not so little things that can make a lot of difference to our workflow instead of adding new features.

Indeed! Now that the super-critical photos to 3D feature is off the production line, could the programming factory please update the doors, windows and stairs? And that little thing discussed above :-)

Share this post


Link to post
  • 0

a Class : "from parent Class" option ?

 

While "parent" is Symbol/Group/Extrude/ .......

  • Like 1

Share this post


Link to post
  • 0

Agreed. This would be great to have.

IMO, this might be the only functionality where ACAD wins out over Vectorworks.

Share this post


Link to post
  • 0

I would love this feature. Color is a important part of our design process and having multiple symbols for each possible color is not practical. My current workaround is creating a script that duplicate the outline of the object, then assign it a color. I treat it as a plugin, so changing color is not awful.

 

Still the AutoCAD way is much easier.

 

Martin

 

  • Like 1

Share this post


Link to post
  • 0
6 hours ago, Martin Crawford said:

Still the AutoCAD way is much easier.

 

...the one time I absolutely agree with this sentence :D

  • Like 2

Share this post


Link to post
  • 0

19 votes for this wish!  Would be interested in hearing thoughts from Nemetschek on this

  • Like 1

Share this post


Link to post
  • 0

This would make symbols more useful if some of the attributes could be class controlled and instance based. 

Share this post


Link to post
  • 0
On 4/16/2018 at 5:21 PM, Tom Klaber said:

This would make symbols more useful if some of the attributes could be class controlled and instance based. 

Not just that, but it is often a requirement that symbols are made to work that way, so it are not only symbols that would be more useful but Vectorworks usability would increase as well because it may improve interoperability with other programs and make it a more viable option to use (and even more so if some other requested "simple things" that are essentially available but yet not fully implemented would be added).

Share this post


Link to post
  • 0

So I just embarked on a project that has 2000 of a particular type of object. This object comes in 14 different sizes; each size is a different Symbol. Each of those sizes comes in any of 8 different colors. In the rendering we want some of every possible option... The permutations of doing this manually is a bit overwhelming.

 

If I could just have 14 different symbol definitions, and assign the 2000 instances to 8 different classes to control the color, it would save me hours of time.

 

As it stands I'll technically need 112 different symbols (though I'll probably fake it and leave some combinations out of the rendering).

 

Having a "BySymbol" option for attributes would be a HUGE step forward.

  • Like 1

Share this post


Link to post
  • 0

While it is not an “elegant” solution, I wrote a python script to create an outline of the symbol and fill with a preselected color. I found this to be an easier approach than maintaining multiple symbols of the same thing. When done I put the color on a different class. Not pretty, but it works.

 

You should be able to create a custom plugin that takes a symbol name and color and places and sizes a single symbol definition.

 

You should be able to do this with Marionette and  if you post in the forum someone will assist. The support is pretty amazing.

 

I started with Marionette and quickly moved to python as I found it easier for some of the things I was trying to accomplish. I am confident this could be done in Python. I have a recorded training session that walked me through how to do this with menu commands, I will see if I can find the steps. Creating a script should be doable.

 

i am happy to assist, if you need help.

 

Martin

Share this post


Link to post
  • 0

@Andy Broomell

Why not use layer colours until Vectorworks implement “by classing” in symbols. 

 

There is also data data visualisation in sheet layer viewports.

Share this post


Link to post
  • 0
Posted (edited)
14 hours ago, markdd said:

Why not use layer colours until Vectorworks implement “by classing” in symbols. 

 

There is also data data visualisation in sheet layer viewports.

 

In this case it's a texture that needs to change; the 2D attributes don't matter. Is this something Layer Colors or Data Visualization can do? (And it's not the entire symbol, just one of the objects within the Symbol.)

 

For example, imagine it's 2000 boxes in 14 different sizes. Each box has a colored striped painted on it, in one of the 8 colors.

Edited by Andy Broomell

Share this post


Link to post
  • 0

I have no idea whether this approach is useful to you. But, if you add a stripe either as a symbol to each box or as an object within a box symbol and attach a record to it (Stripes 1-14), then tell visualisation to change the fill colour of the item that contains the appropriate stripe record. If the texture is coloured according to the object's attribute then it should work. I've done a couple here and all works fine.

 

Coloured stripes.vwx

Share this post


Link to post
  • 0
Posted (edited)
10 hours ago, markdd said:

I have no idea whether this approach is useful to you. But, if you add a stripe either as a symbol to each box or as an object within a box symbol and attach a record to it (Stripes 1-14), then tell visualisation to change the fill colour of the item that contains the appropriate stripe record. If the texture is coloured according to the object's attribute then it should work. I've done a couple here and all works fine.

 

Interesting. But no, that's not quite helpful.

 

The goal isn't to have multiple viewports with different combinations of colors. Rather, the goal is to have instances of a single symbol definition be able to be multiple different colors. For example, the stripe in "Box 1" could be red, blue, green, yellow, etc. all with the one symbol definition.

 

So the problem with the data visualization thing is that it still changes all the instances of a particular symbol.

So ultimately I don't think there's any way to achieve this currently, aside from doing it manually.

 

 

For any VW engineer who may stumble across this thread, if there were a "BySymbol" option, here's how it'd work in this example:

  • Have 14 symbol definitions, one for each box size.
  • Have 8 classes, each set up to be a different color.
  • For each stripe within each box symbol, set its fill color (or its texture) to "BySymbol".
  • Place 2000 symbol instances of the various box sizes in the drawing.
  • Assign each instance randomly to one of the 8 color classes. Make sure the symbol instance's Fill or Texture is set to "By Class"
  • The stripe inherits the color from the symbol instance's class, despite being inside the symbol.
  • You end up with 112 permutations with only 14 different symbols. Fantastic!

 

Of course this would be useful in a million other ways, but this is just one specific example of how useful it'd be.

 

 

Edited by Andy Broomell
  • Like 1

Share this post


Link to post
  • 0
Posted (edited)

what about using DLVP's of the symbol with class overrides?

Edited by Boh

Share this post


Link to post
  • 0
Posted (edited)
3 hours ago, Boh said:

Ewhat about using DLVP's of the symbol with class overrides?

It would still require that the symbol's parts are set to use the class properties and usually it is only the symbol that has the class on which it inserted and not its constituting parts. The idea is that the constituting parts are also controlled by the class in which the symbol is inserted instead of separately controlled by its own class. Think of the symbol parts being class independent. Besides that, using DLVP's reduces flexibility and will only cause more hassle in the long run as you need to manage those on top of the symbols.

The request would avoid a lot of hassle if implemented properly.

Edited by Art V
  • Like 1

Share this post


Link to post
  • 0

There was another Wishlist item to make class overrides editable in the organisation dialogue which would make this appoach more tenable but yes I see what you are saying.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×