Move or copy the elements collected in the specified list by the specified distance, taking into account grouping, rotating by an angle with scaling, and write the newly created elements to the specified list.

ac_request("do_move_rot_and_scale_elemlist", int iElemList, double coordtoX, double coordtoY, double coordRotCenterX, double coordRotCenterY, double angle, double scale, bool bDoRotate, bool bWithDelete, int bpt, int mmode, int iElemList2);


Here:

iElemList - number of the list of elements to be copied or moved;

coordtoX, coordtoY - coordinates where to move;

coordRotCenterX, coordRotCenterY - coordinates of the center of rotation;

angle - angle in radians;

scale - scale (fractions of 1);

bDoRotate - rotate or not;

bWithDelete - delete originals or not;

bpt - what to take as a base point

0 - top left,

1 - TopMiddle,

2 - top right,

3 - MiddleLeft,

4 - MiddleMiddle,

5-MiddleRight,

6 - bottom left,

7-BottomMiddle,

8 - bottom right,

9 - default,

10 - ByParentCoordCenter.

mmode - group accounting mode

each element individually BySingle=0,

by last grouping ByGroupsBelow=1,

by the first group ByGroupsTop=2

all as a whole ByAll=3

iElemList2 - the number of the list of elements where to put the newly created elements.


Example

Copy the roof element at a distance of 1 m to the right, located in list 2 and the created element is written to list 4,

and set the layer number to 111.

int iElemList = 2;

int iElemList2 = 4;

double coordtoX = 1;

double coordtoY = 0;

double coordRotCenterX = 0;

double coordRotCenterY = 0;

double angle = 0;

double scale = 1;

bool bDoRotate = false;

bool bWithDelete = false;

int bpt = 0;

int mmmode = 0;


coordtoX = coordtoX + offset;
ac_request("do_move_rot_and_scale_elemlist", iElemList, coordtoX, coordtoY, coordRotCenterX, coordRotCenterY, angle, scale, bDoRotate, bWithDelete, bpt, mmode, iElemList2);
ac_request("set_current_element_from_list", 4, 0);
int compositindex = 111;
ac_request_special("set_element_value", "EP", "composite", compositeindex);