Manifold System keeps the information it needs to keep track of items for a given project in a single file called a Manifold project file. Projects are the "documents" of Manifold, just like .doc files are the documents of Microsoft Word or .xls spreadsheets are the "documents" of Excel. A Manifold project contains all the different types of data with which we work, or, in the case of linked components, links to the source of the data used for that component.

The different types of data kept in a Manifold project are called components. Components are the drawings, images, surface, labels, comments, tables, scripts, queries, themes and other items in a Manifold project.
There are the following types of components in a Manifold project:
· Local components are components that exist entirely within the project. These are created in the project using Manifold dialogs, or they are imported into the project from some other file. For example, we might import a drawing from a shapefile. The data for local components resides entirely within the .map project file. If we import a 50 MB drawing from some external file and then save our .map project file, it will grow in size to accommodate the imported drawing.
· Linked components and shared components are components that are created on-the-fly from some other data source, usually some external database file, image server or from some other external source. The data for linked components usually resides outside of the .map project file. For example, if we link an image into a Manifold project from an external .ecw file that is 50 MB in size, when we save the .map project file it will not grow in size. The data for shared components always resides outside of the .map project file, but the project file may contain a cached copy of that data.
Manifold saves information to keep track of all of a project's components in the project's .map file. When a project is saved, any changes made to any component will be updated as well.
Because components are often imported from systems or formats where they exist as separate files (for example, .bmp or .gif images), it is tempting to think of components as being separate files. That's not the case. Even though components appear to be separate things they are all part of one Manifold project .map file. With the exception of linked components and Enterprise Edition projects they are all saved in the single .map file as well.
It is also tempting to think of components as somehow retaining the characteristics of their originating formats. For example, one might think that because a table was imported from a .dbf database format file it somehow is still limited to having restricted field names as if it were still in the original .dbf format. Or, perhaps we've imported a drawing from shapefile format and think the drawing must now be limited to the antique restrictions of that format.
That is not the case for components that are imported into a Manifold project. Once a component is imported into Manifold it is now in Manifold as a local component and has no tie to the original format or file from which it originated.
However, there may well be some restrictions on linked components depending on their origin. For example, linked images coming into the project from TerraServer will be read-only, and tables that are linked into a project from an external data source will be subject to the limitations of that data source.
If we don't like such restrictions, we can always unlink the linked component to change it into a purely local Manifold component. We can then do with it what we please.
The Project Pane

