tcpMDT
Artificial Intelligence — MCP Commands
Introduction
tcpMDT 2026 lets you control MDT using natural language from artificial intelligence assistants compatible with MCP (Model Context Protocol). Simply describe what you need: the assistant chooses the appropriate command, fills in its details and runs it on the active drawing in CAD.
The workflow is always the same:
Write the instruction in natural language, in your own words.
The assistant interprets the request and selects the matching command.
The command runs on the active drawing and the assistant shows you the result.
General requirements
tcpMDT 2026 running on a supported CAD platform.
An MDT drawing open and active in CAD. All commands act on that drawing.
An artificial intelligence assistant compatible with MCP, connected to tcpMDT 2026.
Some commands need data already present in the drawing (an active surface, an alignment, a profile already generated...). Each entry indicates this in its prerequisites section.
Command summary
Module | Command | What it does |
|---|---|---|
Points | Query points ( | Queries the MDT points in the drawing, with filters by code and elevation |
Points | Point information ( | Shows all the data of a specific point |
Points | List codes ( | Lists the codes present in the drawing and how many points each one has |
Points | Draw breaklines by code ( | Connects the points of a code with a 3D polyline |
Points | Draw breakline by range ( | Connects the points between two numbers with a 3D polyline |
Points | Connect points by proximity ( | Connects the points of a code as long as they are not separated by more than a distance |
Layers and drawing | Create layer ( | Creates a layer with colour and line type |
Layers and drawing | Drawing summary ( | Shows the limits, coordinate system, points, surface and alignments of the drawing |
Layers and drawing | Set layer visibility ( | Shows or hides a specific layer or a group of layers |
Surfaces | Create surface ( | Triangulates the drawing points and generates a TIN surface |
Surfaces | Surface information ( | Shows the statistics of the active surface |
Surfaces | Generate contours ( | Draws the contour lines of the active surface |
Surfaces | Volumes between two surfaces ( | Calculates cut and fill between two surfaces |
Surfaces | Earthwork for a platform ( | Calculates cut and fill of a drawn platform |
Alignments and longitudinal profiles | List alignments ( | Lists the alignments in the drawing with their stations and length |
Alignments and longitudinal profiles | Find alignment ( | Finds an alignment by name and zooms to it |
Alignments and longitudinal profiles | Generate longitudinal profile ( | Calculates the terrain profile along an alignment |
Alignments and longitudinal profiles | Draw longitudinal profile ( | Draws the longitudinal profile of an alignment with its Numerical Data |
Cross sections | Generate cross sections ( | Calculates the cross sections of an alignment over the active surface |
Cross sections | Draw cross sections ( | Draws the cross sections of an alignment without Numerical Data |
Cross sections | Draw cross sections with Numerical Data ( | Draws the cross sections of an alignment with their Numerical Data |
Cross sections | Volume by cross-section differences ( | Calculates cut and fill between two cross-section files |
Cross sections | Pavement layers measurement ( | Measures the thickness and volume of the pavement layers of a road |
Stakeout | Analyse points against the surface ( | Calculates the elevation difference of each point against the surface |
Stakeout | Stakeout lines list ( | Calculates the stakeout points of the indicated elements at station intervals |
Plots | List plots ( | Lists the plots in the drawing with area, cadastral reference and owner |
Plots | Plot details ( | Shows the data of a plot and the coordinates of its vertices |
Plots | Merge plots ( | Merges several adjoining plots into one |
Plots | Split a plot into parallel strips ( | Splits a plot into strips parallel to one of its sides |
Plots | Locate a plot ( | Locates a plot by name and zooms to it |
Plots | Export plots to GML ( | Exports plots to the GML INSPIRE 4.0 format |
Plots | Query the fields of a Shapefile ( | Shows the fields of a Shapefile with sample values to choose which field matches each attribute |
Plots | Import plots from a Shapefile ( | Imports the polygons of a Shapefile as plots, using the given field mapping |
1. Points
Query points — query_points
Queries the MDT points in the active drawing and shows, for each one, its number, its X, Y, Z coordinates and its code. You can filter by code and by elevation range.
Data you can provide:
Data | Required | Description |
|---|---|---|
Code | No | Exact MDT code to query, for example |
Minimum elevation | No | Only points with a Z elevation equal to or higher than this value, in metres, are shown. |
Maximum elevation | No | Only points with a Z elevation equal to or lower than this value, in metres, are shown. |
Result: a list of points with their number, X, Y, Z coordinates and code.
Example instructions:
"Show me all the points in the drawing with code BASE."
"List the points with elevation between 500 and 520 metres."
"Show me the points with code CUNETA above 480 m."
"Give me the points in the drawing."
Point information — get_point_info
Shows all the data of a specific point: number, X, Y, Z coordinates, code, level and layer.
Data you can provide:
Data | Required | Description |
|---|---|---|
Point number | Yes | Number of the MDT point to query. |
Result: point record with its coordinates, code, level and layer.
Example instructions:
"Give me the data of point 125."
"On which layer is point 40 and what code does it have?"
"Show me the complete information of point 1502."
"What is the elevation of point 88?"
List codes — list_codes
Lists all the distinct codes that appear in the points of the drawing, with the number of points of each one. The list is sorted alphabetically.
Data you can provide: no data is required.
Result: alphabetical list of codes, with the number of points of each one.
Example instructions:
"Which codes are in the drawing?"
"Give me the list of codes with how many points each one has."
"List the codes of the survey so I know which ones I can connect."
Draw breaklines by code — draw_breakline_by_code
Draws one or several 3D breaklines connecting the points that have the indicated code, in ascending order of point number. If distance, elevation difference or angle limits are given, the line is cut into separate sections each time one of those limits is exceeded.
Data you can provide:
Data | Required | Description |
|---|---|---|
Code | Yes | Exact MDT code of the points to connect. |
Target layer | No | Layer where the line is drawn. By default, a layer with the same name as the code. |
Colour | No | ACI colour from 1 to 256. Default 256, which means "by layer". |
Maximum distance | No | Maximum horizontal distance between consecutive points, in metres. If exceeded, the line is cut. |
Maximum elevation difference | No | Maximum elevation difference between consecutive points, in metres. If exceeded, the line is cut. |
Maximum angle | No | Maximum angle between consecutive segments, in degrees. If exceeded, the line is cut. |
Result: a 3D polyline in CAD with the points connected. If the filters cut it, several polylines are drawn and the assistant states how many were created.
Example instructions:
"Draw the breakline of the points with code CAMINO."
"Connect the points with code BORDILLO in a breakline, cutting it where there is more than 30 metres between points."
"Draw the points with code CUNETA on layer CUNETAS, in colour 1."
"Make the breakline of code TALUD on layer ROTURAS and cut the line if the elevation changes by more than 2 metres between consecutive points."
Draw breakline by point number range — draw_breakline_by_range
Draws a 3D breakline connecting the points whose number lies between two values. Both ends are included. Numbers that do not exist in the drawing are skipped.
Data you can provide:
Data | Required | Description |
|---|---|---|
Starting point | Yes | Number of the first point of the range (included). |
Ending point | Yes | Number of the last point of the range (included). |
Target layer | No | Layer where the line is drawn. Default |
Colour | No | ACI colour from 1 to 256. Default 256, "by layer". |
Result: a breakline with the number of vertices and the layer where it was drawn.
Example instructions:
"Draw a breakline with the points from 100 to 250."
"Connect points 1 to 80 on layer EJE_TERRENO."
"Make a breakline with the points from 500 to 520 in colour 3."
Connect points by proximity — connect_points_by_proximity
Connects with 3D polylines the points of the same code, as long as each consecutive point is no further away than the indicated limit. The assistant sorts the points by number, applies the filters and draws the result in a single operation.
Data you can provide:
Data | Required | Description |
|---|---|---|
Code | Yes | Exact MDT code of the points to connect. |
Maximum distance | Yes | Maximum horizontal distance between consecutive points, in metres. |
Maximum elevation difference | No | Maximum elevation difference between consecutive points, in metres. |
Maximum angle | No | Maximum angle between consecutive segments, in degrees. |
Target layer | No | Layer where the polylines are drawn. By default, a layer with the name of the code. |
Colour | No | ACI colour from 1 to 256. Default 256, "by layer". |
Result: the polylines created, with the number of vertices and the layer used. If a single polyline is created, its number of vertices is stated.
Example instructions:
"Connect the points with code BORDILLO as long as they are 15 metres apart or less."
"Connect the points with code CUNETA with a maximum of 10 m between points and 0.5 m of elevation difference."
"Connect the points with code MURO at 5 m distance and a maximum angle of 30 degrees, on layer MUROS."
2. Layers and drawing
Create layer — create_layer
Creates a layer in the drawing with the indicated name and, if desired, a colour and a line type. If the layer already exists, the assistant says so without raising any error.
Data you can provide:
Data | Required | Description |
|---|---|---|
Name | Yes | Name of the layer. Up to 255 characters. |
Colour | No | ACI colour from 1 to 255. Default 7 (white). |
Line type | No | Line type of the layer, for example |
Result: confirmation of the layer created, with its colour. If it already existed, the assistant reports it.
Example instructions:
"Create a layer called ROTURAS in colour 1."
"Create the layer EJES_PROYECTO with a dashed line."
"Create the layer CURVAS_NUEVAS in colour 3 with a continuous line."
Drawing summary — get_drawing_summary
Shows a general summary of the active drawing: X, Y and Z coordinate limits, assigned coordinate system, number of MDT points, active surface (name and 2D area) and number of alignments.
Data you can provide: no data is required.
Result: summary of the state of the drawing.
Example instructions:
"Give me a summary of the drawing."
"Which coordinate system does the project use and how many points are there?"
"How many alignments are there and which surface is active?"
"Show me the general state of the drawing."
Note: The summary is obtained when you ask for it. It is not run automatically when the assistant connects.
Set layer visibility — set_layer_visibility
Shows or hides a specific layer, identified by its exact name, or all the layers of a group.
Data you can provide:
Data | Required | Description |
|---|---|---|
Show | Yes | Yes to show the layers. No to hide them. |
Layer | Yes (one of the two) | Exact name of a specific layer. |
Group | Yes (one of the two) | Layer group: Points, Breaklines, Surfaces, Contour lines, Profiles, Alignments, Meshes or Networks. |
Indicate one layer or one group, but not both at once.
Result: confirmation of the layers that were shown or hidden. If the group indicated has no layers in the drawing, the assistant says so.
Example instructions:
"Hide layer CURVAS_NORM."
"Show all the contour lines."
"Hide the points in the drawing."
"Show the breaklines."
3. Surfaces
Create surface — create_surface
Creates a triangulated surface (TIN) from the MDT points of the drawing and draws it in CAD. It can take into account the breaklines of the indicated layers, so that the discontinuities of the terrain are respected. The surface file is saved in the same folder as the drawing.
Prerequisites: the drawing must contain MDT points.
Data you can provide:
Data | Required | Description |
|---|---|---|
Name | No | Name of the surface and of its file. By default, the name of the drawing. |
Breakline layers | No | Layers with breaklines, separated by commas, for example |
Maximum triangle side | No | Maximum length of a triangle side, in metres. With 0 there is no limit. If omitted, the value configured in MDT is used. |
Layer | No | Layer where the triangulation is drawn. By default, the configuration prefix of MDT followed by the name of the surface. |
Draw as 3D faces | No | Yes to draw 3D faces; No to draw lines. If omitted, the MDT configuration is used. |
Result: number of triangles and vertices, planar (2D) area and real (3D) area, minimum and maximum elevations, drawing layer and generated file.
If a surface file with that name already exists, the command does not overwrite it and the assistant will ask you for another name.
Example instructions:
"Create the surface of the drawing with the breaklines of layers CAMINO and BORDILLO."
"Generate the surface called TERRENO_ACTUAL with no triangle side limit."
"Create a surface called PROYECTO_2 and draw the triangles as lines."
"Make the surface of the drawing with triangle sides of 20 metres at most."
Surface information — get_surface_info
Shows the state and statistics of the active surface of the drawing.
If it is a triangulated surface (TIN), it shows the number of triangles and vertices, the planar and real areas, the layer and the elevation range.
If it is a mesh, it shows the number of valid cells, the planar area and the elevation range.
If there is no active surface, the assistant says so.
Data you can provide: no data is required.
Result: record of the active surface with its statistics, or a notice that there is no active surface.
Example instructions:
"Which surface is active in the drawing?"
"Give me the statistics of the surface."
"What is the minimum and maximum elevation of the terrain?"
"What is the real area of the surface?"
Note: The real (3D) area is only shown for triangulated surfaces.
Generate contour lines — generate_contours
Generates contour lines from the active triangulated surface and draws them as 3D polylines in two layers: one for normal contour lines and another for index (major) contour lines.
Prerequisites: there must be an active triangulated surface. A mesh cannot be used with this command.
Data you can provide:
Data | Required | Description |
|---|---|---|
Contour interval | Yes | Spacing between normal contour lines, in drawing units (normally metres). Must be greater than 0. |
Index contour interval | No | Spacing between index contour lines. By default, five times the contour interval. With 0 only normal contour lines are generated. |
Normal contour layer | No | Layer for the normal contour lines. Default |
Index contour layer | No | Layer for the index contour lines. Default |
Clear layers first | No | Yes to empty the layers before drawing the new contour lines. Default No. |
Result: number of normal and index contour lines, layers used and elevation range (minimum and maximum).
Example instructions:
"Generate the contour lines every metre."
"Generate contour lines every 0.5 m with index lines every 5 m."
"Generate contour lines every 2 metres, without index lines."
"Regenerate the contour lines, clearing layers CURVAS_NORM and CURVAS_DIR first."
Volumes between two surfaces — calculate_volume
Calculates the cut and fill volumes between two MDT surfaces, using the grid difference method.
Prerequisites: both surfaces must exist as files on disk, in .sup format (triangulated surface) or .mll format (binary grid).
Data you can provide:
Data | Required | Description |
|---|---|---|
Initial surface | Yes | Full path of the first surface file (original or base situation). |
Final surface | Yes | Full path of the second surface file (final or design situation). |
Cell size | No | Size of the calculation cell, in metres. Default 1 m. Smaller cells give more precision but take longer. |
Result: cut volume (m³) with its area, fill volume (m³) with its area, net volume (m³), area with no volume if any, number of cells processed and cell size used.
Example instructions:
"Calculate the earthwork between original.sup and proyectado.sup."
"How much cut and fill is there between the terrain surface and the grade surface?"
"Calculate the volumes between D:\proyecto\original.sup and D:\proyecto\proyectado.sup with 0.5 m cells."
Sign of the result: The calculation compares the final surface with the initial one: where the final surface lies below the initial one there is cut, and where it lies above there is fill.
Earthwork for a platform — calculate_earthwork
Calculates the earthwork of a platform drawn as a closed polyline on a layer. It obtains the cut and fill volumes, both inside the platform and on its slopes, and draws the contact line with the natural terrain. It is the non-interactive equivalent of the MDT command Platform by level (Explanada por cota).
Prerequisites:
There must be an active triangulated surface.
The platform must be a closed polyline, with at least 3 vertices, drawn on the indicated layer.
Data you can provide:
Data | Required | Description |
|---|---|---|
Layer | Yes | CAD layer where the platform polyline is drawn. |
Platform elevation | No | Uniform elevation of the platform, in metres. It cannot be combined with searching for the balance elevation. If omitted and no balance search is requested, the assistant gives the mean terrain elevation inside the platform as a suggestion. |
Search for balance elevation | No | Yes to search automatically for the elevation at which cut and fill balance. It cannot be combined with the platform elevation. Default No. |
Cut slope | No | H:V ratio, that is, horizontal metres for each vertical metre. Default 0.667. Must be greater than 0. |
Fill slope | No | H:V ratio, that is, horizontal metres for each vertical metre. Default 1.5. Must be greater than 0. |
Cell size | No | Size of the calculation cell, in metres. Default 1 m. Must be greater than 0. |
Result: elevation used (or balance elevation found), minimum, mean and maximum terrain elevations inside the platform, cut, fill, net volume, areas of the platform and of the slopes, and number of points of the contact line drawn. If a surface is generated, the assistant also gives its file.
Example instructions:
"Calculate the earthwork of the platform on layer EXP at elevation 530 metres."
"Find the balance elevation of the platform on layer EXP."
"What is the mean terrain elevation inside the platform on layer EXP?"
"Calculate the platform on layer PLATAFORMA with a cut slope of 1 and a fill slope of 2."
Net volume: A positive net volume indicates a fill surplus. A negative net volume indicates a cut surplus.
4. Alignments and longitudinal profiles
List alignments — list_alignments
Lists all the alignments of the active drawing, with the name, starting station, ending station and length of each one. If the drawing has no alignments, the assistant says so.
Data you can provide: no data is required.
Result: list of alignments with their starting station, ending station and length.
Example instructions:
"Which alignments are in the drawing?"
"List the alignments with their length."
"Between which stations does the road alignment run?"
Find alignment — find_alignment
Finds an alignment by part of its name, ignoring upper and lower case, and zooms in CAD to its surroundings. It shows the name, starting station, ending station and length of the alignment found.
Data you can provide:
Data | Required | Description |
|---|---|---|
Name | Yes | Text to search for in the alignment name. It can be only part of the name. |
If no alignment matches, or if several match, the assistant says so and shows the matching alignments. In that case, make the name more specific.
Result: name, starting station, ending station and length of the alignment, and the CAD view centred on it.
Example instructions:
"Find alignment eje2 and zoom to it."
"Locate the road alignment."
"Show me where the alignment Principal is."
Generate longitudinal profile — generate_profile
Generates the longitudinal terrain profile along an alignment, taking the elevations from the active surface. The result is saved as a file next to the alignment.
Prerequisites: the alignment must exist in the drawing and there must be an active surface (triangulated or mesh). This command must be run before drawing the profile.
Data you can provide:
Data | Required | Description |
|---|---|---|
Alignment | Yes | Name, or part of the name, of the alignment. |
Additional interval | No | Spacing of additional points, in metres. Default 0: only the points where the alignment cuts the modelled terrain, the alignment vertices and its ends are used. A value greater than 0 adds regular points every that number of metres. |
Result: number of profile points, starting and ending station, minimum and maximum elevations, and path of the generated file.
Example instructions:
"Generate the longitudinal profile of alignment eje2."
"Calculate the profile of the road alignment with a point every 5 metres."
"Generate the profile of the main alignment and then draw it."
Draw longitudinal profile — draw_profile
Draws the longitudinal profile of an alignment with its Numerical Data (data table), at the indicated scale. It is always drawn in model space, with the origin calculated automatically.
Prerequisites: the profile of that alignment must have been generated beforehand with Generate longitudinal profile.
Data you can provide:
Data | Required | Description |
|---|---|---|
Alignment | Yes | Name, or part of the name, of the alignment. |
Horizontal scale | No | Horizontal scale denominator. Default 1000 (1:1000). |
Vertical scale | No | Vertical scale denominator. Default 1000 (1:1000). |
Result: number of points drawn and scales used.
Example instructions:
"Draw the longitudinal profile of alignment eje2 at scale 1:500."
"Draw the profile of the main alignment with horizontal scale 1:1000 and vertical scale 1:100."
"Represent the profile of the road alignment with its Numerical Data."
5. Cross sections
Generate cross sections — generate_cross_sections
Generates the cross sections of an alignment from the active surface, using the triangulated surface or the mesh as the basis. The result is saved as a file next to the alignment.
Prerequisites: the alignment must exist in the drawing and there must be an active surface (triangulated or mesh).
Data you can provide:
Data | Required | Description |
|---|---|---|
Alignment | Yes | Name, or part of the name, of the alignment. |
Left width | No | Width generated to the left of the alignment, in metres. Default 10. |
Right width | No | Width generated to the right of the alignment, in metres. Default 10. |
Spacing | No | Distance between consecutive cross sections, in metres. Default 10. |
Include singular points | No | Yes to include the singular points of the alignment, such as curvature changes. Default Yes. |
Result: number of cross sections generated, starting and ending station, minimum and maximum terrain elevations, and path of the generated file.
Example instructions:
"Generate the cross sections of eje2 every 20 metres, with 15 m on each side."
"Calculate the cross sections of the road over the active surface."
"Generate cross sections of the main alignment with 25 m on the left and 10 m on the right."
Draw cross sections — draw_cross_sections
Draws the cross sections of an alignment at the indicated scale, without the data table (Numerical Data). It is always drawn in model space, with the origin calculated automatically.
Prerequisites: the cross-section file of that alignment must have been generated beforehand with Generate cross sections.
Data you can provide:
Data | Required | Description |
|---|---|---|
Alignment | Yes | Name, or part of the name, of the alignment. |
Horizontal scale | No | Horizontal scale denominator. Default 1000 (1:1000). |
Vertical scale | No | Vertical scale denominator. Default 1000 (1:1000). |
Result: number of points drawn and scales used.
Example instructions:
"Draw the cross sections of eje2 at scale 1:500."
"Represent the cross sections of the road at horizontal scale 1:1000 and vertical scale 1:200."
"Draw the cross sections of the main alignment without Numerical Data."
Draw cross sections with Numerical Data — draw_cross_sections_with_numerical_data
Draws the cross sections of an alignment at the indicated scale, with their Numerical Data (attached data table). It is always drawn in model space, with the origin calculated automatically.
Prerequisites: the cross-section file of that alignment must have been generated beforehand with Generate cross sections.
Data you can provide:
Data | Required | Description |
|---|---|---|
Alignment | Yes | Name, or part of the name, of the alignment. |
Horizontal scale | No | Horizontal scale denominator. Default 1000 (1:1000). |
Vertical scale | No | Vertical scale denominator. Default 1000 (1:1000). |
Result: number of points drawn and scales used.
Example instructions:
"Draw the cross sections of eje2 with Numerical Data at scale 1:500."
"Represent the cross sections of the road with their Numerical Data."
"Draw the cross sections of the main alignment with Numerical Data, at horizontal scale 1:1000 and vertical scale 1:200."
When it is used: The assistant uses this command only when Numerical Data is explicitly requested. To draw the cross sections without the data table, use Draw cross sections.
Volume by cross-section differences — calculate_cross_section_volume
Calculates the cut and fill volumes by difference between two cross-section files (.tra). It compares file 2 (modified or design) against file 1 (terrain or original situation).
The calculation always uses the default values: the whole station range common to both files, vertical slope and no curvature correction. It is always calculated without topsoil.
Prerequisites:
Both cross-section files must exist on disk. They can be obtained with Generate cross sections.
Cross-section sorting must be enabled in the MDT configuration. Without that option, the calculation cannot be carried out.
Data you can provide:
Data | Required | Description |
|---|---|---|
Terrain cross sections | Yes |
|
Design cross sections | Yes |
|
Result: files used, cut volume (m³), fill volume (m³), net volume (m³), clearing area (m²) if any, and number of cross sections measured.
Example instructions:
"Calculate the volume between the cross sections terreno.tra and rasante.tra."
"How much cut and fill is there between the terrain cross sections and the design ones?"
"Give me the net volume between the cross sections original.tra and final.tra."
Note: Topsoil is not calculated in this command: the calculation is always done without it.
Pavement layers measurement — calculate_pavement_layers
Measures the pavement layers of a road from its segment file (.seg). For each material (pavement layers and, if any, subgrade replacement and reinforcement) it calculates the thickness and the volume, plus the total volume. By default, the measurement is made at singular points, over the whole road and deducting the structure sections.
Prerequisites: the segment must have pavement layers assigned in its typical section.
Data you can provide:
Data | Required | Description |
|---|---|---|
Segment file | Yes | Name or path of the |
Starting station | No | Station from which the measurement starts, in metres. If omitted, it starts at the beginning of the segment. |
Ending station | No | Station at which the measurement ends, in metres. If omitted, it runs to the end of the segment. Must be greater than or equal to the starting station. |
Result: segment measured, starting and ending stations used, and a table with each material, its thickness (m), its volume (m³) and the total volume.
Example instructions:
"Measure the pavement layers of the file segmento1.seg."
"Measure the pavement layers of the segment Eje1 between station 100 and 450."
"Calculate the material volumes of the segment carretera.seg."
"Give me the thickness and volume of the pavement layers of the main segment."
Station outside the segment: If you give a station outside the range of the segment, the command accepts it without warning and only measures the cross sections within the range.
6. Stakeout
Analyse points against the surface — analyze_points_surface
Analyses points against the active surface of the drawing. For each point it calculates the elevation of the surface at its position and the difference with the elevation of the point. The points can come from a text file or be the MDT points of the drawing. Optionally, the analysis can also be made against an alignment.
Prerequisites: there must be an active surface in the drawing. If there is none, one can be created with Create surface.
Data you can provide:
Data | Required | Description |
|---|---|---|
Points file | Yes (one of the two sources) | Text file with one point per line, in the format |
Use drawing points | Yes (one of the two sources) | Yes to analyse the MDT points of the drawing instead of a file. The file and the drawing points cannot be given together. |
Code | No | Only with drawing points: analyses only the points with that code (exact match). If omitted, all points are analysed. |
Also analyse against an alignment | No | Yes to add the station and offset of each point with respect to an alignment. Points that do not project onto the alignment are omitted. Default No. |
Alignment name | No | Name, or part of the name, of the alignment. Required if the drawing has several alignments. With a single alignment it is not needed. |
Result: list of points with their name, X, Y, Z coordinates, surface elevation and elevation difference. If the analysis is against an alignment, it also shows the station and offset. At the end, a summary shows the number of points analysed, those outside the surface, and the minimum, maximum and mean elevation difference.
The difference is the elevation of the point minus the elevation of the surface: a positive value means the point is above the surface. Points that fall outside the surface appear in the list without surface elevation or difference, and are not included in the statistics.
Example instructions:
"Analyse the points of the file levantamiento.txt against the surface."
"Analyse the drawing points with code BASE against the surface."
"Calculate the elevation difference of the points in file puntos.txt and their position against alignment carretera."
"Tell me which points are above or below the surface."
Stakeout lines list — stakeout_lines
Calculates the stakeout points of the elements of the section you indicate (for example, lane, ditch or toe of slope), at station intervals. The calculation is made without dialogues, on both sides of the alignment or on just one of them, from a segment file or from the alignment of the drawing.
Prerequisites:
A Professional licence of MDT is required.
The segment must have a typical section and an alignment assigned, so that its modified section can be generated.
Data you can provide:
Data | Required | Description |
|---|---|---|
Codes | Yes | List of elements to stake out. They can be given by name, as they appear in the section (for example, |
Interval | Yes | Spacing between consecutive points, in metres. Must be greater than 0. |
Segment file | Yes (one of the two sources) | Name or path of the |
Alignment | Yes (one of the two sources) | Name, or part of the name, of an alignment in the drawing. The segment associated with that alignment is used. Cannot be combined with the segment file. If neither is given and the drawing has a single alignment, that one is used. |
Starting station | No | Station from which the stakeout starts, in metres. If omitted, it starts at the first station of the segment. |
Ending station | No | Station at which the stakeout ends, in metres. If omitted, it runs to the last station of the segment. Must be greater than or equal to the starting station. |
Side | No |
|
Recognised names: in addition to numbers, the command recognises the names of the elements of the MDT template, such as Carril 1, Arcén Exterior, Arcén Interior, Berma, Mediana or Acera. It also accepts:
Pie de firme: end of the platform (Explanada).Pie de talud: all the codes of the fill slope (terraplén).Cabeza de talud: all the codes of the cut slope (desmonte).Cuneta: all the ditches.Eje: code 0 (alignment).Muros: walls.
If a name is not recognised, the assistant shows the list of available names so you can choose the equivalent.
Result: a table with the code, name, station, offset from the alignment, and the X, Y and Z coordinates of each point. Before the table, the header shows the segment (and the alignment, if one was used), the starting and ending station, the interval, the codes, the side and the number of points. The offset is negative to the left of the alignment and positive to the right.
Example instructions:
"Stake out the Carril 1 of segment Eje1 every 20 metres."
"Stake out the ditch and the toe of slope of segment Eje1 every 20 metres."
"Give me the stakeout points of the alignment and the ditches of segment carretera.seg every 10 metres."
"Calculate the stakeout list of the left side of segment Eje1 between station 100 and 450, every 20 metres."
"Give me the toe of slope points of segment principal.seg every 25 metres."
Scope of the calculation: In addition to the stations at intervals, the list includes the singular stations, the grade line vertices and the platform changes, according to the configuration of the MDT stakeout list. The interval given applies only during the calculation. Stakeout bases, thickness, setback and additional distances from the alignment are not taken into account.
7. Plots
List plots — list_plots
Lists the plots of the active drawing with their name, area, cadastral reference, owner, type and centroid. If the drawing has no plots, the list is empty.
Data you can provide:
Data | Required | Description |
|---|---|---|
Type | No | Shows only the plots of one type: MDT, Cadastral, Cadastral zone, Building, Annex building, Island, Swimming pool or Island building. If omitted, all types are shown. |
Include vertices | No | Yes to also include the X, Y coordinates of the vertices of each plot. Default No. |
Result: list of plots with their name, area (m²), cadastral reference, owner, type and centroid. With the vertices option, also the coordinates of each vertex.
Example instructions:
"How many plots are there in the drawing?"
"List all the plots with their area and owner."
"Show only the plots of cadastral type."
"List the buildings defined in the drawing."
"Give me the centroid coordinates of each plot."
Plot details — edit_plot
Shows the full details of a plot: name, cadastral reference, area (m²), perimeter (m), number of vertices and the X, Y coordinates of each vertex, numbered from 1.
Data you can provide:
Data | Required | Description |
|---|---|---|
Name | Yes | Exact name of the plot. If you do not know it, check the list of plots first. |
Result: plot record, with its data and the numbered list of its vertices.
Example instructions:
"Show me the data of plot PCL-001."
"What is the area and perimeter of plot 5?"
"Give me the vertex coordinates of cadastral plot 0001."
"What cadastral reference does plot A have?"
Merge plots — merge_plots
Merges several adjoining plots of the drawing into one. It draws the resulting plot and removes the original plots from the drawing.
Prerequisites:
At least 2 plots must be given.
The plots must be contiguous, that is, they must share at least 2 vertices.
Data you can provide:
Data | Required | Description |
|---|---|---|
Names | Yes | Exact names of the plots to merge. Minimum 2. |
Resulting name | No | Name of the merged plot. If omitted, the name of the first plot in the list is used. |
Result: name, cadastral reference, area (m²), perimeter (m) and number of vertices of the resulting plot.
Example instructions:
"Merge plots PCL-001 and PCL-002."
"Join plots PCL-001, PCL-002 and PCL-003 into one, called FINCA-A."
"Combine these two adjoining plots into a new one called Solar 7."
Split a plot into parallel strips — split_plot_parallel
Splits a plot of the drawing into strips using lines parallel to the side defined by two of its vertices. It supports three split modes.
Prerequisites: the plot must exist. Check its vertices first with Plot details, because the first vertex is number 1.
Data you can provide:
Data | Required | Description |
|---|---|---|
Name | Yes | Exact name of the plot to split. |
First vertex | Yes | Number of the first vertex of the reference side. The first vertex of the plot is 1. |
Second vertex | Yes | Number of the second vertex of the reference side. |
Mode | Yes |
|
Number of strips | Depends on the mode | Required with the Equal plots mode. |
Target area | Depends on the mode | Area of each strip, in m². Required with the Area mode. |
Width | Depends on the mode | Width of each strip, in metres. Required with the Distance mode. |
Result: name of the original plot, mode applied, original area (m²), number of sub-plots created and mean area per strip (m²).
Example instructions:
"Split plot PCL-001 into 4 equal strips, parallel to the side between vertices 1 and 2."
"Split plot A into strips of 500 m² each."
"Divide plot 3 into strips 20 metres wide, parallel to the side between vertices 1 and 4."
Locate a plot — find_plot
Locates a plot of the drawing by its name and zooms in CAD to a window around it.
Data you can provide:
Data | Required | Description |
|---|---|---|
Name | Yes | Exact name of the plot to locate. |
Result: confirmation of the plot located and of the zoom window applied, with the coordinates of its two corners.
Example instructions:
"Locate plot PCL-001 and zoom to it."
"Show me where plot 5 is in the drawing."
"Centre the view on cadastral plot 0001."
Export plots to GML — export_plot_gml
Exports one or several plots of the drawing to the GML INSPIRE 4.0 format.
Prerequisites: the drawing must have a coordinate reference system (CRS/EPSG) configured.
Data you can provide:
Data | Required | Description |
|---|---|---|
Names | Yes | Exact names of the plots to export. For example, |
Output file | Yes | Full path of the GML file to create. For example, |
Result: number of plots exported, coordinate reference system used (EPSG code) and path of the generated file.
Example instructions:
"Export plots PCL-001 and PCL-002 to D:\proyecto\parcelas.gml."
"Generate an INSPIRE GML with all the cadastral plots in the drawing."
"Export plot 5 to the GML format."
Query the fields of a Shapefile — get_shapefile_fields
Shows the structure of a Shapefile (.shp + .dbf) before importing it: geometry type, number of entities and the fields of the attribute table with sample values. It is the first step of the plot import: it helps you decide which field holds the name, the cadastral reference, the owner and the date.
Data you can provide:
Data | Required | Description |
|---|---|---|
File | Yes | Full path of the |
Result: geometry type (polygons, lines, points or other, indicating whether it has Z), number of entities and, for each field, its name, type, width, decimals and the values of the first 3 records (truncated to 50 characters). If the file contains the fields label, localId or beginLifes (INSPIRE cadastre), the assistant suggests them as name, reference and date.
Example instructions:
"Which fields does the shapefile D:\proyecto\catastro.shp have?"
"Show me the attributes of D:\catastro\parcelas.shp."
Import plots from a Shapefile — import_plots_shapefile
Imports the polygons of a Shapefile as plots, without dialogs. It is equivalent to the Plots > Import command with a Shapefile: instead of the attribute mapping window, you state in the conversation which .dbf field matches each plot attribute.
Prerequisites: a polygon Shapefile. Before importing, the assistant checks its fields with get_shapefile_fields and asks you for the mapping if you have not given it.
Data you can provide:
Data | Required | Description |
|---|---|---|
File | Yes | Full path of the |
Name field | No |
|
Reference field | No | Field used as the cadastral reference. |
Owner field | No | Field used as the owner. |
Date field | No | Field used as the date. It is adapted to the cadastre format. |
The same field can be assigned to several attributes (for example, the cadastral reference as both name and reference). Attributes you do not mention are left unassigned. Field names are not case-sensitive.
Result: number of plots imported, number of polygons skipped (those that did not produce a plot, for example because their area is below the configured minimum), layer created and field mapping applied.
Example instructions:
"Import the plots from D:\proyecto\catastro.shp."
"Import D:\proyecto\catastro.shp using REFCAT as name and reference, TITULAR as owner and FECHA_ALTA as date."
"Import the plots from D:\catastro\parcelas.shp with the fields you suggest."
Behaviour:
The whole file is imported, without a selection window, and the view zooms to the drawing extents at the end.
The text height is the one configured in MDT; it is not asked.
A layer named after the file is created and made current.
Entities excluded by the configured exclusion pattern are not imported and count neither as imported nor as skipped.