Jump to content
  • 0

Blue symbol insertion


Anthony Neary

Question

I would like to see Blue Symbols insert properly when you have non-symbol geometry saved in there.  Right now any 3d-only geometry inside of a Blue Symbol is lost when inserted in plan view, and any 2d geometry is lost if inserted when working in wireframe or other 3d views.  As well, I would like to make sure that 2d geometry inside the symbol can be inserted on to the layer plane instead of the screen plane.  Hybrid symbols inside the Blue Symbols work fine, it's just the 2d- and 3d-only geometry I try to store inside (like locus points).  It has gotten to the point where I've resorted to creating hybrid symbols that have a 2d and 3d locus on top of each other just so I can have a centered working handle when I insert the group.  It seems silly.

 

This is something that is really starting to bug me.  I am trying to build a library of banquet seating layouts, but my 2d spacing geometry will only insert to the screen plane.  And any "extra" 3d geometry I try to have in the symbol does not work unless it itself is a hybrid symbol.

 

I am assuming inserting a Blue Symbol involves a process akin to the "convert to group" command, which strips the geometry you are not looking at (2d or 3d).  Unfortunately I would like to be able to have different 2d and 3d information in these libraries that I can not easily have right now.

 

Thank you.

Link to comment

10 answers to this question

Recommended Posts

  • 0
13 hours ago, Aristobulous said:

I would like to make sure that 2d geometry inside the symbol can be inserted on to the layer plane instead of the screen plane.  Hybrid symbols inside the Blue Symbols work fine, it's just the 2d- and 3d-only geometry I try to store inside (like locus points).

 

Can you post a file containing an example symbol? Blue symbols containing layer plane 2d objects that can be inserted in both 2d and 3d views should be possible. I did some experiments and had success creating symbols that behaved as I expected. I tried combinations of layer plane + 3d objects and layer plane only objects. Any 2d object in the symbol needs to be assigned to the "Symbol Definition" plane to work.

 

Kevin

 

Link to comment
  • 0

@JimWis it possible to request better documentation for Blue Symbols? All it says is "When placed, this type of symbol definition is converted to a group. Any changes made to the symbol definition later have no effect on existing groups." There's nothing that talks about what happens when its inserted and how the 2d, 3d and 2d layer plane elements are dealt with during the insertion process.

 

I also wish "Edit Symbol Options" was available when you right click on a symbol in the drawing. Unfortunately its only available from the Resource Manager. Consistency is key :-)

 

Kevin

 

  • Like 1
Link to comment
  • 0
  • Vectorworks, Inc Employee
Just now, Kevin McAllister said:

@JimWis it possible to request better documentation for Blue Symbols? All it says is "When placed, this type of symbol definition is converted to a group. Any changes made to the symbol definition later have no effect on existing groups." There's nothing that talks about what happens when its inserted and how the 2d, 3d and 2d layer plane elements are dealt with during the insertion process.

 

I also wish "Edit Symbol Options" was available when you right click on a symbol in the drawing. Unfortunately its only available from the Resource Manager. Consistency is key :-)

 

Kevin

 

 

Yes, alerting techpubs now.

  • Like 1
Link to comment
  • 0

I'm attaching a 2017 file with an example symbol.  The main reason I am going through this trouble is that I find the event seating tool clunky and annoying.  It is much faster for me to manually drop symbols in that have spacing locus and duplicate as necessary.  The main reasoning behind dropping table arrangements in as groups is that I can count individual symbol instances in the file, for quick and easy chair and table counts, as each chair and table is a unique instance of it's symbol inside the group.  There are probably better ways to do this with scripting but at the moment this works for me.

 

My big issue with the event seating tool is that it gets annoying to use when table placement is not perfectly aligned.  Often I am dealing with tight banquet rooms and making sure things will fit means nudging things around, which can not be done with seating blocks, the spacing is even throughout the block.  Then dealing with multiple seating blocks means it's faster to just drop symbols and nudge as I need to.  The tool is great for things like large chair layouts, where spacing is much easier to assume will be even and won't need to be nudged individually.

 

Aside from this particular purpose though it still baffles me why I can not have 2d information stored in a blue symbol that can get inserted in to the plan view on the layer plane.  I use blue symbols a lot for PIO and other geometry stored together, like a screen PIO sitting on a truss frame that is built with truss symbols and other non-symboled geometry.  Geometry that is otherwise not a symbol itself will not insert to the "opposite" view, 3d won't insert when working in plan, and plan won't insert when working in 3d.  Really my basic question is why any and all 2d and 3d geometry inside a blue symbol just does not get inserted to the appropriate places at all times.  As I stated originally my only assumption is that it's working on the same principle as the 'convert to group' command.

 

