VS:SymbolToGroup

From Vectorworks Developer
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix

Description

Converts referenced symbol to group using the specified conversion options.

Table - Convert Actions
Convert Action Constant
Don't convert subobjects 0
Convert plug-in and symbol subobjects 1
Convert all subobjects 2
PROCEDURE SymbolToGroup(
h :HANDLE;
convertAction :INTEGER);
def vs.SymbolToGroup(h, convertAction):
    return None

Parameters

h HANDLE Handle to the symbol
convertAction INTEGER Conversion action:

Remarks

(_c_, 2014.09.14): Upon success, this creates a group which doesn't respond to LNewObj. It actually disables LNewObj, which will return NIL, unregarded what you created before running SymbolToGroup

The handle to the group can be fetched storing a handle to the object BEFORE the symbol on drawing, then fetching the next object:

PROCEDURE Test;
VAR
	h : HANDLE;
BEGIN
	h := PrevObj(FSActLayer); { store "h" as placeholder }

	{ FSActLayer must be a symbol on drawing }
	IF (FSActLayer <> NIL) & (GetType(h) = 15) THEN BEGIN
		SymbolToGroup(FSActLayer, 2);
		
		{ fetch group starting from placeholder "h" }
		Message(GetType(NextObj(h))); { <-- NextObj(h) should return 11: is the new group }
	END ELSE
		AlrtDialog('Select a symbol on drawing!');
END;
RUN(Test);

Version

Availability: from VectorWorks 10.0