procedure TForm1.psDrawTwoWayLayout(Sender: TObject);
var
ps: IPlanSwift;
Est,Area,sect,seg: IItem;
psline,span,run: ILine;
pt1,pt2: IPoint;
pg: IItem;
xscale: Extended;
S: Integer;
begin
//Get Planswift Interface
ps := CoPlanswift.Create;
//Get the Selected Page
pg := ps.SelectedPage;
//Get the XScale of the page
xscale := pg.GetPropertyResultAsFloat('ScaleX',0);
// 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 Span And Run Lines
Span := ps.GetLine('Draw Span');
Run := ps.GetLine('Draw Run');
//Draw TwoWayLayout (Dras Segment lines in one direction)
ps.DrawTwoWayLayout(Seg.GUID,span,run,True,True,S,sect.guid);
//Free the Planswift Interface
ps := nil;
end; |