# US 12,762,644 B2 · Generating two-dimensional views for two-dimensional clash detection

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

- Number: US 12,762,644 B2
- Document ID: US12762644B2
- Status: Granted
- Kind: B2
- Application number: 18/365,186
- Filed: 2023-08-03
- Published: 2025-02-06
- Granted: 2026-10-13
- Earliest claimed: 2023-08-03
- Assignees: Procore Technologies, Inc.
- Applicants: Procore Technologies, Inc.
- Inventors: David McCool; Ritu Parekh; Christopher Myers
- Web page: https://patentgrep.com/patent/US12762644B2

## CPC

- G06T 3/067: Reshaping or unfolding three-dimensional [3D] tree structures onto two-dimensional [2D] planes
- G06Q 50/08: Construction
- G06T 7/13: Edge detection
- G06T 17/00: Three-dimensional [3D] modelling for computer graphics
- G06V 10/764: using classification, e.g. of video objects
- G06T 2210/21: Collision detection, intersection
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING

## Abstract

Techniques for facilitating automated two-dimensional (2D) clash detection on objects displayed within a 2D view generated from a three-dimensional (3D) model of a construction project involve (1) tracing an intersection of (i) a cross-sectional plane and (ii) two or more objects in the 3D model, (2) based on tracing the intersection, determining respective 2D boundaries of the two or more objects, (3) generating a cross-sectional 2D view that depicts the intersection and includes representations of the respective 2D boundaries of the objects in the 2D view, (4) causing an end-user device to present one or more user interface views for receiving user input indicating a clash detection scope, (5) based on data defining the clash detection scope, identifying any clashes between objects displayed in the generated 2D view, and (6) causing a respective indication of each identified clash to be displayed at the end-user device.

## Claims

### Claim 1

A computing platform comprising:
at least one processor;
a non-transitory computer-readable medium; and
program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
receive, from an end-user device associated with a user, an indication of a request to generate a two-dimensional (2D) cross-sectional view of a three-dimensional (3D) model of a construction project;
generate the requested 2D cross-sectional view of the 3D model by:
tracing respective intersections of (i) a cross-section plane with (ii) respective 3D meshes representing two or more objects in the 3D model; and
based on tracing the respective intersections, determining a respective 2D object boundary for each of the two or more objects;
receive an indication of user input defining at least two object classes for which to detect clashes between objects of the 3D model that are represented within the 2D cross-sectional view;
based on the user input:
identify, from the objects of the 3D model that are represented within the 2D cross-sectional view, a set of objects that are within the at least two object classes; and
evaluate whether there are any intersections between respective 2D object boundaries of objects in the identified set of objects and thereby determine that there is an intersection between (i) a first 2D object boundary of a first object of the 3D model that is in the identified set of objects and (ii) a second 2D object boundary of a second object of the 3D model that is in the identified set of objects;
based on the determined intersection between (i) the first 2D object boundary of the first object and (ii) the second 2D object boundary of the second object, identify a clash between the first object and the second object of the 3D model; and
cause the end-user device to display a respective indication of the identified clash.

### Claim 2 (depends on 1)

The computing platform of claim 1, wherein the program instructions that are executable by the at least one processor such that the computing platform is configured to determine the respective 2D object boundary for each of the two or more objects comprise program instructions that are executable by the at least one processor such that the computing platform is configured to:
for each object:
based on the respective intersection of the cross-section plane with the 3D mesh representing the object, determine a plurality of 2D line segments of the object that each define a respective portion of a boundary of the object for the cross-section plane, wherein each line segment comprises a pair of end points;
for each line segment of the object, based on (i) a threshold distance and (ii) at least one respective distance between an end point of the line segment and an end point of another line segment of the object, determine a respective set of nearby line segments;
determine one or more fully-connected object boundaries by progressively connecting respective sets of nearby line segments in series;
determine, from the one or more fully-connected object boundaries, a final object boundary to be used as a discrete 2D boundary of the object; and
add the final object boundary to the cross-sectional view as the respective 2D object boundary of the object.

