Concepts User Manual
Chapter 1Introducing the MunsysQ Concepts User Manual
Welcome to MunsysQ
MunsysQ brings the Munsys capture and maintenance functions to QGIS. It is a QGIS plugin that works on the same Munsys database, the same data model and the same business rules as Munsys on AutoCAD, so both products can be used side by side on the same data.
If you already know Munsys, most of what you know still applies: applications, spatial tables, lookup values, integrity checks and posting all work on the same principles. What changes is the desktop. The drawing becomes a QGIS project, AutoCAD layers become QGIS layers, and the AutoCAD command line is replaced by QAD, a QGIS plugin that provides AutoCAD-style commands and prompts.
About this manual
This manual explains the concepts behind MunsysQ: how it connects to your data, how Munsys objects behave in QGIS, and how the capture, integrity and posting cycle works. It is the starting point for all MunsysQ users, whichever application they work in.
Step-by-step instructions for individual menu functions are published in the MunsysQ online help, which you can open at any time with the button on the MunsysQ panel.
What is in this manual
| Chapter | What it covers |
|---|---|
| 2. Getting acquainted with MunsysQ | The MunsysQ applications, how the components fit together, and the user interface. |
| 3. Connecting to Munsys data | WFS-T and direct database connections, storing credentials in QGIS Authentication, and configuring the Munsys REST service. |
| 4. Working with Munsys objects | Objects, attributes, lookup values, settings, integrity, posting, record locking and the other functions of the Object menu. |
| 5. QAD: AutoCAD-style capture in QGIS | How QAD reproduces the AutoCAD capture experience and how MunsysQ uses it. |
| 6. MunsysQ line tools | The Tools menu: coordinate files, drawing by distance and direction, and rotating by reference. |
| 7. Construction and conversion tools | Construction layers, importing CAD drawings, constructing from PDF, converting objects and publishing to GeoServer. |
| 8. From Munsys to QGIS | A guide for existing Munsys users: what maps to what, and what works differently. |
| Appendix A. Menus | The menus of each application and the Object and Tools menus that all applications share. |
| Glossary | Terms used in this manual. |
Conventions in this manual
| Convention | Meaning |
|---|---|
| A function in the MunsysQ menu tree. Expand each level in turn, then double-click the last item. | |
| A function in the QGIS menu bar. | |
SP_PARCEL | A database table, column, layer source or value that you type. |
| Enter | A key on the keyboard. |
Chapter 2Getting acquainted with MunsysQ
MunsysQ overview
Munsys is a multi-user spatial system for utilities and government. Spatial data from different departments is stored in one central database, which removes duplication and lets every department work from the same cadastral base.
The capture and change functions enforce data standards as you work. Before new or changed data reaches the database it is verified by the integrity check, which tests the objects against the business rules. Only then is it posted.
MunsysQ delivers this on QGIS, the open source desktop GIS. You do not need to be a GIS specialist to use it: the MunsysQ menus guide you through each capture and change function, and QAD provides the precise drawing tools that Munsys users know from AutoCAD.
MunsysQ features
- Application-specific capture and change functions. Engineering rules for each discipline are built into the functions, so the data that you capture follows the standard.
- One shared database. MunsysQ, Munsys on AutoCAD and web applications all read and write the same Munsys schema.
- Menus and rules stored as data. The menus, lookup values and application settings that you see are read from the database, so an administrator can maintain them centrally.
- Open standards. Spatial data is read and written through OGC web services (WFS-T), or directly in the database on a private network.
- Built on QGIS. Styling, labelling, printing, filtering and analysis are all standard QGIS functions and remain available while you use MunsysQ.
Introducing the MunsysQ applications
MunsysQ groups its functions by application, in the same way as Munsys. You choose the application that you want to work in from the list on the MunsysQ panel.
| Application | Code | Used for |
|---|---|---|
| MunsysQ Cadastral | CMS | Capture and maintenance of the cadastral base: suburbs, townships, parcels, block boundaries, easements, street names and addresses, buildings and wards, together with the planning layers for density, land use and zoning. Cadastral data is the foundation of the system because every department uses it to position its services. |
| MunsysQ Drainage | DMS | Stormwater networks: pipes, culverts, channels, nodes such as manholes and inlets, service connections and levels, as well as rivers, floodlines, dams and catchments. |
| MunsysQ Roads | RMS | Road centre lines and intersection markers that form the road network, plus road edges, walkways and road areas. Road names and route numbers are attached to the centre lines. |
| MunsysQ Sewer | SMS | Sewer networks: gravity, pressure and vacuum pipes, nodes such as manholes and pump stations, service connections, elevations and gradients, and sewer basins. |
| MunsysQ Water | WMS | Water networks: pipes, nodes such as hydrants, meters and reservoirs, valves, service connections and water zones. |
How MunsysQ fits together
MunsysQ is the part that you see, but it works with several other components. It helps to know what each one does, because each has its own connection and its own credentials.
| Component | What it does |
|---|---|
| Munsys database | Stores all spatial and attribute data in one place, together with the lookup tables, application settings, menu definitions and lock records. Each type of object has its own spatial table, for example SP_PARCEL. |
| GeoServer | Publishes the spatial tables as web services. QGIS reads features and writes edits through the transactional Web Feature Service (WFS-T) over HTTPS. |
| Munsys REST API | Supplies MunsysQ with the menus, lookup values, application settings and new object IDs, and runs integrity validation and the lock service. It does not write your geometry edits. |
| QGIS | The desktop. It holds the project, the layers and their edit buffers, and commits your edits through the layer's connection. |
| QAD | A QGIS plugin that MunsysQ uses for drawing and editing geometry with AutoCAD-style commands. See Chapter 5. |
The MunsysQ user interface
The MunsysQ panel
The MunsysQ panel replaces the Munsys pull-down menus. It docks to the side of the QGIS window and holds the application selector, five buttons and the menu tree.
| Element | Purpose |
|---|---|
| Selects the application. The menu tree changes to show the functions of that application. | |
| Reads the menu definitions from the database again. Use it after an administrator has changed the menus, or after you have changed the REST configuration. | |
| Click a Munsys object on the map to display its information. | |
| Checks that the Munsys REST service can be reached and reports its version. | |
| Opens the MunsysQ Settings dialog box: REST configuration, edit highlight, dimension notes and logging. | |
| Opens the MunsysQ online documentation in your browser. | |
| Menu tree | Lists the functions in five groups, described below. Expand a group with the arrow, then double-click a function to start it. |
The five menu groups
The first three groups belong to the selected application and change when you choose another application. The last two are the same in every application.
| Group | Contains |
|---|---|
| The application settings, the functions that create new objects, labels and notes, the functions and | |
| Functions that modify the objects of the application: editing attributes, changing geometry, changing types, and deleting, undeleting or restoring objects. | |
| The functions that turn imported or construction geometry into objects of the application. | |
| Functions that work on any Munsys object, whatever its application: record locking, refreshing objects, relating objects and general conversion. See Chapter 4. | |
| Line tools for constructing boundaries from registered plans before they become Munsys objects. See Chapter 6. |
The complete menus are listed in Appendix A.
The MunsysQ toolbars
| Button | Purpose |
|---|---|
| Creates and activates a temporary layer for construction lines, polygons, points or text. See Construction layers. | |
| Creates construction geometry from a survey plan supplied as a PDF or image. | |
| Imports an AutoCAD drawing into QGIS so that its contents can be converted to Munsys objects. | |
| For publishers: publishes spatial tables and layer styles to GeoServer. | |
| (MunsysQ Admin toolbar) | For administrators: maintains the values in the lookup tables. |
The QGIS project is your workspace
In MunsysQ there is no drawing, no basemap to query and no drawing catalog. Your workspace is a QGIS project file (.qgz). The project holds a layer for each spatial table that you work with, the style and labels of each layer, and the map view.
A typical MunsysQ project arranges the layers in one group per application, with a basemap group at the bottom, as shown in the Layers panel in Figure 2. A layer is connected to the database for as long as the project is open: as you pan and zoom, QGIS requests the objects for the area that you are looking at. There is no separate query step to bring objects into the workspace.
- MunsysQ finds the layer that a function needs by the spatial table behind the layer, not by the layer name. You can rename layers and move them between groups freely.
- Add each spatial table to the project once. Duplicate layers on the same table make it unclear which layer holds your edits.
- Styles, labels and visibility affect only what you see. They never change the data.
- Filtering layers and querying objects with QGIS is covered in a separate chapter.
Chapter 3Connecting to Munsys data
Before you can capture, MunsysQ needs two connections: one for the spatial layers and one for the Munsys REST service. This chapter explains the choices and shows where each setting is stored.
Two ways to connect the spatial layers
The spatial layers in your project can reach the database in one of two ways. Your administrator decides which one applies to your organisation.
| WFS-T through GeoServer | Direct database connection | |
|---|---|---|
| Typical use | Hosted and cloud deployments, remote users, any connection that crosses the internet. | On-premise deployments where QGIS and the database are on the same private network. |
| How it travels | HTTPS to GeoServer. The database is never exposed to the desktop. | The database's own network protocol, straight from QGIS to the database. |
| You sign in as | A GeoServer account. Its roles decide which workspaces you can read and edit. | A database user. Its database roles decide what you can read and edit. |
| Layer source in QGIS | A WFS feature type, for example CITY:SP_PARCEL. | A database table, for example SP_PARCEL in the Munsys schema. |
| Client software | Nothing beyond QGIS. | QGIS with its database provider and network access to the database server. |
| Posting | Edits are sent as a WFS transaction per layer. | Edits are committed in the database per layer. |
Whichever way the layers connect, MunsysQ behaves the same. The menus, prompts, integrity checks and the function do not change, and in both cases the Munsys REST service is still required.
What travels over which connection
| Layer connection (WFS-T or database) | Munsys REST service |
|---|---|
|
|
Storing credentials in QGIS Authentication
MunsysQ never stores a password or key itself. All credentials are kept in the QGIS authentication store, which is an encrypted database in your QGIS user profile, protected by a master password. Each set of credentials is saved as an authentication configuration with a short ID. Connections, layers and MunsysQ settings then refer to that ID and never contain the credentials themselves.
You normally need two configurations:
| For | Method | What you enter |
|---|---|---|
| GeoServer (WFS-T layers) | Basic Authentication | The GeoServer user name and password issued to you. |
| Munsys REST service | API Header | One header with the name x-api-key and, as its value, the API key issued to you. MunsysQ exchanges this key for a short-lived access token each time it connects. |
| Database (direct connection only) | Basic Authentication | The database user name and password, used instead of the GeoServer configuration. |
To create an authentication configuration
- In QGIS, choose and select the tab.
- On the tab, click the button. If this is the first time you use the authentication store, QGIS asks you to set a master password. Choose one and keep it safe: it cannot be recovered.
- Enter a that tells you what the configuration is for, for example Example City GeoServer.
- Note the . QGIS generates a seven-character ID. If your organisation shares project files, unlock the field and type the ID that your administrator has specified, so that everyone uses the same one.
- Select the method, or , and enter the credentials as described in the table above.
- Click .
Configuring a WFS-T connection
A WFS connection tells QGIS where GeoServer is and which authentication configuration to use. You create it once. It is stored in your QGIS profile and is available in every project.
To create the connection
- Choose and select .
- Click . The connection dialog box is displayed.
Figure 5 A WFS connection for MunsysQ. The values shown are examples. - Enter a for the connection.
- In , enter the WFS address of your workspace as supplied by your administrator. It has the form
https://<server>/geoserver/<WORKSPACE>/wfs. - Under , stay on the tab and select your GeoServer authentication configuration. Do not use the tab: it stores the user name and password as plain text in the connection.
- Set the WFS options as shown in the table below, then click .
| Option | Setting | Why |
|---|---|---|
| Version | Maximum | QGIS negotiates the highest version that the server offers. |
| Preferred HTTP method | POST | Requests with long filters are not limited by the length of a web address. |
| Feature paging | Default (trust server capabilities) | Large layers are fetched in pages. |
| Max. number of features | Leave empty | A limit here silently hides objects beyond the limit. |
| Ignore / Invert axis orientation | Cleared | Change only if your administrator tells you to. |
To add the spatial layers to a project
- In the Data Source Manager, select your connection and click . The feature types that your account may see are listed, named
WORKSPACE:SP_TABLE. - Select . With this option QGIS fetches only the area on screen, which keeps large networks responsive.
- Select the feature types that you need and click .
- Set the project coordinate reference system if required, arrange and style the layers, and save the project.
How to tell that a layer can be edited
A WFS layer can be edited when the server offers transactions for it and your GeoServer account has an edit role on the workspace. If is unavailable for a layer, or a MunsysQ function reports that it cannot start editing a layer, your account has read access only. Contact your administrator.
Configuring a direct database connection
On a private network your administrator may choose to connect QGIS directly to the Munsys database. The principle is the same as for WFS: create a connection once, refer to an authentication configuration, and add the spatial tables to the project as layers.
- Create an authentication configuration of type for your database user, as described in Storing credentials in QGIS Authentication.
- Choose , select the database type that your administrator specifies, and click .
- Enter a connection name and the database, host and port supplied by your administrator, and select the authentication configuration.
- Click , then .
- Connect, select the spatial tables of the Munsys schema that you need, and add them to the project. Where QGIS asks for a key column, use
GID.
Configuring the Munsys REST service
The REST configuration tells MunsysQ where the Munsys REST service is. Configurations are saved by name, so you can keep one for each environment that you work in, for example production and training.
- On the MunsysQ panel, click and select the tab.
- Click and name the configuration, or select an existing one from the list.
- Enter the supplied by your administrator. The and are derived from it and can be adjusted if your administrator specifies different addresses.
- Leave selected.
- In , enter the ID of the API Header authentication configuration that holds your API key.
- Click to confirm that the service responds, then click . The saved configuration becomes the active one.
- On the MunsysQ panel, click . The list fills with your applications.
The MunsysQ Settings dialog box
The button on the MunsysQ panel opens the MunsysQ Settings dialog box. Its settings belong to your QGIS profile, not to the database, so they apply to every project that you open.
| Tab | What it sets |
|---|---|
| The named REST configurations and which one is active, as described in Configuring the Munsys REST service. | |
| The colour, line width and opacity of the edit highlight that marks objects with pending edits. restores the standard highlight. | |
| The gap between a dimension arrow and its note. restores the standard gap. | |
| Which events are written to the MunsysQ log in the QGIS Log Messages panel: REST requests and responses, errors, warnings, information and debug messages. Switch on REST logging only when Open Spatial support asks for it. |
Where each setting is stored
| Stored in | Contains | Shared with a project file? |
|---|---|---|
| QGIS authentication store | User names, passwords and API keys, encrypted with the master password. | No |
| QGIS profile settings | WFS and database connection definitions, and the MunsysQ REST configurations, highlight and logging settings. No credentials. | No |
| QGIS project file | The layers, each with its address, table or feature type and authentication configuration ID, plus styles and labels. | Yes |
| Munsys database | The data, menus, lookup values, application settings and locks. | Shared by all users |
Chapter 4Working with Munsys objects
Introducing Munsys objects
A Munsys object is a record in a spatial table. It combines a geometry with a set of attributes, and it may have further records in linked tables. In QGIS, each spatial table is a layer and each object is a feature in that layer.
Munsys uses four kinds of object:
| Object type | QGIS geometry | Used for |
|---|---|---|
| Point | Point, shown as a symbol | Nodes and symbols such as manholes, hydrants, valves and intersection markers. The symbol name, scale and rotation are stored with the object. |
| Line | Line | Network links and other linear objects such as pipes, road centre lines and easement lines. A line may have any number of bend points. |
| Polygon | Polygon | Areas such as parcels, suburbs, zones and basins. A polygon may contain islands, and one object may consist of several separate polygons. |
| Label | Point, shown as text | Text that is an object in its own right, such as street names, addresses and notes. |
Whatever its type, every Munsys object has the following characteristics:
- Spatial table. The table that holds the object, for example
SP_PARCEL. Each spatial table is identified in the schema by a number, the MunID. - GID. The number that identifies the object. MunsysQ obtains a new GID from the database at the moment you capture an object, so the object already carries its permanent ID before it is posted.
- Tag. A text value with a position, size, angle and justification, used to annotate the object on the map.
- Attributes. The descriptive columns of the table, many of which take their values from lookup tables.
Components of each Munsys object
Each object type has a default set of columns. Application tables add their own attribute columns to these.
| Column | Point | Line | Polygon | Label | Description |
|---|---|---|---|---|---|
GID | Yes | Yes | Yes | Yes | The object ID. |
GEOMETRY | Yes | Yes | Yes | Yes | The geometry of the object. |
SYM_NAME | Yes | The name of the symbol. | |||
SYM_SCALE | Yes | The scale factor of the symbol. | |||
SYM_ANGLE | Yes | The rotation of the symbol. | |||
GEOM_LENGTH | Yes | The length of the line. Maintained by the system. | |||
GEOM_AREA | Yes | The area of the polygon. Maintained by the system. | |||
COMMENTS | Yes | Yes | Yes | Yes | Optional comments, set with |
TAG_VALUE | Yes | Yes | Yes | Yes | The tag text. |
TAG_X, TAG_Y | Yes | Yes | Yes | Yes | The insertion point of the tag. |
TAG_SIZE | Yes | Yes | Yes | Yes | The text height of the tag. |
TAG_ANGLE | Yes | Yes | Yes | Yes | The rotation of the tag. |
TAG_JUST | Yes | Yes | Yes | Yes | The justification of the tag. |
Tags and labels
In MunsysQ a tag is drawn as a QGIS label. The standard layer styles read the tag columns, so the label shows the tag value at the stored position, height, angle and justification. Because Munsys on AutoCAD reads the same columns, a tag looks the same in both products.
The capture functions place the tag at a default position, for example the midpoint of a line. Functions such as change the stored position. Changing the label settings in the QGIS layer style changes only how tags are displayed on your screen.
Each application also has functions on its menu for placing labels, notes and dimension arrows, for example and .
Lookup tables
Many attributes can take only a value from a fixed list, for example pipe material or parcel type. These lists are held in lookup tables in the database. Each entry has a code, which is stored with the object, and a description, which is what you see.
Functions whose names end in a type or attribute, such as , display the lookup list and apply the value that you choose to the selected objects. Administrators maintain the lists with the button on the MunsysQ Admin toolbar.
Application settings
Each application has a settings function at the top of its group, for example . The settings are the defaults that the capture and integrity functions use: the type, diameter and material given to a new pipe, symbol scales, text heights, offsets and integrity tolerances.
Review the settings before you start a capture task. Setting the defaults to match the work in hand means that new objects receive the correct attributes as you draw them, and you do not have to change them afterwards.
As an example, the Water settings are grouped as follows:
| Group | Settings |
|---|---|
| General | Water Category |
| Water Pipe | Pipe Diameter, Pipe Material, Pipe Type, Default Offset Distance, Pipe Label Height |
| Water Node | Node Category, Node Function |
| Node, Water Symbol | Node Scale, Symbol Scale |
| Service Connection | Service Connection Length, Offset Distance, Branch Offset, the object type that service connections link to |
| Integrity | Short Objects, Node Tolerance, Pipe Tolerance, Search Tolerance, Service Connection Tolerance |
| Dimension, Note, Zone | Dimension Note Height, Note Tag Height, Zone Tag Height |
The life cycle of an edit
Every capture and change follows the same four stages. Understanding them is the key to working safely in MunsysQ.
Pending edits and the edit buffer
When a MunsysQ function creates or changes an object, it switches the layer into edit mode and places the change in the layer's edit buffer. The edit buffer is held by QGIS on your computer. Nothing has reached the database yet and no other user can see the change.
Objects with pending edits are drawn with a highlight so that you can see at a glance what you have changed since you last posted. This is the MunsysQ equivalent of the working colour in Munsys. You can set the colour, width and opacity of the highlight on the tab of the MunsysQ Settings dialog box.
Each MunsysQ function is recorded as one step, so reverses the whole function, including any attributes and related objects that it changed.
Editing attributes
Spatial object attributes
displays the attributes of the objects that you select, in a dialog box with the columns Attribute, Value and Status. Attributes that take lookup values offer the list, and mandatory attributes must be completed before the object will pass the integrity check.
- Use the arrow buttons to step through the selected objects.
- Select to apply a value to all the selected objects in one step.
- Select to have the map follow the object that you are editing.
Linked table attributes
Some information about an object is kept in a separate, non-spatial table that is linked to the spatial table, for example the floors and rooms of a building. One object can have several linked records. lets you step through the linked records of an object and insert, change or delete them.
Single-attribute functions
For the attributes that are changed most often, each application provides direct functions, such as in Water or in Cadastral. They prompt for a value, then for the objects to apply it to.
The integrity check
The integrity check validates new and changed objects against the Munsys business rules before they are posted. It is found under in every application.
| Function | What it does |
|---|---|
| Checks each object on its own: that mandatory attributes are complete, that values are valid, and that the geometry is acceptable, for example that a line is not shorter than the Short Objects setting. | |
| Checks how the objects of a network fit together: that links end at nodes, that nodes are connected to the right kinds of link, and that there are no duplicate links. The tolerances come from the application settings. Available in the network applications. | |
| Steps through the problems that were found, zooming to each one in turn. | |
| Removes the markers from the map. |
Each problem that the check finds is shown on the map as an integrity marker at the location of the object, in a temporary layer named Integrity Errors. Correct the object, then run the check again. The markers are a working aid on your computer only and are never posted.
Posting to the database
writes your pending edits to the database. It works on the application that is selected in the list and posts every layer of that application that has pending edits.
- Choose . The Post to Database dialog box lists the layers to be posted, with the number of objects inserted, updated and deleted in each.
- Check that the totals are what you expect, then click .
- The Post to Database Results dialog box shows what was posted. Each layer has a status, and a message if it could not be posted.
Layers are posted one at a time. If a layer cannot be posted, its edits stay pending in the edit buffer so that you can correct the problem and post again, while the other layers are posted normally. After a successful post, the highlight is cleared, the locks on the posted objects are released, and the objects are available to all users.
Deleting and restoring objects
| Function | What it does |
|---|---|
| Marks the selected objects for deletion. The deletion is a pending edit and takes effect in the database when you post. | |
| Cancels a pending deletion that has not been posted yet. | |
| Brings back an object whose deletion has already been posted, from the archive that the database keeps of deleted objects. |
Munsys record locking
Because many users work on the same database, Munsys provides record locking: the ability to lock individual objects for editing. When an object is locked, other users are prevented from changing it until your changes have been posted to the database, or until the object is unlocked. Locks apply across MunsysQ and Munsys on AutoCAD.
How objects become locked
- Implicitly. When you use any Change function, the objects that you select are locked automatically. They stay locked until you have posted the changes, after which they are unlocked automatically.
- Explicitly. With you lock objects yourself before you start, for example to reserve all the objects of a task. Explicitly locked objects are also unlocked automatically when the changes that you made to them are posted.
When an object is locked, its geometry and tag position are refreshed from the database. This ensures that you start from the latest information at the moment you obtain editing rights on the object.
If a function selects an object that another user has locked, the change is refused and you are told who holds the lock.
What a lock is
A Munsys lock is a record in the table MUNSYS_LOCKED_OBJECTS. It is not a lock held by a database session. That has two consequences:
- A lock stays in place when you close QGIS, restart your computer or lose your connection. It remains until it is released.
- A lock is visible to every Munsys product. An object locked in MunsysQ is locked for Munsys on AutoCAD, and the other way round.
| Column | Contains |
|---|---|
GID | The ID of the locked object. This is the key of the table, so an object can have only one lock at a time. |
MUN_ID | The spatial table that the object belongs to. |
USER_NAME | The user who holds the lock. |
TIME | The date and time at which the lock was taken. |
How the database grants and releases locks
All lock requests go through the lock manager in the database, so the same rules apply whichever product asks.
| Request | What the database does |
|---|---|
| Lock an object | Confirms that the object exists in its spatial table. If nobody holds a lock on it, a lock record is written with your user name and the current time. If someone already holds the lock, the request is refused and the name of that user is returned. |
| Check an object | Reports whether the object is locked and, if so, by whom. |
| Unlock an object | Removes the lock record, but only if you are the user who holds it. If another user holds the lock, the request is refused and the name of that user is returned. |
MunsysQ reaches the lock manager through the lock service of the Munsys REST API. Locking therefore works identically whether your layers use WFS-T or a direct database connection.
Locking objects
With this function you lock several objects in one step, preventing other users from changing them while you work.
- Choose .
- At the prompt
Select objects to be locked..., select the objects on the map and press Enter. - The command line reports the result for the selection: how many objects were locked and, for any object that another user has already locked, who holds the lock.
The layers of the objects that you have locked are switched to edit mode, so that you can continue straight away with a change function or with grips.
Showing locked objects
This function shows which objects in an area are locked.
- Choose .
- At the prompt
Specify user category [Current user/Other users] <current user>, choose whose locks you want to see. Press Enter to accept your own. - At the prompt
Select objects to be verified..., select the objects to check and press Enter.
The objects in your selection that are locked remain selected on the map, the map zooms to them, and the command line reports how many were found.
Browsing locked objects
lists the objects that you have locked in the current application, whether or not they are in view. For each lock the Browse Locked Objects dialog box shows the spatial table, the GID, the MunID, the user and the status.
| Button | Purpose |
|---|---|
| Selects the chosen objects on the map. | |
| Selects the chosen objects and zooms the map to them. | |
| Releases the chosen locks. |
Unlocking objects
Objects whose changes you post are unlocked automatically and need no further action. You only have to unlock objects yourself when you locked them and then did not change them, or when you decide not to go ahead with a change.
- Choose .
- At the prompt
Select objects to be unlocked..., select the objects and press Enter.
Your locks on the selected objects are released. Locks held by another user are not affected, and the command line tells you who holds them. You can also release locks from the Browse Locked Objects dialog box.
What you need to know as a user
- Locking is a database setting. The administrator enables or disables record locking for the whole database. When it is disabled, several users can change the same object, and the last one to post determines its final state.
- Edit mode is not a lock. Putting a QGIS layer into edit mode does not reserve anything in the database. Only a lock record does.
- Posting completes the cycle. A lock lasts from the moment you start changing an object until the change has been posted. Post regularly, so that objects are not kept from other users longer than necessary.
- Locks belong to a user. Only the user who holds a lock can release it. An administrator can view and clear the locks of any user, for example when someone is away and has left objects locked.
- Do not leave locks behind. Objects that you locked but did not change stay locked until you unlock them. Unlock them before you close QGIS.
Refreshing objects
The map shows the objects as they were when QGIS last read them. reads the selected objects again, so that you see the latest posted state and the current lock status before you start work on them.
- Choose .
- At the prompt
Select objects to refresh..., select the objects and press Enter.
The layers that hold the selected objects are reloaded from the database, and the command line confirms how many objects were refreshed.
Relating objects
Two Munsys objects can be linked in a parent and child relationship, for example to record that one object belongs to another. Relationships are stored in the database and can connect objects in different spatial tables.
- Choose .
- At the prompt
Select PARENT Object:, select the parent. - At the prompt
Select CHILD Object:, select the child. The command line confirms that the relationship has been defined.
removes a relationship in the same way: select the parent, then the child.
Chapter 5QAD: AutoCAD-style capture in QGIS
What QAD is
QAD is a QGIS plugin that adds the drawing and editing commands of a CAD system to QGIS. It gives QGIS a command line, typed coordinates, object snaps, polar tracking and grips, with command names and prompts that follow AutoCAD.
MunsysQ uses QAD for the geometry part of its functions. That is how MunsysQ keeps the Munsys way of capturing: you start a function from the MunsysQ menu, and the function then prompts you step by step at the command line, exactly as a Munsys function does in AutoCAD.
How a MunsysQ function runs
- You double-click a function in the MunsysQ menu tree, for example .
- MunsysQ makes the correct layer current, switches it to edit mode and sets the snapping that the function needs. You do not have to select the layer yourself.
- A prompt appears on the QAD command line, for example
Select pipe:or a request for a point. - You answer the prompt by clicking on the map, by snapping to an existing object, or by typing a coordinate, distance or option and pressing Enter.
- The function continues to prompt until it has everything it needs. Press Enter or right-click to finish a sequence of points, or Esc to cancel the function.
- MunsysQ completes the object: it obtains the GID, applies the default attributes from the application settings, places the tag, and updates any related objects, such as breaking a pipe where a node was inserted. The result is a pending edit, highlighted on the map.
How QAD mimics AutoCAD
| In AutoCAD | In QGIS with QAD |
|---|---|
| Command line | The QAD text window, docked below the map. Type a command name or alias and press Enter. Press Enter on an empty line to repeat the last command. |
| Command prompts and options | Prompts list their options in square brackets. Type the capitalised letters of an option, or click the option. |
| Typed coordinates | Absolute x,y, relative @dx,dy and polar @distance<angle are all accepted wherever a point is requested. |
| Direct distance entry | Point the cursor in a direction, type a distance and press Enter. |
| Object snaps | Endpoint, midpoint, intersection, nearest, perpendicular, centre and the other object snaps, set as running snaps or typed as an override during a command. |
| Ortho and polar tracking | Available as status toggles, using the AutoCAD function keys. |
| Dynamic input | Prompts, coordinates, lengths and angles shown at the cursor. |
| Selection | Pick single objects, or drag a window from left to right to select what is inside it and from right to left for a crossing selection. The command line reports how many objects were found. |
| Grips | Select an object without a command active to show its grips, then drag a grip to stretch or move it. |
| Drawing commands | LINE, PLINE, ARC, CIRCLE, POLYGON, RECTANGLE, TEXT and others. |
| Modify commands | MOVE, COPY, ROTATE, OFFSET, TRIM, EXTEND, BREAK, FILLET, STRETCH, LENGTHEN, JOIN, PEDIT, MIRROR and others. |
What is different from AutoCAD
- A layer holds one kind of geometry. A QGIS layer is a point, line or polygon layer, and each Munsys spatial table is one layer. You cannot draw a line in a point layer. MunsysQ selects the correct layer for each function.
- Symbols instead of blocks. A node is a point with a symbol name, scale and angle. Placing a node is placing a point; the symbol is drawn by the layer style.
- Editing happens in the edit buffer. QAD commands work on layers that are in edit mode, and their results are pending edits like any other.
- Use the MunsysQ function where one exists. You can run QAD commands yourself on a Munsys layer, but a plain QAD command changes only the geometry. The MunsysQ functions also keep the attributes, tags and network connections in step. For example, use rather than the QAD BREAK command, so that both parts receive correct IDs and attributes.
- Plain QAD commands are ideal on construction layers. Use them freely to draw the construction geometry from which you later build or convert Munsys objects. See Construction layers.
- QGIS tools still work. Pan, zoom, identify, measure and the attribute table are all available while you work, and you can pan and zoom with the mouse in the middle of a command.
Chapter 6MunsysQ line tools
Objectives
The menu is the same in every application. Its functions are used to construct cadastral boundaries and other line work from registered plans, working from the coordinates, distances and directions shown on the plan.
The tools work on construction geometry, not on Munsys objects. What they draw is placed on temporary construction layers. It reaches the database only when you generate or convert Munsys objects from it and post them.
Coordinate files
A coordinate file is a list of coordinated points taken from a plan. Each entry has a plan number, a point label, and a Y and X coordinate. You enter the points once, check them, and then construct the boundaries by naming the points to join. The default file name is COORDS.LXY, the same format that Munsys uses, so coordinate files can be exchanged between the two products.
| Function | What it does |
|---|---|
| Creates a coordinate file, or adds points to an existing one. If the file exists, you choose whether to append to it or overwrite it. | |
| Displays the contents of a coordinate file so that you can check it against the plan. | |
| Draws lines between the points of a plan. |
To construct boundaries from a coordinate file
- Choose and select the coordinate file.
- On the command line, enter the plan number.
- Enter the label of the start point, then the label of the end point. A line is drawn between the two points and its length is shown on the command line, so that you can compare it with the distance on the plan.
- Confirm that the line is correct, then continue with the next pair of labels.
- Press Esc when the boundaries are complete.
Drawing by distance and direction
Plans usually describe a boundary as a series of distances and directions rather than coordinates. These functions let you draw straight from those figures.
| Function | What it does |
|---|---|
| Prompts for a start point, then repeatedly for the distance and direction to the next point. | |
| As above, but each leg is given as a distance and the internal angle from the previous leg. Use it for plans that show internal angles instead of directions. | |
| Annotates the selected lines with their distance and direction, aligned with each line. Use it to check constructed line work against the plan. | |
| Rotates selected geometry about a base point so that a reference direction matches a destination direction. Use it when a diagram was drawn with local angles and must be turned to fit the surrounding parcels. |
The drawing functions start with the prompt Specify start point or [Format]:. Choose Format to set how you will type directions. In the Munsys format, a direction is typed as degrees, a decimal point, then minutes and seconds: 23.2541 means 23 degrees, 25 minutes and 41 seconds. Directions written on lines are shown as DDD-MM-SS.
Chapter 7Construction and conversion tools
Not everything that you draw is a Munsys object straight away. Survey plans, as-built drawings and working geometry are first brought into QGIS as ordinary geometry, and then turned into Munsys objects. This chapter introduces the tools for that.
Construction layers
Construction layers are the MunsysQ equivalent of drawing plain AutoCAD lines before generating Munsys objects from them. The button on the MunsysQ toolbar creates and activates one of four temporary layers:
| Menu item | Layer |
|---|---|
| MunsysQ Construction Lines | |
| MunsysQ Construction Polygons | |
| MunsysQ Construction Points | |
| MunsysQ Construction Text |
With a construction layer active, draw with the QAD commands or with the functions of the menu described in Chapter 6. Typical uses are setting out parcel boundaries from a plan before generating the parcel polygons, and drawing road construction lines before generating road centre lines. clears the construction layers so that you can start the next task with an empty workspace.
Generating polygons from construction lines
When the boundaries of an area have been constructed, the applications build the Munsys polygon objects from them, complete with attributes and tags. Examples are in Cadastral and in Drainage. The construction lines must close exactly: every boundary must end on another boundary, with no gaps or overshoots.
Constructing from a PDF or image
reads a survey plan supplied as a PDF or scanned image and creates construction geometry from it, placed in its own group of construction layers. You then check the result against the plan and convert it in the same way as geometry that you have drawn yourself.
Importing CAD drawings
brings an AutoCAD drawing into QGIS. You choose the drawing and the drawing layers that you want, and MunsysQ writes them to a GeoPackage file and adds them to the project as layers of lines, polygons, points, text and block references, styled to resemble the drawing.
The imported layers are reference data. They do not become part of the Munsys database until you convert the objects that you need.
Converting geometry to Munsys objects
The group of each application contains the conversion functions. They take existing geometry, from an imported drawing or a construction layer, and create Munsys objects from it.
| Function | Converts |
|---|---|
| Imported block references or points to nodes and symbols, for example to a Manhole or a Gate Valve. | |
| Lines to linear objects, for example to a Water Pipe, a Road CL or an Easement. | |
| Text to label objects or to the tags of polygon objects, for example to a Street Address or a Parcel Tag. | |
| Closed shapes to polygon objects, for example to a Parcel, a Building or a Water Zone. |
A conversion function asks you to select the source geometry and then displays the Object Conversion dialog box. There you confirm the source layer and assign values to the attributes of the new objects, either as fixed values or taken from the source. An assignment can be saved as a profile and loaded again for the next drawing of the same kind.
opens the same Object Conversion dialog box without a preset target. Use it when you want to choose the type of Munsys object yourself, or to convert to a type that has no entry on the menu.
Converted objects are new Munsys objects with pending edits. They pass through the integrity check and posting like any other capture.
Publishing to GeoServer
is intended for users with a publisher role. It keeps GeoServer in step with the database and with the standard QGIS styles, so that WFS-T users and web applications see the same layers with the same symbology.
| Tab | Purpose |
|---|---|
| Server Info | The GeoServer address, the authentication configuration and the workspace and data store to publish to. |
| Spatial Tables | Publishes spatial tables from the database as GeoServer layers, for map display (WMS), editing (WFS) or both. |
| Layer Styles | Converts the styles of the layers in your QGIS project and updates the matching GeoServer styles. |
| DWG GeoPackage | Publishes an imported drawing as reference layers. |
Chapter 8From Munsys to QGIS
This chapter is for users who know Munsys on AutoCAD. The data model, the business rules and the names of most functions are unchanged. What changes is where things are and how the desktop behaves.
Where to find what you know
| In Munsys on AutoCAD | In MunsysQ on QGIS |
|---|---|
| Launching a Munsys application from its icon | Open QGIS and choose the application in the list on the MunsysQ panel. |
| Connect to Database dialog box | Nothing to do each session. The layers connect through their saved connection, and MunsysQ through the active REST configuration. Credentials come from QGIS Authentication. |
| The drawing | The QGIS project. |
| AutoCAD layers | QGIS layers, one per spatial table, arranged in groups. |
| Basemap and catalog drawings | Basemap and reference layers in the project, such as imagery, web map services and imported drawings. |
| Querying objects into the drawing | Not needed. Layers show the database content for the area in view. Use QGIS layer filters to restrict what a layer shows. |
| Geographic Search Criteria (GSC) | The map extent, together with QGIS selections and filters. |
| Info Palette | on the MunsysQ panel, and the QGIS Identify tool and attribute table. |
| Pull-down menus and toolbars | The menu tree on the MunsysQ panel. |
| AutoCAD command line | The QAD text window. |
| AutoCAD blocks for nodes | Point symbols drawn by the layer style from the symbol name, scale and angle. |
| Tags | QGIS labels driven by the tag columns. |
| Record locking | Works the same way and on the same lock table. The lock functions are on the menu. |
| Line tools | The menu, working on construction layers. |
Coordinate files (COORDS.LXY) | The same files and format, under . |
| Working colour for new and changed objects | The edit highlight. |
| Integrity markers | Markers in the temporary Integrity Errors layer. |
| Post to Database | , per application. |
| Application settings | The settings function at the top of each group. The values are shared with Munsys because they are stored in the database. |
| Plain AutoCAD lines used for construction | Construction layers. |
| Converting AutoCAD entities in the drawing | , followed by the functions. |
| Object display properties and layer colours | QGIS layer styling. |
| Viewports, north points, scale bars and legends | QGIS print layouts. |
How the menus compare
MunsysQ keeps the Munsys menu structure. Each application has its , and menus, and the and menus are shared by all applications. Within each menu the functions keep the names and the order that they have in Munsys, so you will find them where you expect them.
- The Query menu is the one menu with no counterpart, because layers are always connected to the database.
- The menus are a tree on the MunsysQ panel instead of pull-down menus, and a function is started with a double-click.
- The functions draw on construction layers instead of on plain AutoCAD layers.
Things that work differently
- Save is not Post. Saving a QGIS project does not write anything to the database. Only does.
- You always see current data. Because layers read from the database as you move around the map, you see what other users have posted without querying again. Refresh the map to update the current view.
- Nothing is stored in the workspace. A Munsys drawing holds a copy of the objects that were queried into it. A QGIS project holds only the layer definitions. Apart from your pending edits, there is nothing in the project that can become out of date.
- One layer, one kind of geometry. There is no mixing of points, lines and text on one layer as in a drawing.
- Styling is separate from data. Changing a colour, symbol or label in QGIS changes the layer style, never the object. To change what an object is, change its attributes.
- Selections are temporary. A QGIS selection is not saved under a name. To work repeatedly on the same area, use a spatial bookmark or a layer filter.
- Coordinates. The project has its own coordinate reference system and QGIS reprojects layers on the fly. Coordinates that you type at the QAD command line are in the project coordinate reference system.
Recommended first steps
- Start with the application that you know best, in a training database or a quiet area of the network.
- Open the prepared project, check , and confirm that the menu tree loads.
- Review the application settings.
- Capture one simple object, such as a single pipe with its end nodes, following the prompts at the command line.
- Open on the new object and check that the defaults were applied.
- Run and , and browse any markers.
- Choose , check the counts, and post.
- Confirm the result in Munsys on AutoCAD, or ask a colleague to refresh their map and check that the object appears.
ReferenceGlossary
- API key
- The credential that identifies you to the Munsys REST service. It is stored in a QGIS authentication configuration and exchanged for a short-lived access token.
- Application
- A set of MunsysQ functions for one discipline, such as Cadastral or Water. Also called a module.
- Application settings
- The default values and tolerances that the capture and integrity functions of an application use.
- Authentication configuration
- A set of credentials saved in the QGIS authentication store and referred to by its ID.
- Construction layer
- A temporary layer for working geometry that is not posted to the database.
- Coordinate file
- A file of plan numbers, point labels and coordinates from which boundaries are constructed. The default name is
COORDS.LXY. - Edit buffer
- The place where QGIS holds the pending edits of a layer until they are posted or discarded.
- Edit highlight
- The emphasis drawn around objects that have pending edits.
- GeoServer
- The map server that publishes the Munsys spatial tables as web services.
- GID
- The unique number that identifies a Munsys object.
- Integrity check
- The validation of objects and networks against the Munsys business rules before posting.
- Integrity marker
- A temporary marker on the map showing where the integrity check found a problem.
- Linked table
- A non-spatial table holding additional records for the objects of a spatial table.
- Lock
- A record in the database that reserves an object for one user until that user releases it.
- Lookup table
- A table holding the list of valid codes and descriptions for an attribute.
- MunID
- The number that identifies a spatial table within a Munsys schema.
- Munsys REST service
- The web service that supplies MunsysQ with menus, lookup values, settings and IDs, and that runs integrity validation and locking.
- Node
- A point object at the end of, or on, a network link, such as a manhole, valve or intersection marker.
- Parent and child relationship
- A link between two Munsys objects, created with .
- Posting
- Writing pending edits to the database so that they become visible to all users.
- QAD
- The QGIS plugin that provides AutoCAD-style commands, prompts and snaps.
- Service connection (SC)
- The link between a network main and a property.
- Spatial table
- A database table holding the objects of one type, for example
SP_PARCEL. Shown in QGIS as a layer. - Tag
- The annotation text of an object, with its position, height, angle and justification.
- WFS-T
- Transactional Web Feature Service. The OGC standard through which QGIS reads and writes features on GeoServer.
- Workspace
- A GeoServer container that groups the layers of one database schema.