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.



Returns an ISelectionList object of all the selected items.


Procedure: 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


Using PlanSwift Object Model
PlanSwift Code:

tmp := ''
sl := planswift.selectionlist;
for ndx := 0 to sl.count -1 do
  tmp := tmp + sl.items(ndx).name + #13#10; 

FreshDesk Code:

procedure TForm1.psSelectionList(Sender: TObject);
  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;
   //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
  //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);
  //Free the Planswift Interface
  ps := nil;


Using IItem Object Model
public class PlanswiftApi
    private PlanSwift Planswift { get; }
    public PlanSwiftApi()
        Planswift = new PlanSwift();
Using PlanSwift Object Model
Coming soon


Using IItem Object Model
Coming soon
Using PlanSwift Object Model
Coming soon

Copyright 2023 ConstructConnect