You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Ever since I found the ruby scripting language been using it to extend existing functionality in ICM. However one thing which has struck me time and time again is the, almost, half-baked method of executing ruby scripts.
There are 4 options to execute a ruby scripts:
Execute them from a ruby addon.
Execute them from the user custom action menu.
Execute them from the shared custom action menu.
Execute them through the "run ruby script" menu item.
Ever since I started working with ICM, I have been tasked with automating aspects of it. I started my journey with knowing nothing about ICM, Ruby scripting, or even SQLs for that matter. Initially I automated ICM like I automate most applications, using low-level Windows APIs.
I still remember having a conversation with an Innovyze support employee, while I was reporting a 'bug' where a dialog button wasn't being 'clicked' when I used PostMessage, but was only if I used SendMessage... In the end though, it wasn't really a bug, but myself misunderstanding which windows messages are used for which purposes.
Gradually over the years I have built up my knowledge of how ICM works and how to automate each aspect of it. Whether that be autonymously creating, setting up and running sims, finding and performing actions on database model objects, exporting a number of model networks, or using Ruby scripting to perform detailed analysis o
In InfoWorks ICM intermediate users may use SQL queries to automate their workflows. One part of the SQL system in InfoWorks which is fairly misunderstood is the macro system.
To be fair, macros aren't really explained very well in the help file either... The explanation given is as follows:
Macros are variables for representing values within a query. The Macro dialog is displayed when you click on either the button or the button on the User Macros tab on the SQL dialog. Enter a title and value for the macro, then click on OK.
Though this is correct, it is also a bit misleading. In this article I want to go into a little more detail as to what the Macro system actually does, and bounce around some ideas as to how it can be used.
Hello everyone! In this video we will briefly cover the current features of the health and safety database, as well as those currently waiting to be implemented.
When you first launch the viewer you are greeted with a password box. If you enter a password incorrectly you well be prompted and will have to try again. If you don’t know the password then you won’t be able to access any new information from the server.
After entering the password you'll be greeted with the 'search engine'. Here you can type any text and the database will score every record against the text you entered. For example, if I wanted to search for an employee, I can simply type the employees name. To search for a specific department, I can type all or part of the department's name, "Quantity" in this example. To search for all employees who are managed by a particular person, I can type that person's name, in this example "Hamilton". The more the query I enter is mentioned for a specific employee, the higher that employee will rank in
List view controls can be exceptionally useful for viewing data on a spreadsheet.
Step 1: Add control to spreadsheet.
Click on the Insert dropdown button in the Controls group of the Developer tab. When here click the More controls button of the ActiveX Controls sub menu.
2 years ago I visited the MapInfo User Group UK conference held at the Institution of Engineering and Technology (IET), Birmingham. At the conference I met Peter Horsbøll Møller. At the time I hadn't had much experience with MapBasic Project (.mbp) files. A MapBasic project is often required when working on large projects or using libraries that others have made. The basic layout of a MapBasic project is as follows:
#"Starting REPL..."3743#>3743sim=_.db.model_object_from_type_and_id("Sim",3743)#>#<WSSimObject:0x00000031f63c28>sim.list_max_results_attributes#> Error: The method cannot be run from the user interface
We use Graphical User Interfaces (GUIs) to display information and interact with the user.
In InfoWorks ICM, Innovyze have given us a few standard GUIs to work with. Each standard GUI will open a seperate window containing varying GUI controls, depending on the parameters given.
In the last part of this series we explored how we could use the Windows Forms .NET framework from Ruby using an intermediate Powershell script. This time we will go down a completely different route. Today we will build GUIs using the popular web technologies - HTML, CSS and JavaScript.
Why web technologies?
Web technologies over the years have improved greatly. Open source JavaScript engines have become faster at processing data and HTML and CSS have greatly improved to provide clean interfaces for the ever growing market of the web. JavaScript, executed from Chrome's V8 Engine, is currently one of the fastest interpreted languages on the market. This is largely due to the fact that there is a huge demand for bigger, faster webpages.
Recently there has been an emerging trend of web technologies being used for desktop applications. Frameworks such as, Electron and NW.js make this not only possible, but both easy t