<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
To the extent that anyone is interested in a discussion of adding
CAD-like dimensioning capabilities to Qgis:<br>
<br>
In a CAD model dimensional callouts present the user with
information about lengths, angles, radii, and other metric
properties. Dimension call-outs in a CAD model (probably more
accurately, a CAD drawing derived from a model) are annotations to
the model, they are not model objects per se. In a well-designed
system, the dimension call-out displays the actual metric value of
identified length, radius, angle, etc. The dimension "object" is
tied to the underlying geometric model and will change the presented
value if the underlying object is changed (eg, scaled in size). In
addition, if the underlying object moves with respect to other
objects in the model, the dimension annotations move with it,
maintaining a constant relationship, for example to the edge whose
length we are dimensioning. <br>
<br>
Extending this notion to GIS in general, and Qgis, introduces a bit
of a difficulty in the sense that CAD systems tend to have a fuzzy
boundary between the notion of what in Qgis is the map canvas and
the a layout. Sketchup, a popular (and free-ish) CAD modeler allows
dimension annotations in what amounts to the canvas, but also has an
adjunct program Layout for drawings, much like a layout in Qgis.
That said, I would suggest the starting point in Qgis would be an
annotation capability in the canvas, much like the annotations
introduced in 3.22. When adding a dimension to the canvas, a user
would click on some aspect of a feature, typically a vertex or other
point-like feature, then click on a second, and a line/arrrow would
be added as an annotation, with text indicating length. Things get a
little more complicated trying to dimension the radius of a circle,
as these are represented in different ways depending on the data
format (eg, shapefile vs. geopackage). To match the semantics of CAD
dimensions, the stored representation would be tied to the
properties of the feature, not to the geo-referenced value at the
time the annotation was created so as to allow the dimension to
dynamically respond to changes in the underlying data. <br>
<br>
None of this gets to the question of should this be added? There are
important differences between a CAD model and a map. A CAD system is
used for design, just as the name says. A CAD model generally goes
through a series of revisions over it's lifetime. A map (at least
for me) is generally intended to reflect a physical reality. It may
experience changes as we refine our understanding of the underlying
physical reality, but in general maps tend to reflect data that is
far more static than that in a CAD model. This suggests that perhaps
we really don't need the same sort of dynamic dimensioning
capabilities that a CAD system provides. WIth that in mind, I think
the appropriate starting point for dimensioning in Qgis, if we want
one at all, is to add a "linear dimension" tool to the existing
annotation toolbar. The tool would allow the user to snap a line
between any two vertices (or points) on a layout, and would add a
dimension arrow between the two points, and perhaps extension
lines, labeled by default with the appropriate distance. Until a
more compelling use case presents itself, I think it would be
sufficient to make the new dimension annotation be statically
geo-referenced. <br>
</body>
</html>