@Kevin, maybe I am missing something but I am not seeing how you can have geometry inside a blue symbol assigned to the layer plane, my only options are screen and symbol definition, and symbol definition geometry, being stored in the 3d portion of the symbol, will not insert to the group when working in plan view.

test.vwx

Edited by Aristobulous
Link to comment
  • 0

Thanks for the example. Here are a few thoughts -

 

9 hours ago, Aristobulous said:

My big issue with the event seating tool is that it gets annoying to use when table placement is not perfectly aligned.  Often I am dealing with tight banquet rooms and making sure things will fit means nudging things around, which can not be done with seating blocks, the spacing is even throughout the block.  Then dealing with multiple seating blocks means it's faster to just drop symbols and nudge as I need to.  The tool is great for things like large chair layouts, where spacing is much easier to assume will be even and won't need to be nudged individually.

 

You can nudge things around in the layouts created by the new Create Seating Section tool in VW2017. Double click on the seating section and drag as needed. Unfortunately I believe any changes you make will get lost if the seating section is regenerated (eg. you change the spacing or other parameters in the dialog). The other frustration is that currently when you double click on a Seating Section, it doesn't edit in context but jumps to its own origin unrelated to other objects in the drawing.

 

Quote

 

Aside from this particular purpose though it still baffles me why I can not have 2d information stored in a blue symbol that can get inserted in to the plan view on the layer plane.  I use blue symbols a lot for PIO and other geometry stored together, like a screen PIO sitting on a truss frame that is built with truss symbols and other non-symboled geometry.  Geometry that is otherwise not a symbol itself will not insert to the "opposite" view, 3d won't insert when working in plan, and plan won't insert when working in 3d.  Really my basic question is why any and all 2d and 3d geometry inside a blue symbol just does not get inserted to the appropriate places at all times.  As I stated originally my only assumption is that it's working on the same principle as the 'convert to group' command.

 

@Kevin, maybe I am missing something but I am not seeing how you can have geometry inside a blue symbol assigned to the layer plane, my only options are screen and symbol definition, and symbol definition geometry, being stored in the 3d portion of the symbol, will not insert to the group when working in plan view.

test.vwx

 

I think this is the issue you're trying to describe -

 

Screen Shot 2016-12-17 at 9.09.37 AM.png

 

Where A is your example (loci and guide circle are screen plane objects, table and chairs are hybrid symbols), B is my example inserted in 3d (loci and guide circle are layer (symbol) plane objects, table and chairs are hybrid symbols) and C is my example inserted in top/plan (loci and guide circle are layer (symbol) plane objects that are deleted, table and chairs are hybrid symbols). So the issue is the hybrid objects 2d portion are causing the layer plane objects in the main blue symbol to be deleted when inserted in 2d. I agree that this is not ideal though I suspect its WAD (working as designed). I feel like the blue symbol "group" mechanism should ignore internal hybrid symbols when choosing what to keep and what to delete or that blue symbols shouldn't actually delete any geometry when inserted (e.g.. they should generate a 2d group and a 3d group regardless of what view the user is in when inserting the symbol). I suspect the blue symbols weren't tested in this scenario since they were created well before the layer plane/screen plane implementation.

 

I've put similar guides in my own table symbols in the past because, like you, I like precise alignment. @Rob BooksI think you'll find this is pretty common industry workflow.

 

I tried to find a workaround but the more I played with it, the more frustrated I got. I feel like its BAD (broken as designed) or even a bug. I think blue symbols need an overhaul to deal with layer plane/screen plane objects. You should be able to choose to keep/convert layer plane objects in both 2d and 3d views much as there is a "Change 2d objects from Layer Plane to Screen Plane" checkbox when you initially create a symbol. The only way I could maintain those objects as screen plane and have them appear in both 2d and 3d views was to have them in the root blue symbol and insert the symbol in a 3d view. If I nested any further things would blow apart and they only be visible in one view or the other. I'm going to wishlist this put this in the troubleshooting forum (here - troubleshooting link)

 

Kevin

 

Edited by Kevin McAllister
  • Like 1