### Claim 3 (depends on 1)

The computing platform of claim 1, further comprising program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
determine an object class for each of the two or more objects.

### Claim 4 (depends on 1)

The computing platform of claim 1, further comprising program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
for the first object, fill in the first 2D object boundary, wherein the program instructions that are executable by the at least one processor such that the computing platform is configured to identify the clash between the first object and the second object comprise program instructions that are executable by the at least one processor such that the computing platform is configured to:
determine that the second 2D object boundary of the second object intersects the filled-in first 2D object boundary of the first object.

### Claim 5 (depends on 1)

The computing platform of claim 1, wherein the request to generate the 2D cross-sectional view of the 3D model of the construction project comprises a user selection of a given object in the 3D model.

### Claim 6 (depends on 5)

The computing platform of claim 5, wherein the given object is a floor, a ceiling, or a wall.

### Claim 7 (depends on 5)

The computing platform of claim 5, further comprising program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
based on receiving the indication of the request to generate the 2D cross-sectional view of the 3D model that comprises the user selection of the given object, generate suggestions of object class pairs for which to perform a clash detection analysis; and
cause the end-user device to display the generated suggestions of object class pairs.

### Claim 8 (depends on 7)

The computing platform of claim 7, wherein the program instructions that are executable by the at least one processor such that the computing platform is configured to receive the indication of user input defining at least two object classes for which to detect clashes between objects of the 3D model that are represented within the 2D cross-sectional view comprise program instructions that are executable by the at least one processor such that the computing platform is configured to:
receive an indication of a user selection of two object classes from the generated suggestions of object class pairs.

### Claim 9 (depends on 1)

The computing platform of claim 1, further comprising program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
receive, from the end-user device, an indication of a request to identify clashes between objects within the 2D cross-sectional view; and
based on the request, cause the end-user device to display a view for receiving the user input defining the at least two object classes for which to detect clashes.

### Claim 10 (depends on 1)

The computing platform of claim 1, wherein the respective indication of the identified clash comprises a respective selectable representation, the computing platform further comprising program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
determine that the respective selectable representation of the identified clash has been selected; and
cause the end-user device to display one or both of (i) information about each object involved in the identified clash, or (ii) selectable options for facilitating performance of one or more actions related to the identified clash.

### Claim 11

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 platform to:
receive, from an end-user device associated with a user, an indication of a request to generate a two-dimensional (2D) cross-sectional view of a three-dimensional (3D) model of a construction project;
generate the requested 2D cross-sectional view of the 3D model by:
tracing respective intersections of (i) a cross-section plane with (ii) respective 3D meshes representing two or more objects in the 3D model; and
based on tracing the respective intersections, determining a respective 2D object boundary for each of the two or more objects;
receive an indication of user input defining at least two object classes for which to detect clashes between objects of the 3D model that are represented within the 2D cross-sectional view;
based on the user input:
identify, from the objects of the 3D model that are represented within the 2D cross-sectional view, a set of objects that are within the at least two object classes; and
evaluate whether there are any intersections between respective 2D object boundaries of objects in the identified set of objects and thereby determine that there is an intersection between (i) a first 2D object boundary of a first object of the 3D model that is in the identified set of objects and (ii) a second 2D object boundary of a second object of the 3D model that is in the identified set of objects;
based on the determined intersection between (i) the first 2D object boundary of the first object and (ii) the second 2D object boundary of the second object, identify a clash between the first object and the second object of the 3D model; and
cause the end-user device to display a respective indication of the identified clash.

### Claim 12 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the program instructions that, when executed by the at least one processor, cause the computing platform to determine the respective 2D object boundary for each of the two or more objects comprise program instructions that, when executed by the at least one processor, cause the computing platform to:
for each object:
based on the respective intersection of the cross-section plane with the 3D mesh representing the object, determine a plurality of 2D line segments of the object that each define a respective portion of a boundary of the object for the cross-section plane, wherein each line segment comprises a pair of end points;
for each line segment of the object, based on (i) a threshold distance and (ii) at least one respective distance between an end point of the line segment and an end point of another line segment of the object, determine a respective set of nearby line segments;
determine one or more fully-connected object boundaries by progressively connecting respective sets of nearby line segments in series;
determine, from the one or more fully-connected object boundaries, a final object boundary to be used as a discrete 2D boundary of the object; and
add the final object boundary to the cross-sectional view as the respective 2D object boundary of the object.

