# US 12,216,970 B2 · Dynamic dimensioning indicators

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,216,970 B2
- Document ID: US12216970B2
- Status: Granted
- Kind: B2
- Application number: 18/528,411
- Filed: 2023-12-04
- Published: 2024-06-06
- Granted: 2025-02-04
- Earliest claimed: 2019-10-07
- Assignees: Procore Technologies, Inc.
- Applicants: Procore Technologies, Inc.
- Inventors: Ritu Parekh; David McCool; Christopher Myers; Christopher Bindloss
- Web page: https://patentgrep.com/patent/US12216970B2

## CPC

- G06F 30/23: using finite element methods [FEM] or finite difference methods [FDM]
- G06T 19/00: Manipulating three-dimensional [3D] models or images for computer graphics
- G06F 3/04815: Interaction with a metaphor-based environment or interaction object displayed as three-dimensional [3D], e.g. changing the user viewpoint with respect to the environment or object
- G06F 3/04845: for image manipulation, e.g. dragging, rotation, expansion or change of colour
- G06F 30/12: characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
- G06F 30/13: Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
- G06F 30/17: Mechanical parametric or variational design
- G06T 17/205: {Re-meshing}
- G06T 19/20: Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
- G06T 2200/24: involving graphical user interfaces [GUIs]
- G06T 2210/04: Architectural design, interior design
- G06T 2219/012: Dimensioning, tolerancing
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

An example computing system is configured to (i) generate a cross-sectional view of a three-dimensional drawing file; (ii) receive a first user input indicating a selection of a first mesh, wherein the selection comprises a selection point that establishes a first end point; (iii) generate a first representation indicating an alignment of the first end point with at least one corresponding geometric feature of the first mesh and a second representation indicating a set of one or more directions; (iv) receive a second user input indicating a given direction; (v) based on receiving the second user input, generate a dynamic representation of the dimensioning information along the given direction; (vi) receive a third user input indicating that the second user input is complete; (vii) based on receiving the third user input, add the dimensioning information to the cross-sectional view between the first end point and the second end point.

## Claims

### Claim 1

A computing device comprising:
at least one processor;
at least one non-transitory computer-readable medium; and
program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing device is configured to:
display a two-dimensional (2D) cross-sectional view of a three-dimensional drawing file, the 2D cross-sectional view including at least two meshes;
receive a set of user inputs indicating a request for dimensioning information to be added to the 2D cross-sectional view, wherein the set of user inputs (i) indicates a selection point in the 2D cross-sectional view and (ii) comprises a drag input;
based on the selection point, establish a first end point at a first mesh; and
based on the drag input:
display, along a given direction, a representation of second dimensioning information involving the first mesh; and
dynamically update the representation of the second dimensioning information originating from the first end point to a second end point.

### Claim 2 (depends on 1)

The computing device of claim 1, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing device is configured to:
determine that the drag input has ended; and
based on determining that the drag input has ended, add the second dimensioning information to the 2D cross-sectional view, the second dimensioning information indicating a measurement between the first end point and the second end point.

### Claim 3 (depends on 2)

The computing device of claim 2, wherein the set of user inputs further comprises a release input, and wherein the program instructions that are executable by the at least one processor such that the computing device is configured to determine that the drag input has ended comprise program instructions that are executable by the at least one processor such that the computing device is configured to:
detect the release input.

### Claim 4 (depends on 1)

The computing device of claim 1, wherein the program instructions that are executable by the at least one processor such that the computing device is configured to establish the first end point comprise program instructions that are executable by the at least one processor such that the computing device is configured to:
based on the selection point, identify a given point on an edge, a corner, or a center of the first mesh; and
fix the first end point at the given point.

### Claim 5 (depends on 4)

The computing device of claim 4, wherein the given point is closest in proximity to the selection point from one or more other points on the edge, the corner, or the center of the first mesh.

### Claim 6 (depends on 1)

The computing device of claim 1, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing device is configured to:
display at least one guideline indicating an alignment of the first end point with a corresponding geometric feature of the first mesh.

### Claim 7 (depends on 1)

The computing device of claim 1, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing device is configured to:
after receiving the set of user inputs indicating the selection point, determine one or more directions originating from the first end point along which the second dimensioning information may be added to the 2D cross-sectional view; and
display an indication of the one or more directions, wherein the given direction is selected from the one or more directions.