Using File - Open to open a Manifold project or File - New to create a new project will automatically open the project pane. The project pane shows a list of all components in a project.
Double click on a component in the project pane to open it within its own viewing window. Alternately right click on it and chose Open. If a component is already open, double clicking on it in the project pane will bring that component window to the foreground. To open multiple copies of a component, right click on the component and choose Open in New Window.
Some components in a project pane will be linked to other components and will be shown indented underneath those components in the project pane. For example, every drawing has a subsidiary table that will be shown indented underneath it and images using palettes will have their palette components linked to them. In the illustration above, the image SanFran is a palette image that uses the palette underneath it.
To rename a component, right click on it in the project and choose Rename. The Component Name dialog that pops up includes a checkbox to Adjust names of dependent components, which, if checked (the default), will automatically rename any subsidiary components. For example, if we rename a drawing called Mexico Drawing to Central Mexico Drawing, then the drawing's table that was originally called Mexico Table will automatically be renamed Central Mexico Table.
Components in the project pane may also be renamed by a "slow double-click" or by pressing the F2 key. Press Enter to commit the renaming operation without renaming dependent components, or press SHIFT-Enter to commit the renaming operation and to also adjust names of any dependent components as if the Adjust names of dependent components option in the Component Name dialog had been selected.
Types of Components
Components are items such as drawings or images that appear in the project pane and make of a Manifold project. The data for components is normally stored inside the .map project file; however, some components (images, drawings, tables and surfaces) can be linked components that are created based upon data sources, such as database tables or streamed data from image servers, from outside the project. In that case, the linked component's data is not stored within the project but is dynamically fetched from the source. Linked components are shown with a cute little database cylinder graphic added to the icon.
Note that linked components can also be created from local components stored inside the project. For example, we might create a linked drawing that is created based upon a query where the query acts on a local table inside the project.
Components include:
|
Drawings |
|
Often referred to as vector documents or vector "maps" in older GIS systems, drawings are used in CAD systems for blueprints or in vector GIS systems for mapping. Drawings are made up of objects that may be points, lines or areas based on specific coordinates. Every Manifold drawing is linked to a table. Every object in the drawing corresponds to one record in the table. Manifold can import drawings from a vast array of different GIS and CAD formats. Drawings that are automatically created from database tables are called linked drawings and are shown using an icon that includes a yellow "database" cylinder. |
|
Themes |
|
Themes are displays of a drawing shown using different formatting. Manipulating a theme is just the same as manipulating its parent drawing. Themes make it possible to show drawings colored or presented in different ways without having to duplicate the drawing. |
|
Images |
|
Images are composed of pixels arranged in orderly rows and are often referred to as raster images in older GIS systems. Most of us know images as the familiar pixel-based images we edit in Microsoft Paint, Adobe PhotoShop or Microsoft Photo Editor. Images in Manifold can also be multi-channel raster data as well as visual images. Images are normally imported into a Manifold project. One special type of images, compressed images, may be linked into a Manifold project from external files or compressed image servers. Linked images may also be created from queries and database tables as well as from image servers such as TerraServer or OGC WMS servers, in which case they are indicated with an icon that incorporates a "database" cylinder. |
|
Tables |
|
Database tables may be included either within a project or linked from external database providers so that the data they contain is fetched "on the fly" as it is needed. Tables linked from external sources are shown with an icon that includes a yellow "database" cylinder. Manifold includes an immense array of database capabilities that work with tables and which may be used for database manipulation of tables from almost any database management system. |
|
Labels |
|
Labels components show text labels that are either entered manually or are automatically created from data fields linked to drawings. Labels components may be created in a variety of ways, such as making a Copy of drawing objects and then Paste As a Labels component. |
|
Maps |
|
Maps show drawings, images and text labels as layers in a map window. An important function of maps is showing the data they contain in projected form, where the native coordinates of drawings are transformed into a desired geographic or other projection and where images are referenced into the desired coordinate system and shown in projected form. Map windows are the main user interfaces within Manifold. Maps are used not only for geographic presentation but also for working with non-geographic images and drawings in many layers. |
|
Surfaces |
|
Surfaces are raster data sets that contain data values, such as elevations, for each location. They are almost exactly analogous to images except that instead of a color value for each "pixel" they contain a data value. The default way to show a surface is as a shaded relief 2D image. Surfaces are called "grids" in some GIS packages. Surfaces may also be linked from queries or tables, in which case they are indicated with an icon that incorporates a "database" cylinder. |
|
Terrains |
|
Terrains are surfaces shown in three-dimensional views. Every terrain has a parent surface. Terrains are most often used to show 3D views of the surface of the Earth based on terrain elevation data; however, they may also be used to see abstract data such as population gradients, temperatures or other data as 3D surfaces. Each surface can have an unlimited number of terrain views created for it. |
|
Profiles |
|
Profiles are subsidiary components of surfaces that show a path over the surface. They are used to compute elevations, which show the cross-section of height along the path. Profiles are visible in a project only if the optional Surface Tools extension has been installed. |
|
Elevations |
|
Elevations are subsidiary components of profiles that show the cross-section of height through the surface along the path. Elevations are visible in a project only if the optional Surface Tools extension has been installed. |
|
Charts |
|
Charts allow database table visualization and data mining using a simple 2D charting style. |
|
Palettes |
|
Certain types of images compress data by saving a single number for each pixel that is an index into a lookup table of colors. A palette is the lookup table that specifies what colors to use for different pixel values. Manifold allows different palettes for use with images. These may be kept within the project as separate components. This is especially useful when using "false color" to view multi-spectral raster data images. |
|
Layouts |
|
Layouts allow the creation of different arrangements for printing the project or exporting a layout to a format such as .pdf or .ai.. One might save several different layouts for different sizes and resolutions of printers, for example. |
|
Queries |
|
Queries are saved queries written in Manifold SQL. Manifold includes a complete SQL engine as extended with high-performance spatial, networking, logical and "fuzzy" predicates. Query windows are unusual in that they support multi-level Undo / Redo. |
|
Scripts |
|
Scripts are written in any Microsoft .NET language or any ActiveX scripting language such as Visual Basic Scripting Edition, JavaScript (both included by default with Manifold System) for which an ActiveX scripting engine is available on the system. Scripts may be used to extend the capabilities of Manifold System or to customize the appearance and function of existing capabilities. Script windows are unusual in that they support multi-level Undo / Redo. |
|
Forms |
|
Manifold includes the ability to create script-based forms or dialogs that provide various controls and call other scripts. Forms are often used to create simplified interfaces for inexperienced users. |
|
Comments |
|
Written notes and comments we wish to make. Comments components are also used whenever text reports are created within Manifold. For example, importing from formats such as SDTS will often create comments components that contain the metadata text embedded into the SDTS files. Comments windows are unusual in that they support multi-level Undo / Redo. |
Importing Components into a Project
To add a component from an existing file (such as a GIS format drawing or image file) choose File - Import to import a component from an existing file.
When importing or linking components we can usually import more than one item of the same type by using CTRL-click to choose more than one file when browsing in the Import dialog. We can also click on one file and then SHIFT-click on another to highlight all the files in between if we wish to choose several files to import.
Whenever we import a component such as a drawing, image or surface that can have a projection, if it has been imported from a format that does not store projection information when we first open it Manifold will remind us to verify the projection used for that component by popping open an information bar in the component window. Click on the bar to verify the projection using the Edit - Assign Projection dialog. If the projection shown in the Assign Projection dialog is what we think it should be, we press OK. Thereafter, we can open the component without Manifold nagging us to verify the projection.
Note: We can get rid of the info bar without launching the Assign Projection dialog by clicking the X sign at the right side of the info bar; however, Manifold will know that we've not yet verified the projection of this component and the info bar will appear again the next time the component is opened in a window.
If we do not want to verify projections of new components, once we acquire enough expertise not to want to verify projections anymore unless it is absolutely necessary, we can get rid of the info bar by changing the Prompt to verify projections of new components option in the Tools - Options dialog.
Conversely, if we would like Manifold to remind us to verify the projection of all new components, even those imported from formats that correctly store projection information, we can uncheck the Suppress prompt for non-default projections option in the Tools - Options dialog. See the discussion of info bar options in the Tools - Options dialog for details.
Linking Components into a Project
Choose File - Link to create linked components such as linked tables, linked drawings, linked images or linked surfaces within the project that take their data from external sources. Linked components will appear in the project like local components, but their data will come from an external source. Depending on the nature of that source, there may be limitations on those linked components. For example, linked images from image servers will be read-only and cannot be re-projected. Tables linked from external data sources using ADO .NET connection technology will be read-only. Drawings linked from geometry in database tables will normally be read/write and fully editable but usually cannot be re-projected.
Creating New Components
At any time we can create a new component in the project by choosing File - Create. Except for maps, the File - Create dialog takes the projection parameters for the new component from whatever window is active at the time the new component is created.
If no existing component is active, the new component will be created using the system default projection of Orthographic centered at the 0,0 world latitude/longitude origin. If a map window or other component window is active when the new component is created, the new component will be created using whatever projection is used by that active window. This context-sensitive setting of default projection parameters makes it much easier to create new components using projection parameters that are hassle-free by default.
When a map is created it is always based on at least one drawing, image, labels component or surface. When a map is first created in a project it uses the projection of whatever component(s) it uses. If it was created using only one component the projection of that component will be used for the map. If a map is created using multiple components at the same time, then the map is created using the projection of the largest image or surface in the map. If there is no image or surface a random choice of one of the native projections of one of the constituent components will be used.
If we would like the map to use a specific projection that's used by one of the components it shows we can easily specify the projection to be used by right-clicking on any layer and choosing the Use Projection choice from the context menu. The map will automatically switch to using the native projection used by that layer.
A very common way of adding components to a project is to create them from other components using Copy and Paste As. See the Copy and Paste As topic.
We can also create a new, blank component in a project by using the context menu for layer tabs in a map. Right click on any existing layer tab and choose Add - New Drawing or New Image or New Labels. This will create a new component of the desired type in the project and add it to the map as a layer just above the active layer. The new component will be created using the map's projection except in the case where a New Labels command is used to create bound labels from a drawing. In that case the new bound labels component will use the same projection as the drawing upon which it is based.
Maximum Component Size
No single drawing, table, image or surface can exceed 16 EB (exabytes) in size. Since one exabyte is 2^60 bytes, about a trillion gigabytes, as a practical matter there is no size limit for these components. One will run out of disk space before the size limit is approached. There is no limit to the number of components that may be in a project.
Comments, queries and scripts are limited to approximately 1 GB. Labels are limited to 16 EB when initially created, but any changes made to a labels component after it is initially created cannot exceed approximately 1 GB.
Limits on comments, queries, scripts and labels component sizes are approximate because the precise limit depends upon details of the specific Windows system in use and the operation of that system. For example, in certain systems the 1 GB approximate limit on such components can expand to 2 GB or even 3 GB on machines run with a /3GB boot option. However, because such expanded uses depend on many complex interactions the stated limit size for comments, queries, scripts and changes in labels components is only 1 GB (a vast amount for such things).
Note that the 1 GB limit on "queries" is the size of the actual SQL query text, not on the results of a query. This is somewhat of an absurd "limit" since it is very rare that one writes an SQL query longer than a few hundred lines, let alone more than a megabyte in size.
Opening or Running Components
The different types of components that appear in the project pane can be opened for viewing or editing or, in the case of scripts, queries or forms, for execution (running) through mouse clicks, menu commands or toolbar buttons.
· Double click on a map, drawing, image, surface, terrain, table, comment, chart or palette to display it in a window.
· Right click and choose Open in New Window to open the component in a new window.
· Click on a form, script or query and press the Run button to execute it.
· Double Click on a form, script or query to edit it.
· Right click onto a component to pop open a context menu of choices for that component.
Component Windows
Double clicking on a component in the project pane will open that component in a window. Double clicking a map, drawing or image, for example, will launch the component within a window designed to display and manipulate that type of component. Component windows will automatically open with the correct set of toolbars or other controls appropriate to that type of component. Clicking on a form, script or query to highlight it and then pressing the Run button will execute that form, script or query. Queries will appear as tables when run. To edit the SQL text that generates a query table, open the query for editing by double-clicking it or by right clicking on it and choosing Open.
We can open multiple windows at once into the same component by right clicking and choosing Open in New Window from the pop-up menu. Each window can maintain its own independent view into that component. So, for example, we could open two windows to view the same image and zoom in on one window for a very close up view while panning the other window to see a different part of the same image. Changes in any one window to a component (such as changing the formatting to change the colors it uses) will update all other windows for that component. If we change the background color for areas to bright green in a drawing all windows that show that drawing will show the areas in bright green background color.
Some components have other components that are associated with them. For example, every drawing is connected to a table for that drawing. If the drawing is open, we can open the associated table by choosing Drawing - Open Table. If the table is open in a window, we can open the related drawing by choosing Table - Open Drawing. These menu choices will be enabled only for components that are related to other components. For example, a table that is not connected to a drawing will not have an Open Drawing command available.
Context Sensitive Controls
Only one window at a time has the focus in Microsoft Windows. Clicking into a window or touching it in some way moves the focus to that window in the standard Microsoft way to make it the active window. When the focus is on a particular window its title bar changes to the highlighted color specified for active windows in the Display appearance settings specified in your Windows Control Panel. See the Windows topic for more on typical Microsoft Windows behavior.
Clicking on a component window moves the focus to that window. Simultaneously, the main toolbar controls will change context or form to support use of whatever component window has the focus. Manifold toolbars and toolbar buttons are designed to preserve commonality of function as much as is possible, so that when the focus changes from a drawing to an image window the selection buttons will retain their appearance. However, their function will change in subtle ways to support the slight differences in selection operations between objects in drawings and pixels in images.
When the focus moves to a new window, any panes open will automatically switch their contents to apply to that window.
Saving / Exporting Components
Once components (like drawings and images) are imported into Manifold they become part of the project .map file. Saving the project saves the components within the .map file. At times we would like to import images or drawings into Manifold and to later save them as independent drawing or image files.
To do this, we open the component in a window and then use the File - Export command to export it to the desired format. For example, we may import drawings in .shp format, manipulate them within Manifold, and then use File - Export to save them in .shp format for use with other, archaic software.
Note that not all formats can handle the full range of information possible in Manifold components. For example, tables in Manifold can contain field names that are fine for export to Access .mdb files but which are longer than allowed in the less-capable .dbf format used in dBase files. Such field names should be changed before attempting export to .dbf format.
Since .shp "shapefiles" are actually an ensemble of files that include the use of .dbf files for data attributes, this means that exporting a drawing (and, of course, its associated table) to .shp format means that field names in tables may need to be shortened.
By default, Manifold includes many more formats available for import than for export. Optional products from manifold.net will add additional formats for export. Visit the manifold.net web site for information on optional products.
Tech Tip: Organize Projects with Folders
The create folder button in the project pane toolbar creates folders within the project. Use folders to organize components within the project and to keep the project pane manageable.
This is especially important when importing drawings from complex file formats such as those used with VMAP and TIGER/Line, where a single import will create numerous drawings and maps. Imports will create components within the current folder. Before importing from such formats, create a new folder in the project to highlight it and then choose File - Import. Imported components will be created within the folder specified.
To move files between folders, drag components and drop them into a folder (drop them onto the folder icon itself and not the hierarchy beneath the folder). Folders may be created within other folders. If a folder is highlighted in the project pane and the create folder command is issued, the new folder will be created within the highlighted folder. Folders may be dragged and dropped into other folders. To move a folder out from within another folder, drag it and drop it into the "white space" of the project outside another folder.
.map Files and Compression
By default the .map format used to save Manifold projects automatically compresses the data contained in the .map file using techniques similar to those used by popular "zip" compression utilities. Therefore, usually there is no need to "zip" a .map file with utilities such as WinZip to save space or to speed up transfers over Internet - the .map file is already compressed.
Compression takes time when opening a .map file (to decompress the contents) and when saving a .map file. For very large files the time required for compression and decompression can be significant. If speed in loading and saving is more important than saving space on hard disk we can turn off automatic .map file compression in Tools - Options .
Use this option with care, since there is no indication that a .map file is uncompressed other than it takes more space. It is strongly recommended that if compression is turned off that the user establish operational practices to distinguish between compressed and uncompressed .map files. For example, one might never use compression on a particular machine, or one might keep all uncompressed .map files in a folder called "uncompressed."
Tech Tip: Save Frequently Used Components in .Map Files
We can keep collections of frequently used drawings or other components in .map files and then use File - Import - Component to import them from the .map file into the current project whenever desired.
Enterprise Edition
Manifold System Enterprise Edition also allows storage of components within centralized databases. With Professional Edition, every component that is in use in a Manifold project (with the exception of linked components such as linked tables, linked drawings, linked images or linked surfaces) is saved in a .map file that is used by one user at a time. If different users want to use the same drawing they must make a copy of it for use within their map files.
With Enterprise Edition, components may be saved within a centralized database, the Enterprise server, so that the same component can be shared by more than one user at a time. Enterprise users can also keep a single copy of a component within the Enterprise server and use it within many different projects. See the Enterprise Edition topic for more information. See the Data Storage Strategies for a discussion of desktop, shared enterprise and server storage models available within Manifold.
Choosing a Connection Technology
When linking components from an external data source we would like the link to be as fast and as capable as possible. Manifold supports a very wide array of connection technologies to allow informed users to choose the best possible connection method as they see fit. This can be somewhat daunting to new users who may not even know what ADO .NET is, let alone when to choose it over OLE DB.
In cases where general-purpose connection technologies such as ODBC or OLE DB are used to connect to data sources it is tempting to think of such technologies as "black boxes" that provide a seamless, two-way pipeline for data that provide the connection invisibly. In real life, however, there are very great differences between connection technologies and even within a particular connection technology there can be great differences between drivers that lead to significant performance differences or other limitations.
To cite just one difference between technologies, connections via ADO .NET can be 600 times faster to some data sources than the equivalent ODBC driver. To cite another difference between connection technologies, using Oracle's native Oracle Call Interface (OCI) provides better performance and allows using features not exposed through generic database interfaces, such as ODBC, OLE DB and ADO .NET. That is why Manifold uses OCI by default to connect to Oracle.
To cite a difference within the same technology, not all OLE DB drivers for the same data source are created equal: for example, the OLE DB driver provided by a DBMS vendor may be superior in terms of speed or capability to generic OLE DB drivers for that data source bundled within Windows.
The rule of thumb is to always use OCI for connections to Oracle. Manifold will do this by default whenever we choose Oracle data sources, and this default choice should not be replaced by something else unless the user is a serious expert on connections to data sources. For read/write connections to SQL Server, choose OLE DB using the SQL Native Client OLE DB driver.
For other data sources, use ADO .NET if a read-only connection is OK (such as when importing a table) and OLE DB otherwise. If you don't know whether a particular connection will be read-only or not or are worried whether any unexpected results you have (such as an inability to edit) result from using ADO .NET, use OLE DB always. If you think there may be a significant performance difference, visit the online forum for Manifold and discuss what you are doing with your fellow Manifold users and see what more experienced users advise.
Not all data sources may have either an ADO .NET or an OLE DB connection available, but virtually every data source anyone has ever heard of has had an ODBC driver written for it. Use ODBC when OLE DB or ADO .NET connections are not available.
Manifold has a lot of internal code devoted to working around various limitations that exist within some drivers for well-known data sources. For example, there is special code within Manifold to facilitate using OLE DB connections to upload binary data to MySQL even though it is not one of the "Big 3" DBMS packages officially supported by Manifold,. To cite another example, establishing a database connection for a component linked from an ODBC data source will automatically degrade to read-only mode if connecting in read-write mode results in a connection that cannot be used to operate the component.
About the Nomenclature
Component was chosen as a deliberately neutral word to refer to the drawings, images and other items in a project. Manifold can work with so many different types of data that an existing GIS word like "layer" did not fit them all. For example, it doesn't make sense to talk about the "layers" in a project if some of the things in the project are scripts or comments or terrains, which can't appear as layers in a map. Also, some existing GIS words, like "theme" to take just one example, already mean something specific that doesn't necessarily work the same way in Manifold.
The word component is not intended to convey any special technical meaning other than indicating an item that is a part of a Manifold project. There is no fancy secondary meaning having to do with object-oriented programming or anything like that. It's just a generic, neutral word that ended up getting picked years ago.
If you are joining Manifold from some other GIS, please make an effort to use the word component and not some other word from that other GIS. It will be natural for ESRI people, for example, to want to use words like "theme" when referring to the drawings in their projects, but that will only get confusing because the words you use won't match what is written in the documentation.