### Claim 13 (depends on 11)

The non-transitory computer-readable medium of claim 11, further comprising program instructions stored on the non-transitory computer-readable medium that, when executed by the at least one processor, cause the computing platform to:
determine an object class for each of the two or more objects.

### Claim 14 (depends on 11)

The non-transitory computer-readable medium of claim 11, further comprising program instructions stored on the non-transitory computer-readable medium that, when executed by the at least one processor, cause the computing platform to:
for the first object, fill in the first 2D object boundary, wherein the program instructions that, when executed by at least one processor, cause the computing platform to identify the clash between the first object and the second object comprise program instructions that, when executed by at least one processor, cause the computing platform to:
determine that the second 2D object boundary of the second object intersects the filled-in first 2D object boundary of the first object.

### Claim 15 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the request to generate the 2D cross-sectional view of the 3D model of the construction project comprises a user selection of a given object in the 3D model.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the given object is a floor, a ceiling, or a wall.

### Claim 17

A method carried out by a computing platform, the method comprising:
receiving, by the computing platform, from an end-user device associated with a user, an indication of a request to generate a two-dimensional (2D) cross-sectional view of a three-dimensional (3D) model of a construction project;
generating, by the computing platform, the requested 2D cross-sectional view of the 3D model by:
tracing respective intersections of (i) a cross-section plane with (ii) respective 3D meshes representing two or more objects in the 3D model; and
based on tracing the respective intersections, determining a respective 2D object boundary for each of the two or more objects;
receiving, by the computing platform, an indication of user input defining at least two object classes for which to detect clashes between objects of the 3D model that are represented within the 2D cross-sectional view;
based on the user input:
identifying, by the computing platform, from the objects of the 3D model that are represented within the 2D cross-sectional view, a set of objects that are within the at least two object classes; and
evaluating, by the computing platform, whether there are any intersections between respective 2D object boundaries of objects in the identified set of objects and thereby determining that there is an intersection between (i) a first 2D object boundary of a first object of the 3D model that is in the identified set of objects and (ii) a second 2D object boundary of a second object of the 3D model that is in the identified set of objects;
based on the determined intersection between (i) the first 2D object boundary of the first object and (ii) the second 2D object boundary of the second object, identifying, by the computing platform, a clash between the first object and the second object of the 3D model; and
causing, by the computing platform, the end-user device to display a respective indication of the identified clash.

### Claim 18 (depends on 17)

The method of claim 17, wherein determining, by the computing platform, the respective 2D object boundary for each of the two or more objects comprises:
for each object:
based on the respective intersection of the cross-section plane with the 3D mesh representing the object, determining a plurality of 2D line segments of the object that each define a respective portion of a boundary of the object for the cross-section plane, wherein each line segment comprises a pair of end points;
for each line segment of the object, based on (i) a threshold distance and (ii) at least one respective distance between an end point of the line segment and an end point of another line segment of the object, determining a respective set of nearby line segments;
determining one or more fully-connected object boundaries by progressively connecting respective sets of nearby line segments in series;
determining, from the one or more fully-connected object boundaries, a final object boundary to be used as a discrete 2D boundary of the object; and
adding the final object boundary to the cross-sectional view as the respective 2D object boundary of the object.

### Claim 19 (depends on 17)

The method of claim 17, further comprising:
determining, by the computing platform, an object class for each of the two or more objects.

### Claim 20 (depends on 17)

The method of claim 17, further comprising:
based on the first 2D object boundary, generating, by the computing platform, a filled-in first 2D object boundary of the first object, wherein identifying, by the computing platform, the clash between the first object and the second object of the 3D model comprises determining that the second 2D object boundary of the second object intersects the filled-in first 2D object boundary of the first object.
