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.

DrawOneWayLayout - FD

DrawOneWayLayout

Function used to perform segment layouts at a specified span, horizontal run, as well as spacing. 

Syntax:

Function: DrawOneWayLayout(const AItem: WideStringconst SpanLine: ILine; const RunLine: ILine; bIncludeFirst: WordBool; bIncludeLast: WordBool; nSpacing: Doubleconst AArea: WideString): WordBool;

Arguments: 

AItem: WideString

Specifies the area section to assign the layout segments to.

SpanLine: ILine
Direction span start and endpoint.

RunLine: ILine
Horizontal (side to side) run direction of area to populate. Requires a start and endpoint;

bIncludeFirst: WordBool
Specifies whether to include a segment at the "start" run point. Even if it does not fall within the spacing range.

bIncludeLast: WordBool
Specifies whether to include a segment at the "last" run point. Even if it does not fall within the spacing range.

nSpacing: Double
Specifies the "run" spacing used when laying out segment objects.

AArea: WideString (optional parameter)
Specifies a defined "Area Segment" to trim/extend laid segments to. Supply either the path or guid to the area section. Or, empty double-quotes for no trim/extending required.

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.psDrawOneWayLayout(Sender: TObject);
var
  ps: IPlanSwift;
  pg,Area,Sect,Seg,est: IItem;
  psline,Span,Run: ILine;
  pt1,pt2: IPoint;
  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');
  //Get OneWayLayout (Dras Segment lines in one direction)
  ps.DrawOneWayLayout(Seg.GUID,span,Run,True,True,s,sect.guid);
 
  //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