To open any link in a new tab, preserving your position in the current article, just hold down the <CTRL> key on your keyboard before clicking the link or click using your mouse wheel.

SelectionList - FD

SelectionList

Returns an ISelectionList object of all the selected items.

Syntax:

Function: SelectionList: ISelectionList;

Code Reference:

  • 1. Create a New Form application
  • 2. Add a button to the form
  • 3. Add Planswift to reference (Planswift9_tlb in the uses)
  • 4. Copy code to button onclick event

API Calls

Delphi

Using IItem Object Model
procedure TForm1.psSelectionList(Sender: TObject);
var
  ps: IPlanSwift;
  est,Area,Sect,Seg: IItem;
  psline: ILine;
  pt1,pt2: IPoint;
  S: Integer;
  slst: ISelectionList;
  I: Integer;
  cpt: IPoint;
  NSect: IItem;
  ii: Integer;
  sPoint: IPoint;
begin
   //Get Planswift Interface
  ps := CoPlanswift.Create;
  // Get the Takeoff Folder (Estimating Tab in Planswift);
  Est := ps.GetItem('Job\Takeoff');
  //Create a New Area Item in the Estimating Tab
  Area := Est.NewItem('Area','Get Rect Demo');
  //Create a new Section for the Area
  sect := Area.NewSection('Get Rect Demo Section');
  //Call the Get Rect functions
  psline := ps.GetRect('Draw Area');
  //Get the two points from the iLine Returned by the GetRect function
  pt1 := psline.Point1;
  pt2 := psline.Point2;
  //Add Points to section to create a box
  sect.NewPoint(pt1.X,pt1.y);
  sect.NewPoint(pt2.X,pt1.y);
  sect.NewPoint(pt2.X,pt2.y);
  sect.NewPoint(pt1.X,pt2.y);
  sect.NewPoint(pt1.X,pt1.y);
  //Create Line Segment Item
  seg := Area.NewItem('Segment','Draw One Way Demo');
  //input Spacing
  S := StrToInt(inputBox('Enter Spacing','Enter Spacing','24'));
 
  //Get TwoWayLayout (Dras Segment lines in one direction)
  ps.GetTwoWayLayout(Seg.GUID,'Draw Span','Draw Run',True,True,s,sect.guid);
 
  //Show Message to have user select Drawn Items
  ShowMessage('Select the Drawn Area With Segments then Press OK');
  // Get the Selection List From Planswift
  slst := ps.SelectionList;
  //Set a Point to copy the sections too
  cpt := ps.GetPoint('Set Point To Copy Too');
  //check if selection list has items
  if Slst.Count > 0 then Begin
  //cycle through slection list by Index
    for I := 0 to slst.Count - 1 do begin
      //Get the item in the list from index
      sect := slst.Items[i];
      //Create a new Section on the parent Item
      NSect := sect.ParentItem.NewSection('Copied Section');
      //cycle thorugh the points of section
      for ii := 0 to ps.PointCount(sect.GUID) - 1 do begin
        //Get the point in the item by index
        sPoint := sect.GetPoint(ii);
        //set new point at selected point Location
        sect.NewPoint(cpt.X + sPoint.X,cpt.Y + sPoint.y);
      end;
    end;
  end;
  //Free the Planswift Interface
  ps := nil;
 
end;
Using PlanSwift Object Model
 

C#

Using IItem Object Model
 
Using PlanSwift Object Model
 

VB/VBA (OLE)

Using IItem Object Model
 
Using PlanSwift Object Model
 

Pascal Scripting (OLE)

Item Object Model
 
Root Object Model
 

Pascal Scripting

Item Object Model
 
Using the PlanSwift Object Model
 


Copyright 2023 ConstructConnect