Subscribe to this thread
Home - Cutting Edge / All posts - Manifold

10,447 post(s)
#11-Jul-22 14:09

SHA256: c5906270f38e62a6335d577c79314661f32cc2d61739b3a1df2b57d664652080

SHA256: 69a75bf586230e2b793b7bc0c57dc16eafd4fc9a70d533b9a3ec519142834a41

SHA256: 4fd577a7423594705ae25ce5abbd508e3a9c1997fec1a1225d6337a607ffe7b3


10,447 post(s)
#11-Jul-22 14:11


The About dialog includes the new Switch License button that allows switching the current license to a different serial number, eg, to upgrade to a different edition of the product. The dialog prompts the user to restart the application after the license is switched.

(Fix) The Clear Filter command in a table window no longer fails to uncheck the selection filter button in the toolbar.

(Fix) Copying a table with mixed geometry into a database (eg, PostgreSQL) using copy and paste or drag and drop no longer sometimes fails because the new geometry field is wrongly limited to a specific geometry subtype.

The Info pane shows the number of selected records for the opened table in a table window (this includes table windows opened for query components, but not command windows for ad-hoc queries) or for the current layer in a map window, if that number is known.

There are two scenarios in which the number of selected records is unknown:

  • The total number of records in a table is unknown and the selection is inverted. This happens with streaming tables. The prime example are the result tables of queries, these tables compute their data as they are being read so that you can start working with the returned records without waiting until all records are computed. An inverted selection stores keys of the unselected records, so while the system knows how many records are unselected, it cannot compute how many are selected.
  • The total number of records in a table is known, but the table has changed in a way that could affect the selection after the last selection operation. Changes that can affect the selection are adding or removing records, or changing values in the key fields.

If the total number of records is unknown, it is shown as '?'. If the number of selected records is unknown, it is shown as '?'. If either of these numbers is unknown, the Info pane shows the Refresh button next to them. Pressing the Refresh button will scan the table and update the numbers that are currently unknown. The scan tracks progress and can be canceled.

MANIFOLDSRV reports the total number of records in a served table if the table knows it.

(Fix) The Spatial select template that selects data based on a spatial overlay no longer fails to clear the selection when the overlay is empty and the selection mode is 'replace' or 'intersect'.

(Fix) The result tables of the SelectionXxx query functions no longer sometimes fail to return data.

Combining the results of a selection template with an existing selection performs faster.

(Fix) Reading MIF no longer sometimes ignores the last object.

(Fix) Reading MIF correctly parses DATE / DATETIME / TIME values.

(Fix) Writing MIF exports INT16U as INTEGER (was SMALLINT) and INT32U as FLOAT (was INTEGER) to avoid potential data loss.

Writing MIF exports xN and UUID fields as CHAR (was not exporting them).

The install packages for Manifold 9 (not Manifold Viewer, not SQL for ArcGIS Pro) include a new executable: MANIFOLDCMD. MANIFOLDCMD is a console application that can be used to automate common tasks. MANIFOLDCMD is limited to Universal and Server editions.

MANIFOLDCMD log files use the '-cmd' postfix, to distinguish them from log files for other Manifold applications.

Syntax: MANIFOLDCMD <command> [<options>] [<file>]


  • -runquery:xxx -- open the file and run the specified query component, the component can be in a nested data source, supported options: -logfilter:xxx / -logfolder:xxx / -open:xxx / -out:xxx
  • -runscript:xxx -- open the file and run the specified script component, the component can be in a nested data source, supported options: -logfilter:xxx / -logfolder:xxx / -open:xxx
  • -runscriptfile:xxx -- run the specified script file, supported options: -logfilter:xxx / -logfolder:xxx


  • -logfilter:min -- skip dates and prefixes when logging to console
  • -logfilter:minscript -- skip dates and prefixes, skip non-error non-script messages when logging to console, useful to limit output for further processing with command-line tools
  • -logfilter:none -- log full data to console (default)
  • -logfolder:xxx -- folder for log files
  • -open:readonly -- open file in read-only mode (default)
  • -open:readwrite -- open file in read-write mode
  • -open:readwritesave -- open file in read-write mode, save file after operation completes, this includes saving all nested data sources
  • -out:xxx -- output file, eg, CSV or JSON

