Ensuring remote access by worker to correct two-dimensional (2D) drawing
The method of using QR codes on 2D drawings to verify and access the latest versions addresses the challenge of ensuring correct document versions, enhancing project efficiency and reducing errors.
Patent Information
- Application Number
- JP2024186749
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-23
- Filing Date
- 2024-10-23
- Publication Date
- 2025-05-09
AI Technical Summary
Existing technologies face challenges in ensuring that end users have access to the correct, latest versions of two-dimensional (2D) drawings, leading to potential errors and delays in manufacturing and construction processes.
A computer-based method using a smart device to read QR codes from 2D drawings, which include a document identifier, version indicator, and URL for a remote network location storing information about the document. This method allows users to verify if the document is the latest version and access the correct version if needed.
Ensures that end users access the correct and latest versions of 2D drawings, reducing errors, delays, and the time spent searching for the right documents, thereby enhancing project efficiency and productivity.
Smart Images

Figure 2025072340000001_ABST
Abstract
Description
Detailed Description of the Invention
[0001] [CROSS REFERENCE TO RELATED APPLICATIONS] This application claims priority to U.S. Provisional Patent Application No. 63 / 592,228, entitled "Ensuring Remote Access by a Worker to a Correct Two-Dimensional (2D) Drawing," filed on October 23, 2023, the entire disclosure of which is incorporated herein by reference. [Field of the Invention] The present disclosure relates to the field of computer-implemented design and modeling, and more specifically, to ensuring access to correct (e.g., latest version) two-dimensional (2D) drawings. [background] Computers are widely used to design and store various types of documents, such as computer-aided design (CAD) drawings and models, as well as geographic information system (GIS) maps and associated data files. These documents, which typically change over time, may be used by end users (e.g., human workers on-site) to perform any number of tasks related to manufacturing, construction, production, and the like. Ensuring that the end users are accessing and working with the correct (e.g., most recent) version of a document can be very important. Thus, a question that such end users often ask before beginning work is, is this printed (or electronic version) of the document that they are looking at the correct (or most recent) version of this document? Finding the answer to this question has proven to be difficult. [Summary of the Invention] In one aspect, a computer-based method includes using a code reader on a smart device to read a non-alphanumeric (e.g., QR or Quick Response) code from a document that contains substantive information that changes over time. The code includes a document identifier that identifies the document, a version indicator associated with the document, and a uniform resource locator for a remote network location where information about the document and all versions is stored. A request is initiated from the smart device to ascertain at the remote network location whether the version of the document in question is a particular version of the document (e.g., the latest version of the document). The smart device receives a response and generates a notification on its display screen indicating whether the document is the particular (or latest) version of the document.
[0002] Single documents and / or packets of 2D documents are specified in various implementations, in which each single 2D document may contain all the information that needs to be interpreted to indicate or document a task, while the 2D documents of a packet may need to be interpreted simultaneously to indicate or document a task.
[0003] Some implementations have one or more of the following advantages.
[0004] For example, in various implementations, the systems and methods disclosed herein help end users ensure that the printed (or electronic) document (e.g., a drawing or GIS map and associated data file) they are looking at is indeed the correct (or latest) version of that document. End users can accomplish this simply and conveniently. The systems and techniques apply to many different entities, such as, for example, products, assets, buildings, structures, and large infrastructures and maps, especially networks, in general. In various implementations, the systems and techniques may be applied to 2D drawings on paper (or other physical substrates), and to digital files (e.g., viewable on a smartphone display screen) that contain the 2D drawings. The systems and techniques may be applied to facilitate version tracking of a document from the time it is created until it is lost, throughout its entire lifecycle, including any iterations or revisions of the document.
[0005] In various implementations, the systems and techniques disclosed herein help avoid errors that may result from using inaccurate raster 2D drawings and consequently executing incorrect designs. These errors would normally need to be corrected later through rework or during internal testing or commissioning. Some errors may require removal or rework of tasks that were implemented according to the inaccurate drawings. This may create potential resupply requests and exacerbate delays for the many subtasks involved.
[0006] The systems and techniques disclosed herein generally generate logical links back to revised versions of the 2D CAD drawings in a repository, providing a "master file"-like repository (e.g., when data is replicated on different servers) or a single "source of truth" type repository. These systems and techniques typically facilitate synchronizing the rasterized 2D drawings with each revised version of the 2D CAD drawings before use, or facilitate generating rasterized 2D drawings on the fly from newly revised 2D CAD drawings.
[0007] These systems and techniques help reduce the time spent searching for "master files" across servers and other locations to verify access to the correct rasterized 2D drawing. Additionally, these systems and techniques help reduce the time workers spend figuring out how to find which latest version of a rasterized 2D drawing to use for a task or project. Additionally, the systems and techniques disclosed herein may help ensure that workers receive the correct version of a rasterized 2D drawing.
[0008] Using the systems and techniques disclosed herein may result in users having greater confidence in the system. Additionally, implementation of the systems and techniques disclosed herein may increase agility and productivity during projects, including collaborative design, supplier outsourcing, execution / construction, commissioning, maintenance, refurbishment, and / or demolition.
[0009] QR codes are easy to use because they are publicly available and do not usually require a license. QR code detectors and readers are already built into many consumer devices and are part of the free in-apps included with the purchase of the device. In addition, QR code generators are already included in some consumer products (and are generally accessible from any product). More complex ones are available that can automatically serialize QR codes; for example, scripts can be used in combination with existing libraries to generate serial codes from an Excel™ spreadsheet.
[0010] Additionally, one of the problems that the systems and techniques disclosed herein may address is helping users in the field (e.g., construction workers) easily verify that they are working from the most recent set of drawings for a particular project. In this regard, the present application discloses the concept of applying a QR code to a drawing, which includes a link to a location on a network that contains information about the version of the drawing. The QR code can be scanned in the field (e.g., by the user's mobile device) to access information stored to determine whether the drawing being used is in fact the correct (e.g., latest, most recent) version of the drawing. In some cases, if the system determines that the scanned drawing is not completely recent, the system may allow the user to access or download the most recent and most recent version.
[0011] Other features and advantages will become apparent from the specification, drawings, and claims. [Brief description of the drawings]
[0012] [Figure 1] FIG. 1 is a schematic diagram of an example computer system for implementing and facilitating the techniques disclosed herein. [Figure 2A]FIG. 2A is a flow chart illustrating an example of steps that may occur at the designer's end of the computer system of FIG. [Figure 2B] FIG. 2B is a flow chart illustrating an example of steps that may occur at the end user side of the computer system of FIG. [Diagram 3] FIG. 3 is a schematic diagram illustrating the various components in a typical system and a typical sequence of interactions between the depicted components to determine whether a particular paper drawing is the latest version of that drawing. [Figure 4] FIG. 4 is a schematic diagram illustrating another variety of components in a typical system and another typical series of interactions between the depicted components for determining whether a particular paper drawing is the latest version of that drawing. [Diagram 5] FIG. 5 is a schematic diagram of at least a portion of a computer (eg, a computer workstation), a smart device (eg, a smartphone or tablet), a server, etc. [Figure 6] FIG. 6 is an example of a look-up table for a 2D drawing that may be stored in computer memory. [Figure 7] FIG. 7 is an example of a look-up table for a GIS map that may be stored in computer memory.
[0013] Like reference numbers refer to like elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] [Detailed Description of the Invention] Various terms are used herein to describe the inventive concepts. These terms should be interpreted in their ordinary sense and may be understood in a manner consistent with what follows, unless otherwise specified.
[0015] For example, computer-aided design (CAD) software is software that, when executed on a computer, allows a user of that computer to perform a design function (e.g., designing a product, object, assembly, etc.). In certain implementations, CAD software allows a user to build and manipulate complex three-dimensional (3D) models. Solidworks® computer software, Catia® computer software, and DraftSight® computer software, each available from Dassault Systèmes Solidworks, Inc., the applicant of the present application, are examples of CAD software that may be used, for example, to build and manipulate complex three-dimensional (3D) models. A "designer" is a typical user of a 3D CAD system. More specifically, in a typical implementation, a "designer" is a human document author and / or a member of a team that assists in document authoring, such as a CAD designer or a member of a design team (e.g., a manager, administrator, etc.). A designer typically designs the physical and aesthetic aspects of a 3D model and may be familiar with 3D design techniques. A designer typically creates parts and may assemble certain parts into subassemblies. A subassembly may be composed of other subassemblies. An assembly may be designed using parts and subassemblies. Parts and subassemblies may collectively be referred to as components. The term "designer" as used herein should be interpreted broadly to include one or more human users using a computer or computer system to create a design. A design may cover virtually any real-world product that can be manufactured, assembled, built, etc., by a human. A 3D design is typically followed by one or more 2D drawings. These are used in most subsequent operations throughout the entire lifecycle of the design, e.g., manufacturing, construction, commissioning, installation, maintenance, refurbishment, upgrades, etc.
[0016] A Geographic Information System (GIS) is a system, which may be at least partially computer-implemented, that can be used to create, review, manage, analyze, and map many different types of data. A GIS map combines data from one or more related data files into a geographic map, integrating location data with types of descriptive information. GIS maps help users understand patterns and relationships within a geographic context.
[0017] A QR (Quick Response) code is a two-dimensional, non-alphanumeric, machine-readable optical image that contains coded information specific to the labeled item (e.g., a document such as a drawing or GIS map). QR codes may contain locator, identifier, and Uniform Resource Locator data (associated with a destination on the web where information related to version data specific to the labeled item is stored). In a typical implementation, a QR code consists of black squares arranged in a square grid on a white background, can be read by an image processing device such as a camera, and contains fiducial markers that are processed until the image can be properly interpreted. The necessary data is then extracted from the pattern, which is usually present in both the horizontal and vertical components of the image. A QR code URL is a type of QR code that contains a Uniform Resource Locator (i.e., a website address). Typically, a user can use a smartphone (or any kind of smart device, including a tablet) to scan (or otherwise capture) a QR code URL and access the corresponding URL link without having to manually enter (i.e., type) the URL into the smartphone browser.
[0018] In a typical implementation, a lookup table is an array or matrix of data stored in a computer memory in a searchable manner.
[0019] Rasterization refers to a computer-implemented process that converts a computer image, e.g., described in a vector graphic format, into a raster image (e.g., a series of pixels, points, or lines that, when viewed together, create a geometrically represented image). The rasterized image may then be displayed on a computer display, printed, or stored, e.g., in a bitmap file format. In some implementations, a "2D rasterized drawing" or "2D drawing" has a format that stores CAD entities and properties, such as dimensions, layers, and annotations, using geometric primitives, such as points, lines, and curves. This format is extensible and editable. Examples of 2D drawings include DXF, DWG, DWF, SVG, and Adobe Illustrator, which are sometimes referred to as "vector" drawings. Furthermore, "2D rasterized drawing" formats use resolution-dependent rasterized images. 2D rasterized drawing capabilities are limited to some editing, such as cropping and contrast settings, but annotations can be added. In the same field of view as seen by the user, the file size of the 2D rasterized drawing is a smaller format than the file size of the original vector graphic.
[0020] As used herein, "end user" refers to a person who is typically "in the field" and whose role is to use documents (e.g., drawings or GIS maps) that have typically been created by others (i.e., designers). Examples of end users include contractors, manufacturers, production personnel, installation personnel, maintenance personnel, etc.
[0021] A "smart device" is generally an electronic device that can connect to other devices or networks via one or more wireless protocols, such as Bluetooth, Zigbee, near field communication, Wi-Fi, NearLink, LiFi, or 5G, and typically operates interactively and autonomously. Examples of smart devices include smartphones, smart tablets, and smart phablets.
[0022] "Metadata," as used herein, refers to data (e.g., a particular type of data that provides information about other data). Considering a document, "metadata" may refer to the document title, document revision information (including revision number, letter, symbol, or other identifier), drawing date, QR code content, plan level identifier, drawing type identifier, applicable skill area identifier, elevation identifier, and other project or map specific information, such as site identifiers, asset identifiers, location and other geographic location identifiers, permission information, primary format identifiers, format extensions, names of associated files and / or other metadata, frequent or common identifiers, map type identifiers, map symbol identifiers, etc.
[0023] The term "processor" (or similar terms) refers to any one or more computer-based processing devices. A computer-based processing device is a physical component (e.g., a CPU) that can perform the functions of a computer by executing computer-readable instructions stored in memory. When there is more than one computer-based processing device or processor core, they may be contained within a single physical device (e.g., a single computer or server) or may be distributed across multiple physical devices that may be located, for example, in more than one physical location or facility.
[0024] The term "memory" (or similar terms) refers to any one or more computer-based storage devices. A computer-based storage device is a physical component that can store computer-readable instructions that, when executed by a processor, cause the processor to perform an associated computer function. When there is more than one computer-based storage device, they may be contained within a single physical device (e.g., a computer or server) or may be distributed across multiple physical devices that may be in more than one physical location or facility. [Prior art is different] While prior art exists, each of these prior art techniques has shortcomings that may be addressed, for example, by one or more implementations of the systems and techniques disclosed herein.
[0025] For example, some organizations use information technology (IT) to organize business processes into tiers. More specifically, in some IT environments, business processes have been implemented sequentially, one on top of the other. In such environments, some data repositories, including 2D CAD drawings and rasterized 2D drawings, have been replicated on different servers for different business processes. In such cases, the "master file" may be the one used in the original business process. The master file keeps updated whenever the business process is executed. Unfortunately, the data entities replicated on different servers are often not properly synchronized. Synchronization between the "master files" on the original servers may be done periodically (e.g., on a weekly or monthly schedule), if at all, or may not be scheduled at all and may be done on request, which still requires latency. Requesters spend effort and time searching for the "master files" to answer users' questions.
[0026] In some implementations, team members may be provided with access to a single source of truth. More specifically, in some IT environments, there is a single repository from which all business processes are executed. This constitutes a "single source of truth," but workers may not be able to easily access it using filters, keywords, and predefined queries such as SQL, even when using a smartphone or tablet.
[0027] In various implementations, the systems and techniques disclosed herein (as opposed to conventional systems) provide technical solutions to these and potentially other technical limitations / problems in conventional CAD software. [Technical disclosure] FIG. 1 is a schematic diagram of a representative computer system 100 configured to implement the techniques disclosed herein. More specifically, in a particular implementation, the illustrated computer system 100 is configured to allow a human user to use his or her smartphone to determine whether a particular physical document, such as a paper drawing or a geographic information system (GIS) map showing a construction plan (which is updated from time to time), is the latest version (or other designated version / revision) of the document. In a particular representative implementation, when a user (see below) takes a picture (or otherwise captures) with his or her smartphone of a QR code printed or otherwise visually applied to the physical version of the document, the system recognizes that it is a QR code and scans it, and in response to the scan, the system 100 determines whether the physical document is the latest (i.e., most recent) version or whether a subsequent iteration (revision) of the document is available. Typically, the smart device 102 recognizes the QR code locally. The image can also be sent to the system 100 by placing a scan reader at a later step in the process. The metadata (e.g., metadata sent from the smart device) includes the image if the scan is not performed locally by the smart device. Typically, if the system determines that the physical version of the document is not the latest version of the document (i.e., a later or revised version of the document exists within the system), the system 100 may make the latest version of the document available in electronic form for viewing on the display screen of the user's smartphone.
[0028] The system 100 of FIG. 1 includes a user's smart device (e.g., smartphone 102) connected via a network 104 to a web server 106 that has access to a computer memory 108 connected to receive and store data (e.g., in the form of documents and associated metadata) from one or more computer workstations 110a-110n, which are connected to one or more printers 112. The physical and organizational configuration of the illustrated system components may vary. In a representative implementation, the one or more workstations 110a-110n and the one or more printers 112 may be located in a single physical facility or distributed across multiple physical facilities, but are subject to control and / or access restrictions imposed by a single legal entity (e.g., a single company, corporation, or other organization). The web server 106 and / or computer memory 108 may be located at any one or more of the physical facilities in which the one or more computer workstations 110a-110n or one or more printers 112 are located, or may be located at one or more other physical facilities and may be subject to the same or different control and / or access restrictions as the one or more computer workstations 110a-110n and / or one or more printers 112. In any event, the illustrated system components are configured to communicate and interact with each other to perform and / or facilitate the functions described herein as ascribed to the system 100.
[0029] Although the multiple computer workstations 110a-110n can have a variety of different configurations, each computer workstation is generally configured to perform the functions described herein as ascribed to a single computer workstation. In a typical implementation, each computer workstation 110a-110n is configured to enable a human designer to create, edit, print, and / or save one or more documents (e.g., drawings, GIS maps, etc.). Additionally, in a typical implementation, each computer workstation 110a-110n is further configured to enable a designer to use the computer workstation 110a-110n to generate and apply a unique visual code (e.g., a quick response, or "QR" code) to each document at any point in the document's lifecycle. As an example, in some implementations, the system 100 applies the unique QR code to the document in response to some prompt from the designer. The designer may be prompted, for example, when the designer determines that the document is complete (e.g., ready for end users to use in a real-world construction project, etc.). The computer system 100, in response to a prompt from the user, applies a unique QR code to the drawing. The system may then print and / or save the document (e.g., a rasterized version).
[0030] Typically, system 100 is configured to apply a different unique code (e.g., QR code) to all documents, including all versions (or revisions) of a particular document. For example, system 100 may apply a first unique QR code to an original version of a document, then apply a second unique QR code (different from the first unique QR code) to a subsequent revision version of that drawing, and then apply a different unique QR code to every subsequent (revised) version of that drawing created and / or stored on the system. All of the unique codes (e.g., QR codes) generated by system 100 may be generated by inputting information into one of code generators 128, typically representing information identifying a uniform resource locator (URL) of a website where an electronic version of the document is stored for remote access (e.g., by a user's smartphone (e.g., 102)). Additionally, in some implementations, the QR code may represent (and be generated using as input) information about the document to which the QR code is applied. For a particular document, this information may include, for example, the document title, the document revision number, and / or the document date.
[0031] In view of the above, each computer workstation 110a-110n in the illustrated implementation includes or has access to a design program 126 and a code generator 128. Of course, in various implementations, the computer workstations may further include various other components, software, hardware, or combinations thereof. Also, each computer workstation 110a-110n in the illustrated implementation may be connected to and print one or more printers 112 configured to print (e.g., on paper or other physical substrate) a real-world version of the document in process or the completed document. In some cases, a 2D drawing must be interpreted in conjunction with other drawings or information such as notes, schedules, details, etc., to be properly interpreted by a user in the field. In such cases, the 2D drawing may be organized into packets to ensure proper interpretation by the user.
[0032] Design program 126 may be substantially any form of software (e.g., CAD software, etc.) that, when executed by, for example, a computer processor, enables a user to perform design functions and create, for example, virtual 2D or 3D models of real-world objects to be produced, manufactured, constructed, etc., and / or virtual GIS maps. The resulting models / maps may, for example, be rasterized and printed (on one or more printers 112) as documents for use by an end user in one or more real-world applications. Possible real-world applications include using substantial content in the corresponding one or more printed documents as a guide to produce, manufacture, construct one or more real-world objects, and / or using the one or more printed documents in another real-world, non-virtual application (e.g., including documents showing GIS maps). Examples of CAD software that may be (or be part of) design program 126 include Solidworks® computer software, Catia® computer software, and DraftSight® computer software.
[0033] The code generator 128 is a computer application (e.g., software running on computer hardware including a processor) that can generate a QR code based on input data, typically in response to prompts from a user. The input data to the code generator 128 may be provided by a user or obtained and applied by the system 100 from a suitable source, but may include any data that would, for example, cause the code generator 128 to generate a QR code that, when read, directs a web browser (e.g., 118) on a smartphone (e.g., 102) to a web server (e.g., 106) to access data related to the corresponding document and / or a revision version thereof. The input data may include, for example, an associated URL and, optionally, a drawing identifying information about the document to which the QR code is or will be applied (e.g., the document name, the document revision number, and / or the document date).
[0034] Each computer workstation 110a-110n can access and send printing instructions to one or more printers 112. The printers 112 can be virtually any type of computer printer or peripheral configured to generate a persistent representation of images and / or text on a substrate, such as paper. Each printer 112 is configured to receive data from the one or more computer workstations 110a-110n and react accordingly based on the received data (e.g., print a version of a document (e.g., a drawing or GIS map) along with a corresponding QR code on paper or other physical substrate).
[0035] The computer workstations 110 a - 110 n in the illustrated implementation are connected to a computer memory 108 , which is configured to store (or actually stores) a drawing repository 122 and one or more look-up tables 124 .
[0036] The drawing repository 122 is a computer database that stores drawings (created and / or rasterized at one or more computer workstations 110a-110n) in digital format. In a particular implementation, the drawing repository 122 may provide an associated set of data management, search, and access functions to enable application-independent access to the drawings. The drawing repository 122 may include a number of different drawings (i.e., drawings showing different subject matter) and one or more versions (or revisions) of each drawing. Thus, for a particular construction project (a house), for example, the drawings in the drawing repository 122 may include a framing plan for the house, an electrical plan for the house, a plumbing plan for the house, and a heating, ventilation, and air conditioning (HVAC) plan for the house. In this example (a construction project for a house), for each drawing, the drawing repository 122 would include at least one original version and possibly one or more other versions (revisions of the original version). Continuing with the previous example, the drawing repository may include, for example, an original version of a framing plan and two of its revised versions, an original version of only an electrical plan with no revised versions, an original version of a piping plan and four of its revised versions, an original version of a mechanical (HVAC) plan and one revised version of the mechanical (HVAC) plan. In this example, the drawing repository 122 would include three versions of framing plans (the original and two revised versions), one version of electrical plans (only the original version), five versions of piping plans (the original and four revised versions), and two versions of mechanical (HVAC) plans (the original and one revised version).
[0037] In a typical implementation, each drawing (or document) has a title, which may be printed on the drawing itself. In the case of a drawing that has multiple versions (e.g., revision versions), all versions of the drawing may have the same title. Thus, in a typical implementation, the original version of a drawing, its first revision version, and any subsequent revision versions may have the same title (e.g., Mirmar Residence_Level2 Skeleton Plan). Furthermore, in a typical implementation, all versions of a particular drawing (or document) may be labeled (and, e.g., visually marked) with one or more textual indicators (e.g., revision numbers) separate from the substantive information of the plan (e.g., structural, electrical, or mechanical) to allow a user to distinguish between different versions (e.g., multiple revision versions) of a document. These textual indicators may include, for example, version labels such as "S_101," "S_111," or "S_112" to distinguish one version of a drawing from other versions of the drawing. For example, a version label "S_101" may be used to identify a first or original version of a drawing, while a version label [S_111] may be used to identify a first revised version of the drawing, and a label "S_112" may be used to identify a second revised version of the drawing. Of course, any number of alternative labeling conventions may be employed to label and distinguish different versions of a drawing. The textual indicia that allows a user to distinguish between different versions (e.g., revised versions) of a document may also (or alternatively) include, for example, the date of the version of the document, which in the case of a first version of a document may be the date that the first document was created, stored in the drawing repository 122 (or moved to the drawing repository 122 after being stored elsewhere), rasterized, printed, and / or designated "finished" or ready for use in computer memory. If subsequent versions (revisions) of the plan are created later, each version will also be given a corresponding date.For each such revision version, the date of that revision version may be the date that that particular revision version was created, stored in drawing repository 122 (or moved to drawing repository 122 after being stored elsewhere), rasterized, printed, and / or designated in computer memory as "finished" or ready for use. Every document in drawing repository 122 may have, for example, a title block that contains a visual representation of any or all of the aforementioned information (i.e., title, version label, and / or date), as well as potentially other or different types of drawing and / or version identification information.
[0038] Furthermore, in a typical implementation, every version of a completed document in the drawing repository 122 has a unique non-alphanumeric code (e.g., a QR code) that, when interpreted, contains information that identifies a web-accessible location (e.g., a URL) associated with the drawing and / or the version of that document stored in the drawing repository 122. Typically, the unique non-alphanumeric code is displayed on the drawing itself as a visual marking. The non-alphanumeric code may be a QR ("quick response") code. However, alternatively, the non-alphanumeric code may be any other type of non-alphanumeric code (e.g., a barcode, etc.) that can represent the information described above and that can be read and interpreted / executed in the manner described herein by a smartphone or other computer-enabled code reader.
[0039] In implementations in which the non-alphanumeric code is a QR code, for example, the QR code is generally configured such that when a QR code reader (e.g., 116) on a user's smart device (e.g., smartphone 102) reads the QR code, the smartphone directs a web browser (e.g., 118) to a web page hosted by a web server (e.g., 106) where information about the associated drawing and / or its versions can be accessed (e.g., from a drawing repository 122 and / or a lookup table 124). Thus, in this example, the QR code may be generated from (and include encoded data representing) a uniform resource location (URL) of a website and may include one or more identifying information for the associated version of the drawing (e.g., including drawing title information, and / or version identifying information, and / or drawing date information, and / or alternatively other types of identifying information).
[0040] For example, consider a construction project that includes a drawing (created on computer workstation 110a) showing a framing plan for Level 2 of a residential facility called Mirmar Residence, in which two subsequent iterations (revision versions) have been created. In this example, the drawing repository may include all three versions of the Mirmar Residence Level 2 framing plan: the first (or original) version and the two subsequent revision versions. The first or original version may be designated and visually marked by a drawing title that describes the substantive subject matter of the drawing (e.g., Mirmar Residence_Level 2 framing plan), may be designated and visually marked by a version designator (e.g., S_101) that signifies that the particular version of the Mirmar Residence Level 2 framing plan is the first version of that plan, or may be designated and visually marked by a date (e.g., April 10, 2022) that signifies, for example, that it was "completed" on that date. Similarly, a first revised version (or second version) of the drawings may be designated and visually marked with the same drawing title (e.g., Mirmar Residence_Level 2 Frame Plans), may be designated and visually marked or otherwise identified with a version designator (e.g., S_111) that means that a particular version of the Mirmar Residence Level 2 Frame Plans is a second version of that plan, and may be designated and visually marked with a date (e.g., September 5, 2022) that means that a particular version of the Mirmar Residence Level 2 Frame Plans was designated as “completed” on that date, for example.Similarly, a second revised version (third version) of the drawing may be designated and visually marked with the same drawing title (e.g., Mirmar Residence_Level 2 Frame Plan), may be designated and visually marked or otherwise identified with a version designator (e.g., S_121) signifying that the particular version of the Mirmar Residence Level 2 Frame Plan is the third version of that plan, and may be designated and visually marked with a date (e.g., January 26, 2023) signifying that the particular version of the Mirmar Residence Level 2 Frame Plan was designated, for example, "completed" on that date. Each of these drawings will have a unique QR code associated with them and visually marked on them. Each of these saved documents (which may all be rasterized drawings) may be stored together in the drawing repository 122 using a file name that identifies the respective document as follows:
[0041] Mirmar Residence_Level 2 Framework Plan_S_101_2022―04―10_.DWG Mirmar Residence_Level 2 Framework Plan_S_111_2022―09―05_.DWG Mirmar Residence_Level 2 Framework Plan_S_121_2023―01―26_.DWG Thus, in this example, the filename of each drawing provides an indication of the subject matter of that particular drawing (i.e., that the drawing represents the framing plan for Level 2 of the Mirmar Residence), revision information (e.g., S_101 (first or original version), S_111 (first revised version), and S_121 (second revised version)), and the date of each revision (e.g., 2022-04-10, 2022-09-05, 2023-01-26). In various implementations, more or less information (data or metadata) about the associated document may be represented in the filename of the QR coded document stored within the drawing repository 122. However, in some implementations, it is preferred that the file naming convention employed allows a computer system (e.g., 100) to distinguish between multiple versions (e.g., iterative versions) of the same drawing based solely on the filename.
[0042] In a typical implementation, the lookup table 124 in the memory 108 stores data (e.g., metadata such as title, revision number, date, etc.) for each document in the drawing repository 122 and each version of each document in a searchable manner. In this regard, each lookup table 124 may include an array or matrix of data entries. Thus, in the above-mentioned Mirmar Residence construction example, the lookup table 124 may be provided with a column for each of the three aforementioned versions of the Mirmar Residence Level 2 framing plans, namely, version S_101 (dated April 10, 2022), version S_111 (dated September 5, 2022), and version S_121 (dated January 26, 2023). In some implementations, the entries in each column may correspond to the file names of the corresponding documents (drawings). More specifically, in a typical implementation, a column of the lookup table 124 may be entered as follows:
[0043] Mirmar Residence_Level 2 Framework Plan_S_101_2022―04―10_.DWG Another column in lookup table 124 may be populated as follows:
[0044] Mirmar Residence_Level 2 Framework Plan_S_111_2022―09―05_.DWG Also, another column of lookup table 124 may be populated as follows:
[0045] Mirmar Residence_Level 2 Framework Plan_S_121_2023―01―26_.DWG Each entry in lookup table 124 in this example includes information identifying a drawing and a corresponding one of three revision versions of that drawing. In various implementations, the particular arrangement and / or collection of data in each entry may vary. Typically, however, each entry includes sufficient data to uniquely identify and distinguish each version of a particular drawing. The identifying and distinguishing data may be arranged in the lookup table in any one of a variety of possible manners. The date corresponding to each revision version of a particular drawing (stored in drawing repository 122 and represented by any one entry / column of lookup table 124) may be the date that version of that drawing was created, saved, printed, and / or assigned a unique QR code (corresponding to that particular version of the drawing) and marked with a unique QR code.
[0046] A smart device (e.g., smartphone 102 of FIG. 1) is a portable computing device that combines mobile phone functions and certain personal computing functions into one unit. The smartphone 102 in the illustrated implementation includes a camera 114, a QR ("quick response") code reader 116, a web browser 118, a display screen, and an agent 120. Of course, in various implementations, the smartphone 102 can include various other computing components. In some implementations, the smartphone 102 can be a different type of mobile device that includes the components and functions disclosed herein, such as those related to version checking of drawings.
[0047] A camera 114 is built into the smartphone 102 and can take pictures and often record video. The smartphone's display screen 119 typically displays a visual representation of any scene and / or any objects in the scene being photographed or videotaped.
[0048] The code reader 116 is built into the smartphone 102 and can recognize an image of a code (e.g., a QR code) in a scene, for example, as captured by the smartphone's camera 114. The code reader 116 can convert the recognized image of the QR code into a format useful to the smartphone 102, such as a standard uniform resource locator ("URL") for a website, thereby eliminating the need for a user to type the URL into a web browser. The QR code in this example would contain encoded data representing a URL of a website associated with the web server 106. Once read, the web browser 118 may use the URL to access a website corresponding to the web server's URL. The code reader 116 may be implemented, at least in part, by a computer processor in the smartphone 102 executing computer-readable instructions in a computer memory to interact with the camera and / or display screen on the smartphone 102.
[0049] The smartphone web browser 118 is an application on the smartphone 102 for accessing websites. Generally, when a user requests a web page from a particular website (e.g., by entering the website's URL into the web browser 118 or by activating a QR code reader to read the URL from a QR code), the web browser 118 can retrieve files for that website from a web server (e.g., the web server 106) and display the web page on the display screen 119 of the smartphone 102 based on the retrieved files. In some implementations, the web browser 118 may be able to retrieve different files for different websites from the web server 106 (or from multiple different web servers) depending on the URL obtained from the QR code. The web browser may be implemented, at least in part, by a computer processor in the smartphone 102 that executes computer-readable instructions in a computer memory to perform functions associated with the browser. Examples of web browsers include the Google Chrome™ web browser, the Apple Safari™ web browser, and the Microsoft Edge™ web browser.
[0050] The smartphone's display screen 119 can be virtually any type of display screen and is incorporated within the smartphone 102. The display screen 119 in a typical implementation is configured to display any scene being photographed or scanned (e.g., for a QR code) and may, for example, reveal a user-selectable visual indication of a URL associated with the scanned QR code, the selection of which causes the smartphone's web browser 118 to navigate to a website associated with the web server 106 to access information regarding the drawing associated with the scanned QR code.
[0051] The agent 120 is an application on the smartphone 102 that supports or performs one or more of the functions described herein ascribed to the smartphone, and facilitates verification from the smartphone 102 of whether a physical drawing (e.g., in the user's possession) is the desired (e.g., latest) version of that drawing, and if not, enables the user to access the correct version of the drawing, at least in electronic form, for viewing on the display screen 119 of the smartphone 102.
[0052] In the illustrated implementation, the smartphone 102 is connected to a web server 106 via a network 104. The network 104 can be any type of network that allows the depicted system components to communicate and interact with each other. In a typical implementation, the network 104 includes computers, computer equipment, and / or computer resources located at various nodes in the network 104 that communicate and interact with each other via wired or wireless communication channels. In a representative implementation, the network 104 is or includes the Internet.
[0053] The web server 106 in the illustrated implementation is located on the opposite side of the network 104 from the smartphone 102 and connects to the smartphone 102 via the network 104. The web server 106 is a computer that executes software that can deliver web pages and / or other documents to the web browser 118 using, for example, an application layer protocol such as the Hypertext Transfer Protocol (HTTP). The web server 106 includes computer software that executes on the underlying computer hardware to perform its functions. In a representative implementation, the web server 106 can accept requests (e.g., from the smartphone 102 and / or other devices) via HTTP over the network 104. Specifically, in a representative implementation, the smartphone's web browser 118 may initiate communication with the web server 106 by requesting a web page or other resource using HTTP, and the web server 106 responds to the request by transmitting content corresponding to the requested web page or other resource over the network 104. If the web server 106 cannot fulfill the web browser's request, the web server 106 may instead return an error message. The smartphone's web browser 118 can generate a rendering of a web page or other message on the display screen 119 of the smartphone 102 based on the content provided by the web server 106. In some implementations, the agent 120 affects the content of any messages that may be displayed on the display screen 119 of the smartphone 102 based on the content provided by the web server 106. As mentioned above, the web server 106 is connected to a computer memory 108 that includes a drawing repository 122 and one or more lookup tables 124.
[0054] The system 100 operates with multiple participants (e.g., designers and end users) interacting with the system components in various ways. For example, designers typically create and revise documents (e.g., drawings and / or maps) on one or more computer workstations 110a-110n and store them in memory 108. The documents may be printed on a printer 112 and used by end users on-site (e.g., at a worksite such as a construction site), for example, to guide construction or other manufacturing activities at the worksite. End users, in turn, may desire to use the printed documents on-site, for example, to guide their construction or other manufacturing activities. The end users may use the system 100 to verify, from their smartphone 102, whether the printed documents they have at hand are the correct (e.g., the latest) version of the drawings, and if not, to obtain the correct (e.g., the latest) version of the drawings, at least in an electronic format viewable on their smartphone 102. Thus, there are two distinct aspects of the system 100 that work in concert to provide a variety of benefits that help make projects run smoothly.
[0055] 2A is a flow chart depicting steps performed at the designer's end of system 100 to add documents and document-related data to drawing repository 122 and search table 124 to support the functioning of the system. The flow chart is organized into two columns, one column depicting actions performed by the designer (labeled "designer actions") and the other column depicting actions performed by computer system 100 (labeled "computer system actions"). In a typical implementation, the designer's steps would occur by one or more humans interacting with one of computer workstations 110a-110n, while the computer system's steps may be performed by one or more hardware and / or software components of computer system 100 (e.g., including one or more computer processors executing computer-readable instructions stored in computer memory). The particular process represented in the illustrated flowchart would add to the drawing repository 122 three versions (revisions) of a first drawing (e.g., Mirmar Residence Level 2 Framing Plans) and one version of a second drawing (e.g., Mirmar Residence Level 2 Electrical Plans), and add to the lookup table 124 data associated with all three versions (revisions) of the first drawing and data associated with the one version of the second drawing.
[0056] According to the illustrated flow chart, (at 202) an architect creates a first version of a first drawing, and (at 204) a computer system assists in the creation of the first version of the first drawing. Typically, these steps include the architect working with a design program 126 (e.g., CAD software) at one of the computer workstations 110a-110n to create the design. Eventually, the architect is satisfied that the first version of the first drawing is complete, i.e., ready for use by an end user in a real-world application (e.g., the construction or manufacture of one or more real-world objects based on the details represented in the first version of the first drawing). At that point, or at some point thereafter, the architect performs (at 206) an action at one of the computer workstations 110a-110n to cause the computer system 100 to apply a unique identification code (e.g., a visual depiction of a QR code) to the first version of the first drawing. The particular action by the designer that causes the computer system 100 to apply the unique code can vary and may include, for example, selecting a graphical widget (such as, for example, a button) on a display screen of one of the computer workstations 110a-110n, or triggering the computer system 100 to apply the code (e.g., by specifying, for example, that in computer memory, the initial version of the first drawing is ready for use in real-world action and that, at least for the time being, the designer has finished revising the initial version of the first drawing).
[0057] In response to the designer's actions (at 206), the computer system 100 generates (at 208) a unique code (e.g., a QR code) and applies the unique code to the first version of the first drawing. In a typical implementation, the computer system 100 utilizes the functionality of the code generator 128 to generate the unique code. Furthermore, in a typical implementation, the unique code may be generated by applying a URL and possibly other drawing-specific metadata as inputs to the code generator 128. The URL in this example would be a URL for a website where the first version of the first drawing (and any other versions of the first drawing) and associated metadata in a tabular format (e.g., title, revision number, date, etc.) can be accessed. Thus, when this URL is read by the camera 114 and / or code reader 116 of the end user's smartphone 102 and selected by the end user on the smartphone's display screen 119, the smartphone's web browser 118 navigates to a website hosted by the web server 106 that provides access to the contents of the drawing repository 122 (which would typically contain a rasterized version of the original version of the first drawing) and the search table 124 (which would include metadata associated with the original version of the first drawing, e.g., in the form of title, version number, and / or date information).
[0058] After the computer system generates (at 208) the unique code and applies the unique code to the initial version of the first drawing, the computer system 100, following the illustrated flowchart, stores (at 210) the initial version of the first drawing in the drawing repository 122 and populates (at 212) the lookup table 124 with data and / or metadata about the initial version of the first drawing. In some implementations, these steps (210 and 212) occur automatically after the unique code is applied to the initial version of the first drawing. In other implementations, steps 210 and 212 are prompted by a designer taking some action, such as selecting a graphic widget on a display screen of one of the computer workstations 110a-110n. In some implementations, the initial version of the first drawing is stored (at 210) in rasterized format in the drawing repository 122.
[0059] At this point, or any time thereafter, for example, the designer, or anyone else, may print a first version of the first drawing (e.g., on paper or other physical substrate) on one of a plurality of printers 112. The printed first version of the first drawing will, of course, include the substantive information associated with the first version of the first drawing, any metadata associated with the drawing (e.g., title, version number, date, etc.) that may be displayed in a title block on the drawing, and the code (e.g., QR code) that was applied to the drawing in step 208. This printed first version of the first drawing may then be obtained and used (e.g., on the job site) to guide construction and / or manufacturing activities, etc. that are intended to be related to the design represented by the substantive information in the first version of the first drawing.
[0060] The first drawing is then updated according to the process depicted in the illustrated flow chart. More specifically, (at 214) the designer edits the initial version of the first drawing to create a first revised version of the first drawing, and (at 216) the computer system assists in the editing to create the first revised version of the first drawing. Although the substantial details of the first revised version of the first drawing will differ from the substantial details of the initial version of the first drawing, both versions of the first drawing will also be directed to the same general subject matter. For example, some of the substantial details may differ between the two versions, but both may be directed to (and show) the framework plan of Mirmar Residence Level 2. However, in this example, once the editing is completed, some of the substantial details of the first revised version of the framework plan will likely differ from some of the substantial details of the initial version of the framework plan.
[0061] Typically, the editing process involves the designer using a design program 126 (e.g., CAD software) to edit an existing initial design at one of the computer workstations 110a-110n to create a first revised version thereof. Eventually, the designer is satisfied that the edited version of the first drawing is complete, i.e., ready for use by an end user in a real-world application (e.g., constructing, manufacturing, modifying one or more real-world objects based on the details represented in the edited version of the first drawing). At that point, or at some point thereafter, the designer performs (at 218) an action at one of the computer workstations 110a-110n that causes the computer system 100 to apply a unique identification code (e.g., a visual depiction of a QR code) to the first revised version of the first drawing.
[0062] In response to the designer's actions (at 218), the computer system 100 generates (at 220) a unique code (e.g., a QR code) and applies the unique code to the first version of the first drawing. Again, in a typical implementation, the unique code represents a URL of a website where the first version of the first drawing, the first revision versions of the first drawing, and associated data / metadata in tabular form (e.g., title, revision number, date, etc.) can be accessed. After the computer system generates (at 220) the unique code and applies the unique code to the first revision version of the first drawing, the computer system 100, according to the illustrated flowchart, stores (at 210) the first revision version of the first drawing in the drawing repository 122 and adds (at 212) data and / or metadata regarding the first revision version of the first drawing to the search table 124, which are accessible at the website hosted by the web server 106.
[0063] At this point, or any time thereafter, for example, the designer, or anyone else, may print a first revised version of the first drawing (e.g., on paper or other physical substrate) via one of the multiple printers 112. The printed first revised version of the first drawing will, of course, include the substantive information associated with the multiple first revised versions of the first drawing, any metadata associated with the first revised version of the first drawing (e.g., title, version number, date, etc.) that may be displayed in a title block of the drawing, and the code (e.g., QR code) that was applied to the drawing in step 220. This printed first version of the first drawing may then be obtained and used (e.g., on-site) to guide construction and / or manufacturing activities, etc., that are intended to be related to the design represented by the substantive information in the first version of the first drawing.
[0064] Of course, in situations where multiple different versions of the same drawing exist, without the system disclosed herein, a person in the field would have difficulty being sure whether or not the particular drawing at hand (e.g., in the field) is the most recent version of that drawing. This can lead to uncertainty, confusion, mistakes, wasted time, increased costs, etc. In a typical implementation, the computer system 100 disclosed herein avoids or at least minimizes such occurrences.
[0065] The first revised version of the first drawing is then updated according to the process depicted in the illustrated flowchart. More specifically, the designer edits (at 222) the first revised version of the first drawing to create a second revised version of the first drawing, and the computer system assists (at 224) in the editing to create the second revised version of the first drawing. Eventually, the designer is satisfied that the second revised version of the first drawing is complete. At that point, or at some point thereafter, the designer performs (at 226) an action at one of the computer workstations 110a-110n that causes the computer system 100 to apply a unique identification code (e.g., a visual depiction of a QR code) to the second revised version of the first drawing. In response to the designer's action (at 226), the computer system 100 generates (at 228) a unique code (e.g., a QR code) and applies the unique code to the second revised version of the first drawing. After the computer system generates (at 228) the unique code and applies the unique code to the second revised version of the first drawing, the computer system 100 stores (at 210) the second revised version of the first drawing in the drawing repository 122 and adds (at 212) data and / or metadata about the same to the search table 124. At this point, or any time thereafter, for example, the designer, or anyone else, may print (e.g., onto paper or other physical substrate) the second revised version of the first drawing via one of the printers 112. This, of course, exacerbates the problem of multiple different versions of the same drawing discussed above, where, without the system disclosed herein, a person in the field would have difficulty being certain whether a particular drawing they have at hand (e.g., on-site) is the latest version of that drawing.
[0066] Finally, the illustrated flow chart also depicts the designer creating a first version of a second drawing. The second drawing will typically show a completely different subject matter than the first drawing. For example, if the first drawing and its iterative versions show a framing plan for Mirmar Residence Level 2, the second drawing may show an electrical plan for Mirmar Residence Level 2. The process for the first version of the second drawing is similar to the process for the first version of the first drawing. For example, following the illustrated flow chart, the designer creates (at 230) a first version of the second drawing, and the computer system assists (at 232) in creating the first version of the second drawing. At some point thereafter, the designer performs (at 234) an action at one of the computer workstations 110a-110n that causes the computer system 100 to apply a unique identification code (e.g., a visual depiction of a QR code) to the first version of the second drawing. In response, the computer system 100 generates (at 236) a unique code (e.g., a QR code) and applies the unique code to the first version of the second drawing. The computer system 100 then stores (at 210) the first version of the second drawing in the drawing repository 122 and adds (at 212) data and / or metadata about the first version of the second drawing to the lookup table 124. The first version of the second drawing may then be printed with the applied code for use in the field.
[0067] FIG. 2B is a flow chart illustrating an example of steps that may be performed at an end user of the system 100 to verify whether a particular drawing (in paper form) is the correct (e.g., latest) version of the drawing. The flow chart is organized into three columns, one representing an action performed by a human end user (labeled “designer action”), another representing an action performed by the end user’s smartphone (labeled “smartphone action”), and one representing an action performed by other parts of the computer system 100 (labeled “other system action”). In a typical implementation, an end user action would occur by the end user using his or her smartphone 102 to verify whether a paper version of a document (e.g., a drawing) is the latest version of the drawing (or whether the paper version of the document may have been superseded by a later version of the document). Furthermore, if a later version of the document has been superseded by the version the end user is verifying, the flow chart shows that the end user can use his or her smartphone to access the latest version of the drawing in electronic form from his or her smartphone 102. The steps of the flowchart of Figure 2B assume that computer system 100 has information about the paper drawing, and any revised versions thereof, stored in drawing repository 122 and lookup table 124. An end user will know at least that the paper version of the drawing exists because it has a visible non-alphanumeric code (e.g., a QR code) on the drawing.
[0068] The process depicted in the illustrated flowchart begins with an end user scanning (at 252) a QR code on a paper drawing by pointing the smartphone camera 114 at the QR code. In a typical implementation, when the camera 114 focuses on a portion of the paper drawing having a QR code, the code reader 116 of the smartphone 102 recognizes and reads (at 254) the QR code. In a typical implementation, the QR code on the paper drawing encodes a URL for a website hosted by the web server 106 that allows the smartphone 102 to access information stored in memory 108, including, for example, information in the search table 124 and / or versions of any drawings stored in the drawing repository 122. Additionally, in a typical implementation, the QR code on the paper drawing may encode information identifying metadata about the drawing, including the drawing title, revision information, and / or date.
[0069] The smartphone 102 provides the end user with the option to initiate multiple next steps in the version check process (at 256). In this regard, the smartphone 102 may provide the end user with an end user selectable link on the display screen 119 of the smartphone 102 that the end user can select to initiate one or more next steps in the version check process. The link may be displayed on or next to a QR code on the display screen 119 or may be manifested as a URL associated with the drawing. The end user may initiate multiple next steps in the version check process by selecting the link (e.g., by touching the display screen 119).
[0070] The end user in the illustrated process actually initiates (at 258) the next steps of the version verification process by selecting a link. In this example, by selecting the link on the display screen 119, the web browser 118 of the smartphone 102 navigates (at 260) to a website hosted by the web server 106 that provides access to information (e.g., in 122 and / or 124) regarding the drawing in question and any revised versions thereof. According to the illustrated implementation, the web server 106 provides (at 262) information regarding the drawing in question (e.g., from 122 and / or 124) by providing the smartphone 102 with access to the website. In a typical implementation, the information includes at least information regarding the drawing and any revised versions thereof from the lookup table 124. In some implementations, the web server 106 may utilize the drawing information (e.g., title, etc.) obtained at 254 to identify the particular drawing for which information should be provided on the website.
[0071] According to the illustrated implementation, the smartphone 102 receives information from the web server 106 (e.g., from the lookup table 124) and compares (at 264) the drawing information with the drawing information (e.g., revision information and / or date information) read from the paper drawing (at 254). In an exemplary implementation, the system 100 may include a function that can be called to return the latest (or any other requested) version of a particular drawing (e.g., Mirmar Residence, Level 2, Frame Plan, Version S_121, dated 2023-01-26) from the lookup table 124. The smartphone 102 compares this information from the latest drawing in the lookup table 124 with the corresponding information (e.g., title, version information, and / or date) read from the QR code (at 254). If the smartphone 102 determines (at 266) that the paper version of the drawing is identical to the latest version of the drawing in the lookup table 124 (e.g., based on the comparison at 264), the system 100 confirms (at 268) this determination to the end user. In a typical implementation, the system 100 performs this function by displaying a confirmation message (e.g., "The drawing you verified is the latest version") to the end user on the display screen 119 of the smartphone 102. At that point, as shown in the illustrated flowchart, the end user can trust (at 270) the paper drawing that he verified (now verified to be the latest version of the drawing) to perform any real-world tasks (e.g., architecture, construction, manufacturing, etc.) that depend on the drawing being the latest version. However, if the smartphone 102 determines (at 266) that the paper version of the drawing is not the latest version of the drawing (e.g., based on a comparison at 264 that revealed differences between the metadata regarding the paper format of the drawing and the latest version represented in the lookup table data), the system 100 displays (at 272) a message to the end user on the display screen 119 of the smartphone 102 (e.g., "The drawing you viewed is not the latest version").In this case, the system 100 also presents (at 274) to the end user a feature (e.g., a user-selectable widget on the display screen 119 of the smartphone 102) that allows the end user to request the latest version of the drawing from his or her smartphone 102. In this regard, the system 100 may present (at 274) to the end user a user-selectable widget on the display screen 119 of the smartphone 102 that, upon selection, causes the smartphone 102 to request (e.g., from the web server 106) a copy of the latest version of the drawing (e.g., from the drawing repository 122). For example, once the web server 106 has obtained (at 278) the latest version of the drawing from the drawing repository 122, the web server 106 makes the latest version of the drawing available for viewing (e.g., via the web browser 118) on the display screen 119 of the smartphone 102. The smartphone 102 displays (at 280) the latest version of the drawing in electronic form on its display screen. According to the illustrated implementation, at that point, the end user (at 270) relies on the latest version of the drawing on the display screen 119 of his or her smartphone 102 to perform any real-world tasks (e.g., architecture, construction, manufacturing, etc.) that depend on the drawing being the latest version.
[0072] Alternatively, in some implementations, once the end user launches the QR code checker (at 258), the smartphone 102 invokes a function that causes the computer system 100 to automatically return the latest version of the corresponding document. In this implementation, once the QR code is read, it will display a URL to access information about the drawing and information identifying the drawing and its version (e.g., title and / or revision version, date, etc.). The smartphone 102 in this example may invoke the function described above, and the system will respond by identifying whether a subsequent version of the drawing exists (e.g., by comparing the drawing information from the scanned QR code with the drawing information in the lookup table 124), and depending on the result, will either notify the end user (on the end user's smartphone) that the version of the drawing that the end user already has is the latest version (e.g., if the call returns the same drawing information as the scanned QR code) or by providing a copy of the latest version on the end user's smartphone (or tablet) (e.g., if the call returns drawing information different from the drawing information as the scanned QR code).
[0073] 3 is a schematic diagram illustrating various components in a typical system 100 and a typical sequence of interactions between the depicted components to determine whether a particular paper drawing 301 is the latest version of that drawing. The depicted components include, in part, computer system 100, such as (shown at different times) an end user's smartphone 102, a network 104 (e.g., the Internet), a computer memory 108 containing a drawing repository 122 and a corresponding look-up table (LUT) 124, and a printer 112. Drawing repository 122 in the depicted example may contain three drawings, each having the following filenames:
[0074] Mirmar Residence_Level 2 Framework Plan_S_101_2022―04―10_.DWG Mirmar Residence_Level 2 Framework Plan_S_111_2022―09―05_.DWG Mirmar Residence_Level 2 Framework Plan_S_121_2023―01―26_.DWG And the lookup table 124 contains information about said drawings, organized in a searchable tabular format (see 303). The printer 112, indicated by the arrow "A", has printed one of these drawings, specifically Mirmar Residence_Level2 Framework Plan_S_121_2023-01-26_.DWG. The end user has a printed (paper) version of this drawing 301 in his hands, but does not know if the drawing he is looking at is the latest version of the drawing, or if there could be a later version that contains substantive information that the end user does not know, possibly important details (e.g., in construction, manufacturing) (since such details are not reflected in the drawing 301 that the end user has in his hands). The drawing 301 has sections that contain the substantive information, a title block that identifies the name of the drawing, the version information of the drawing, and the date of the drawing. The drawing 301 also has a unique code (e.g., QR code 305) printed on its surface. As noted elsewhere herein, QR code 305 may include an encoded URL for a website where information regarding available versions of drawing 301 and other information, such as some or all of the information in the title block of drawing 301, can be accessed and viewed.
[0075] As shown, the end user focuses the camera of the smartphone 102 on a portion of the drawing 301 where the QR code 305 is located. The QR code 305 is displayed on the display screen of the smartphone, and the QR code reader recognizes and reacts to the QR code 305. Specifically, the smartphone generates a link on its display screen that is selectable by the end user, and the link is touched by the end user's hand 307 as shown. This causes the smartphone 102 to access remote information from the lookup table 124, specifically the information at 303, over the network 104. This information is referenced to determine whether the drawing 301 is the latest version of the drawing within the system 100. In the illustrated example, the system 100 determines that the drawing 301 is in fact the latest version of the drawing within the system 100, and therefore generates a message 309 on the smartphone 102 confirming that "S_121 is the latest version of the Mirmar Residence Level 2 framing plans." In this way, a user can rely on drawing 301 to confidently navigate any real-world production that depends on drawing 301 being up-to-date.
[0076] Figure 4 is a schematic diagram illustrating various components in a given exemplary system 100 and an exemplary sequence of interactions between the depicted components to determine whether a particular paper drawing 301 is the latest version of that drawing. The components in Figure 4 are substantially similar to the components in Figure 3. However, in the example of Figure 4, drawing 301a is not the latest version of that drawing within system 100.
[0077] As shown, the end user in FIG. 4 focuses the camera of the smartphone 102 on a portion of the drawing 301a where the QR code 305 is located. The QR code 305 is displayed on the display screen of the smartphone, and the QR reader recognizes and reacts to the QR code 305. Specifically, the smartphone generates a link on its display screen that can be selected by the end user, and the link is touched by the end user's hand 307 as shown. This causes the smartphone 102 to access remote information from the lookup table 124, specifically the information at 303, via the network 104. This information is referenced to determine whether the drawing 301a is the latest version of the drawing in the system 100. In the illustrated example, the system 100 determines that the drawing 301 is not the latest version of the drawing in the system 100, and therefore generates a message 309a on the smartphone 102 indicating that "S_111 is not the latest version of the Mirmar Residence Level 2 framing plan" and provides the end user with the option to "click here for the latest version." Here, the phrase “here” is a hyperlink to a website hosted by the web server 106 that provides the latest version of the drawing, i.e., Mirmar Residence_Level 2 Framework Plan_S_121_2023―01―26_.DWG At this point in the process, the end user knows that the paper version of drawing 301a is not the latest version of drawing 301a and can choose to touch "here" in message 309a on the display screen of the smartphone 102 to access the latest version of the drawing. In this example, the end user chooses to touch the "here" link (as shown by hand 307a) and the system 100 responds by generating an electronic version of the drawing on the display screen of the end user's smartphone 102. The user can then confidently proceed with any real-world product that depends on the currency of drawing 301, discarding or at least not relying solely on the paper version of drawing 301 while relying on the electronic version of the drawing on the display screen of the smartphone 102.
[0078] From the above, it can be seen that in a typical implementation of the systems and techniques disclosed herein, to prepare a drawing repository, a QR code is added to each of the 2D CAD drawings in the 2D repository, such as DWG drawings. In a typical implementation, this QR code identifies the 2D CAD drawing (e.g., by title) and its specific revision version (e.g., by revision number and / or date). A corresponding rasterized 2D drawing, such as a TIFF or PDF, may be generated upon confirmation of a new revision version of the drawing, or may be generated on the fly upon request (e.g., by a designer). For example, drawing files named ABCa.DWG, ABCb.DWG, ABCc.DWG, and ABCd.DWG may be four successive versions of a particular 2D CAD drawing. Upon creation of each version, a corresponding rasterized 2D PDF may be generated, i.e., ABCa.PDF, ABCb.PDF, ABCc.PDF, and ABCd.PDF, with a unique QR code applied to each of the PDF files. In this example, the end user has at hand or is viewing (electronically) a rasterized 2D drawing ABCb.PDF. If the end user wants to verify that this is the correct version to use, the end user takes a picture of this PDF's QR code with the camera of their mobile device (e.g., a smartphone). The computer system will receive the QR code of ABCb.PDF and, if ABCb is correct (e.g., the latest version of the drawing), will return a message such as "Correct 2D Drawing". Alternatively, the computer system will provide the end user with a message such as "Incorrect 2D Drawing" and / or provide the latest version of the drawing in PDF format, i.e., ABCd.PDF. In this example, the computer system will provide the end user with the rasterized 2D drawing, ABCd.PDF.
[0079] In various implementations, any one or more of the specific components described herein (e.g., computer workstations, servers, etc.) may be implemented as a computer (e.g., system 500), an example of which is shown in the simplified diagram of FIG. 5. In some implementations, the system may be implemented at least partially in the cloud. System 500 includes a processor 502, a storage device 504, a memory 506 having stored therein software 508 defining the above-mentioned functionality, input and output (I / O) devices 510 (or peripherals), and a local bus or local interface 512 to enable communication within system 500. Local interface 512 can be, for example, but is not limited to, one or more buses or other wired or wireless connections. Local interface 512 may have additional elements, such as controllers, buffers (caches), drivers, repeaters, and receivers, omitted for simplicity, to enable communication. Additionally, local interface 512 may include address, control, and / or data connections to enable appropriate communication between the above-mentioned components.
[0080] The processor 502 is a hardware device for executing software, particularly software stored in the memory 506. The processor 502 can be any custom or commercially available single-core or multi-core processor, a central processing unit (CPU), a coprocessor among multiple processors associated with the system 500, a semiconductor-based microprocessor (in the form of a microchip or chipset), a microprocessor, or generally any device for executing software instructions.
[0081] The memory 506 may include any one or combination of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)) and non-volatile memory elements (e.g., ROM, hard drive, tape, CD-ROM, etc.). Additionally, the memory 506 may incorporate electronic, magnetic, optical, and / or other types of storage media. The memory 506 may have a distributed architecture, where various components are located remotely from each other, but can be accessed by the processor 502. Similarly, the processor 502 may be a single processor or a distributed system of multiple processors, e.g., two or more servers.
[0082] Software 508 defines the functions performed by system 500 in accordance with the present invention. Software 508 in memory 506 may include one or more separate programs, each of which includes an ordered list of executable instructions for implementing the logical functions of system 500, as described below. Memory 506 may also include an operating system (O / S) 520. An operating system essentially controls the execution of programs in system 500 and provides scheduling, input / output control, file and data management, memory management, communications control, and related services.
[0083] The I / O devices 510 may include input devices such as, but not limited to, a keyboard, a mouse, a scanner, a microphone, etc. Additionally, the I / O devices 510 may include output devices such as, but not limited to, a printer, a display, etc. Finally, the I / O devices 510 may further include devices that communicate via both input and output, such as, but not limited to, a modulator / demodulator (a modem for accessing other devices, systems, or networks), a radio frequency (RF) transceiver or other transceiver, a telephone interface, a bridge, a router, or other device.
[0084] When system 500 is operating, as described above, processor 502 is configured to execute software 508 stored in memory 506, communicate data to and from memory 506, and generally control the operation of system 500 in accordance with software 508.
[0085] When the system 500 is in operation, the processor 502 is configured to execute software 508 stored in the memory 506, communicates data to and from the memory 506, and generally controls the operation of the system 500 in accordance with the software 508. An operating system 520 is loaded by the processor 502, possibly buffered within the processor 502, and then executed.
[0086] It should be noted that in implementations where the system 500 (or portions thereof) are implemented in software 508, instructions implementing the system 500 can be stored on any computer-readable medium used by or in connection with any computer-related device, system, or method. Such computer-readable medium may correspond to either the memory 506 or the storage device 504, or both, in some embodiments. In the context of this specification, a computer-readable medium is an electronic, magnetic, optical, or other physical device or means that may contain or store a computer program used by or in connection with a computer-related device, system, or method. Instructions for implementing the system can be embodied in any computer-readable medium (including, for example, non-transitory media) used by or in connection with a processor, or other such instruction execution system, apparatus, or device. Although a processor 502 is mentioned as an example, such an instruction execution system, apparatus, or device may in some embodiments be any computer-based system, processor-containing system, or other system that can obtain instructions from an instruction execution system, apparatus, or device and execute the instructions. For purposes of this specification, a "computer-readable medium" may be any means capable of storing, communicating, propagating, or transporting a program for use by or in connection with a processor or other such instruction execution system, apparatus, or device.
[0087] Such computer-readable media may be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, devices, or propagation media. More specific examples (non-exhaustive list) of computer-readable media would include the following: an electrical connection having one or more wires (electronic), a portable computer diskette (magnetic), a random access memory (RAM) (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM, EEPROM, or flash memory) (electronic), an optical fiber (optical), and a portable compact disc read-only memory (CDROM) (optical). It should be noted that the computer-readable medium may also be paper on which the program is printed, or other suitable medium, since the program may be obtained electronically, for example, by optical scanning of the paper or other medium, and then compiled, interpreted, or processed in any other suitable manner as required, and stored in the computer's memory.
[0088] In an implementation in which system 500 (or a portion thereof) is implemented in hardware, system 500 may be implemented with any one or combination of the following technologies: one or more discrete logic circuits having logic gates for implementing logical functions on data signals, an application specific integrated circuit (ASIC) having appropriate combinatorial logic gates, one or more programmable gate arrays (PGAs), a field programmable gate array (FPGA), etc.
[0089] The following are examples of uses of the computer system 100:
[0090] Suppose a field worker wants to ensure that he has the correct (e.g., latest) 2D drawings for a particular project. The field worker, or any authorized user, has a printed version of the drawings on hand or is viewing the 2D drawings on the display of his device. The field worker manipulates his smartphone to read the QR code on the drawing (e.g., by opening the smartphone camera and positioning it to read the QR code). Based on the QR code, the field worker causes the smartphone to make a call, which includes a reference (e.g., from the QR code) to the current (i.e., latest) version of the 2D drawings.
[0091] This triggers the computer system to respond to the field worker. In this regard, when the system receives the content of the QR code of a document available to the worker as a print or digital file, it uses a search table to search the repository content from that file format. Other searches may be performed in different formats. The URL and identifier of the QR code may be received by the system and used as an input to a DWG table together with the identifier contained in the QR code. This table lists all revisions made to each DWG 2D CAD drawing. The system will typically select the latest revised version of the 2D CAD drawing as the correct drawing. The system will look in the table (e.g., ABCb.DWG) and return a message like "correct 2D drawing" or provide the worker with, for example, a PDF of the latest version (optionally with a message indicating that the version at hand is not the latest). In this example, the system will provide the worker with the 2D raster drawing ABCd.PDF. In particular, for example, the worker will receive information like "I have the correct 2D drawing at hand" or receive the correct version of the rasterized 2D drawing on his smartphone (or tablet).
[0092] As another example, using the system for GIS maps or data is similar to using the system for 2D CAD drawings. In this example, a field worker wants to ensure that he has the correct GIS map or data file in hand. The field worker, or any authorized user, has a printed version of the GIS map and / or data file in hand or is viewing the GIS map and / or data file on the display of his / her device (e.g., a smartphone). The field worker activates the smartphone's QR code reader (e.g., by opening the smartphone's camera and aligning it to read, e.g., a QR code on a printed map) or otherwise reads it from a digital file. The field worker takes action to place a call based on the QR code that contains a reference to the current GIS map and / or data file.
[0093] In this example, the system receives the content of a QR code for a document available to a worker as a print or digital file and uses a lookup table to search the repository for content from that file format. In some cases, additional searches may be performed in other formats. The QR code URL and identifier are received by the system and used, along with the identifier contained in the QR code, as input to a lookup table for GIS maps or data files. This table lists all revision versions that have occurred on each GIS map or data file. The system typically selects the most recent revision version of the GIS map or data file as the correct one.
[0094] Using the above example, a user has the following as prints or files:
[0095] Base name_Layer name_V2_Date2.shp Base name_Layer name_V2_Date2.shx Base name_Layer name_V2_Date2.dbf The field worker's device communicates the contents of the QR code to the system. The system receives the corresponding QR code. The system checks the lookup table and returns a message to the field worker's smartphone or tablet, such as "correct GIS map or data file," or provides the field worker with the latest version of the GIS map and data files.
[0096] In this example, the system provides the worker with the following GIS maps or data files:
[0097] Base name_Layer name_V3_Date3.shp Base Name_Layer Name_V3_Date3.shx, and / or Base name_Layer name_V3_Date3.dbf Here, these represent the latest versions.
[0098] 6 is an example of a lookup table for a 2D drawing that may be stored in computer memory. In the illustrated example, the lookup table includes a site identifier (Miami, FL), a property identifier (Mirmar Residence), location and other geographic location identifiers (e.g., UTM Zone 17, UTM X and UTM Y corner coordinates), permit information (e.g., "Cover Sheet: (SD,CD,DD) Permit and Issued for Construction?"), QR code content (concatenated in DWG filename format (e.g., base name, version, date)), plan level identifiers (e.g., lowest level, level 1, level 2, next level up, top level of the asset), drawing type identifiers (e.g., site plan, existing condition, layout, demolition, underfloor, architectural, life safety, structural, fire, plumbing, mechanical, electrical, interior, fire alarm, food and beverage service, telecommunications, etc.), applicable skill area identifiers (e.g., EX, L, D, SS, A, LS, S, etc.), and a list of applicable skills area identifiers (e.g., EX, L, D, SS, A, LS, S, etc.). The diagram includes designations such as FP, PH, E, I, FA, K, T, and S), 2D drawing numbers (e.g., 101, 111, 121) to identify available drawings, version, level, and elevation identifiers, etc. The top of the diagram indicates that the diagram is relevant to creating a lookup table for 2D drawings contained in a repository of assets. Of course, variations are possible.
[0099] 7 is an example of a lookup table for multiple GIS maps that may be stored in computer memory. In the illustrated example, the lookup table may include location information (e.g., Miami, FL), additional geographic information (e.g., Northeast Miami), QR code content (e.g., a concatenation of base name, version, and date, and file extension), major formats commonly used (e.g., Shapefile, Keyhole Markup Language, Web Map Service Layer, Vector Data, Esri File Geodatabase, Grid Cell Data (Raster Data), Shape Index File, dBase Attribute File, etc.), format extension (e.g., .shp, .shx, .dbf, .prj, .shp.xml, .sbn, .kml, GeoJSON, GDB, .tif, etc.), associated files (e.g., Shape Index File, dB, etc.), and file extension (e.g., .dbf, .prj, .shp.xml, .sbn, .kml, GeoJSON, GDB, .tif, etc.). ase attribute files, projection files, additional data, queries with ArcGIS, Xple layers / features, managed from server, data type, resolution, etc.), frequent (F) vs. common (c) and TN, map type (e.g., administrative / political boundaries, census data, culture (historic sites, monuments, etc.), digital elevation models, seismic zones, hydrology (rivers, lakes, etc.), land use, land parcels and ownership, population, railroad network, soil types or soil properties, transportation network, topography, utilities (power lines, fiber optics, etc.), vegetation, zoned areas, etc.), map symbols (e.g., BND, CENSUS, CULT, DEM, EQZ, HYDRO, LU, PARCEL, POP, RAIL, SOIL, TN, TOPO, UTIL, VEG, ZONING), etc. The diagram also indicates at the top of the page that the information contained in the diagram is relevant to creating a lookup table for GIS and data files contained in a repository for a project or geographic area. The content in this example is first ordered by primary format and then by associated files, if there are any. Then, within the primary format, the content is ordered alphabetically (e.g., A to Z) by map type, using the map symbol. The next step is to order the content by version and date, as described. Variations are possible, of course.
[0100] A number of embodiments of the present invention have been described. However, it will be understood that various modifications may be made without departing from the spirit and scope of the invention.
[0101] For example, the systems and techniques disclosed herein may be applied to verify the version of almost any type of document (e.g., drawings, GIS maps, etc.) that is subject to some substantive information, may change over time, and where it is important to understand that the "correct" version (e.g., the desired and / or latest version) is being used or referenced.
[0102] The systems and techniques disclosed herein can be applied to verify electronic versions (as well as real-world physical versions) of documents. In such cases, the electronic version of the document in question can be positioned such that a QR code appearing thereon is displayed on the display screen of a smartphone, and the smartphone's QR code reader may recognize the presence of the QR code and react accordingly, as described herein.
[0103] Users generally do not have access to CAD or GIS design software, which requires the installation of the design software or access to it on their smartphones. Users do not have the knowledge or training to interact with such design software. In fact, users are not allowed to edit the design software. Users tend to use rasterized drawings because the file sizes of the drawings are more compact, and only annotate these drawings as needed.
[0104] The systems and techniques disclosed herein may be applied to track and manage versions of documents regardless of the naming convention adopted for naming document files in a particular computer system. Any one or more of a variety of different naming conventions may be adopted in this regard. Naming successive versions of 2D drawings, GIS maps, data files, etc., can of course be important in many fields for maintaining order, clarity, and ease of reference. Workers in the field or on the road often work only with paper printouts or digital files. They need to verify that the document(s) at hand are the correct one(s) and, if not, need to access the correct document(s).
[0105] For example, 2D CAD drawings of assets such as buildings, structures, and plants tend to undergo many changes throughout their lifecycle, from construction to demolition. There are many possible ways to name successive versions of such drawings. Below are two examples. The first would be to add a version identifier, for example using letters or numbers to indicate different versions, to the base name of the 2D CAD drawing. The first method often also involves adding a date or timestamp. For example: Miramar Residence_Level 2 Framework Plan_A_2022-04-10 Miramar Residence_Level 2 Framework Plan_B_2022-09-05 Miramar Residence_Level 2 Framework Plan_C_2023-01-26 In this example, we would keep the base name and increment the 2D CAD drawing number. The base name is a unique identifier. Each base name contains a letter that indicates the craft discipline of the 2D CAD drawing, such as "S" for structural, "E" for electrical, "M" for mechanical, etc. A sequence of the same base name is typically available from 100 to 999.
[0106] Another example, and one mentioned above, would be to add available numbers to the sequence. For example, if 2D CAD drawings 100, 101, 102, 103 already exist, 111 could be a newer version that makes the first version 101 obsolete. The next available number for another new version would be a packet containing 2D documents 121, 122, and 123. In some cases, the number of serial numbers can be increased by creating derivative numbers such as 102.1, 102.2, 102.3, etc., as needed. In either case, even obsolete 2D CAD drawings, for example due to change orders, performance improvements, or revisions, are stored in the digital repository.
[0107] Naming conventions for GIS (geographic information system) maps (and / or other data files) may vary depending on organization, project, format, and corporate preference. In some practices, naming conventions may include elements to ensure consistency, clarity, and ease of organization. A base name in some such practices may include, for example, a project name or identifier, a primary location or geographic area, a type of map, and / or a scale of the map. Successive versions of the map include a version number (A, B, C, ... or 1, 2, 3), and the date the map was created or the date the map was updated. Additional information such as a reference number, creator, or any other relevant metadata may be included depending on the specific requirements of the organization or project.
[0108] In some cases, the map type identifies the purpose of the map. Common examples include: BND: administrative or political boundaries, CENSUS: census data, CULT: cultural features (historic sites, monuments, etc.), DEM: digital elevation model, EQZ: earthquake zone, HYDRO: hydrology (rivers, lakes, etc. water features), LU: land use, PARCEL: parcel information (land parcels and ownership), POP: population, RAIL: railroad system, SOIL: soil types or soil properties, TN: transportation system, TOPO: topography, UTIL: utilities (utility infrastructure: pipelines, power lines, fiber optics, etc.), VEG: vegetation, and ZONING: zoned area.
[0109] If a map is made up of different layers or datasets, the map's name can include a brief description of the main layer, or each layer can be described separately.
[0110] The naming principles may be applied to a variety of GIS data formats, such as shapefiles, Keyhole Markup Language (KML) files, Web Map Service (WMS) layers, vector data, and grid cell data. There are some format-specific considerations to keep in mind. For example, when naming shapefiles and their associated files (.shx, .dbf, etc.), it can be important to maintain consistency across all associated files within a shapefile dataset. For example:
[0111] Base name_Layer name_Version.shp Base name_Layer name_Version.shx Base name_Layer name_Version.dbf Keyhole Markup Language (KML) files are usually standalone and can contain multiple layers or features. The naming convention of KML files can be focused on describing the content or purpose of the KML, for example: Base name_layer name.kml location_feature_type.kml etc.
[0112] Web Map Service (WMS) layers are usually accessed through URLs and service endpoints. Naming conventions may not be relevant since WMS layer naming is often managed on the server side. However, if you want to store a local reference to a WMS layer, you may use the following naming convention:
[0113] Base name_WMS layer name For vector data formats such as GeoJSON or the Esri File Geodatabase (GDB), the naming conventions may be adapted to suit the format while maintaining the same principles. For example, Base name_layer name_version.geojson Base name_layer name_version.gdb etc.
[0114] The naming conventions used for grid cell data, such as raster datasets, may be focused on describing the content, resolution, and any associated metadata of the data. For example, Basic name_data type_resolution_date.tif Position_Elevation_Model_30m_2022.tif etc.
[0115] QR codes for 2D CAD drawings or GIS maps and data files may be generated in any one of a variety of ways. In such implementations, each 2D CAD drawing (e.g., DWG file) in a 2D repository may be given a QR code identifier, and / or each GIS map and data file, such as a shapefile, in another repository may be given a QR code identifier. In some implementations, the minimum number of pixels for a QR code to be readable depends on several factors, including the size of the QR code, the level of error correction used, and the reading conditions. The larger the QR code, the more information it can hold and the further it can be read. A standard size QR code can hold up to about 3,000 alphanumeric characters. In some implementations, it may be desirable to have a resolution of at least 21x21 black and white square, modules to ensure accurate reading. This means that the minimum dimensions of a QR code are typically 21 pixels wide by 21 pixels high. The content of the QR code may vary depending on the type of repository, CAD or GIS, the format extension, etc. It may be appropriate to include the base name, its alphanumeric revision version identifier, a date, and / or a type format extension. Higher resolution may be desirable to improve readability and reading reliability. For example, for a medium-sized QR code with approximately 100 alphanumeric characters, a resolution of 33x33 modules or greater may be desirable.
[0116] In some implementations, a serialized QR code generator may be used to generate multiple QR codes with sequential or incremental data, where such serialized QR code generators may be used to uniquely identify each successive revised version of a 2D CAD drawing or GIS map and data file.
[0117] As mentioned above, the generation of a corresponding rasterized 2D drawing, such as a PDF, may occur in conjunction with the validation of each new drawing (or new drawing revision version) and / or the generation and / or application of a corresponding QR code to that drawing, or may occur on-the-fly upon request (e.g., by the designer at one of the computer workstations). For example, if ABCa.DWG, ABCb.DWG, ABCc.DWG, ABCd.DWG were the file names of four successive versions of a particular 2D CAD drawing, following the creation of each version, a corresponding rasterized 2D PDF may be generated immediately (e.g., upon validation or saving) or may be generated on-the-fly upon request. These corresponding rasterized 2D PDFs may be named ABCa.PDF, ABCb.PDF, ABCc.PDF, ABCd.PDF. In the case of GIS maps and data files, the additional components may each be updated at any time as needed.
[0118] Base name_Layer name_V3_Date3.shp Base name_Layer name_V3_Date3.shx Base name_Layer name_V3_Date3.dbf In various implementations, when a new drawing is created or an existing drawing is edited, the drawing may be considered validated (and may be treated by the system as being so validated) in response to (or when) the designer releases the new or newly edited drawing into the repository and the repository pushes it (e.g., associated metadata) into the search table. The same mechanism may be used by the designer for packets of 2D drawings.
[0119] In various implementations, QR codes may be added to new documents (e.g., 2D drawings) as they are created or revised. Alternatively, for existing documents (e.g., 2D drawings), QR codes may be created and applied to 2D drawings already present in an existing repository. In such cases, the creation of QR codes for each 2D drawing in the existing repository may be easily automated, for example, by implementing one or more of the naming schemes described above and / or by implementing a serial QR code generator.
[0120] In a typical implementation of collaborative multiple systems, the system ensures that a drawing can only be created or edited by one designer at a time. The designer reserves the drawing (checks it in), edits it, and puts it back in the repository (checks it out). In parallel, all drawings are stored in the repository during their lifecycle, so they can be tracked and audited. This is easier to do when you have a "single source of truth", but it can also work with a master file process.
[0121] In some implementations, a lookup table may be created with QR code links for multiple 2D drawings. In some such implementations, the base name of the 2D drawing may include one or more (or all) of the following: the name of the asset, the level (elevation) of the drawing, the type of 2D drawing (e.g., A, S, E, I), the ordinal number of the 2D drawing within the type of 2D drawing, the revision number or letter of the 2D drawing, and / or the creation or revision date. Additionally, a reference may be included, such as Reference(Lookup Table QR 2D CAD v.0.4.0.xlsx).
[0122] For repositories of GIS maps and associated data files, QR codes may be added to new maps and associated data files as they are created or revised. Alternatively, QR codes may be added to existing assets / documents (e.g., GIS maps and associated data files). In such cases, the creation of a QR code for each map and associated data file of an existing repository asset / document may be automated, for example, by implementing one or more of the naming schemes described above and / or by using a serial QR code generator. Similarly, in various implementations, the creation of a QR code for each map and associated data file of an existing repository may be automated, for example, by implementing one or more of the naming schemes described above and / or by using a serial QR code generator.
[0123] For a GIS and associated data files, for example, a lookup table may be created where the base name of each map and associated data file is a QR code link containing one or more (or all) of the project's name or identifier, the primary location or geographic area, the map type, and / or the map's scale. These attributes may be concatenated to create the base name. As noted above, the base name may include additional attributes. There are variations for each type of format, but in this example, the link from the QR code may be:
[0124] Base name_Layer name_Version_Date.Format extension To create a lookup table for the GIS and data files contained within a project or geographical area repository, the following steps may be taken: 1) The contents of the repository are first sorted by major format and its associated files, if any. 2) Then, within each major format, they are sorted alphabetically (e.g., A to Z) by map type, using cartographic symbols. 3) If a major format requires associated files, they are sorted in packets with the major format file. 4) Then, they are sorted by version and date. As a result, a reference (Lookup Table QR GIS v.0.4.0.xlsx) may be created.
[0125] There are various devices that can function as a smartphone as described herein. These may include, for example, smartphones and / or tablets that can read QR codes and link to URLs. Some non-limiting examples include Apple iPhones and iPads running iOS 11 and later, Android smartphones and tablets (which may require a separate QR code scanning app to be downloaded, e.g., from the Google Play Store), and Samsung, Hiawei, and Xiaomi devices often have built-in QR code scanners that can be accessed via a camera app or a native scanner app.
[0126] Phrases such as computer-aided design should be interpreted broadly to include or involve any computer-based system or technique for designing, engineering, simulating, or displaying a design using one or more computers or computer-based components.
[0127] In various implementations, certain computer components disclosed herein (e.g., applications, design tools, etc.) may be implemented by one or more computer-based processors (herein referred to as processors) executing computer-readable instructions stored on a non-transitory computer-readable medium to perform associated computer-based functions (e.g., functions illustrated in flow charts and attributed to a computer). The one or more computer-based processors may be virtually any type of computer-based processor and may be housed in a single housing or distributed at different locations. And the non-transitory computer-readable medium may be or include any one or more of a variety of different computer-based hardware memory / storage devices housed in a single housing or distributed at different locations.
[0128] Certain functionality will be described herein as being accessible or activated by a user selecting an on-screen button or the like, which should be interpreted broadly to include any kind of visible, user-selectable, or other user-interactive element.
[0129] The systems and techniques disclosed herein can be implemented in many different ways. In one representative implementation, the systems and techniques disclosed herein can be incorporated into Dassault Systemes Solidworks Corporation's DraftSight® computer program. In various implementations, the systems and techniques can be deployed in other ways.
[0130] Various aspects of the subject matter disclosed herein can be implemented in digital electronic circuitry, or in computer-based software, firmware, or hardware that includes and / or is a combination of the structures disclosed herein and / or their structural equivalents. In some embodiments, the subject matter disclosed herein can be implemented in one or more computer programs, i.e., one or more modules of computer program instructions encoded on a computer storage medium for execution by or to control the operation of one or more data processing devices (e.g., processors). Alternatively, or additionally, the program instructions can be encoded in an artificially generated propagated signal, e.g., a mechanically generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to a suitable receiving device for execution by the data processing device. The computer storage medium can be, or can be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination thereof. A computer storage medium should not be considered to be solely a propagating signal, but rather may be the source or destination of computer program instructions encoded in an artificially-generated propagating signal. A computer storage medium may also be or be contained in one or more separate physical components or media, such as, for example, multiple CDs, computer disks, and / or other storage devices.
[0131] Certain operations described herein (e.g., aspects of those depicted in flow charts and attributed to computer systems and / or components thereof) can be implemented as operations performed by a data processing apparatus (e.g., a processor / specially programmed processor / computer) on data stored in one or more computer-readable storage devices or received from other sources, such as the computer systems and / or network environments described herein. The term "processor" (or similar) encompasses any type of apparatus, device, and machine for processing data, including, by way of example, a programmable processor, a computer, a system on a chip, a plurality of objects, or a combination of the foregoing. An apparatus can include, for example, special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). An apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program, such as, for example, code that constitutes a processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or one or more combinations thereof. The apparatus and execution environment can implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.
[0132] Although the present specification contains many specific implementation details, these should not be construed as limiting the scope of any invention or what may be claimed, but rather as describing features specific to particular embodiments of a particular invention. Certain features described herein when considered in separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in a single embodiment may also be implemented in multiple embodiments individually or in any suitable subcombination. Furthermore, although features may be described above as acting in a particular combination and may initially be claimed as such, one or more features in a claimed combination may, in some cases, be excluded from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.
[0133] Similarly, while operations may be described herein as occurring in a particular order or manner, this should not be understood as requiring such operations to be performed in the particular order shown, or sequentially, or that all of the operations shown be performed, to achieve a desired result. In some situations, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the program components and systems described may generally be integrated in a single software product or packaged in multiple software products. Some steps (e.g., 264 and / or 266) may occur at a smartphone, or a web server, or other system location.
[0134] Finally, below is a discussion of some additional considerations, advantages, and details of specific implementations.
[0135] For example, in a typical construction project, team members who design and manage the project make up about 15% of the workforce. These team members may create and edit CAD files, 3D models, 2D drawings, and / or GIS maps. The drawings and maps they use are generally vector representations of data entities. They can be edited in CAD or GIS application software in native vector formats such as DWG or shapefiles, or converted to another format. Some of the team members may create and manage GIS maps. Typically, about 85% of the team members who make up the workforce are assigned tasks related to their skills. They work in the field and in the field. They receive instructions and references through one or more rasterized 2D documents that are typically created from CAD drawings and / or GIS maps. Some of these rasterized 2D drawings or maps also contain other data attributes. Other users of these documents may be customers, contractors, suppliers, and regulators.
[0136] Rasterized 2D drawings are generally used (and intended to be used) as instructions or reference material to guide a user to complete a task. They may be annotated, but generally are not substantially altered or edited by the recipient (e.g., end user). Rasterized 2D drawings and / or GIS maps may be images in formats such as JPEG, TIFF, PDF, and PNG. Images generally represent, for example, the vector 2D CAD drawings from which they were generated. The TIFF and PDF formats are lossless and universally supported for saving and storing large files. Rasterized 2D drawings, including other data such as schedules, notes, and legends, may be, for example, images of the original 2D vector CAD drawings. Similarly, GIS data may have vector entities and raster data such as, for example, grid cells.
[0137] The number of rasterized drawings and / or maps used on a particular project or activity is typically many times the number of 2D CAD drawings and / or GIS maps with digital entities used on that particular project or activity. This may be due to one or more of many potential root causes including, for example, considerations regarding digital and printed documents, accumulated or existing drawings, non-technical users, visualization and communication, collaborative markup and review, file size, and compatibility. Each of these categories is discussed in turn below.
[0138] [Digital and Printed Documents] Most businesses want to move to digital. The problem is that today, most of the field workers and workers in the field still work on paper, on rasterized images from CAD or GIS. Once a document is in paper format, the connection to the original content is lost.
[0139] Accumulated or Existing Drawings: In some cases, projects / activities involve working with old or existing drawings that were created in raster format. These drawings may not have been originally created using CAD software, or the original CAD files may not be available. As a result, project teams may have to rely on images or hand-drawn versions of these drawings for reference or modification. There are several ways to reconstruct these files as 2D CAD drawings, either using a software application when rasterized 2D drawings exist, or by capturing the current state of the asset via photogrammetry or LIDAR, or a combination of both.
[0140] Non-Technical Users: Projects often involve a variety of users who do not have technical expertise or access to CAD software. Rasterized 2D drawings, such as image files, are more accessible and easier to share with non-technical team members, customers, contractors, suppliers, and regulators. While rasterized 2D drawings can be viewed using widely available software, CAD drawings require specialized software to be properly accessed and edited, and specialized software is inaccessible to many users.
[0141] Visualization and Communication Rasterized drawings can be more visually appealing and easier to understand for certain purposes. Rasterized drawings can effectively and efficiently communicate design intent, aesthetic details, or graphic representations. CAD drawings, on the other hand, may be more technical in nature and represent precise measurements, dimensions, and specifications. Rasterized 2D drawings are used in presentations, marketing materials, or public communications where visual impact may be more important than technical accuracy. Nevertheless, care must be taken to read and correctly interpret 2D raster drawings. One interesting lesson is that in many countries where workers are largely or completely illiterate, with practice they have come to understand and interpret multiple images in 2D rasterized drawings with some degree of accuracy.
[0142] Collaborative Markup and Review Rasterized 2D drawings can facilitate the process of annotation, markup, and review. Team members can add comments, highlights, or sketches directly on the drawing using a variety of software tools. CAD software also supports markup, but recipients may need access to the same CAD software or may require additional training to use the markup features effectively.
[0143] [File Size and Compatibility] Rasterized 2D drawings tend to have smaller file sizes than CAD drawings, especially in complex or large projects. This makes them easier to handle, store, and share, especially in situations with limited bandwidth or with collaborators who have hardware or software limitations. Multiple team members may use the same 2D rasterized drawing as instructions or reference: Different workers may work on the same rasterized 2D drawing, whether synchronized or not, but in different locations depicted in the rasterized 2D drawing. Multiple users may use the rasterized 2D drawing as a reference or illustration, but not as instructions.
[0144] There are many reasons why there may be multiple revision versions of 2D CAD drawings and rasterized 2D drawings. One such reason is that a project may be subject to one or more change orders (such as in a construction project, for example). In large projects and / or projects involving large assets, design changes may occur frequently, and the more complex the project or the more frequent the changes may be. For example, large commercial buildings, infrastructure, plants, shipbuilding, and the like tend to require more detailed and specialized drawings, which may result in a higher need for change orders. This may be due, for example, to design errors, late improvements requested or agreed to by the owner, material substitution for shortfalls due to supply chain issues, costs, potential delays, and / or performance levels of the quality or quantity of the initial output produced by the asset.
[0145] Design changes may occur during the design phase of a project, but also during the construction phase of a project and can have a significant impact on the number of changes to 2D CAD drawings that may be required, for example. These may be caused by owner demands, engineering requirements, site constraints, and / or regulatory conditions that arise during the construction phase. They may occur in any one of a variety of different skill areas, such as architectural, structural, mechanical, plumbing, safety, etc.
[0146] Additionally, the design process may be iterative, with multiple revisions and refinements as the design evolves during design or construction. Initial project contracts may be amended by change orders. Some types of change orders include changes in the scope of the project (e.g., an owner or tenant agency requests a design change), unforeseen circumstances (e.g., conditions on the ground differ from expected and / or a subcontractor or contractor requests a change), professional errors and omissions (wherein, for example, a contractor or subcontractor requests a change), other errors (e.g., errors in the construction design plans and specifications), and / or other omissions (e.g., omission of an item or element from the plans).
[0147] In the US residential construction industry, for example, the number of change orders (COs) and the average change price tend to vary by contract size. In the US, change orders accounted for about 5% of the original contract for residential construction in 2020. The amount tends to vary by region, with coastal areas tending to have higher prices and larger total change order values. There is a lot of potential for positive impact from implementing these technologies.
[0148] Other implementations are within the scope of the claims.
Claims
1. 1. A computer-based method comprising: using a smart device to capture an image of a non-alphanumeric code from a document containing substantive information that changes over time, the non-alphanumeric code including a document identifier that identifies the document, a version of the document, and a Uniform Resource Locator (URL) for a remote network location where information about the document and its versions, if any, is stored; initiating a request from the smart device to ascertain whether the version of the document in which the non-alphanumeric code was read by a code reader at the remote network location defined by the URL is a particular version of the document; receiving a response from a server at the remote network location; generating a notification on a display screen of the smart device indicating whether the document having the non-alphanumeric code captured in the image is the particular version of the document; A method comprising:
2. 2. The computer-based method of claim 1, further comprising: in response to the request, determining whether the document whose non-alphanumeric code was read by the code reader is the particular version of the document based on the information about the document and its versions stored at the remote network location defined by the URL; The method further comprising:
3. 2. The computer-based method of claim 1, further comprising: receiving, in response to the computer determining that the version of the document in which the non-alphanumeric code was read by the code reader is not the particular version of the document, at the smart device in electronic form the particular version of the document; The method further comprising:
4. 2. The computer-based method of claim 1, further comprising: storing information about the document and its multiple versions, if any, at the remote network location defined by the URL; The information about the document and its versions, if any, a drawing repository containing at least a first version of said document; a look-up table containing an array or matrix of metadata for at least said first drawing, stored in a computer memory in a searchable manner; A method comprising:
5. 5. The computer-based method of claim 4, further comprising: The information about the document and its versions, if any, a drawing repository containing the initial version of the document and one or more revised versions of the document; a lookup table containing an array or matrix of metadata for the original drawing and the one or more revised versions of the document, stored in a searchable manner in a computer memory; A method comprising:
6. 5. The computer-based method of claim 4, further comprising: adding at least the first version of the document to the drawing repository and adding the metadata about at least the first version of the drawing to the lookup table from one or more computer workstations prior to performing the steps of claim 1; The method further comprising:
7. 7. The computer-based method of claim 6, further comprising: applying a unique non-alphanumeric code to each version of said drawing created on one or more of said computer workstations; The method further comprising:
8. 8. The computer-based method of claim 7, further comprising: generating each of said unique non-alphanumeric codes using a Quick Response (QR) code generator; The method further comprising:
9. 9. The computer-based method of claim 8, further comprising: generating each of the unique QR codes, The QR code generator includes: a document identifier that identifies a corresponding one of the documents and the version that the document represents; the URL of a remote network location where information about the document and its multiple versions, if any, is stored; Enter the A method comprising:
10. 2. The computer-based method of claim 1, further comprising: The method, wherein the document having the non-alphanumeric code is a real-world physical substrate.
11. 11. The computer-based method of claim 10, further comprising: Reading the non-alphanumeric code from the document comprises: directing a camera of the smart device to focus on the non-alphanumeric code on the real-world physical substrate; launching a web browser on the smart device to navigate over a network to the remote network location; A method comprising:
12. 10. The computer-based method of claim 1, wherein the document having the non-alphanumeric code is in electronic form.
13. 13. The computer-based method of claim 12, further comprising: Reading the non-alphanumeric code from the document comprises: displaying the non-alphanumeric code on the document on the display screen of the smart device; launching a web browser on the smart device to navigate over a network to the remote network location; A method comprising:
14. 10. The computer-based method of claim 1, wherein the smart device comprises: Housing and a camera connected to the housing; A display screen; a reader for said non-alphanumeric code; A web browser; A method comprising:
15. 2. The computer-based method of claim 1, wherein the non-alphanumeric code is a Quick Response (QR) code.
16. 2. The computer-based method of claim 1, wherein the document is a rasterized 2D drawing or a geographic information system (GIS) map and a number of associated data files.
17. 2. The computer-based method of claim 1, wherein the image is captured by a camera integrated into the smart device.
18. 2. The computer-based method of claim 1, further comprising: reading the non-alphanumeric code from the document with a code reader integrated into the smart device; The method further comprising:
19. 20. The computer-based method of claim 18, wherein the document identifier identifies the Uniform Resource Locator (URL) of the remote network location where information about the document and the version of the document, if any, is stored.
20. 2. The computer-based method of claim 1, further comprising reading the non-alphanumeric code from the document with a code reader at the remote network location.
21. 2. The computer-based method of claim 1, further comprising: upon receiving the request at the remote network location, determining whether the document is a single self-contained document or is part of a packet of multiple documents being interpreted simultaneously by the originator of the request; The method further comprising: