Routine Operations: Difference between revisions
No edit summary |
No edit summary |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This page lists all of the routine operations available in Planimate as of 8.54.0. The operations all link to pages with their name but most of these pages will not exist. Where an operation warrants further discussion, these links can be followed and the pages created. | This page lists all of the routine operations available in Planimate as of 8.54.0. The operations all link to pages with their name but most of these pages will not exist. Where an operation warrants further discussion, these links can be followed and the pages created. | ||
''This page is automatically created. | ''This page is automatically created using Planimate 12.0.0. | ||
Please do not edit it. | |||
'' __NOEDITSECTION__ __TOC__ | |||
== Arithmetic == | == Arithmetic == | ||
Line 74: | Line 76: | ||
=== RemapValue === | === RemapValue === | ||
Remaps value through table | Remaps value through table, interpolating To Column values according to value's position in From Column. A row range can be specified, To Row of 0 uses the last row in the table. | ||
'''[[RemapValue|$R = RemapValue($1,$2,$3,$4,$5)]]''' | '''[[RemapValue|$R = RemapValue($1,$2,$3,$4,$5,$6)]]''' | ||
$R = Result | $R = Result | ||
$1 = Map Table | $1 = Map Table | ||
$2 = Value | $2 = Value | ||
$3 = | $3 = To Column | ||
$4 = From Row | $4 = From Row | ||
$5 = To Row | $5 = To Row | ||
$6 = From Column | |||
=== Scale ( *= ) === | === Scale ( *= ) === | ||
Line 204: | Line 207: | ||
$R = Row Index | $R = Row Index | ||
$1 = Table | $1 = Table | ||
=== RETURN === | === RETURN === | ||
Line 274: | Line 277: | ||
'''[[ColorPaletteEntry|$R = ColorPaletteEntry($1)]]''' | '''[[ColorPaletteEntry|$R = ColorPaletteEntry($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = Palette Index | $1 = Palette Index | ||
Line 327: | Line 330: | ||
$R = Result | $R = Result | ||
$1 = Panel With Viewport | $1 = Panel With Viewport | ||
$2 = Panel Inside Viewport | $2 = Panel Inside Viewport | ||
Line 337: | Line 340: | ||
$R = Result | $R = Result | ||
$1 = Panel With Viewport | $1 = Panel With Viewport | ||
$2 = Panel Inside Viewport | $2 = Panel Inside Viewport | ||
Line 347: | Line 350: | ||
$R = Result | $R = Result | ||
$1 = Panel With Viewport | $1 = Panel With Viewport | ||
$2 = Panel Inside Viewport | $2 = Panel Inside Viewport | ||
Line 463: | Line 466: | ||
$1 = Palette Index | $1 = Palette Index | ||
$2 = RGB Value | $2 = RGB Value | ||
=== SetGraphXOffset === | === SetGraphXOffset === | ||
Line 525: | Line 528: | ||
$2 = Property Label | $2 = Property Label | ||
$3 = Value | $3 = Value | ||
=== SetPanelSize === | |||
Sets the panel area size. Useful when the panel is not configured to automatically size. | |||
'''[[SetPanelSize|SetPanelSize($1,$2,$3)]]''' | |||
$1 = Panel | |||
$2 = Width | |||
$3 = Height | |||
=== SetPanelTransparency === | === SetPanelTransparency === | ||
Line 567: | Line 580: | ||
'''[[SetViewportScroll|SetViewportScroll($R,$1,$2,$3)]]''' | '''[[SetViewportScroll|SetViewportScroll($R,$1,$2,$3)]]''' | ||
$R = Panel With Viewport | $R = Panel With Viewport | ||
$1 = Panel Inside Viewport | $1 = Panel Inside Viewport | ||
$2 = X Offset | $2 = X Offset | ||
Line 574: | Line 587: | ||
=== SetViewportTarget === | === SetViewportTarget === | ||
Changes the Target Panel that a given Viewport will show. Targets are specified using the model object label of its owning portal (_Model_Objects list). The viewport can be identified directly using a paint object label list (_Paint_Objects) or indirectly using the panel the viewport is on and its current target. The Current Target Panel is not required when using a paint label reference, or if the viewport's panel only has one viewport. If New Target Panel is 0, the viewport will be hidden in user mode. | |||
'''[[SetViewportTarget|SetViewportTarget($1,$2,$3)]]''' | '''[[SetViewportTarget|SetViewportTarget($1,$2,$3)]]''' | ||
$1 = Panel | $1 = Viewport or its Panel | ||
$2 = Current | $2 = Current Target (or 0) | ||
$3 = New Panel | $3 = New Target Panel | ||
=== SetViewportZoom === | === SetViewportZoom === | ||
Line 588: | Line 601: | ||
'''[[SetViewportZoom|SetViewportZoom($R,$1,$2)]]''' | '''[[SetViewportZoom|SetViewportZoom($R,$1,$2)]]''' | ||
$R = Panel With Viewport | $R = Panel With Viewport | ||
$1 = Panel Inside Viewport | $1 = Panel Inside Viewport | ||
$2 = Zoom Value | $2 = Zoom Value | ||
Line 691: | Line 704: | ||
'''[[ExtractFileExtention|$R = ExtractFileExtention($1)]]''' | '''[[ExtractFileExtention|$R = ExtractFileExtention($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = Path/File | $1 = Path/File | ||
Line 700: | Line 713: | ||
'''[[ExtractFileName|$R = ExtractFileName($1)]]''' | '''[[ExtractFileName|$R = ExtractFileName($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = Path/File | $1 = Path/File | ||
Line 709: | Line 722: | ||
'''[[ExtractPathName|$R = ExtractPathName($1)]]''' | '''[[ExtractPathName|$R = ExtractPathName($1)]]''' | ||
$R = Result | $R = Result | ||
$1 = Path/File | $1 = Path/File | ||
Line 738: | Line 751: | ||
$R = Target List | $R = Target List | ||
$1 = Path/Wildcard | $1 = Path/Wildcard | ||
=== FilesInHierarchy === | === FilesInHierarchy === | ||
Line 757: | Line 770: | ||
$R = Result | $R = Result | ||
$1 = File | $1 = File | ||
=== FolderExists === | |||
Returns non zero if the specified directory folder exists. | |||
'''[[FolderExists|$R = FolderExists($1)]]''' | |||
$R = Result | |||
$1 = Path | |||
=== PlaySound === | === PlaySound === | ||
Line 829: | Line 851: | ||
=== SaveImage === | === SaveImage === | ||
Saves the panel image to a file or to the clipboard if the file name is empty or | Saves the panel image to a file or to the clipboard if the file name is empty or -. A memory save creates/updates an icon in the icon cache that paint button states and object icons can use. | ||
'''[[SaveImage|$R = SaveImage($1,$2,$3)]]''' | '''[[SaveImage|$R = SaveImage($1,$2,$3)]]''' | ||
Line 904: | Line 926: | ||
'''[[CreateLabelListFromColumn|CreateLabelListFromColumn($R,$1)]]''' | '''[[CreateLabelListFromColumn|CreateLabelListFromColumn($R,$1)]]''' | ||
$R = Target List | $R = Target List | ||
$1 = Source Column | $1 = Source Column | ||
Line 913: | Line 935: | ||
'''[[CreatePanelPortalLabel|$R = CreatePanelPortalLabel($1)]]''' | '''[[CreatePanelPortalLabel|$R = CreatePanelPortalLabel($1)]]''' | ||
$R = New Panel Label | $R = New Panel Label | ||
$1 = Portal Object Label | $1 = Portal Object Label | ||
Line 1,018: | Line 1,040: | ||
'''[[ReIndexLabels|ReIndexLabels($1,$2,$3)]]''' | '''[[ReIndexLabels|ReIndexLabels($1,$2,$3)]]''' | ||
$1 = Re-index List | $1 = Re-index List | ||
$2 = From Values (Col) | $2 = From Values (Col) | ||
$3 = To Values (Col) | $3 = To Values (Col) | ||
=== RemoveSubLabel === | === RemoveSubLabel === | ||
Line 1,170: | Line 1,192: | ||
=== GetAppDataName === | === GetAppDataName === | ||
Get a full | Get a full Users/username/AppData/Roaming path/file including a subfolder and a filename. If Result is text, it is set on success and set empty on failure, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero if the folder was created/verified writeable. | ||
'''[[GetAppDataName|$R = GetAppDataName($1,$2)]]''' | '''[[GetAppDataName|$R = GetAppDataName($1,$2)]]''' | ||
Line 1,184: | Line 1,206: | ||
'''[[GetCharacter|$R = GetCharacter($1,$2)]]''' | '''[[GetCharacter|$R = GetCharacter($1,$2)]]''' | ||
$R = Target | $R = Target | ||
$1 = String | $1 = String | ||
$2 = Character | $2 = Character | ||
Line 1,190: | Line 1,212: | ||
=== GetMyDocumentsName === | === GetMyDocumentsName === | ||
Get a full | Get a full Users/username/Documents path/file including a subfolder and a filename. If Result is text, it is set on success and set empty on failure, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero if the folder was created/verified writeable. | ||
'''[[GetMyDocumentsName|$R = GetMyDocumentsName($1,$2)]]''' | '''[[GetMyDocumentsName|$R = GetMyDocumentsName($1,$2)]]''' | ||
Line 1,200: | Line 1,222: | ||
=== GetProgramName === | === GetProgramName === | ||
Get the folder containing the running Planimate EXE and append a filename. | Get the folder containing the running Planimate EXE and append a filename. If Result is text, it is set to the path, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero. | ||
'''[[GetProgramName|GetProgramName($1)]]''' | '''[[GetProgramName|$R = GetProgramName($1)]]''' | ||
$R = Result | |||
$1 = Filename | $1 = Filename | ||
=== GetSharedAppDataName === | |||
Get a full ProgramData/AppData/Roaming/file including a subfolder and a filename. If Result is text, it is set on success and set empty on failure, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero if the folder was created/verified writeable. | |||
'''[[GetSharedAppDataName|$R = GetSharedAppDataName($1,$2)]]''' | |||
$R = Result | |||
$1 = Folder | |||
$2 = Filename | |||
=== LogMessage === | === LogMessage === | ||
Line 1,353: | Line 1,386: | ||
=== Broadcast === | === Broadcast === | ||
Sends a broadcast to the entire model | Sends a broadcast to the entire model. Options can be 0 or a combination of values from the Broadcast Options label list. | ||
'''[[Broadcast|Broadcast($1,$2)]]''' | '''[[Broadcast|Broadcast($1,$2)]]''' | ||
$1 = Broadcast Index | $1 = Broadcast Index | ||
$2 = | $2 = Broadcast Options | ||
=== BroadcastLocal === | |||
Sends the broadcast scoped to the portal containing the object sending it, with item attributes. The broadcast is initiated immediately. | |||
'''[[BroadcastLocal|BroadcastLocal($1)]]''' | |||
$1 = Broadcast | |||
=== BroadcastScoped === | === BroadcastScoped === | ||
Sends a broadcast to a specified dynamic panel and all under it | Sends a broadcast to a specified dynamic panel and all under it. Options can be 0 or a combination of values from the Broadcast Options label list. | ||
'''[[BroadcastScoped|BroadcastScoped($1,$2,$3)]]''' | '''[[BroadcastScoped|BroadcastScoped($1,$2,$3)]]''' | ||
$1 = Broadcast Index | $1 = Broadcast Index | ||
$2 = | $2 = Broadcast Options | ||
$3 = Send To Subsystem | $3 = Send To Subsystem | ||
=== BroadcastToPanel === | === BroadcastToPanel === | ||
Sends a broadcast to a specified dynamic panel | Sends a broadcast to a specified dynamic panel. Options can be 0 or a combination of values from the Broadcast Options label list. | ||
'''[[BroadcastToPanel|BroadcastToPanel($1,$2,$3)]]''' | '''[[BroadcastToPanel|BroadcastToPanel($1,$2,$3)]]''' | ||
$1 = Broadcast Index | $1 = Broadcast Index | ||
$2 = | $2 = Broadcast Options | ||
$3 = Send To Subsystem | $3 = Send To Subsystem | ||
Line 1,395: | Line 1,436: | ||
$1 = Message Target | $1 = Message Target | ||
$2 = Message Name | $2 = Message Name | ||
=== ReleaseWaitingItem === | === ReleaseWaitingItem === | ||
Line 1,430: | Line 1,471: | ||
=== Convolve === | === Convolve === | ||
Performs a convolution between two columns into a preallocated result column. This is useful for combining distributions. | Performs a convolution between two columns into a preallocated result column. This is useful for combining distributions. | ||
'''[[Convolve|Convolve($R,$1,$2)]]''' | '''[[Convolve|Convolve($R,$1,$2)]]''' | ||
Line 1,537: | Line 1,578: | ||
=== CopyPaintObject === | === CopyPaintObject === | ||
Enables a paint object to be copied | Enables a paint object to be copied | ||
'''[[CopyPaintObject|$R = CopyPaintObject($1,$2 | '''[[CopyPaintObject|$R = CopyPaintObject($1,$2)]]''' | ||
$R = New Paint Label | $R = New Paint Label | ||
$1 = Original Paint Label | $1 = Original Paint Label | ||
$2 = Destination Panel | $2 = Destination Panel | ||
=== CopyPaintProperties === | === CopyPaintProperties === | ||
Line 1,554: | Line 1,594: | ||
$1 = Paint Object To Update | $1 = Paint Object To Update | ||
$2 = Original Paint Object | $2 = Original Paint Object | ||
=== CreateTiles === | |||
Creates a tileset from an image. (0,0) is the center of image. Existing tileset file is deleted. Returns 0 on success. | |||
'''[[CreateTiles|$R = CreateTiles($1,$2,$3,$4)]]''' | |||
$R = Result | |||
$1 = Image File | |||
$2 = Tile Set | |||
$3 = MaxZoom | |||
$4 = Margin Colour | |||
=== DeleteAllPaintObjects === | === DeleteAllPaintObjects === | ||
Line 1,569: | Line 1,621: | ||
'''[[DeleteInheritedPaintObjects|DeleteInheritedPaintObjects($1,$2)]]''' | '''[[DeleteInheritedPaintObjects|DeleteInheritedPaintObjects($1,$2)]]''' | ||
$1 = Target Pane | $1 = Target Pane | ||
$2 = Un Inherit Panel | $2 = Un Inherit Panel | ||
Line 1,578: | Line 1,630: | ||
'''[[DeletePaintObject|DeletePaintObject($1,$2)]]''' | '''[[DeletePaintObject|DeletePaintObject($1,$2)]]''' | ||
$1 = Paint Label | $1 = Paint Label | ||
$2 = With Inherited | $2 = With Inherited | ||
=== FitPaint === | |||
Fits a paint object to its contents. | |||
'''[[FitPaint|FitPaint($1)]]''' | |||
$1 = Paint ID | |||
=== GetPaintProperty === | === GetPaintProperty === | ||
Line 1,589: | Line 1,649: | ||
$R = Result | $R = Result | ||
$1 = Paint Object Label | $1 = Paint Object Label | ||
$2 = Property Label | $2 = Property Label | ||
=== InheritPaintObjects === | === InheritPaintObjects === | ||
Line 1,597: | Line 1,657: | ||
'''[[InheritPaintObjects|InheritPaintObjects($1,$2)]]''' | '''[[InheritPaintObjects|InheritPaintObjects($1,$2)]]''' | ||
$1 = Target Panel | $1 = Target Panel | ||
$2 = Inherit From Panel | $2 = Inherit From Panel | ||
Line 1,610: | Line 1,670: | ||
$2 = Color2 | $2 = Color2 | ||
$3 = Ratio | $3 = Ratio | ||
=== LinkPaintObjects === | |||
Associate a paint object to a parent so it tracks movement of the parent. Parent and linked are paint objects. Edge values determine which edge/corner is used (1..9, 1=topleft, 2=top, 3=topright etc). Options: 1 auto-delete linked paint object when parent becomes hidden. | |||
'''[[LinkPaintObjects|LinkPaintObjects($1,$2,$3,$4,$5,$6,$7)]]''' | |||
$1 = Parent | |||
$2 = Linked | |||
$3 = Parent Edge | |||
$4 = Linked Edge | |||
$5 = Offset X | |||
$6 = Offset Y | |||
$7 = Options | |||
=== LongLatToXY === | === LongLatToXY === | ||
Line 1,632: | Line 1,706: | ||
$5 = Lat To | $5 = Lat To | ||
=== | === PositionPaintObject === | ||
Move a paint object given a parent's position. Parent and Paint are paint objects. Edge values determine which edge/corner is used (1..9, 1=topleft, 2=top, 3=topright etc). Parent=0 uses panel edge. | |||
'''[[ | '''[[PositionPaintObject|PositionPaintObject($1,$2,$3,$4,$5,$6)]]''' | ||
$1 = Paint Label | $1 = Parent | ||
$2 = Paint | |||
$3 = Parent Edge | |||
$4 = Paint Edge | |||
$5 = Offset X | |||
$6 = Offset Y | |||
=== RepaintPaintObject === | |||
Repaint a single paint object. Useful if the object's contents have changed but it hasn't moved or changed size. Clear colour can be used to erase under the paint object when anti-aliasing causes blending noise to linger. | |||
'''[[RepaintPaintObject|RepaintPaintObject($1,$2)]]''' | |||
$1 = Paint Label | |||
$2 = Clear Color | $2 = Clear Color | ||
Line 1,671: | Line 1,758: | ||
$1 = Paint Object Label | $1 = Paint Object Label | ||
$2 = Visibility | $2 = Visibility | ||
=== SetPaintImage === | === SetPaintImage === | ||
Line 1,677: | Line 1,764: | ||
Sets the image of a paint object | Sets the image of a paint object | ||
'''[[SetPaintImage|SetPaintImage($1,$2)]]''' | '''[[SetPaintImage|SetPaintImage($1,$2,$3)]]''' | ||
$1 = Paint Object Label | $1 = Paint Object Label | ||
$2 = Set Image To | $2 = Set Image To | ||
$3 = All States | |||
$3 = | |||
=== SetPaintProperty === | === SetPaintProperty === | ||
Line 1,699: | Line 1,777: | ||
$1 = Paint Object Label | $1 = Paint Object Label | ||
$2 = Property Label | $2 = Property Label | ||
$3 = Property Value | $3 = Property Value | ||
=== SetPaintText === | === SetPaintText === | ||
Line 1,709: | Line 1,787: | ||
$1 = Paint Object Label | $1 = Paint Object Label | ||
$2 = Set Text/File To | $2 = Set Text/File To | ||
$3 = For All States | $3 = For All States | ||
=== SetPaintTip === | === SetPaintTip === | ||
Line 1,719: | Line 1,797: | ||
$1 = Paint Object Label | $1 = Paint Object Label | ||
$2 = Set Tip To | $2 = Set Tip To | ||
$3 = For All States | $3 = For All States | ||
=== SetPaintXY === | |||
Moves a paint object so a given edge/corner is at (X,Y). Edge=1..9 (1=topleft, 2=topcenter, 5=center, 7=bottomleft etc.) | |||
'''[[SetPaintXY|SetPaintXY($1,$2,$3,$4)]]''' | |||
$1 = Paint Object Label | |||
$2 = X Pos | |||
$3 = Y Pos | |||
$4 = Edge | |||
=== SetTransparency === | === SetTransparency === | ||
Line 1,889: | Line 1,978: | ||
$1 = Table | $1 = Table | ||
=== PolyPathFinder === | |||
Generates a series of steps for movement from start to end. PolyPoints columns 1 and 2 are used for x/y (these can be long/lat). Rows are created in WayPoints with x/y in the first 2 columns and any matching polygon row in column 3. Start and End are brought into the polygon if not already, extra waypoints are created as needed. Returns > 0 on success. UsingLongLat should be set if world co-ordinates are being used instead of pixels. | |||
'''[[PolyPathFinder|$R = PolyPathFinder($1,$2,$3,$4,$5,$6,$7)]]''' | |||
$R = Result | |||
$1 = StartX | |||
$2 = StartY | |||
$3 = EndX | |||
$4 = EndY | |||
$5 = PolyPoints | |||
$6 = WayPoints | |||
$7 = UsingLongLat | |||
=== ReadRoute === | === ReadRoute === | ||
Line 1,957: | Line 2,061: | ||
$1 = SectionID | $1 = SectionID | ||
$2 = Road# | $2 = Road# | ||
=== SetPreviousTailData === | |||
Enables taildata to be set for a road/length multiserver that a train has just left. This is useful when taildata information is not known until the front of the train leaves the road/multiserver. WhichData is 1..4 (TailData1..TailData4). | |||
'''[[SetPreviousTailData|SetPreviousTailData($1,$2)]]''' | |||
$1 = WhichData | |||
$2 = Value | |||
=== SetRoadCheckFilter === | === SetRoadCheckFilter === | ||
Line 1,974: | Line 2,087: | ||
$1 = SectionID | $1 = SectionID | ||
$2 = Road# | $2 = Road# | ||
$3 = Color | $3 = Color | ||
=== TrackSectionType === | === TrackSectionType === | ||
Line 2,296: | Line 2,409: | ||
$1 = From Portal | $1 = From Portal | ||
$2 = To Portal | $2 = To Portal | ||
=== LinkDistance === | |||
Determine the spatial link travel distance between 2 portals. | |||
'''[[LinkDistance|$R = LinkDistance($1,$2)]]''' | |||
$R = Distance | |||
$1 = From | |||
$2 = To | |||
=== QueryLinkItems === | === QueryLinkItems === | ||
Line 2,325: | Line 2,448: | ||
$3 = Link Type | $3 = Link Type | ||
=== | === SetItemLinkTarget === | ||
Sets the destination an item will look for once it enters a spatial link | Sets the destination an item will look for once it enters a spatial link. Time sets the travel time to use (or SetItemLinkTime can be used after this). Road sets the road for multi-toad links, 1..n or 0 to leave unchanged. | ||
'''[[ | '''[[SetItemLinkTarget|SetItemLinkTarget($1,$2,$3)]]''' | ||
$1 = | $1 = Target Object | ||
$2 = Total Time | |||
$3 = Road | |||
=== | === SetItemLinkTime === | ||
Sets the time an item will take to reach its destination once it enters a spatial link | Sets the time an item will take to reach its destination once it enters a spatial link | ||
'''[[ | '''[[SetItemLinkTime|SetItemLinkTime($1)]]''' | ||
$1 = To Time | $1 = To Time | ||
Line 2,349: | Line 2,474: | ||
$1 = From Object | $1 = From Object | ||
$2 = To Object | $2 = To Object | ||
$3 = Color | $3 = Color | ||
$4 = Road | $4 = Road | ||
Line 2,360: | Line 2,485: | ||
$1 = From Object | $1 = From Object | ||
$2 = To Object | $2 = To Object | ||
$3 = Cost | $3 = Cost | ||
=== SetLinkRoads === | === SetLinkRoads === | ||
Line 2,381: | Line 2,506: | ||
$1 = From Object | $1 = From Object | ||
$2 = To Object | $2 = To Object | ||
$3 = Width | $3 = Width | ||
=== UpdateLinkItems === | === UpdateLinkItems === | ||
Line 2,417: | Line 2,542: | ||
$1 = Enable Break | $1 = Enable Break | ||
=== BrowseKey === | |||
Give user chance to browse for another key. Returns non zero if a different key was selected which is acceptable. | |||
'''[[BrowseKey|$R = BrowseKey()]]''' | |||
$R = Result | |||
=== CallRoutine === | === CallRoutine === | ||
Line 2,425: | Line 2,558: | ||
$F = Call | $F = Call | ||
=== CLRDelete === | |||
Deletes a managed object created by New(). | |||
'''[[CLRDelete|CLRDelete($1)]]''' | |||
$1 = Handle | |||
=== CLRGetProperty === | |||
Enables reading a dynamically named property of a managed class. | |||
'''[[CLRGetProperty|$R = CLRGetProperty($1,$2)]]''' | |||
$R = Target | |||
$1 = Handle | |||
$2 = Name | |||
=== CLRNew === | |||
Creates a new instance of a managed object. Requires result be an Instance formatted attribute. | |||
'''[[CLRNew|$R = CLRNew($1)]]''' | |||
$R = Target | |||
$1 = DLLClass | |||
=== CLRSetOwner === | |||
Sets owning window of a class, can specify a paint object or 0 to use current panel. | |||
'''[[CLRSetOwner|CLRSetOwner($1,$2)]]''' | |||
$1 = Handle | |||
$2 = PaintID | |||
=== CLRSetProperty === | |||
Enables setting a dynamically named property of a managed class | |||
'''[[CLRSetProperty|CLRSetProperty($1,$2,$3)]]''' | |||
$1 = Handle | |||
$2 = Name | |||
$3 = Value | |||
=== Comment (//) === | === Comment (//) === | ||
Line 2,453: | Line 2,632: | ||
=== CopyPortal === | === CopyPortal === | ||
Makes a copy of a portal and places it on Panel. If the name text is not | Makes a copy of a portal and places it on Panel. If the name text is not - or an empty string, the new portal uses that name. | ||
'''[[CopyPortal|$R = CopyPortal($1,$2,$3,$4,$5)]]''' | '''[[CopyPortal|$R = CopyPortal($1,$2,$3,$4,$5)]]''' | ||
Line 2,512: | Line 2,691: | ||
$2 = Green Value | $2 = Green Value | ||
$3 = Blue Value | $3 = Blue Value | ||
=== FollowItemRemote === | |||
Searches spatial links for the item and if found, sets the 'followitem property. | |||
'''[[FollowItemRemote|$R = FollowItemRemote($1,$2,$3)]]''' | |||
$R = Result | |||
$1 = Item Index | |||
$2 = Scope Panel | |||
$3 = Follow State | |||
=== FormatForList === | === FormatForList === | ||
Line 2,522: | Line 2,712: | ||
$1 = List Name | $1 = List Name | ||
=== | === GanttPopup === | ||
Returns the | Pops up the default gantt popup window as if a gantt block was clicked. This is useful when processing a gantt click broadcast. (x/y) are panel co-ordinates as read from the mouse. Returns non zero on success or zero if there wasn't a gantt block under the co-ordinates supplied. | ||
'''[[ | '''[[GanttPopup|$R = GanttPopup($1,$2,$3,$4)]]''' | ||
$R = Result | $R = Result | ||
$1 = Data To Test | $1 = Table | ||
$2 = Panel | |||
$3 = X | |||
$4 = Y | |||
=== GetFormat === | |||
Returns the value format of the data | |||
'''[[GetFormat|$R = GetFormat($1)]]''' | |||
$R = Result | |||
$1 = Data To Test | |||
=== GetFormatListName === | === GetFormatListName === | ||
Line 2,539: | Line 2,741: | ||
$R = Result | $R = Result | ||
$1 = Data To Test | $1 = Data To Test | ||
=== InfoPanelRemote === | |||
Searches spatial links for the item and if found, sets the s.ItemShowInfoPanel property. | |||
'''[[InfoPanelRemote|$R = InfoPanelRemote($1,$2,$3)]]''' | |||
$R = Result | |||
$1 = Item Info | |||
$2 = Scope Panel | |||
$3 = Show State | |||
=== ListRoutineCode === | === ListRoutineCode === | ||
Line 2,549: | Line 2,762: | ||
$2 = Object Name | $2 = Object Name | ||
$3 = Output Filename | $3 = Output Filename | ||
=== LoadDataSet2 === | === LoadDataSet2 === | ||
Line 2,569: | Line 2,773: | ||
$2 = File Name | $2 = File Name | ||
$3 = Pass Phrase | $3 = Pass Phrase | ||
=== LoadedAssemblies === | |||
Display Loaded Assemblies dialog for debugging. | |||
'''[[LoadedAssemblies|LoadedAssemblies()]]''' | |||
=== LoadModel === | === LoadModel === | ||
Line 2,586: | Line 2,797: | ||
$R = Result | $R = Result | ||
$1 = Object | $1 = Object | ||
=== OpenRoutineWindow === | |||
Opens/closes the current routine window depending on command. | |||
'''[[OpenRoutineWindow|OpenRoutineWindow($1)]]''' | |||
$1 = Command | |||
=== QueryNetwork === | === QueryNetwork === | ||
Sets table to rows describing every link on Panel between portals (track,spatial,pipe). 4 columns are required; From, To, Type and ID. From and To are the object Ids of the portals at the end points. Type is the type of link and is formatted to the | Sets table to rows describing every link on Panel between portals (track,spatial,pipe). 4 columns are required; From, To, Type and ID. From and To are the object Ids of the portals at the end points. Type is the type of link and is formatted to the _link_type label list. ID is the object id of the link. | ||
'''[[QueryNetwork|QueryNetwork($1,$2)]]''' | '''[[QueryNetwork|QueryNetwork($1,$2)]]''' | ||
Line 2,600: | Line 2,819: | ||
This will schedule a _Real Time Tick broadcast at a given real interval, in milliseconds. Note that any previous event is cancelled when this is re-invoked. Interval can be between 10 and 5000ms. | This will schedule a _Real Time Tick broadcast at a given real interval, in milliseconds. Note that any previous event is cancelled when this is re-invoked. Interval can be between 10 and 5000ms. | ||
'''[[RealTimeCallBack|RealTimeCallBack($1)]]''' | '''[[RealTimeCallBack|RealTimeCallBack($1,$2)]]''' | ||
$1 = Interval (ms) | $1 = Interval (ms) | ||
$2 = Scope Panel | |||
=== RemovePortal === | === RemovePortal === | ||
Line 2,611: | Line 2,831: | ||
$1 = Portal ID | $1 = Portal ID | ||
=== SaveDataSet2 === | === SaveDataSet2 === | ||
Line 2,667: | Line 2,878: | ||
$1 = Help File | $1 = Help File | ||
$2 = Section | $2 = Section | ||
=== SignFile === | |||
Digitally signs a file. | |||
'''[[SignFile|$R = SignFile($1,$2,$3,$4,$5)]]''' | |||
$R = Result | |||
$1 = File Name | |||
$2 = Cert | |||
$3 = Password | |||
$4 = Subject | |||
$5 = Time Server | |||
=== StartScheduledEntries === | === StartScheduledEntries === | ||
Line 2,674: | Line 2,898: | ||
'''[[StartScheduledEntries|StartScheduledEntries]]''' | '''[[StartScheduledEntries|StartScheduledEntries]]''' | ||
=== UserKeyBrowse === | |||
Presents a dialog enabling the user to either paste an application license or browse to a license file. On success in either case the license text is returned. You can specify a default filename and browse directory. | |||
'''[[UserKeyBrowse|$R = UserKeyBrowse($1,$2,$3)]]''' | |||
$R = License Text | |||
$1 = FileName | |||
$2 = BrowseFolder | |||
$3 = AppName | |||
=== UserKeyLoadFile === | |||
Attempts to load a user license key from a file, returns zero on success. | |||
'''[[UserKeyLoadFile|$R = UserKeyLoadFile($1,$2,$3)]]''' | |||
$R = Target | |||
$1 = File Name | |||
$2 = Password | |||
$3 = PublicKey | |||
=== UserKeyLoadText === | |||
Attempts to load a user license key from the supplied text, returns zero on success. | |||
'''[[UserKeyLoadText|$R = UserKeyLoadText($1,$2,$3)]]''' | |||
$R = Target | |||
$1 = Key Text | |||
$2 = Password | |||
$3 = PublicKey | |||
=== UserKeyLookup === | |||
Looks up a setting in a loaded key file. Returns -1 on error or empty string if LHS is text. | |||
'''[[UserKeyLookup|$R = UserKeyLookup($1)]]''' | |||
$R = Value | |||
$1 = Name | |||
=== WatchListAdd === | === WatchListAdd === | ||
Line 2,752: | Line 3,018: | ||
=== AdvancedSort === | === AdvancedSort === | ||
Performs a sort on a table using another table to define the sort criteria | Performs a sort on a table using another table to define the sort criteria, the sort info table should have columns for column, asc/desc,num/alpha and optionally filter if you intend to use row filtering. ColumnAsText interprets and matches entries in column 1 textually instead of numerically. | ||
'''[[AdvancedSort|AdvancedSort($R,$1)]]''' | '''[[AdvancedSort|AdvancedSort($R,$1,$2,$3)]]''' | ||
$R = Target | $R = Target | ||
$1 = Sort Info | $1 = Sort Info | ||
$2 = Filter | |||
$3 = ColumnAsText | |||
=== AllocateTableRowMemory === | === AllocateTableRowMemory === | ||
Line 2,775: | Line 3,043: | ||
$R = Target | $R = Target | ||
$1 = Col | $1 = Col Count | ||
=== AppendRow === | === AppendRow === | ||
Line 2,808: | Line 3,076: | ||
$2 = # of Rows | $2 = # of Rows | ||
$3 = # of Cols | $3 = # of Cols | ||
=== CheckTableSorted === | |||
Determines if a table is sorted by the sort criteria. Return 0 if OK or the first unsorted row number. This can be more efficient than calling Sort which is very slow if the table is already sorted. | |||
'''[[CheckTableSorted|$R = CheckTableSorted($1,$2,$3,$4,$5)]]''' | |||
$R = Result | |||
$1 = Table | |||
$2 = Column 1 | |||
$3 = Column 2 | |||
$4 = Column 3 | |||
$5 = Column 4 | |||
=== CompareTables === | === CompareTables === | ||
Line 2,818: | Line 3,099: | ||
$1 = Table 1 | $1 = Table 1 | ||
$2 = Table 2 | $2 = Table 2 | ||
=== CopyTable === | |||
Replaces all data columns in the target table so it is a copy of Original. | |||
'''[[CopyTable|$R = CopyTable($1)]]''' | |||
$R = Target | |||
$1 = Original Table | |||
=== CopyToClipboard === | === CopyToClipboard === | ||
Line 2,904: | Line 3,194: | ||
$R = Duplicates | $R = Duplicates | ||
$1 = Table | $1 = Table | ||
=== GenerateUnique === | |||
First column of the target table is set to a unique subset of the passed column. Text or numbers are supported, with the target column being reformatted if required. If the target does not contain a column, it is created. The output column is sorted using natural ordering. | |||
'''[[GenerateUnique|$R = GenerateUnique($1)]]''' | |||
$R = Result | |||
$1 = Column | |||
=== GetCellBackgroundColor === | === GetCellBackgroundColor === | ||
Line 2,940: | Line 3,239: | ||
$R = Result | $R = Result | ||
$1 = Table Column | $1 = Table Column | ||
$2 = Property Label | $2 = Property Label | ||
=== | === GetColumnTip === | ||
Sets the target (text or label) to the tip text for the given column | |||
'''[[ImportFromClipboard|$R = ImportFromClipboard($1,$2)]]''' | '''[[GetColumnTip|GetColumnTip($R,$1)]]''' | ||
$R = Result | |||
$1 = Column | |||
=== ImportFromClipboard === | |||
Performs import of table data/structure from clipboard as available in the table editor | |||
'''[[ImportFromClipboard|$R = ImportFromClipboard($1,$2)]]''' | |||
$R = Result | $R = Result | ||
$1 = Target Table | $1 = Target Table | ||
$2 = Configure | $2 = Configure | ||
=== InsertColumn === | === InsertColumn === | ||
Line 3,018: | Line 3,326: | ||
$1 = Item Table Ref | $1 = Item Table Ref | ||
=== PositionLastRow === | |||
Intended for use after a single row has been appended to an already-sorted table, this will efficiently move that last row to the position to maintain the sort. Table must already be sorted by the sort criteria. | |||
'''[[PositionLastRow|PositionLastRow($R,$1,$2,$3,$4)]]''' | |||
$R = Target | |||
$1 = Column 1 | |||
$2 = Column 2 | |||
$3 = Column 3 | |||
$4 = Column 4 | |||
=== PurgeDuplicateRows === | === PurgeDuplicateRows === | ||
Removes any identical rows from the given table | Removes any identical rows from the given table. Text formatted columns are not compared and should not be present in the table in cases of 100k or more rows for performance reasons. | ||
'''[[PurgeDuplicateRows|PurgeDuplicateRows($R)]]''' | '''[[PurgeDuplicateRows|PurgeDuplicateRows($R)]]''' | ||
Line 3,029: | Line 3,349: | ||
=== ReverseSearch === | === ReverseSearch === | ||
Decrement the result attribute from first to last until the condition is true. If the search fails, returns | Decrement the result attribute from first to last until the condition is true. If the search fails, returns last_index-1 or 0 if the Zero On Fail option is non zero. | ||
'''[[ReverseSearch|$R = ReverseSearch($F,$1,$2,$3)]]''' | '''[[ReverseSearch|$R = ReverseSearch($F,$1,$2,$3)]]''' | ||
Line 3,041: | Line 3,361: | ||
=== Search === | === Search === | ||
Increment the result attribute from first to last until the condition is true. If the search fails, returns 1 + last_index or 0 if | Increment the result attribute from first to last until the condition is true. If the search fails, returns 1+last_index or 0 if the Zero On Fail option is non zero. | ||
'''[[Search|$R = Search($F,$1,$2,$3)]]''' | '''[[Search|$R = Search($F,$1,$2,$3)]]''' | ||
Line 3,085: | Line 3,405: | ||
$R = Target Column | $R = Target Column | ||
$1 = Align Mode | $1 = Align Mode | ||
=== SetColSecondTitle === | === SetColSecondTitle === | ||
Line 3,121: | Line 3,441: | ||
$1 = Table Column | $1 = Table Column | ||
$2 = Property Label | $2 = Property Label | ||
$3 = Property Value | $3 = Property Value | ||
=== SetColumnTip === | === SetColumnTip === | ||
Line 3,182: | Line 3,502: | ||
=== Sort === | === Sort === | ||
Sort table by up to | Sort table by up to 4 columns. If the column index is -ve, it reverses the sort order for that column. | ||
'''[[Sort|Sort($R,$1,$2,$3)]]''' | '''[[Sort|Sort($R,$1,$2,$3,$4)]]''' | ||
$R = Target | $R = Target | ||
$1 = | $1 = Column 1 | ||
$2 = | $2 = Column 2 | ||
$3 = | $3 = Column 3 | ||
$4 = Column 4 | |||
=== SumIFMatch === | === SumIFMatch === | ||
Line 3,242: | Line 3,563: | ||
Copies the entire contents of a table view. Any current selection is ignored and left intact. | Copies the entire contents of a table view. Any current selection is ignored and left intact. | ||
'''[[CopyAllFromView|CopyAllFromView($1,$2)]]''' | '''[[CopyAllFromView|CopyAllFromView($1,$2,$3)]]''' | ||
$1 = Table | $1 = Table | ||
$2 = Panel | $2 = Panel | ||
$3 = Col Labels | |||
=== CopyFromView === | === CopyFromView === | ||
Line 3,730: | Line 4,052: | ||
$1 = Menu Name | $1 = Menu Name | ||
$2 = Item List | $2 = Item List | ||
=== BringToFront === | |||
If a panel is open in a popup window, bring that popup to the front in the window z-order. | |||
'''[[BringToFront|BringToFront($1)]]''' | |||
$1 = Panel | |||
=== BrowseFile === | === BrowseFile === | ||
Line 3,740: | Line 4,070: | ||
$1 = FileName | $1 = FileName | ||
$2 = Options | $2 = Options | ||
=== BrowseFolder === | |||
Browse for a folder. Returns non zero if one chosen. Name sets an initial path, Use s.LastAccessedDataFilePath to access the path selected. | |||
'''[[BrowseFolder|$R = BrowseFolder($1,$2)]]''' | |||
$R = Folder Chosen | |||
$1 = StartFolder | |||
$2 = Title | |||
=== ClearCustomMenubar === | === ClearCustomMenubar === | ||
Line 3,747: | Line 4,087: | ||
'''[[ClearCustomMenubar|ClearCustomMenubar]]''' | '''[[ClearCustomMenubar|ClearCustomMenubar]]''' | ||
=== DescribeFont === | |||
Retrieves a CSV text field describing the properties of the font for the specified column or table cell. | |||
'''[[DescribeFont|$R = DescribeFont($1)]]''' | |||
$R = Result | |||
$1 = Data | |||
=== Dialog === | === Dialog === | ||
Line 3,756: | Line 4,105: | ||
$R = Result | $R = Result | ||
$F = Dialog | $F = Dialog | ||
=== DragIcon === | |||
Displays an icon and enables user to position it. X and Y are the starting position (center) in panel co-ordinates. If a move is performed, new co-ordinates are written to these values. Icon selects an image which defines the bounding box. Returns non zero if the move was not cancelled. Supports being invoked with mouse down or up. Keys also supported. | |||
'''[[DragIcon|$R = DragIcon($1,$2,$3,$4)]]''' | |||
$R = result | |||
$1 = X Value | |||
$2 = Y Value | |||
$3 = Panel | |||
$4 = Icon Name | |||
=== GetCellXY === | |||
Retrieves the co-ordinates of a given corner of a cell that is visible in a table view. Co-ordinates are relative to the top left of the main panel window and can be used for ShowPopupPanel(). Corner is 1..9, 1 = top left.The cell is specified in view cells. Result is non zero on error, for example the cell is not visible. Otherwise X and Y are set. | |||
'''[[GetCellXY|$R = GetCellXY($1,$2,$3,$4,$5,$6,$7,$8)]]''' | |||
$R = Result | |||
$1 = Table | |||
$2 = Panel | |||
$3 = View Index | |||
$4 = View Row | |||
$5 = View Column | |||
$6 = Corner | |||
$7 = X | |||
$8 = Y | |||
=== HandlePopupMenu === | === HandlePopupMenu === |
Latest revision as of 15:08, 14 September 2020
This page lists all of the routine operations available in Planimate as of 8.54.0. The operations all link to pages with their name but most of these pages will not exist. Where an operation warrants further discussion, these links can be followed and the pages created.
This page is automatically created using Planimate 12.0.0.
Please do not edit it.
Arithmetic
Add
Add two values/rows/columns/tables
$R = Add($1,$2) $R = Result $1 = Value 1 $2 = Value 2
Clear
Set the target value to its initialising value
$R = CLEAR $R = Clear
Dec ( -= )
Decrement first value/row/column/table by second value
$R -= $1 $R = Result $1 = Decr. by
Div
Divide values/rows/columns/tables
$R = Div($1,$2) $R = Result $1 = Value 1 $2 = Value 2
Inc ( += )
Increment first value/row/column/table by second value
$R += $1 $R = Result $1 = Incr. by
InterpolateValue
Interpolates a value between value1 and value2 based on ratio (0.0 gives value1, 1.0 gives value2)
$R = InterpolateValue($1,$2,$3) $R = Result $1 = Value1 $2 = Value2 $3 = Ratio
Mul
Multiply values/rows/columns/tables
$R = Mul($1,$2) $R = Result $1 = Value 1 $2 = Value 2
RemapValue
Remaps value through table, interpolating To Column values according to value's position in From Column. A row range can be specified, To Row of 0 uses the last row in the table.
$R = RemapValue($1,$2,$3,$4,$5,$6) $R = Result $1 = Map Table $2 = Value $3 = To Column $4 = From Row $5 = To Row $6 = From Column
Scale ( *= )
Scale first value/row/column/table by second value
$R *= $1 $R = Result $1 = Scale by
Set ( = )
Assign a value/row/column/table to another of the same type and size
$R = $1 $R = Result $1 = Set To
Sub
Subtract two values/rows/columns/tables
$R = Sub($1,$2) $R = Result $1 = Value 1 $2 = Value 2
Control
BREAKLOOP
Immediately exits an ITERATE loop
BREAKLOOP
CASE
Tests a condition and if true, executes the code following until another CASE or DEFAULT is reached
CASE ($F) $F = CASE
CONTINUE
Immediately processes the next iteration in a loop/while, skipping the rest of the code
CONTINUE
DEFAULT
Marks code that should be executed if no CASES match in a SELECT block
DEFAULT
ELSE
Enables an alternate block of code to execute if an IF test fails to be true
ELSE
ENDIF
Marks the end of an IF block
ENDIF
ENDLOOP
Marks the end of an ITERATE block
ENDLOOP
ENDSELECT
Marks the end of a SELECT block
ENDSELECT
ENDWHILE
Marks the end of a WHILE block
ENDWHILE
IF
Executes lines following only if the condition is true
IF ($F) $F = IF
ITERATE
Repeats a block of routine lines, incrementing an attribute over a range
ITERATE ($R,$1,$2) $R = Index Using $1 = First Value $2 = Last Value
ITERATEROWS
Iterate Row Index over all the rows in the table
ITERATEROWS ($R,$1) $R = Row Index $1 = Table
RETURN
Returns from the routine
RETURN
REVERSEITERATE
Iterate the result attribute over the given range in descending order
REVERSEITERATE ($R,$1,$2) $R = Index Using $1 = First Value $2 = Last Value
SELECT
Starts a block where CASEs can be used to execute different code for conditions tested
SELECT
WHILE
Repeats a block of lines until the condition is false; the condition is tested first
WHILE ($F) $F = WHILE
Display
Animate
Animate a model object to a new screen position
Animate($1,$2,$3) $1 = Object $2 = X Pos $3 = Y Pos
ChooseColor
Enables selection of a colour
$R = ChooseColor($1) $R = Selected Colour $1 = Initial Colour
ChoosePaletteColor
Shows the colour palette selector dialog to select a given palette colour
$R = ChoosePaletteColor($1) $R = Result $1 = Selection Color
ColorPaletteEntry
Returns the RGB color for a given color index in the Planimate color palette
$R = ColorPaletteEntry($1) $R = Result $1 = Palette Index
FitPanelToArea
Fits the panel to the area of its contents with a margin
FitPanelToArea($1,$2) $1 = Target Panel $2 = Margin
ForceRepaint
Repaints all windows; use with care, it can cause slowdown
ForceRepaint
ForceRepaintPanel
Repaints the specified panel
ForceRepaintPanel($1) $1 = Panel
GetPanelProperty
Read a property of a panel, specified using _panel_properties list
$R = GetPanelProperty($1,$2) $R = Result $1 = Panel $2 = Property Label
GetSystemColorRGB
Returns the RGB color for a given color in the Windows system color palette
$R = GetSystemColorRGB($1) $R = Result $1 = Value
GetViewportScrollX
Get the x scroll of a viewport on a given panel
$R = GetViewportScrollX($1,$2) $R = Result $1 = Panel With Viewport $2 = Panel Inside Viewport
GetViewportScrollY
Get the y scroll of a viewport on a given panel
$R = GetViewportScrollY($1,$2) $R = Result $1 = Panel With Viewport $2 = Panel Inside Viewport
GetViewportZoom
Get the zoom factor of a viewport on a given panel
$R = GetViewportZoom($1,$2) $R = Result $1 = Panel With Viewport $2 = Panel Inside Viewport
GraphXOffset
Read the offset of a graph view for a table on the given panel
$R = GraphXOffset($1,$2) $R = Target $1 = Table $2 = Panel
GraphXWidth
Read the width of a graph view for a table on the given panel
$R = GraphXWidth($1,$2) $R = Target $1 = Table $2 = Panel
HidePanel
Hides any popup for the given panel
HidePanel($1) $1 = Target Panel
HideTableEditor
Close any open table editor for the given table
HideTableEditor($1) $1 = Table
MakeVisible
Makes the specified panel the active panel on the main window
MakeVisible($1) $1 = Target Subsystem
PanelWindowLeft
Returns the left window co-ordinate of a popup panel
$R = PanelWindowLeft($1) $R = Result $1 = Panel
PanelWindowTop
Returns the top window co-ordinate of a popup panel
$R = PanelWindowTop($1) $R = Result $1 = Panel
PrintPanel
Queues the nominated panel for printing; additional panels can be printed by intercepting the _Panel Printed broadcast
PrintPanel($1) $1 = Target Subsystem
ReFitPopup
Resize an already open popup to panel's changed size
ReFitPopup($1) $1 = Panel
RepaintObjects
Initiates a repaint of dynamic object icons and the animation layer only; faster than a full force repaint and intended for animation. 'Panel' can be used to specify a viewport etc, if zero the current panel is used. If 'SpeedRegulate' is non zero, checks are performed to prevent successive repaints occurring faster than about 60 frames a second.
RepaintObjects($1,$2) $1 = Panel $2 = SpeedRegulate
RepaintView
Repaints contents of a view
RepaintView($1,$2,$3,$4) $1 = Table $2 = Panel $3 = View Type $4 = Index
SetActivityString
Sets text in the status bar activity area
SetActivityString($1) $1 = Activity Text
SetColorPaletteEntry
Sets the RGB color for a given color in the Planimate color palette
SetColorPaletteEntry($1,$2) $1 = Palette Index $2 = RGB Value
SetGraphXOffset
Set the offset of a graph view for a table on the given panel
SetGraphXOffset($1,$2,$3) $1 = Table $2 = Panel $3 = Value
SetGraphXWidth
Set the width of a graph view for a table on the given panel
SetGraphXWidth($1,$2,$3) $1 = Table $2 = Panel $3 = Value
SetIconRemote
Set icon for an item somewhere else in the model. Location can be a portal or object id containing the item. If its 0 the entire model is searched, this is potentially very slow. Icon Name should not include any extention, PL will search DBs for it.
SetIconRemote($1,$2,$3) $1 = Item ID $2 = Location $3 = Icon Name
SetObjectPos
Sets the position and scaling of a dynamic object in one operation. The position is the centre of the object and the scaling is a percentage which should normally be 100 for no scaling.
SetObjectPos($1,$2,$3,$4,$5) $1 = Object $2 = X Pos $3 = Y Pos $4 = X Scale $5 = Y Scale
SetPanelColor
Sets the background color of a panel
SetPanelColor($1,$2) $1 = Panel $2 = Color
SetPanelProperty
Set a property of a panel, specified using _panel_properties list
SetPanelProperty($1,$2,$3) $1 = Panel $2 = Property Label $3 = Value
SetPanelSize
Sets the panel area size. Useful when the panel is not configured to automatically size.
SetPanelSize($1,$2,$3) $1 = Panel $2 = Width $3 = Height
SetPanelTransparency
Enables the use of transparency for a panel, value 0..254 or 255 to disable transparency
SetPanelTransparency($1,$2) $1 = Panel $2 = Transparency
SetPortalIcon
Sets icon for portal's current state.
SetPortalIcon($1,$2) $1 = Portal ID $2 = Icon Name
SetPortalTip
Sets tip text for Portal to Text
SetPortalTip($1,$2) $1 = Portal ID $2 = Text
SetStatusItemAreaString
Sets the text in the status bar area where item class names are displayed during editing
SetStatusItemAreaString($1) $1 = Item Area Text
SetViewportScroll
Set the x and y scroll of a viewport on a given panel
SetViewportScroll($R,$1,$2,$3) $R = Panel With Viewport $1 = Panel Inside Viewport $2 = X Offset $3 = Y Offset
SetViewportTarget
Changes the Target Panel that a given Viewport will show. Targets are specified using the model object label of its owning portal (_Model_Objects list). The viewport can be identified directly using a paint object label list (_Paint_Objects) or indirectly using the panel the viewport is on and its current target. The Current Target Panel is not required when using a paint label reference, or if the viewport's panel only has one viewport. If New Target Panel is 0, the viewport will be hidden in user mode.
SetViewportTarget($1,$2,$3) $1 = Viewport or its Panel $2 = Current Target (or 0) $3 = New Target Panel
SetViewportZoom
Set the zoom factor of a viewport on a given panel
SetViewportZoom($R,$1,$2) $R = Panel With Viewport $1 = Panel Inside Viewport $2 = Zoom Value
SetWindowTitle
Sets the title of the main window
SetWindowTitle($1) $1 = Title Text
ShowAboutBox
Shows the Planimate about box
ShowAboutBox()
ShowPopupPanel
Opens the given panel in a separate window at the specified window co-ordinates
ShowPopupPanel($1,$2,$3) $1 = Target Panel $2 = X Position $3 = Y Position
ShowTableEditor
Open table editor for the given table
ShowTableEditor($1) $1 = Table
SwapPopupPanel
Swaps which panels are visible in a popup panel without closing/reopening it
SwapPopupPanel($1,$2) $1 = Target Panel $2 = Replace With
File
AcquireFileLock
Returns zero if file lock acquired, otherwise if target is text its text is set to the lock failure reason
$R = AcquireFileLock($1,$2) $R = Result $1 = File $2 = New Lock Text
CopyFile
Copies file
$R = CopyFile($1,$2) $R = Result $1 = From $2 = To
CreateFolder
Create folder, if create path set then upper levels created as well
$R = CreateFolder($1,$2) $R = Result $1 = File $2 = Create Path
DeleteFile
Deletes file
$R = DeleteFile($1) $R = Result $1 = File
DeleteFolder
Deletes empty folder, if subfolders set then empty subfolders also deleted
$R = DeleteFolder($1,$2) $R = Result $1 = File $2 = Subfolders
ExtractFileExtention
Extracts the file extention from a path/file spec. If Result is a label list attribute, and its value is 0 then a new label is added and Result gets assigned to the index, otherwise if its non zero the label indicated by the index is changed. If Result is text formatted, the text is set directly.
$R = ExtractFileExtention($1) $R = Result $1 = Path/File
ExtractFileName
Extracts the file name from a full path/file spec. If Result is a label list attribute, and its value is 0 then a new label is added and Result gets assigned to the index, otherwise if its non zero the label indicated by the index is changed. If Result is text formatted, the text is set directly.
$R = ExtractFileName($1) $R = Result $1 = Path/File
ExtractPathName
Extracts the file name from a full path/file spec. If Result is a label list attribute, and its value is 0 then a new label is added and Result gets assigned to the index, otherwise if its non zero the label indicated by the index is changed. If Result is text formatted, the text is set directly.
$R = ExtractPathName($1) $R = Result $1 = Path/File
FileColumns
Number of columns in file or -1. Supports TAB or comma delimited data.
$R = FileColumns($1,$2) $R = Result $1 = File $2 = Comma Delimit
FileLines
Number of lines in file or -1
$R = FileLines($1) $R = Result $1 = File
FilesInFolder
Reads a list of files in the path/folder and puts them into the target label list. The path can include a wildcard file name like c:\Data\*.txt
$R = FilesInFolder($1) $R = Target List $1 = Path/Wildcard
FilesInHierarchy
Retrieves the files in all folders starting at Path/File, placing the path names into the target label list.
$R = FilesInHierarchy($1) $R = Target List $1 = Path/File
FileSize
Returns size of file or -1 if not found
$R = FileSize($1) $R = Result $1 = File
FolderExists
Returns non zero if the specified directory folder exists.
$R = FolderExists($1) $R = Result $1 = Path
PlaySound
Play windows sound file. Will extract WAV files from DB if required.
PlaySound($1,$2) $1 = Sound File $2 = Wait Finish
ReadFromFile
Reads the reference from file. Data can be a direct reference or a data object label. Options can be a combination of values from the _fileoptions label list.
$R = ReadFromFile($1,$2,$3,$4,$5,$6,$7) $R = Result $1 = File $2 = Data $3 = Options $4 = File Row $5 = File Column $6 = Row Limit $7 = Column Limit
ReadViewFromFile
Reads file, following format of table view. The table reference can be direct or a data object. The options can be a combination of values from the _fileoptions label list.
$R = ReadViewFromFile($1,$2,$3,$4,$5) $R = Result $1 = File $2 = Table $3 = Panel $4 = View Index $5 = Options
ReleaseFileLock
Returns zero if file lock is released (it must be yours to release) otherwise if target is text its text is set to the lock failure reason
$R = ReleaseFileLock($1) $R = Result $1 = File
RenameFile
Renames file
$R = RenameFile($1,$2) $R = Result $1 = From $2 = To
RunCommand
Runs a new process or opens a file via the shell
$R = RunCommand($1,$2,$3,$4,$5) $R = Result $1 = Command $2 = Use shell $3 = Minimised $4 = Wait Complete $5 = Keep Front
SaveImage
Saves the panel image to a file or to the clipboard if the file name is empty or -. A memory save creates/updates an icon in the icon cache that paint button states and object icons can use.
$R = SaveImage($1,$2,$3) $R = Result $1 = File $2 = Panel $3 = In-Memory
WriteToFile
Writes the reference to file. Data can be a direct reference or a data object label. Options can be a combination of values from the _fileoptions label list.
$R = WriteToFile($1,$2,$3) $R = Result $1 = File $2 = Data $3 = Options
WriteViewToFile
Writes table view to file. The table reference can be direct or a data object. The options can be a combination of values from the _fileoptions label list.
$R = WriteViewToFile($1,$2,$3,$4,$5) $R = Result $1 = File $2 = Table $3 = Panel $4 = View Index $5 = Options
Label
AddLabelDialog
Show a dialog so the user can add a label to the given label list
AddLabelDialog($R) $R = Result
AddSubLabel
Makes the new sublabel for the parent label $1 (if it doesn't exist) and returns its index as a sublabel
AddSubLabel($R,$1) $R = Result $1 = Label
ClearLabelList
Removes all labels from a label list
ClearLabelList($1) $1 = Clear Label List
CreateLabelList
Creates a label list with the given name and formats the result attribute to reference it
CreateLabelList($R,$1) $R = Format Result $1 = List Name
CreateLabelListFromColumn
Uses the provided column to provide text for creating a new label list
CreateLabelListFromColumn($R,$1) $R = Target List $1 = Source Column
CreatePanelPortalLabel
Creates a panel label for the subsystem of the given portal object label
$R = CreatePanelPortalLabel($1) $R = New Panel Label $1 = Portal Object Label
CreateSubLabelList
Creates an empty sub label list of an existing label list and formats an attribute to reference it
CreateSubLabelList($R,$1,$2) $R = Format Result $1 = List Name $2 = Parent List
CreateSubsystemObjectLabel
Creates an object label for the portal owning the panel of this routine
$R = CreateSubsystemObjectLabel() $R = New Object Label
DeleteLabel
Deletes the given label from its labellist
DeleteLabel($1) $1 = Label
GetLabelListProperty
Retrieves a property of a label list
$R = GetLabelListProperty($1,$2) $R = Result $1 = LabelList $2 = Property
LabelCount
Returns how many labels in the given label list
$R = LabelCount($1) $R = Result $1 = Label Count
MaxLabelIndex
Returns the highest allocated label index in the given label list
$R = MaxLabelIndex() $R = Result
MinLabelIndex
Returns the lowest allocated label index in the given label list
$R = MinLabelIndex() $R = Result
NextLabelIndex
The next allocated label index for the list or -1 if none
$R = NextLabelIndex($1) $R = Result $1 = Label Index
PrevLabelIndex
The previous allocated label index for the list or -1 if none
$R = PrevLabelIndex($1) $R = Result $1 = Label Index
RedirectLabelList
Globally changes all references to label list 'from' to point to list 'to'. Lists are referenced by name.
RedirectLabelList($1,$2) $1 = From Name $2 = To Name
ReIndexLabelList
Re-indexes all members in a label list so they have ascending and continuous index values
ReIndexLabelList($1) $1 = Re-index Label List
ReIndexLabels
Remaps labels in the given list using 2 columns of matching from and to values
ReIndexLabels($1,$2,$3) $1 = Re-index List $2 = From Values (Col) $3 = To Values (Col)
RemoveSubLabel
Removes the sublabel as a member of the sublabel list
RemoveSubLabel($1) $1 = Label
SetLabelListProperty
Sets a property of a label list
SetLabelListProperty($1,$2,$3) $1 = LabelList $2 = Property $3 = Value
TestLabelIndex
Tests whether an index has been used in a label list
$R = TestLabelIndex($1,$2) $R = Result $1 = Index Value $2 = Label List
Label String
AppendToLabel
Append text to an existing label. Result must be a label list formatted attribute. If its value is 0 then a new label is added and result gets assigned to the index, otherwise the label indicated by the index is changed.
$R = AppendToLabel($1) $R = Result $1 = Source
CreateLabelAlias
Creates a label alias from 'Text' and adds it to the 'Target Label' which must be a label from a label list. Returns non zero if there was a problem creating the alias because 'Text' is already assigned to another label index.
$R = CreateLabelAlias($1,$2) $R = Error Result $1 = Text $2 = Target Label
CreateMD5Hash
Uses the 3 text sources to create an unpredictable hash string
$R = CreateMD5Hash($1,$2,$3) $R = Result $1 = Text $2 = Salt 1 $3 = Salt 2
CropToCharacters
Crop a label to a subset of its text
CropToCharacters($R,$1,$2) $R = Result $1 = From Char $2 = To Char
ExtractIntoFormat
Extracts a substring from a formatted value/label and interprets it in the format of the target. If the target is a label list, it gets added as a label if its not already in that list.
$R = ExtractIntoFormat($1,$2,$3) $R = Result $1 = Label $2 = From Char $3 = To Char
FileSHA
Creates 64 character checksum for file using SHA256. If text_file is 1 then the file is expected to be text and CR characters, if present, are ignored.
$R = FileSHA($1,$2) $R = Result $1 = File $2 = TextFile
FormatIntoLabel
Create a new label with the formatted text of the source
FormatIntoLabel($R,$1) $R = Result $1 = Source
FormatIntoLabelIndex
Creates a label from the text of source and using the provided index
$R = FormatIntoLabelIndex($1,$2) $R = Result $1 = Source $2 = Index
FormatNameIntoLabel
Creates a label from the name of the given object
$R = FormatNameIntoLabel($1) $R = Result $1 = Source
FormattedLabelIndex
Determines if the source text is a label and returns its index if it is
$R = FormattedLabelIndex($1) $R = Result $1 = Source
FormattedWidth
Returns how many characters the referenced data has when it is formatted for display
$R = FormattedWidth($1) $R = Target $1 = Width Of
FormatTitleIntoLabel
Creates a label from the title text of the given object
$R = FormatTitleIntoLabel($1) $R = Result $1 = Source
GetAppDataName
Get a full Users/username/AppData/Roaming path/file including a subfolder and a filename. If Result is text, it is set on success and set empty on failure, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero if the folder was created/verified writeable.
$R = GetAppDataName($1,$2) $R = Result $1 = Folder $2 = Filename
GetCharacter
Extracts a character from the formatted value provided and returns the ascii code
$R = GetCharacter($1,$2) $R = Target $1 = String $2 = Character
GetMyDocumentsName
Get a full Users/username/Documents path/file including a subfolder and a filename. If Result is text, it is set on success and set empty on failure, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero if the folder was created/verified writeable.
$R = GetMyDocumentsName($1,$2) $R = Result $1 = Folder $2 = Filename
GetProgramName
Get the folder containing the running Planimate EXE and append a filename. If Result is text, it is set to the path, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero.
$R = GetProgramName($1) $R = Result $1 = Filename
Get a full ProgramData/AppData/Roaming/file including a subfolder and a filename. If Result is text, it is set on success and set empty on failure, otherwise the path is placed in s.LastAccessedDataFilePath and this returns non zero if the folder was created/verified writeable.
$R = GetSharedAppDataName($1,$2) $R = Result $1 = Folder $2 = Filename
LogMessage
Writes text to the debug logger window and the planimat.dbg file if either enabled. Text can be a text expression including attributes and labels as well as quoted text, combined with the & character.
LogMessage($1) $1 = Text
RemapName
Uses the model ini file remapping to remap text, typically used for filenames. Multiple components can be combined with | separating them.
$R = RemapName($1) $R = Result $1 = Source Text
RemoveFileExtention
Crop label to remove trailing dot and text
RemoveFileExtention($R) $R = Result
RenameLabel
Change the text of a label. Result must be a label list formatted attribute. If its value is 0 then a new label is added and result gets assigned to the index, otherwise the label indicated by the index is changed.
$R = RenameLabel($1) $R = Result $1 = Source
RenameObject
Sets the display name of an object. The name may be adjusted if it is not unique on the panel for that kind of object.
RenameObject($1,$2) $1 = Object $2 = New Name
SetFreeTextTitle
Sets title of free text editor dialog
SetFreeTextTitle($1) $1 = Title Text
Logical
BitAND
Treat values as integers and bitwise AND them (limited to 14 bits of precision)
$R = BitAND($1,$2) $R = Result $1 = Value 1 $2 = Value 2
BitOR
Treat values as integers and bitwise OR them (limited to 14 bits of precision)
$R = BitOR($1,$2) $R = Result $1 = Value 1 $2 = Value 2
BitXOR
Treat values as integers and bitwise XORs them (limited to 14 bits of precision)
$R = BitXOR($1,$2) $R = Result $1 = Value 1 $2 = Value 2
EQ ( == )
Determines if 2 values are numerically close to each other
$R = $1 == $2 $R = Result $1 = Value 1 $2 = Value 2
GE ( >= )
Determines if the first value is greater than or equal to the second
$R = $1 >= $2 $R = Result $1 = Value 1 $2 = Value 2
GT ( > )
Determines if the first value is significantly greater than the second value
$R = $1 > $2 $R = Result $1 = Value 1 $2 = Value 2
LE ( <= )
Determines if the first value is less than or equal to the second
$R = $1 <= $2 $R = Result $1 = Value 1 $2 = Value 2
LT ( < )
Determines if the first value is significantly less than the second value
$R = $1 < $2 $R = Result $1 = Value 1 $2 = Value 2
NEQ ( != )
Determines if 2 values are not numerically close to each otherclose to each other
$R = $1 != $2 $R = Result $1 = Value 1 $2 = Value 2
Message
Broadcast
Sends a broadcast to the entire model. Options can be 0 or a combination of values from the Broadcast Options label list.
Broadcast($1,$2) $1 = Broadcast Index $2 = Broadcast Options
BroadcastLocal
Sends the broadcast scoped to the portal containing the object sending it, with item attributes. The broadcast is initiated immediately.
BroadcastLocal($1) $1 = Broadcast
BroadcastScoped
Sends a broadcast to a specified dynamic panel and all under it. Options can be 0 or a combination of values from the Broadcast Options label list.
BroadcastScoped($1,$2,$3) $1 = Broadcast Index $2 = Broadcast Options $3 = Send To Subsystem
BroadcastToPanel
Sends a broadcast to a specified dynamic panel. Options can be 0 or a combination of values from the Broadcast Options label list.
BroadcastToPanel($1,$2,$3) $1 = Broadcast Index $2 = Broadcast Options $3 = Send To Subsystem
ImmediateMessage
Send a message whilst the item waits at the change object
ImmediateMessage($1) $1 = Message Target
ImmediateMessageNamed
Send a message to a specified portal with a specific name whilst the item waits at the change object
ImmediateMessageNamed($1,$2) $1 = Message Target $2 = Message Name
ReleaseWaitingItem
Used to signal a waiting dispatcher on the target panel that a given item should be released
$R = ReleaseWaitingItem($1,$2) $R = Result $1 = Item Index $2 = Scope Panel
ReverseItemDirection
Searches spatial links for the item and if found, reverses the direction of the item
$R = ReverseItemDirection($1,$2) $R = Result $1 = Item Index $2 = Scope Panel
Numeric
abs
Magnitude of a value, without the sign
$R = abs($1) $R = Result $1 = Value 1
Convolve
Performs a convolution between two columns into a preallocated result column. This is useful for combining distributions.
Convolve($R,$1,$2) $R = Result $1 = Column 1 $2 = Column 2
fmod
Floating point modulus of $1 over base $2
$R = fmod($1,$2) $R = Result $1 = Value 1 $2 = Value 2
max
Determines the greater of 2 values
$R = max($1,$2) $R = Result $1 = Value 1 $2 = Value 2
min
Determines the lesser of 2 values
$R = min($1,$2) $R = Result $1 = Value 1 $2 = Value 2
mod
Integer modulus of $1 over base $2
$R = mod($1,$2) $R = Result $1 = Value 1 $2 = Value 2
Normalise
Rescales data in column so they add up to 1
Normalise($1) $1 = Column
random
Random value between 0 and 1
$R = random($F) $R = Result $F = Set to
round
Integer closest to the value
$R = round($1) $R = Result $1 = Round Value
RoundToN
Round value to the specified number of digits of precision
$R = RoundToN($1,$2) $R = Result $1 = Round Value $2 = Sig. Digits
trunc
Integer equal or lower than the value
$R = trunc($1) $R = Result $1 = Truncate
Paint
BlendColors
Returns the resulting colour (always opaque) you would get if a black surface was painted with Color1 then Color2.
$R = BlendColors($1,$2) $R = Result $1 = Color1 $2 = Color2
CopyPaintObject
Enables a paint object to be copied
$R = CopyPaintObject($1,$2) $R = New Paint Label $1 = Original Paint Label $2 = Destination Panel
CopyPaintProperties
Copies the graphical properties between paint objects
CopyPaintProperties($1,$2) $1 = Paint Object To Update $2 = Original Paint Object
CreateTiles
Creates a tileset from an image. (0,0) is the center of image. Existing tileset file is deleted. Returns 0 on success.
$R = CreateTiles($1,$2,$3,$4) $R = Result $1 = Image File $2 = Tile Set $3 = MaxZoom $4 = Margin Colour
DeleteAllPaintObjects
Delete all paint objects on the given panel
DeleteAllPaintObject($1) $1 = Target Panel
DeleteInheritedPaintObjects
Removes all paint objects which inherit from a given panel
DeleteInheritedPaintObjects($1,$2) $1 = Target Pane $2 = Un Inherit Panel
DeletePaintObject
Deletes a paint object
DeletePaintObject($1,$2) $1 = Paint Label $2 = With Inherited
FitPaint
Fits a paint object to its contents.
FitPaint($1) $1 = Paint ID
GetPaintProperty
Read a property of a paint object
$R = GetPaintProperty($1,$2) $R = Result $1 = Paint Object Label $2 = Property Label
InheritPaintObjects
Enables a panel to be populated with paint objects from another panel
InheritPaintObjects($1,$2) $1 = Target Panel $2 = Inherit From Panel
InterpolateColor
Interpolates an RGB color between color1 and color2 based on ratio (0.0 gives color1, 1.0 gives color2)
$R = InterpolateColor($1,$2,$3) $R = Result $1 = Color1 $2 = Color2 $3 = Ratio
LinkPaintObjects
Associate a paint object to a parent so it tracks movement of the parent. Parent and linked are paint objects. Edge values determine which edge/corner is used (1..9, 1=topleft, 2=top, 3=topright etc). Options: 1 auto-delete linked paint object when parent becomes hidden.
LinkPaintObjects($1,$2,$3,$4,$5,$6,$7) $1 = Parent $2 = Linked $3 = Parent Edge $4 = Linked Edge $5 = Offset X $6 = Offset Y $7 = Options
LongLatToXY
Using the Map paint object, Longitude/Latitude co-ordinates are translated to panel X/Y points. Table must contain columns _Long, _Lat, _X and _Y
LongLatToXY($1,$2) $1 = Paint Map Label $2 = Table
MakeRangeVisible
Adjusts the map co-ordinates to make the range of co-ordinates visible regardless of the map view's aspect ratio
MakeRangeVisible($1,$2,$3,$4,$5) $1 = Paint Map Label $2 = Long From $3 = Lat From $4 = Long To $5 = Lat To
PositionPaintObject
Move a paint object given a parent's position. Parent and Paint are paint objects. Edge values determine which edge/corner is used (1..9, 1=topleft, 2=top, 3=topright etc). Parent=0 uses panel edge.
PositionPaintObject($1,$2,$3,$4,$5,$6) $1 = Parent $2 = Paint $3 = Parent Edge $4 = Paint Edge $5 = Offset X $6 = Offset Y
RepaintPaintObject
Repaint a single paint object. Useful if the object's contents have changed but it hasn't moved or changed size. Clear colour can be used to erase under the paint object when anti-aliasing causes blending noise to linger.
RepaintPaintObject($1,$2) $1 = Paint Label $2 = Clear Color
ScaleColor
Scales the R/G/B components of a colour by Scale and adds Offset to each. Scale and Offset are normally 0..255. The alpha is unchanged.
$R = ScaleColor($1,$2,$3) $R = Result $1 = Color $2 = Scale $3 = Offset
SetLongLatXY
Sets paint map to show the given co-ordinate as close as possible to the panel (x,y) point.
SetLongLatXY($1,$2,$3,$4,$5) $1 = Paint Map Label $2 = Longitude $3 = Latitude $4 = X $5 = Y
SetNoteVisible
Shows or hides an RTF note
SetNoteVisible($1,$2) $1 = Paint Object Label $2 = Visibility
SetPaintImage
Sets the image of a paint object
SetPaintImage($1,$2,$3) $1 = Paint Object Label $2 = Set Image To $3 = All States
SetPaintProperty
Set a property of a paint object directly
SetPaintProperty($1,$2,$3) $1 = Paint Object Label $2 = Property Label $3 = Property Value
SetPaintText
Sets the text of a paint object
SetPaintText($1,$2,$3) $1 = Paint Object Label $2 = Set Text/File To $3 = For All States
SetPaintTip
Sets the tool tip text of a paint object
SetPaintTip($1,$2,$3) $1 = Paint Object Label $2 = Set Tip To $3 = For All States
SetPaintXY
Moves a paint object so a given edge/corner is at (X,Y). Edge=1..9 (1=topleft, 2=topcenter, 5=center, 7=bottomleft etc.)
SetPaintXY($1,$2,$3,$4) $1 = Paint Object Label $2 = X Pos $3 = Y Pos $4 = Edge
SetTransparency
Sets the transparency (alpha) value of a colour
$R = SetTransparency($1,$2) $R = Result $1 = Color $2 = Transparency
XYToLongLat
Using the Map paint object, screen X/Y points are translated to Longitude/Latitude co-ordinates. Table must contain columns _Long, _Lat, _X and _Y
XYToLongLat($1,$2) $1 = Paint Map Label $2 = Table
Pipe
AddPipe
Creates a pipe between From and To if one doesn't exist and allocates an object label for the new pipe, which is returned. If Copy Pipe is a valid pipe object label then its properties are copied.
$R = AddPipe($1,$2,$3) $R = New Pipe $1 = From $2 = To $3 = Copy Pipe
RemovePipe
Removes any pipe between portals From and To (non directional). If From is a pipe label then it is used and To is ignored.
RemovePipe($1,$2) $1 = From $2 = To
Route
AddStaticRoute
Adds a new static route with given name and ID. The route steps start at the starting_cell, working down for step_count. Fill_steps determines if steps are filled after adding the route. If a route with the ID already exists, it is replaced. If ID is 0, a new ID gets allocated. Returns the ID of the route that gets created/modified (>0) or <0 on failure. Do not replace a static route which is being used by any items.
$R = AddStaticRoute($1,$2,$3,$4,$5) $R = Result $1 = Name $2 = Route ID $3 = Starting Cell $4 = Step Count $5 = Fill Steps
AddTrack
Creates a track between From and To if one doesn't exist and an object label is created and returned for the new track section.
$R = AddTrack($1,$2,$3) $R = New Track $1 = From $2 = To $3 = Track Type
AssignRoute
Sets an item's track route from a route table
AssignRoute($1) $1 = Timetable Source
AssignRouteFrom
Sets an item's track route from locations specified by cells working down from start, stopping when either count is reached or a zero cell. Returns 0 if no error.
$R = AssignRouteFrom($1,$2) $R = Result $1 = Starting Cell $2 = Step Count
CancelLoopEntryDelay
Cancels a loop entry delay which is initiated for any item that may dwell at a location and is normally cancelled only if the item leaves the location immediately. This enables just a loop exit delay to occur without an associated loop entry delay.
CancelLoopEntryDelay()
ClearRoute
Clear an item's routing database
ClearRoute()
ClearTrailList
Clears a train's history of sections it has traversed
ClearTrailList()
CreateRoute
Creates a route of all steps between the two locations. Returns non zero and sets s.TrackFillRouteError on error.
$R = CreateRoute($1,$2) $R = Result $1 = From $2 = To
EnableTrackCheckNext
Used during lookahead, this enables a modeller to signal objects downstream of a lookahead that the current lookahead is for track capacity purposes and wont be taken immediately. It automatically resets when lookahead unwinds behind the routine.
EnableTrackCheckNext()
FillRouteSteps
Fills in all intermediate portals in an item's track route. Returns non zero on error in which case s.FillRouteError is set to a description
$R = FillRouteSteps() $R = Result
GenerateTrackTable
Updates the Track Network Details table for the panel inside portal Location. This can change the rows in the track table. Result is non zero if an error occured.
$R = GenerateTrackTable($1) $R = Result $1 = Location
HoldSectionRoad
Places the road of a track section into waiting for an item state, preventing any other item using it. If Item ID is >= 0 it is used for the item ID otherwise the current item is used. Item Object is used to locate the item if Item ID is set.
HoldSectionRoad($1,$2,$3,$4) $1 = SectionID $2 = Road# $3 = Item ID $4 = Item Object
InsertRouteStep
Insert a track route step into an item's internal routing database
InsertRouteStep($1,$2) $1 = Route Step $2 = Route Location
ListBlockedTrains
Clears table and adds a row for each blocked train. Columns are filled in this order: Item ID, Blocked Time, Blocked Location
ListBlockedTrains($1) $1 = Table
PolyPathFinder
Generates a series of steps for movement from start to end. PolyPoints columns 1 and 2 are used for x/y (these can be long/lat). Rows are created in WayPoints with x/y in the first 2 columns and any matching polygon row in column 3. Start and End are brought into the polygon if not already, extra waypoints are created as needed. Returns > 0 on success. UsingLongLat should be set if world co-ordinates are being used instead of pixels.
$R = PolyPathFinder($1,$2,$3,$4,$5,$6,$7) $R = Result $1 = StartX $2 = StartY $3 = EndX $4 = EndY $5 = PolyPoints $6 = WayPoints $7 = UsingLongLat
ReadRoute
Reads an item's track route into a table
ReadRoute($R) $R = Timetable Target
RegisterBlockedTrain
Register the item (train) into the track blocked list
RegisterBlockedTrain()
RemoveStaticRoute
Removes any static route with the given ID. Do not remove a static route which is being used by any items.
RemoveStaticRoute($1) $1 = Route ID
RemoveTrack
Removes any track between portals From and To. If From is a track label then it is used and To is ignored.
RemoveTrack($1,$2) $1 = From $2 = To
ResetLoopDelayTime
Resets the loop entry time for an item, useful for enabling some time to be spent in a track location without a loop exit delay being triggered. This does not affect any loop entry delay under way, it will complete at its scheduled time.
ResetLoopDelayTime()
RoadsInTrackSection
Returns how many roads a given track section has been configured for
$R = RoadsInTrackSection($1) $R = Target $1 = Section
SectionRoadAvail
Returns where a track section road is available for an item/train to use
$R = SectionRoadAvail($1,$2) $R = Result $1 = SectionID $2 = Road#
SectionRoadTrain
Returns item ID of train in a track section road or -1 if no item
$R = SectionRoadTrain($1,$2) $R = Result $1 = SectionID $2 = Road#
SetPreviousTailData
Enables taildata to be set for a road/length multiserver that a train has just left. This is useful when taildata information is not known until the front of the train leaves the road/multiserver. WhichData is 1..4 (TailData1..TailData4).
SetPreviousTailData($1,$2) $1 = WhichData $2 = Value
SetRoadCheckFilter
This will use road #'s specified by the column starting at a given cell to determine roads to test in lookahead on a track. It stops on a zero cell.
SetRoadCheckFilter($1) $1 = Start Cell
SetRoadColor
Sets color of road in track section
SetRoadColor($1,$2,$3) $1 = SectionID $2 = Road# $3 = Color
TrackSectionType
Returns the type of a track section (_section_types label list)
$R = TrackSectionType($1) $R = Target $1 = Section
UnblockTrain
Attempt unblock of specific train id or all blocked trains if id is 0
UnblockTrain($1) $1 = Item ID
UpdateLoopEntryDelay
Sets the loop entry delay to a new value. This can be performed when a train enters a location. The delay is measured from when the original loop delay started. If no loop delay is active, the operation does nothing.
UpdateLoopEntryDelay($1) $1 = Loop Delay
Row/Column
Average
Determines the average of values in a row or column
$R = Average($1,$2,$3) $R = Result $1 = Average of $2 = From $3 = To
MaxIndex
Determines the index of the highest value in a row or column
$R = MaxIndex($1,$2,$3) $R = Result $1 = Max of $2 = From $3 = To
MinIndex
Determines the index of the lowest value in a row or column
$R = MinIndex($1,$2,$3) $R = Result $1 = Min of $2 = From $3 = To
StdDev
Determines the Standard Deviation of values in a row or column
$R = StdDev($1,$2,$3) $R = Result $1 = StdDev of $2 = From $3 = To
Sum
Determines the sum of values in a row or column
$R = Sum($1,$2,$3) $R = Result $1 = Sum of $2 = From $3 = To
SumSquared
Determines the sum of squares of values in a row or column
$R = SumSquared($1,$2,$3) $R = Result $1 = Sum/Sqr of $2 = From $3 = To
Scientific
arccos
Inverse cosine function, returns radians
$R = arccos($1) $R = Result $1 = Value
arcsin
Inverse sine function, returns radians
$R = arcsin($1) $R = Result $1 = Value
arctan
Inverse tan function, returns radians
$R = arctan($1) $R = Result $1 = Value
atan2
Determines angle (in radians) given x and y displacement
$R = atan2($1,$2) $R = Result $1 = Numerator (Y) $2 = Denominator (X)
cos
Cosine function, value in radians
$R = cos($1) $R = Result $1 = Value
DegToRad
Converts degrees to radians
$R = DegToRad($1) $R = Result $1 = Value
exp
Calculates $1 to the power of E
$R = exp($1) $R = Result $1 = Value
hypot
Hypotenuse of right angled triangle with given sides
$R = hypot($1,$2) $R = Result $1 = X Value $2 = Y Value
log10
Calculates the decimal logarithm of the value
$R = log10($1) $R = Result $1 = Value
logN
Calculates the natural logarithm of the value
$R = logN($1) $R = Result $1 = Value
pow
Calculates $1 to the power of $2
$R = pow($1,$2) $R = Result $1 = Value $2 = Power
RadToDeg
Converts radians to degrees
$R = RadToDeg($1) $R = Result $1 = Value
sin
Sine function, value in radians
$R = sin($1) $R = Result $1 = Value
sqr
Value multiplied by itself
$R = sqr($1) $R = Result $1 = Value
sqrt
Square root of value
$R = sqrt($1) $R = Result $1 = Value
tan
Tan function, value in radians
$R = tan($1) $R = Result $1 = Value
Spatial Link
AddBendPoint
Adds a bend point to a spatial link between the two objects specified
AddBendPoint($R,$1,$2,$3) $R = From Object $1 = To Object $2 = X Position $3 = Y Position
AddDirectionalLink
Adds a spatial link between objects which can only be traversed in the forward direction
$R = AddDirectionalLink($1,$2) $R = Link ID $1 = From Object $2 = To Object
AddLink
Add a spatial link between the two objects labels specified
$R = AddLink($1,$2) $R = Link ID $1 = From Object $2 = To Object
ClearLinkCache
Instructs Planimate to update spatial link information after links are created or objects are moved
ClearLinkCache()
CopyLink
Creates a spatial link between objects, copying an existing link's properties
$R = CopyLink($1,$2,$3) $R = Link ID $1 = From Object $2 = To Object $3 = Copy Link
DeletePanelLinks
Deletes all spatial links on a given panel
DeletePanelLinks($1) $1 = Panel
GetBendPoints
Reads bend points into table Bend Table. Link Type determines the type of link acted on. Bend Table Columns: from, to, x, y. Link Type: from _link_types label list.
GetBendPoints($1,$2,$3) $1 = Bend Table $2 = Panel $3 = Link Type
GetNextLinkObject
Returns the next portal object index that an item will travel to on a spatial link given the item starting at 'from' and target 'to'. Returns 0 if none.
$R = GetNextLinkObject($1,$2) $R = Location $1 = From Portal $2 = To Portal
LinkDistance
Determine the spatial link travel distance between 2 portals.
$R = LinkDistance($1,$2) $R = Distance $1 = From $2 = To
QueryLinkItems
Sets table to rows describing every item on the link. Required columns are ItemID, TotalTime, Ratio, Direction and Stopped. Ratio corresponds to the position on the link, 0 being the start of the link and 1 being the end. Direction is 0 for forward and 1 for reverse.
QueryLinkItems($1,$2) $1 = Table $2 = Link
RemoveLink
Removes any spatial links from and to the specified object labels (directional)
RemoveLink($1,$2) $1 = From Object $2 = To Object
SetBendPoints
Deletes all bend points and recreates them from the Bend Table. Link Type determines the type of link acted on. Bend Table Columns: from, to, x, y. Link Type: from _link_types label list.
SetBendPoints($1,$2,$3) $1 = Bend Table $2 = Panel $3 = Link Type
SetItemLinkTarget
Sets the destination an item will look for once it enters a spatial link. Time sets the travel time to use (or SetItemLinkTime can be used after this). Road sets the road for multi-toad links, 1..n or 0 to leave unchanged.
SetItemLinkTarget($1,$2,$3) $1 = Target Object $2 = Total Time $3 = Road
SetItemLinkTime
Sets the time an item will take to reach its destination once it enters a spatial link
SetItemLinkTime($1) $1 = To Time
SetLinkColor
Sets the color of a spatial link between 2 given objects
SetLinkColor($1,$2,$3,$4) $1 = From Object $2 = To Object $3 = Color $4 = Road
SetLinkCost
Sets the link cost of a spatial link (normally computed from the link's distance)
SetLinkCost($1,$2,$3) $1 = From Object $2 = To Object $3 = Cost
SetLinkRoads
Sets the number of roads and road spacing for a spatial link.
SetLinkRoads($1,$2,$3,$4) $1 = From Object $2 = To Object $3 = Roads $4 = Spacing
SetLinkWidth
Sets the width of a spatial link between two objects
SetLinkWidth($1,$2,$3) $1 = From Object $2 = To Object $3 = Width
UpdateLinkItems
Updates the spatial link items according to the settings in the table. Columns are ItemID, TotalTime, Ratio, Direction and Stopped. Ratio corresponds to the position on the link, 0 being the start of the link and 1 being the end. Direction is 0 for forward and 1 for reverse. Stopped enables just that item to be suspended on the link. If ItemID is -1 the row is ignored. If Ratio is -1, the items position is retained. If TotalTime is -1, the current total time for the item is retained.
UpdateLinkItems($1,$2) $1 = Table $2 = Link
Special
---| Only During Move |---
Enables the modeller to specifically mark that the following routine lines do not execute during lookahead
Only During Move |---||----- Following Only During Move -----|
Beep
Plays a tone through the sound card, Frequency in Hz, Duration in milliseconds
Beep($1,$2) $1 = Frequency $2 = Duration
BREAKPOINTIF
If the parameter is true, this interrupts the routine and displays a debugging dialog enabling inspection of the models state
BREAKPOINTIF ($1) $1 = Enable Break
BrowseKey
Give user chance to browse for another key. Returns non zero if a different key was selected which is acceptable.
$R = BrowseKey() $R = Result
CallRoutine
Calls a subroutine
CallRoutine($F) $F = Call
CLRDelete
Deletes a managed object created by New().
CLRDelete($1) $1 = Handle
CLRGetProperty
Enables reading a dynamically named property of a managed class.
$R = CLRGetProperty($1,$2) $R = Target $1 = Handle $2 = Name
CLRNew
Creates a new instance of a managed object. Requires result be an Instance formatted attribute.
$R = CLRNew($1) $R = Target $1 = DLLClass
CLRSetOwner
Sets owning window of a class, can specify a paint object or 0 to use current panel.
CLRSetOwner($1,$2) $1 = Handle $2 = PaintID
CLRSetProperty
Enables setting a dynamically named property of a managed class
CLRSetProperty($1,$2,$3) $1 = Handle $2 = Name $3 = Value
Comment (//)
A comment line
Comment
CopyFont
Copies the font properties between cells and columns
CopyFont($R,$1) $R = Format Result $1 = Format From
CopyFormat
Copies the format/unit type/label reference between cells, columns and attributes
CopyFormat($R,$1) $R = Format Result $1 = Format From
CopyPortal
Makes a copy of a portal and places it on Panel. If the name text is not - or an empty string, the new portal uses that name.
$R = CopyPortal($1,$2,$3,$4,$5) $R = New Portal $1 = Original Portal $2 = New Panel $3 = X $4 = Y $5 = New Name
DescribeRoutineData
Describe the data accessed by a change object routine
DescribeRoutineData($1,$2,$3) $1 = Routine Panel $2 = Object Name $3 = Output Filename
DragGanttBlock
Initiates dragging a gantt block. Should be invoked as result of gantt block click (set option to process event immediately). Returns non zero if block was moved and corresponding rows in table changed. Table data may need resorting if block moved beyond other block on same row. Drag Type can be as returned from the click broadcast, 1 = left edge, 2 = right edge, 3 = center (move only).
$R = DragGanttBlock($1,$2,$3,$4,$5,$6,$7,$8) $R = Result $1 = Table $2 = Panel $3 = Drag Type $4 = Start Row $5 = End Row $6 = Min Time $7 = Max Time $8 = Increment
EncodeARGB
Encodes alpha, red, green and blue components (0..255) into a single 4 byte value used to specify any color/transparency in Planimate.
$R = EncodeARGB($1,$2,$3,$4) $R = Result $1 = Alpha Value $2 = Red Value $3 = Green Value $4 = Blue Value
EncodeRGB
Encodes red, green and blue components (0..255) into a single 4 byte value used to specify any color in Planimate. The top byte of the value (alpha) is set to 255.
$R = EncodeRGB($1,$2,$3) $R = Result $1 = Red Value $2 = Green Value $3 = Blue Value
FollowItemRemote
Searches spatial links for the item and if found, sets the 'followitem property.
$R = FollowItemRemote($1,$2,$3) $R = Result $1 = Item Index $2 = Scope Panel $3 = Follow State
FormatForList
Formats the result object to reference a label list with the given name
FormatForList($R,$1) $R = Format Result $1 = List Name
GanttPopup
Pops up the default gantt popup window as if a gantt block was clicked. This is useful when processing a gantt click broadcast. (x/y) are panel co-ordinates as read from the mouse. Returns non zero on success or zero if there wasn't a gantt block under the co-ordinates supplied.
$R = GanttPopup($1,$2,$3,$4) $R = Result $1 = Table $2 = Panel $3 = X $4 = Y
GetFormat
Returns the value format of the data
$R = GetFormat($1) $R = Result $1 = Data To Test
GetFormatListName
Creates a new label with the name of the label list the target is formatted to. If no list, no change to the target is made
GetFormatListName($R,$1) $R = Result $1 = Data To Test
InfoPanelRemote
Searches spatial links for the item and if found, sets the s.ItemShowInfoPanel property.
$R = InfoPanelRemote($1,$2,$3) $R = Result $1 = Item Info $2 = Scope Panel $3 = Show State
ListRoutineCode
Write a change object routine code to a file
ListRoutineCode($1,$2,$3) $1 = Routine Panel $2 = Object Name $3 = Output Filename
LoadDataSet2
Load a version 2 dataset
$R = LoadDataSet2($1,$2,$3) $R = Result $1 = Definition Table $2 = File Name $3 = Pass Phrase
LoadedAssemblies
Display Loaded Assemblies dialog for debugging.
LoadedAssemblies()
LoadModel
Stops current run and loads another model. For PBA, the PBA is reloaded regardless of name.
LoadModel($1) $1 = Model Name
ObjectType
Returns the type of the object that the object label refers to
$R = ObjectType($1) $R = Result $1 = Object
OpenRoutineWindow
Opens/closes the current routine window depending on command.
OpenRoutineWindow($1) $1 = Command
QueryNetwork
Sets table to rows describing every link on Panel between portals (track,spatial,pipe). 4 columns are required; From, To, Type and ID. From and To are the object Ids of the portals at the end points. Type is the type of link and is formatted to the _link_type label list. ID is the object id of the link.
QueryNetwork($1,$2) $1 = Table $2 = Panel
RealTimeCallBack
This will schedule a _Real Time Tick broadcast at a given real interval, in milliseconds. Note that any previous event is cancelled when this is re-invoked. Interval can be between 10 and 5000ms.
RealTimeCallBack($1,$2) $1 = Interval (ms) $2 = Scope Panel
RemovePortal
Deletes the portal and its contents from the model
RemovePortal($1) $1 = Portal ID
SaveDataSet2
Save a version 2 dataset
$R = SaveDataSet2($1,$2,$3) $R = Result $1 = Definition Table $2 = File Name $3 = Pass Phrase
SetDirectory
Sets the working directory for the model. Use only for compiled applications. Returns non zero on failure
$R = SetDirectory($1) $R = Result $1 = Path
SetFormat
Sets format of $1 to mode $2, with $3 being the label list name if its a label format
SetFormat($1,$2,$3) $1 = Data To Set $2 = Format $3 = List Name
SetLastDatasetFile
Sets the last dataset filename, optionally visible in the titlebar. A relative filename will have a full path created as would be used in a file operation with the name.
SetLastDatasetFile($1) $1 = Name
ShowHelp
Open a HTML help window. Help File can be empty for default.
ShowHelp($1,$2) $1 = Help File $2 = Section
SignFile
Digitally signs a file.
$R = SignFile($1,$2,$3,$4,$5) $R = Result $1 = File Name $2 = Cert $3 = Password $4 = Subject $5 = Time Server
StartScheduledEntries
Signals that scheduled entries should start (if options deferred them starting when the model was run)
StartScheduledEntries
UserKeyBrowse
Presents a dialog enabling the user to either paste an application license or browse to a license file. On success in either case the license text is returned. You can specify a default filename and browse directory.
$R = UserKeyBrowse($1,$2,$3) $R = License Text $1 = FileName $2 = BrowseFolder $3 = AppName
UserKeyLoadFile
Attempts to load a user license key from a file, returns zero on success.
$R = UserKeyLoadFile($1,$2,$3) $R = Target $1 = File Name $2 = Password $3 = PublicKey
UserKeyLoadText
Attempts to load a user license key from the supplied text, returns zero on success.
$R = UserKeyLoadText($1,$2,$3) $R = Target $1 = Key Text $2 = Password $3 = PublicKey
UserKeyLookup
Looks up a setting in a loaded key file. Returns -1 on error or empty string if LHS is text.
$R = UserKeyLookup($1) $R = Value $1 = Name
WatchListAdd
Add portal, routine or item attribute to watch list for debugging
WatchListAdd($1) $1 = Attribute
WatchListRemove
Remove portal, routine or item attribute from watch list
WatchListRemove($1) $1 = Attribute
String
GetNoteRTF
Retrieves RTF text of note
$R = GetNoteRTF($1) $R = String $1 = Paint ID
GetNoteText
Retrieves plain text of note
$R = GetNoteText($1) $R = String $1 = Paint ID
SetNoteRTF
Sets RTF text of note
SetNoteRTF($1,$2) $1 = Paint ID $2 = Text
SetNoteText
Sets plain text of note
SetNoteText($1,$2) $1 = Paint ID $2 = Text
SetText ( $= )
Set a free text attribute or table cell to another text attribute, literal text or a the formatted text of a value
$R $= $1 $R = Result $1 = Set To
Table
AddTable
Adds table to panel, returning data object label. If a table with that name already exists, 0 is returned.
$R = AddTable($1,$2) $R = Result $1 = Panel $2 = Name
AdvancedSort
Performs a sort on a table using another table to define the sort criteria, the sort info table should have columns for column, asc/desc,num/alpha and optionally filter if you intend to use row filtering. ColumnAsText interprets and matches entries in column 1 textually instead of numerically.
AdvancedSort($R,$1,$2,$3) $R = Target $1 = Sort Info $2 = Filter $3 = ColumnAsText
AllocateTableRowMemory
Enables memory to be reserved for a table which is expected to grow to a large number of rows
AllocateTableRowMemory($R,$1) $R = Target Table $1 = Allocate Rows
AppendColumn
Append a column to a table
AppendColumn($R,$1) $R = Target $1 = Col Count
AppendRow
Append a row to the table
AppendRow($R,$1) $R = Target $1 = Row Count
BinarySearch
Perform a binary search over the range First Index to Last Index. Assumes the data compared is sorted ascending and the comparison is for equality. Multiple comparisons can be combined only with AND. Returns 1 + last index or 0 if Zero On Fail is set.
$R = BinarySearch($F,$1,$2,$3) $R = Result $1 = First Index $2 = Last Index $3 = Zero On Fail $F = Condition
BlockMove
Block copy a range of cells to another table
BlockMove($R,$1,Range[$2][$3]) $R = Result $1 = Source $2 = # of Rows $3 = # of Cols
CheckTableSorted
Determines if a table is sorted by the sort criteria. Return 0 if OK or the first unsorted row number. This can be more efficient than calling Sort which is very slow if the table is already sorted.
$R = CheckTableSorted($1,$2,$3,$4,$5) $R = Result $1 = Table $2 = Column 1 $3 = Column 2 $4 = Column 3 $5 = Column 4
CompareTables
Compares rows in tables, returns row number of first difference. Only numerical values are compared, not Text strings.
$R = CompareTables($1,$2) $R = Result $1 = Table 1 $2 = Table 2
CopyTable
Replaces all data columns in the target table so it is a copy of Original.
$R = CopyTable($1) $R = Target $1 = Original Table
CopyToClipboard
Copy table to clipboard using its clipboard settings and the option modifiers
CopyToClipboard($R,$1) $R = From Table $1 = Options
CountIFMatch
Counts rows where Match Column matches Match Key
$R = CountIFMatch($1,$2) $R = Result $1 = Match Column $2 = Match Key
CreateSortIndex
Creates an ordered list of row numbers if the given column was sorted alphabetically
CreateSortIndex($R,$1) $R = Target Column $1 = Column To Sort
DeleteColumn
Delete a range of columns from a table
DeleteColumn($R,$1,$2) $R = Target Table $1 = First Col $2 = Col Count
DeleteRow
Delete a number of rows starting at a given row in a table
DeleteRow($R,$1,$2) $R = Target Table $1 = First Row $2 = Row Count
EnableColumnEditing
Controls whether a given table column can be edited
EnableColumnEditing($R,$1) $R = Target Column $1 = Edit Control
FindColumnLabel
Searches columns in table $1 for one with a label which matches formatted $2 and returns the index or 0 if none found
$R = FindColumnLabel($1,$2) $R = Result $1 = Table $2 = Find String
FindColumnTitle
Searches columns in table $1 for one with a title which matches formatted $2 and returns the index or 0 if none found
$R = FindColumnTitle($1,$2) $R = Result $1 = Table $2 = Find String
FindDuplicates
Finds duplicated rows in Table, storing the duplicate row number pairs in the first two columns of table Duplicates. Existing rows in Duplicates are removed. Only values are compared, not text.
FindDuplicates($R,$1) $R = Duplicates $1 = Table
GenerateUnique
First column of the target table is set to a unique subset of the passed column. Text or numbers are supported, with the target column being reformatted if required. If the target does not contain a column, it is created. The output column is sorted using natural ordering.
$R = GenerateUnique($1) $R = Result $1 = Column
GetCellBackgroundColor
Returns ARGB or index value for a cell's background color. Will be null index (255) if not set for the cell
$R = GetCellBackgroundColor($1) $R = Result $1 = Table Cell
GetCellTextColor
Returns ARGB or index value for a cell's text color. Will be null index (255) if not set for the cell
$R = GetCellTextColor($1) $R = Result $1 = Table Cell
GetColSecondTitle
Sets the target to a label of the second title row for the given column
GetColumnSecondTitle($R,$1) $R = Result $1 = Column
GetColumnProperty
Read a property of a table column
$R = GetColumnProperty($1,$2) $R = Result $1 = Table Column $2 = Property Label
GetColumnTip
Sets the target (text or label) to the tip text for the given column
GetColumnTip($R,$1) $R = Result $1 = Column
ImportFromClipboard
Performs import of table data/structure from clipboard as available in the table editor
$R = ImportFromClipboard($1,$2) $R = Result $1 = Target Table $2 = Configure
InsertColumn
Insert columns into a table with the option of copying formatting from another column
InsertColumn($R,$1,$2,$3) $R = Target Table $1 = Insert Pos. $2 = Col Count $3 = Copy Format
InsertRow
Insert a number of rows at a given row in a table
InsertRow($R,$1,$2) $R = Target Table $1 = Insert Pos. $2 = Row Count
MatchMultipleKeys
Searches table from the top for the first instance where the given columns have the given values. Returns row number or 0 if no match. Column 3 may be zero for a 2 column search.
$R = MatchMultipleKeys($1,$2,$3,$4,$5,$6,$7,$8) $R = Result $1 = Table $2 = Start Row $3 = Column 1 $4 = Match 1 $5 = Column 2 $6 = Match 2 $7 = Column 3 $8 = Match 3
MaxIndexIFMatch
Returns first row with maximum Data Column value for rows where Match Column matches Match Key. Returns 0 if no rows match.
$R = MaxIndexIFMatch($1,$2,$3) $R = Result $1 = Match Column $2 = Match Key $3 = Data Column
MinIndexIFMatch
Returns first row with minimum Data Column value for rows where Match Column matches Match Key. Returns 0 if no rows match.
$R = MinIndexIFMatch($1,$2,$3) $R = Result $1 = Match Column $2 = Match Key $3 = Data Column
OutOfScopeWrite
Enable writing to item table reference $1 even if it is not in scope
OutOfScopeWrite($1) $1 = Item Table Ref
PositionLastRow
Intended for use after a single row has been appended to an already-sorted table, this will efficiently move that last row to the position to maintain the sort. Table must already be sorted by the sort criteria.
PositionLastRow($R,$1,$2,$3,$4) $R = Target $1 = Column 1 $2 = Column 2 $3 = Column 3 $4 = Column 4
PurgeDuplicateRows
Removes any identical rows from the given table. Text formatted columns are not compared and should not be present in the table in cases of 100k or more rows for performance reasons.
PurgeDuplicateRows($R) $R = Target
ReverseSearch
Decrement the result attribute from first to last until the condition is true. If the search fails, returns last_index-1 or 0 if the Zero On Fail option is non zero.
$R = ReverseSearch($F,$1,$2,$3) $R = Result $1 = First Index $2 = Last Index $3 = Zero On Fail $F = Condition
Search
Increment the result attribute from first to last until the condition is true. If the search fails, returns 1+last_index or 0 if the Zero On Fail option is non zero.
$R = Search($F,$1,$2,$3) $R = Result $1 = First Index $2 = Last Index $3 = Zero On Fail $F = Condition
SetCellBackgroundColor
Sets the background color for the cell.
SetCellBackgroundColor($1,$2) $1 = Table Cell $2 = Color Value
SetCellFreeText
Sets the free text (not bound by label text rules) for a table cell
SetCellFreeText($R,$1) $R = Target Cell $1 = Source Cell
SetCellTextColor
Sets the text color for the cell
SetCellTextColor($1,$2) $1 = Table Cell $2 = Color Value
SetColAlignment
Enables a column's text alignment to be changed
SetColumnAlignment($R,$1) $R = Target Column $1 = Align Mode
SetColSecondTitle
Sets the text of the second title row for the given column
SetColumnSecondTitle($R,$1) $R = Target Column $1 = Title Text
SetColTitle
Set the title text of a table column
SetColumnTitle($R,$1) $R = Target Column $1 = Title Text
SetColTupleName
Sets the name used to internally identify a column
SetColumnTupleName($R,$1) $R = Target Column $1 = Tuple Text
SetColumnProperty
Set a property of a table column
SetColumnProperty($1,$2,$3) $1 = Table Column $2 = Property Label $3 = Property Value
SetColumnTip
Sets the tool tip of a table column
SetColumnTip($R,$1) $R = Column $1 = Tip Text
SetColWidth
Sets the formatting width of a table column
SetColWidth($R,$1) $R = Target Column $1 = Column Width
SetTableRowHeight
Sets the height of table rows
SetTableRowHeight($1,$2) $1 = Target Table $2 = Row Height
SetTableTitle
Set the title text of the table from the label
SetTableTitle($R,$1) $R = Target Table $1 = Title Text
ShiftCol
Shift the columns in a table
ShiftColumn($R,$1,$2) $R = Result $1 = Source $2 = Shift <+ ->
ShiftRow
Shift the rows in a table
ShiftRow($R,$1,$2) $R = Result $1 = Source $2 = Shift ^+ -v
Sort
Sort table by up to 4 columns. If the column index is -ve, it reverses the sort order for that column.
Sort($R,$1,$2,$3,$4) $R = Target $1 = Column 1 $2 = Column 2 $3 = Column 3 $4 = Column 4
SumIFMatch
Sums values in Data Column for rows where Match Column matches Match Key
$R = SumIFMatch($1,$2,$3) $R = Result $1 = Match Column $2 = Match Key $3 = Data Column
TableReferenceSet
Returns non zero if the reference resolves to a table
$R = TableReferenceSet($1) $R = Result $1 = Item Table Ref
TableSortDialog
Enables the user to set up and perform a sort using the table sort dialog
TableSortDialog($R) $R = Target
UpdateColumnRefs
Re-initialises column labels for references to a table
UpdateColumnRefs($1) $1 = Table
Table View
ClearFilter
Clear filter settings for a table view
ClearFilter($1,$2) $1 = Table $2 = Panel
CopyAllFromView
Copies the entire contents of a table view. Any current selection is ignored and left intact.
CopyAllFromView($1,$2,$3) $1 = Table $2 = Panel $3 = Col Labels
CopyFromView
Copies the current cell or selection from a specified table view just as if CTRL-C was pressed
CopyFromView($1,$2) $1 = Table $2 = Panel
DeleteView
Deletes view during run. Data is the table, attribute the view is for. Panel is where the view is located.
DeleteView($1,$2,$3,$4) $1 = Data $2 = Panel $3 = View Type $4 = Index
GetColumnFilter
Gets any active column filter for a table view
$R = GetColumnFilter($1,$2) $R = Text/Label $1 = Column $2 = Panel
GetFilteredRows
Retrieves the filter mapping of view rows to actual rows into the list table
GetFilteredRows($1,$2,$3) $1 = Filter List $2 = Table $3 = Panel
GetTableView
Read columns of a table view into another table
GetTableView($1,$2,$3) $1 = View Table $2 = View Panel $3 = Config Table
GetViewProperty
Retrieves a property of a view of a table on a given panel. Index specifies which view and is useful when multiple exist.
$R = GetViewProperty($1,$2,$3,$4,$5) $R = Result $1 = Table $2 = Panel $3 = Property $4 = View Type $5 = Index
NearestPoint
Returns the row of the closest point on a Log Driven Display. If Overlay is non zero, only that overlay is checked. Max Distance sets the largest distance that will be considered in the matching. With no match, the function returns 0.
$R = NearestPoint($1,$2,$3,$4,$5,$6) $R = Result $1 = Table $2 = Panel $3 = X $4 = Y $5 = Overlay $6 = Max Distance
PasteIntoView
Pastes the system clipboard into a table view starting at the specified Top Left cell. Returns zero on success
$R = PasteIntoView($1,$2,$3,$4,$5,$6,$7) $R = Error Result $1 = Table $2 = Panel $3 = TL Row $4 = TL Col $5 = Options $6 = Rows Read $7 = Cols Read
ReFilterTableView
Reapply any active filters to the current data in the table
ReFilterTableView($1,$2) $1 = Table $2 = Panel
SetCellColor
Set text and background colours for cells, supporting doing entire columns, rows or tables as well. In all cases the per cell colour is set.
SetCellColor($1,$2,$3) $1 = Cell $2 = TextColor $3 = BackColor
SetColumnFilter
Sets a column filter text for a table view. The filter needs to be reapplied once all the columns have been set.
SetColumnFilter($R,$1,$2) $R = Column $1 = Text $2 = Panel
SetTableView
Set columns that a table view will display
SetTableView($1,$2,$3) $1 = View Table $2 = View Panel $3 = Config Table
SetTableViewColScroll
Sets the column scroll of a view for a table on a given panel
SetTableViewColScroll($1,$2,$3) $1 = Table $2 = Panel $3 = Value
SetTableViewRowScroll
Sets the row scroll of a view for a table on a given panel
SetTableViewRowScroll($1,$2,$3) $1 = Table $2 = Panel $3 = Value
SetViewFilterRows
Sets the rows that a table view on a panel will display. Filter List is a column of row numbers.
SetViewFilterRows(($1,$2,$3) $1 = Filter List $2 = Table $3 = Panel
SetViewProperty
Sets a property of a view of a table on a given panel. Index specifies which view and is useful when multiple exist.
SetViewProperty($1,$2,$3,$4,$5,$6) $1 = Table $2 = Panel $3 = Property $4 = Value $5 = View Type $6 = Index
TableViewColScroll
Reads the column scroll of a view for a table on a given panel
$R = TableViewColScroll($1,$2) $R = Target $1 = Table $2 = Panel
TableViewRows
Reads the number of rows in a table view. If a filter is set, this may differ from the number of rows in the table
$R = TableViewRows($1,$2) $R = Target $1 = Table $2 = Panel
TableViewRowScroll
Reads the row scroll of a view for a table on a given panel
$R = TableViewRowScroll($1,$2) $R = Target $1 = Table $2 = Panel
TableViewVisibleCols
Reads the number of visible columns in a table view
$R = TableViewVisibleCols($1,$2) $R = Target $1 = Table $2 = Panel
TableViewVisibleRows
Reads the number of visible rows in a table view
$R = TableViewVisibleRows($1,$2) $R = Target $1 = Table $2 = Panel
Time
AdvanceToTimeDialog
Enables user to use the advance to time dialog. If Absolute is set, it defaults to an absolute time advance otherwise it defaults to a relative interval. Time is interpreted accordingly depending on Absolute, as an interval or as an absolute time. For an Absolute advance, if its zero, the clock value is the default instead of the model start time.
AdvanceToTimeDialog($1,$2) $1 = Absolute $2 = Time
DayOfMonth
Returns the day of the month, starting at 1
$R = DayOfMonth($1) $R = Result $1 = Time
DayOfWeek
Returns the day of the week, starting at 1 for Sunday
$R = DayOfWeek($1) $R = Result $1 = Time
DaysInDateMonth
Returns how many days in the month of the absolute time
$R = DaysInDateMonth($1) $R = Result $1 = Time
FormDate
Computes the absolute time representing midnight on the given date
$R = FormDate($1,$2,$3) $R = Result $1 = Date $2 = Month $3 = Year
GetDate
Extracts the date from a date/time
$R = GetDate($1) $R = Result $1 = Date/Time
HourOfDay
Returns the hour into the current day of the time, starting at 0
$R = HourOfDay($1) $R = Result $1 = Time
HourOfDay+1
Returns the hour into the current day of the time, starting at 1 instead of 0
$R = HourOfDay_1($1) $R = Result $1 = Time
IncrementByMonths
Increments the date by one or more months, attempting to keep the same day of month
IncrementByMonths($R,$1) $R = Result $1 = # of months
MonthOfYear
Returns the month of the year, starting at 1 for January
$R = MonthOfYear($1) $R = Result $1 = Time
TimeOfDay
Returns the number of seconds into the current day of the time
$R = TimeOfDay($1) $R = Result $1 = Time
WeekOfYear
Returns the week of the year, starting at 1
$R = WeekOfYear($1) $R = Result $1 = Time
YearOfDate
Returns the year of the given calendar time
$R = YearOfDate($1) $R = Result $1 = Time
Tuple
DecodeMultiLabelToTuple
Extracts the fields of a multi-label to item attributes with names matching the label lists in the multi-label
DecodeMultiLabelToItem($R) $R = Target
EncodeItemToMultiLabel
Combines item attributes to form a multi-label, for item attributes with names matching the label lists in the multi-label
EncodeItemToMultiLabel($R) $R = Target
MatchedCopyRow
Copy rows between tables where the column names match
MatchedCopyRow($R,$1) $R = Result $1 = Set To
TupleAppendFromCarried
Append a row to the table and for it, set table columns from a carried item's attributes with the same name
TupleAppendFromCarried($R,$1) $R = Table $1 = Carried Index
TupleAppendFromItem
Append a row into the table and for it, set table columns from item attributes with the same name
TupleAppendFromItem($R) $R = Table
TupleCarriedToRow
For the specified row, set table columns from a carried item's attributes with the same name
TupleCarriedToRow($R,$1) $R = Row $1 = Carried Index
TupleDecrementToRow
For the specified row, decrement cells with the values of item attributes with matching names
TupleDecrementFromRow($R) $R = Row
TupleExtractToCarried
For the specified row, set a carried item's attributes from table columns with the same name then delete the row
TupleExtractToCarried($R,$1) $R = Row $1 = Carried Index
TupleExtractToItem
For the specified row, set item attributes from table columns with the same name then delete the row
TupleExtractToItem($R) $R = Row
TupleIncrementToRow
For the specified row, increment cells with the values of item attributes with matching names
TupleIncrementToRow($R) $R = Row
TupleInsertFromCarried
Insert a row into the table and for it, set table columns from a carried item's attributes with the same name
TupleInsertFromCarried($R,$1) $R = Row $1 = Carried Index
TupleInsertFromItem
Insert a row into the table and for it, set table columns from item attributes with the same name
TupleInsertFromItem($R) $R = Row
TupleItemToRow
For the specified row, set table columns from item attributes with the same name
TupleItemToRow($R) $R = Row
TupleRowToCarried
For the specified row, set a carried item's attributes from table columns with the same name
TupleRowToCarried($R,$1) $R = Row $1 = Carried Index
TupleRowToItem
For the specified row, set item attributes from table columns with the same name
TupleRowToItem($R) $R = Row
UI
AddListToMenu
Appends a new menu to the modeller custom menu bar
AddListToMenu($1,$2) $1 = Menu Name $2 = Item List
BringToFront
If a panel is open in a popup window, bring that popup to the front in the window z-order.
BringToFront($1) $1 = Panel
BrowseFile
Browse for a file. Returns non zero if one chosen. FileName sets an initial file, Options can combine:1 to enable a save-style dialog (default is load) and 2 to enable stay in directory (default is to return to working directory). Use s.LastAccessedDataFile and s.LastAccessedDataFilePath to access the file and full path spec of the file selected.
$R = BrowseFile($1,$2) $R = File Chosen $1 = FileName $2 = Options
BrowseFolder
Browse for a folder. Returns non zero if one chosen. Name sets an initial path, Use s.LastAccessedDataFilePath to access the path selected.
$R = BrowseFolder($1,$2) $R = Folder Chosen $1 = StartFolder $2 = Title
ClearCustomMenubar
Removes all menu items from the modeller custom menu bar
ClearCustomMenubar
DescribeFont
Retrieves a CSV text field describing the properties of the font for the specified column or table cell.
$R = DescribeFont($1) $R = Result $1 = Data
Dialog
Show a dialog box for the user to interact with
$R = Dialog($F) $R = Result $F = Dialog
DragIcon
Displays an icon and enables user to position it. X and Y are the starting position (center) in panel co-ordinates. If a move is performed, new co-ordinates are written to these values. Icon selects an image which defines the bounding box. Returns non zero if the move was not cancelled. Supports being invoked with mouse down or up. Keys also supported.
$R = DragIcon($1,$2,$3,$4) $R = result $1 = X Value $2 = Y Value $3 = Panel $4 = Icon Name
GetCellXY
Retrieves the co-ordinates of a given corner of a cell that is visible in a table view. Co-ordinates are relative to the top left of the main panel window and can be used for ShowPopupPanel(). Corner is 1..9, 1 = top left.The cell is specified in view cells. Result is non zero on error, for example the cell is not visible. Otherwise X and Y are set.
$R = GetCellXY($1,$2,$3,$4,$5,$6,$7,$8) $R = Result $1 = Table $2 = Panel $3 = View Index $4 = View Row $5 = View Column $6 = Corner $7 = X $8 = Y
HandlePopupMenu
Interprets columns in table as depth/name/index and generates a popup menu. Returns index of selected item or 0 if cancelled
$R = HandlePopupMenu($1) $R = Result $1 = Table
InitiateFieldEdit
Starts editing attribute/cell views on a panel, as if the user clicked on the first one
InitiateFieldEdit($1) $1 = Target Panel
MessageBox
Displays a standard message box with an OK button
MessageBox($1,$2) $1 = Text $2 = Title
MessageBoxConfirm
Displays a standard message box with OK (1) / Cancel (0) Buttons
$R = MessageBoxConfirm($1,$2) $R = Result $1 = Text $2 = Title
MessageBoxYN
Displays a standard message box with Yes (1) / No (0) Buttons
$R = MessageBoxYN($1,$2) $R = Result $1 = Text $2 = Title
MessageBoxYNC
Displays a standard message box with Yes (1) / No (0) / Cancel (-1) buttons
$R = MessageBoxYNC($1,$2) $R = Result $1 = Text $2 = Title
SetMenuBar
Interprets columns in table as depth/name/index and builds a custom menu bar
SetMenuBar($1) $1 = Table