### Claim 8 (depends on 7)

The computing device of claim 7, wherein the one or more directions are determined based on at least one corresponding geometric feature of the first mesh.

### Claim 9 (depends on 8)

The computing device of claim 8, wherein the first end point is aligned with a vertical edge of the first mesh, and wherein the one or more directions include a horizontal direction but not a vertical direction.

### Claim 10 (depends on 8)

The computing device of claim 8, wherein the first end point is aligned with a horizontal edge of the first mesh, and wherein the one or more directions include a vertical direction but not a horizontal direction.

### Claim 11 (depends on 8)

The computing device of claim 8, wherein the first end point is aligned with (i) an intersection of a vertical edge and a horizontal edge of the first mesh or (ii) a center of the first mesh, and wherein the one or more directions include both a horizontal direction and a vertical direction.

### Claim 12 (depends on 1)

The computing device of claim 1, wherein the computing device further comprises program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing device is configured to:
dynamically update a location of the second end point based on the drag input.

### Claim 13 (depends on 1)

The computing device of claim 1, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing device is configured to:
display a scaled representation of an area of the 2D cross-sectional view comprising the first end point;
dynamically update the scaled representation based on the drag input; and
after determining that the drag input has ended, discontinue displaying the scaled representation.

### Claim 14 (depends on 13)

The computing device of claim 13, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing device is configured to:
based on the drag input, dynamically update the scaled representation to indicate that the second end point is nearing a second mesh within the 2D cross-sectional view; and
based further on the drag input, dynamically update the scaled representation to indicate that the second end point has connected to a portion of the second mesh, wherein the portion of the second mesh comprises a fixed location of the second end point.

### Claim 15 (depends on 1)

The computing device of claim 1, wherein the given direction is a first direction, the computing device further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing device is configured to:
while receiving the drag input, determine a change in a direction of the drag input from the first direction to a second direction; and
based on the change, dynamically update the representation of the second dimensioning information originating from the first end point to the second end point along the second direction.

### Claim 16

A non-transitory computer-readable medium, wherein the non-transitory computer-readable medium is provisioned with program instructions that, when executed by at least one processor, cause a computing device to:
display a two-dimensional (2D) cross-sectional view of a three-dimensional drawing file, the 2D cross-sectional view including at least two meshes;
receive a set of user inputs indicating a request for dimensioning information to be added to the 2D cross-sectional view, wherein the set of user inputs (i) indicates a selection point in the 2D cross-sectional view and (ii) comprises a drag input;
based on the selection point, establish a first end point at a first mesh; and
based on the drag input:
display, along a given direction, a representation of second dimensioning information involving the first mesh; and
dynamically update the representation of the second dimensioning information originating from the first end point to a second end point.

### Claim 17 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the non-transitory computer-readable medium is also provisioned with program instructions that, when executed by at least one processor, cause the computing device to:
determine that the drag input has ended; and
based on determining that the drag input has ended, add the second dimensioning information to the 2D cross-sectional view, the second dimensioning information indicating a measurement between the first end point and the second end point.

### Claim 18 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the program instructions that, when executed by at least one processor, cause the computing device to establish the first end point comprise program instructions that, when executed by at least one processor, cause the computing device to:
based on the selection point, identify a given point on an edge, a corner, or a center of the first mesh; and
fix the first end point at the given point.

### Claim 19

A method carried out by a computing device, the method comprising:
displaying a two-dimensional (2D) cross-sectional view of a three-dimensional drawing file, the 2D cross-sectional view including at least two meshes;
receiving a set of user inputs indicating a request for dimensioning information to be added to the 2D cross-sectional view, wherein the set of user inputs (i) indicates a selection point in the 2D cross-sectional view and (ii) comprises a drag input;
based on the selection point, establishing a first end point at a first mesh; and
based on the drag input:
displaying, along a given direction, a representation of second dimensioning information involving the first mesh; and
dynamically updating the representation of the second dimensioning information originating from the first end point to a second end point.

### Claim 20 (depends on 19)

The method of claim 19, further comprising:
determining that the drag input has ended; and
based on determining that the drag input has ended, adding the second dimensioning information to the 2D cross-sectional view, the second dimensioning information indicating a measurement between the first end point and the second end point.
