Function used to perform segment layouts (in 2 directions ) at a specified span, horizontal run, as well as spacing.
Syntax:
Procedure: DrawTwoWayLayout(const AItem: WideString; const SpanLine: ILine; const RunLine: ILine; bIncludeFirst:
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 (globally unique identifier) to the area section. Or, empty double-quotes for no trim/extending required.
Code Reference:
//PlanSwift code: var aItem : string; oSpanLine : ILine; oRunLine : ILine; bIncludeFirst : boolean; bIncludeLast : boolean; nSpacing : double; aAreaSection : string; begin // create a new "parent" area section... aItem := NewItem('\Job\Takeoff', 'Segment', 'Name'); // direction of segments being created... oSpanLine := PlanSwift.GetLine('Select Span'); // direction of "run" of segments based on spacing... oRunLine := PlanSwift.GetLine('Select Run'); // place or ignore segment at run "start" point... bIncludeFirst := FALSE; // (T/F)... // place or ignore segment at run "end" point... bIncludeLast := FALSE; // (T/F)... // spacing (inches) used when creating segments... nSpacing := 24; // 12, 16, 24... // either create or select a area section to trim or extend to... aAreaSection := SelectedItem(); // Function that lays the sticks (2 ways)... PlanSwift.DrawTwoWayLayout(aItem, oSpanLine, oRunLine, bIncludeFirst, bIncludeLast, nSpacing, aAreaSection); end; //FreshDesk Code: 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; |
public class PlanswiftApi { private PlanSwift Planswift { get; } public PlanSwiftApi() { Planswift = new PlanSwift(); } } |
Coming soon |
Coming soon |
Coming soon |