<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>