DrawOneWayLayout
Function used to perform segment layouts at a specified span, horizontal run, as well as spacing.
Syntax:
Function
: DrawOneWayLayout
...
Text:
...
(
const
AItem:
WideString
;
const
SpanLine: ILine;
const
RunLine: ILine; bIncludeFirst: WordBool; bIncludeLast: WordBool; nSpacing:
Double
;
const
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
Code Block |
---|
language | delphi |
---|
theme | RDark |
---|
firstline | 1 |
---|
title | Using IItem Object Model |
---|
linenumbers | true |
---|
collapse | true |
---|
|
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; |
Code Block |
---|
language | delphi |
---|
firstline | 1 |
---|
title | Using PlanSwift Object Model |
---|
linenumbers | true |
---|
|
|
C#
Code Block |
---|
language | c# |
---|
theme | RDark |
---|
firstline | 1 |
---|
title | Using IItem Object Model |
---|
linenumbers | true |
---|
|
|
Code Block |
---|
language | c# |
---|
theme | RDark |
---|
firstline | 1 |
---|
title | Using PlanSwift Object Model |
---|
linenumbers | true |
---|
|
|
VB/VBA (OLE)
Code Block |
---|
language | vb |
---|
firstline | 1 |
---|
title | Using IItem Object Model |
---|
linenumbers | true |
---|
|
|
Code Block |
---|
language | vb |
---|
firstline | 1 |
---|
title | Using PlanSwift Object Model |
---|
linenumbers | true |
---|
|
|
Pascal Scripting (OLE)
Code Block |
---|
firstline | 1 |
---|
title | Item Object Model |
---|
linenumbers | true |
---|
|
|
Code Block |
---|
title | Root Object Model |
---|
linenumbers | true |
---|
|
|
Pascal Scripting
Code Block |
---|
firstline | 1 |
---|
title | Item Object Model |
---|
linenumbers | true |
---|
|
|
Code Block |
---|
title | Using the PlanSwift Object Model |
---|
linenumbers | true |
---|
|
|