Link to comment
  • 0
3 hours ago, Rob Books said:

If you use black symbols to work your layout to where everything is laid out as you like it then do a Ctrl-K on all the symbols it will change the symbols to groups that can then be ungrouped.  that way you have the 2D/3D all the way through, and the ctrl-K will not delete on or the other.  it lets you have control for layout, does not require extra symbols, and in the end once you are happy you now have individual items for your counts.

 

Rob,

 

I think you'll find the original problem still remains if you work with black symbols. 2d layer (symbol) plane objects only display in 3d views. Its a limitations of the symbol container. Aristobulous wants the same functionality you get without symbols, where layer plane objects are visible in both 2d and 3d views. When you switch to top plan view while using a black symbol, if your guides are layer plane objects they disappear. Symbols essentially neuter the main advantage of layer plane objects, their ability to display the same in both 2d and 3d views.

 

Screen Shot 2016-12-19 at 9.32.54 AM.png

 

The more I work with this, the more I remember why I gave up on layer plane objects shortly after they were introduced.

 

Kevin

 

 

Link to comment
  • 0

I think everyone is correct, that there is not going to be a simple solution to this problem.  Perhaps in some future version of VW there could be another type of symbol that does not separate out the 2D and 3D, but changing the current behavior will break far more workflows that the few like Aristobulus' which it would help.

 

The idea of symbols being hybrid dates back to the very beginnings of VW (Minicad).  The idea has always been that symbols can have two views. A Top/Plan view that is often schematic, and a 3D view that is typically a realistic model of the object. Having both aspects show at the same time has never been an option with Hybrid objects.

 

The best we can do for now is to help Aristobulus to develop a workflow that will work with VW2017.

 

So my question is what is the typical breakdown of the symbols?  What do you want/need to be 2d (Screen Plane) objects and what needs to be Layer Plane? If there an "easy" way to convert those objects to hybrid objects to get the desired result.

 

Or perhaps alternatively would be a script that would "unpack" a hybrid object (symbol) and give you both parts as a group?

Link to comment
  • 0

The script actually ended up being a lot easier than I expected.

 

This script will take a single selected Symbol Instance and create a groups containing both the 2D and 3D parts of the symbol in the location of the symbol instance. Based on minimal testing, it appears to work in any view, but I recommend that it be used in Top or Top/Plan so that the screen plane objects will "appear" to be in the right place.

 

If the output of the script is what you want, we can look at making it into a menu command or tool and potentially have it delete the original symbol.

 

Copy the script below into a new script object, select a hybrid symbol in the drawing and run the script.

 

Procedure HybridSymbolToGroup;

{December 19, 2016}
{© 2016, Pat Stanford pat@coviana.com}
{Licensed under the GNU Lesser General Public License}

{Converts an inserted Hybrid Symbol to a single group containing}
{2D Screen Plane, Layer Plane and 3D Objects.}
{Lightly tested.  Use at your own risk. Test on a backup or sample}
{file before using on a production file. No warranty expressed or}
{implied. Consult a physician before using to determine if your}
{heart is strong enough to use this script.}



Var	SymHand, SymDefHand, GroupHand, SymObjHand, ObjHand:Handle;
	X1, Y1, Z1 :Real;


Begin
	GroupHand:=Nil;
	GetSymLoc3D(FSActLayer,X1,Y1,Z1);
	SymDefHand:=GetObject(GetSymName(FSActLayer));
	SetDSelect(FSActLayer);
	Message(date(2,2),' ',GetTypeN(SymDefHand));
	SymObjHand:=FinSymDef(SymDefHand);
	BeginGroupN(GroupHand);
	BeginMultipleDuplicate;

		While SymObjHand <> Nil do
			Begin
				ObjHand:=CreateDuplicateObject(SymObjHand,Nil);
				If ((GetObjectVariableBoolean(SymObjHand,651)) And (GetObjectVariableBoolean(SymObjHand,1160))) Then 
					Begin
						SetObjectVariableBoolean(ObjHand,1160,True);
						HMove(ObjHand,X1,Y1);
					End;			
				SymObjHand:=NextObj(SymObjHand);
			End;

	EndMultipleDuplicate;
	EndGroup;
	Move3DObj(GroupHand,X1,Y1,Z1);
End;

Run(HybridSymbolToGroup);

 

  • Like 1
Link to comment

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.

Guest
Answer this question...

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

×
×
  • Create New...