End of list.


7,452 post(s)
#12-Jul-22 10:00

The console application can do very many things, especially in conjunction with Windows Task Scheduler to launch command lines on a regular basis. For example, every night you could have a Manifold project collect data from various files and then write an updated CSV file to be served by your csv server.

Here are two quick examples on using the console application...

Running a query inside a .map project:

A .map project called contains a query called MexQuery that from a linked table generates a result table of all provinces in Mexico with a population greater than 3000000.

Run the query and save the result to a CSV file called Mex.csv:

manifoldcmd -runquery:MexQuery -out:"C:\Projects\Mex.csv" "C:\Projects\"

Save the result to a SQLite file called Mex.sqlite (make sure you have the required sqlite3.dll copied into the same folder as your Manifold executables):

manifoldcmd -runquery:MexQuery -out:"C:\Projects\Mex.sqlite" "C:\Projects\"

Save the result to a Manifold .map file called

manifoldcmd -runquery:MexQuery -out:"C:\Projects\" "C:\Projects\"

Save the result to an Esri file geodatabase within a folder hierarchy C:\Projects\Mex\gdb.gdb\ and create the Mex and gdb.gdb sub-folders:

manifoldcmd -runquery:MexQuery -out:"C:\Projects\Mex\gdb" "C:\Projects\"

Double-quotes around arguments like the names of files are not necessary if there are no spaces in the argument. If the output file already exists, the above will overwrite it with the new version.

Running a script that is outside of a .map project:

Suppose we have a C# script in a file called "c:\scripts\convert.cs" (attached) that convert a TIFF file, "c:\data\example.tif" into a PNG file "c:\data\converted.png"...

manifoldcmd -runscriptfile:"c:\scripts\convert.cs"

The convert.cs file:

// C#

using M = Manifold;

class Script


static Manifold.Context Manifold;

static void Main()


 M.Application app = Manifold.Application;

 using (M.Database db = app.CreateDatabaseForFile("c:\\data\\example.tif"true))







10,447 post(s)
#12-Jul-22 11:36

(Don't need to have SQLITE3.DLL to work with SQLITE - or GPKG - data. SQLITE3.DLL is only needed if someone wants to use a specific version of it, or wants to use extensions, such as SPATIALITE or ESRI's ST_GEOMETRY.)

Mike Pelletier

2,138 post(s)
#12-Jul-22 16:19

This is another really handy addition as sharing data is becoming more time consuming as expectations and tools improve.

Also, very much appreciate the selection readout. This is a big plus. I'm sure you've got lots of ideas cooking, but it would be great to have it also show the number of filtered and fetched records. If possible, to benefit the novice user, maybe a brief mouseover popup that explains why a ? exists for the selection.

275 post(s)
#12-Jul-22 14:49

Holy early Christmas batman! Thanks for the record selection readout


2,064 post(s)
#12-Jul-22 23:43

I second that regards the selection readout. A huge leap forwards. Many thanks.

The new console application is going to be super handy for scheduled data build processes.

Landsystems Ltd ... Know your land |


998 post(s)
#15-Jul-22 22:09

1) what do you mean by selection readout ? the value locate at info ( tab) -> component ( tab) -> "selected" ( label) -> value ( of selected item in geom of drawing or row of table )

2) so now could we say that C# script (not only .. file.sql ?) can work


-inside C:/.../manifold/shared/file.cs

-outside map and shared : in any location of hard disk


Book about Science , cosmological model , Interstellar travels

Boyle surface fr ,en


2,064 post(s)
#15-Jul-22 22:18

Yes. Its a small thing from a readout point of view at least, but I find it so useful when developing and testing parts of workflows as they develop.

Landsystems Ltd ... Know your land |

Manifold User Community Use Agreement Copyright (C) 2007-2021 Manifold Software Limited. All rights reserved.