Language selection

Search

Patent 2923333 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 2923333
(54) English Title: RENDERING AND MODIFYING CAD DESIGN ENTITIES IN OBJECT-ORIENTED APPLICATIONS
(54) French Title: RENDU ET MODIFICATION D'ENTITES DE CONCEPTION ASSISTEE PAR ORDINATEUR DANS DES APPLICATIONS CENTRES-OBJETS
Status: Granted
Bibliographic Data
(51) International Patent Classification (IPC):
  • G06F 30/00 (2020.01)
  • G06F 8/20 (2018.01)
(72) Inventors :
  • LOBERG, BARRIE (Canada)
(73) Owners :
  • DIRTT ENVIRONMENTAL SOLUTIONS, LTD. (Canada)
  • ARMSTRONG WORLD INDUSTRIES, INC. (United States of America)
(71) Applicants :
  • ICE EDGE BUSINESS SOLUTIONS LTD. (Canada)
(74) Agent: VASS, WILLIAM B.
(74) Associate agent:
(45) Issued: 2018-12-18
(22) Filed Date: 2009-02-13
(41) Open to Public Inspection: 2009-08-13
Examination requested: 2016-03-08
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data:
Application No. Country/Territory Date
61/028,399 United States of America 2008-02-13
11/577,302 United States of America 2008-08-16

Abstracts

English Abstract

An object-oriented design program provides is configured to instantly render in a three-dimensional interface user CAD designs received as CAD-based design elements (e.g., CAD blocks or lines). The object-oriented program renders the user CAD designs regardless of whether the user designs are practical, or use finishes or colors that are in- stock for the selected design elements. In addition, the object-oriented program can also create intelligent software objects for the CAD-based elements at a later time, upon request by the user. The intelligent software objects can be configured to automatically resolve themselves in view of one or more system limitations and rules in related components, and to replicate any such resolution back to the CAD-based blocks if desired. Thus, a user can have the benefits of instant 3D rendering of CAD drawings with or without the automatic resolution provided by intelligent software objects, depending on the situation.


French Abstract

Un programme de conception orienté objet est configuré pour exécuter instantanément le rendu dans une interface tridimensionnelle des conceptions CAO dutilisateur reçues en tant quéléments de conception basés sur la CAO (p. ex., des blocs ou des lignes CAO). Le programme orienté objet effectue le rendu des conceptions CAO dutilisateur sans tenir compte du fait que les conceptions dutilisateur sont pratiques ou bien quelles utilisent des finis ou des couleurs qui sont en stock pour les éléments de conception sélectionnés. De plus, le programme orienté objet peut également créer des objets logiciels intelligents pour les éléments basés sur la CAO à un moment ultérieur, à la demande de lutilisateur. Les objets logiciels intelligents peuvent être configurés pour effectuer automatiquement leur propre résolution en prenant en considération une ou plusieurs limitations et règles du système dans des composants associés et pour reproduire cette éventuelle résolution sur les blocs basés sur la CAO si cela est souhaité. Ainsi, un utilisateur peut profiter des avantages dun rendu 3D instantané de dessins CAO avec ou sans la résolution automatique produite par les objets logiciels intelligents, en fonction de la situation.

Claims

Note: Claims are shown in the official language in which they were submitted.


43
WHAT IS CLAIMED IS:
1. A
computer-implemented method of using an object-oriented design program that
utilizes
an object-oriented database to instantly render user designs made in a
computer-aided design
("CAD") program that utilizes a record-based linear database, comprising the
acts of:
identifying one or more user requests to render a three-dimensional
representation
of one or more design elements created in the CAD program;
importing from the record-based linear database of the CAD prograin into the
object-oriented program one or more records that represent one or more design
elements
created by the user in the CAD program;
automatically creating one or more objects in the objected-oriented database
based
on the one or more records, the one or more objects representing the one or
more design
elements;
importing a separate feature file comprising user-selected features
corresponding
to the one or more design features in the one or design elements, the user-
selected features
comprising finish information for the one or more design elements, the finish
information
comprising information corresponding to color, style, or material;
querying an object features database for prior renderings of the one or more
design
features;
receiving one or more previously-generated rendering instructions based on
prior
renderings of the one or more design features;
automatically displaying a representation of a three-dimensional view of the
one or
more design elements in a user interface of the object-oriented design program
using the
previously-generated rendering instructions and the one or more objects; and
displaying in the user interface of the object-oriented design program at
least one
feature of the user-selected features from the feature file as being non-
modifiable, and
another feature of the user-selected features from the feature file as being
modifiable based at least in part on change in positioning of a design element
within the

44
three-dimensional view, wherein a user's selection of finish is adjustable
based on position
of the design element.
2. The method as recited in claim 1, wherein:
the at least one feature displayed as being non-modifiable comprises dimension

information; and
the another feature displayed as being modifiable comprises information
related to
color, finish, or material of the one or more design elements.
3. The method as recited in claim 1, further comprising:
receiving one or more user requests to generate one or more object-oriented
intelligent objects corresponding to the received one or more design elements
represented
in the user interface of the object-oriented design program; and
displaying all of the user-selected features as being modifiable, wherein the
at least
one feature previously modifiable only for dimension is now modifiable for
dimension, or
finish.
4. The method as recited in claim 3, further comprising:
identifying that the one or more records corresponding to the one or more
design
elements have been updated in the CAD program;
automatically determining through the one or more intelligent objects that the

updates in the CAD program are possible; and
automatically using additional rendering information that was previously
generated
to render the updates in the user interface of the object-oriented design
program.
5. The method as recited in claim 3, wherein:
the one or more user requests comprise a request to create an intelligent
object
corresponding to one or more groupings of design elements represented in the
user
interface of the object-oriented design program; and

45
the one or more groupings are designated as a typical grouping.
6. The method as recited in claim 5, further comprising:
saving one or more intelligent objects corresponding to the typical grouping;
and
providing one or more selectable options in a subsequent view of the user
interface of the
object-oriented design program that provide access to the typical grouping.
7. The method as recited in claim 6, further comprising:
receiving one or more subsequent requests through the user interface of the
object-
oriented design program for the typical grouping; and
accessing one or more records and one or more features corresponding to the
typical grouping from the saved one or more intelligent objects corresponding
to the
typical grouping.

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 02923333 2016-03-08
RENDERING AND MODIFYING CAD DESIGN ENTITIES IN
OBJECT-ORIENTED APPLICATIONS
[0001]
15
BACKGROUND OF THE INVENTION
1. Technical Field
[0002] The present disclosure relates generally to software used for
modeling and design of interior or exterior spaces.
2. Background and Relevant Art

CA 02923333 2016-03-08
2
[0003] As computerized systems have increased in popularity, so has the
range of applications that incorporate computational technology. Computational

technology now extends across a broad range of applications, including a wide
range
of productivity and entertainment software. Indeed, end users can now find
computational technology and related software in a wide range of generic
applications that are suited for many environments, as well as fairly industry-

specific software.
[0004] Some examples of industry-specific application programs include
those known as Computer-aided design (i.e., "CAD") programs, such as
AUTOCAD. In general, CAD programs provide a user with the ability to draw
lines
or blocks (which represent groupings of lines that represent objects) on a CAD
user
interface, where those lines represent various "design entities" or "design
elements"
in a plan view of a raw design space. To manage each of the various design
entities
created through the user interface, CAD programs typically incorporate a
record-
based database.
[0005] In general, the record-based database can also be referred to as
a
"linear" database, since it includes a set of sequential records whose
relationships
are based primarily on the sequence/moment in time at which those records were

created. For example, when a user creates a line (i.e., a "design entity") in
a CAD
user interface, the data related to that line (such as type, position, etc.)
are stored in a
newly-created "record" in the record-based (linear) database. When a user
creates
the next line (or circle, etc.) in the CAD user interface, the corresponding
linear (or
sequential) database creates a new record in the linear database. Since the
main

CA 02923333 2016-03-08
3
relationship between these records is primarily based on sequence, each record

includes little or no relation to other records within the database that were
created
much earlier or later in the sequence.
[0006] In addition, CAD programs generally limit the user's ability to
layout
or specify furniture with only rudimentary geometry-based applications. In
conventional geometry-based application programs, the user can place geometric

"blocks" representing the product in space, and the application program
constrains
placement of the block relative to other blocks (representative of other
furniture)
based solely on the relation of geometric features of each block in a "plan
view."
For example, in a conventional design program, a user can use a "plan view"
interface of the program to place a work surface block immediately next to a
wall
panel block. The user can then use comer points, end points, mid-points or
similar
for proper alignment (i.e., to connect the comer point of the work surface
block with
the end point of the wall panel block).
[0007] Conventional software can also implement sub-routines within the
software to automate the location of these blocks in relation to each other's
geometric features. Unfortunately, however, there is typically no true product

intelligence within conventional geometry-based design software. In most
cases, for
example, the user will still need to provide information regarding which
products
may be used together, how those products behave together, and which connection
components are required to attach the products together. The often means that
the
user/designer needs to personally remember every part and piece related to the

products placed in the context of the layout. If the user desires to change
the

CA 02923333 2016-03-08
4
elements associated with a block, such change may be laborious, and often
requires
the user starting the design over from the start.
[0008] Furthermore, the representative views that the geometry-based
design
program provides to the user of the products are typically rudimentary and
subject to
interpretation. While some application programs may provide three-dimensional
views, if they exist at all, such programs typically do not provide such views
with
the appropriate colors, finishes, materials, shadowing, shading, transparency
or
reflectivity. Rather, to get such views, a user will often need to initialize
or export
one view from the geometry-based application to yet another separate rendering
software application. Even then, such separate rendering software provides
only one
view at a time, whereby the user selects a specific viewing angle and then
captures
that view in a single static image, with applied finishes, materials,
shadowing,
shading and reflectivity. Thus, the user may still need to manually replicate
any
change or request in one view to another view in another application, which
results
in repeat rendering of those additional views. Furthermore, more complicated
renderings that could allow a "fly through" navigation-type experience can
take
conventional rendering applications minutes, hours, or even days to render.
[0009] By contrast, there are also now design applications that
incorporate
non-sequential, three-dimensional ("3D") relationships for records, such as
object-
oriented software programs used for design functions. Generally, an object-
oriented
database represents each entity as an intelligent object block (analogous to a
linear
database's record). In contrast with the record in a record-based database,
which is
basically just a collection of data, each object block can be thought of as an

CA 02923333 2016-03-08
independent program of computer-executable instructions in addition to certain
user-
entered data. The independent, intelligent nature of object entities can
enable a wide
range of functionality not otherwise available to records or linear databases.
[0010] Unfortunately, traditional conventional object-oriented design
5 programs still have other limitations when importing data from linear
records since
the user will still need to supply finishes, materials, shadowing, shading,
and
reflectivity with respect to the imported CAD blocks. One such limitation can
be
due to the otherwise advantages of the object-oriented application itself. For

example, if a CAD-based design comprised design choices that were not
currently
available in inventory (e.g., drawing a blue colored glass table when only
black or
brown wood grain tables are available), the object-oriented software might not

render the user's design as drawn in the CAD program without warning.
Alternatively, and also potentially without warning, the object-oriented
software
might correct the design element to appear in some way not intended by the
user.,
[00111 Accordingly, conventional records-based and object-oriented-based
design or rendering programs present a number of issues that can be addressed.

CA 02923333 2016-03-08
6
BRIEF SUMMARY OF THE INVENTION
[0012] Implementations of the present invention overcome one or more
problems in the art with systems, methods, and computer program products
configured to instantly render user-drawn CAD design elements such as blocks
and/
or lines (in a CAD application program) as one or more design elements in a
separate, three-dimensional interface. This rendering is a three dimensional
rendering, enabling the user to move, rotate, "fly-through" or edit the one or
more
design elements in the three-dimensional interface. This can allow the user to

effectively view a CAD-based design in full context, even if there may be
certain
errors or inconsistencies in the design. In addition, in at least one
implementation,
the user can also convert the design elements to intelligent objects, and
allow the
system to warn or automatically correct for any errors or deficiencies in the
design.
This can allow the user to correlate the user's design changes in the CAD
interface
with real-world considerations, ensuring accuracy of the user's viewing
experience,
as well as of ordering and manufacturing requests.
[0013] For example, at least one implementation of a computer-
implemented
method of using an object-oriented design program to instantly render user
designs
made in a CAD program can involve identifying one or more user requests to
render
in a three-dimensional user interface one or more design elements created in a
separate CAD user interface. The method can also involve receiving one or more
CAD design elements that represent one or more CAD blocks and/or lines created

by the user in the CAD user interface. In addition, the method can involve
receiving
one or more files that identify features of the design elements that the user
selected

CA 02923333 2016-03-08
7
in the CAD user interface. Furthermore, the method can involve automatically
displaying the CAD blocks as three-dimensional design elements in the three-
dimensional user interface using previously-generated rendering instructions.
[0014] In addition to the foregoing, an additional or alternative
method of
using an object-oriented design program to instantly render user designs made
in the
CAD program can involve identifying one or more user requests to render in a
three-
dimensional user interface one or more design elements created in a separate
CAD
user interface. In this case, the one or more user requests further indicate
that no
intelligent objects are to be created. The method can also involve importing
from
the CAD program into the object-oriented program one or more CAD blocks and/
or
lines that represent one or more design elements created by the user in the
CAD user
interface.
[0015] In addition, the method can involve importing a separate feature
file
comprising user-selected features corresponding to the one or more design
elements
in the one or CAD blocks and/ or lines. Furthermore, the method can involve
automatically displaying the CAD blocks as three-dimensional design elements
in
the three-dimensional user interface using previously-generated rendering
instructions. Still further, the method can involve displaying in the three-

dimensional user interface at least one of the user-selected features from the
feature
file as being non-modifiable, and another of the user-selected features from
the
feature file as being modifiable.
[0016] Additional features and advantages of exemplary implementations
of
the invention will be set forth in the description which follows, and in part
will be

CA 02923333 2016-03-08
,
,
8
obvious from the description, or may be learned by the practice of such
exemplary
implementations. The features and advantages of such implementations may be
realized and obtained by means of the instruments and combinations
particularly
pointed out in the appended claims. These and other features will become more
fully apparent from the following description and appended claims, or may be
learned by the practice of such exemplary implementations as set forth
hereinafter.

CA 02923333 2016-03-08
9
BRIEF DESCRIPTION OF THE DRAWINGS
[0017] In order to describe the manner in which the above-recited and
other
advantages and features of the invention can be obtained, a more particular
description of the invention briefly described above will be rendered by
reference to
specific embodiments thereof which are illustrated in the appended drawings.
Understanding that these drawings depict only typical embodiments of the
invention
and are not therefore to be considered to be limiting of its scope, the
invention will
be described and explained with additional specificity and detail through the
use of
the accompanying drawings in which:
[0018] Figure 1A illustrates a schematic diagram in which a user creates or
modifies one or more design elements through a CAD user interface that is
linked to
both a record-based database and an object-oriented database using a default
in
accordance with an implementation of the present invention with object states
set to
off;
[0019] Figure 1B illustrates the schematic of Figure 1A in which a user
creates or modifies one or more design entities through the CAD user interface
after
selecting one or more object status items;
[0020] Figure 1C illustrates an implementation of the present invention
in
which an object block of the object-oriented database of Figures 1A-1B
corrects a
user selection for an impractical modification of a design entity in the CAD
user
interface of Figures 1A-1B;
[0021] Figure 1D illustrates an implementation of the present invention
in
which a user opens a three-dimensional interface and makes corresponding
changes

CA 02923333 2016-03-08
to one or more design entities of the CAD user interface in the three-
dimensional
interface;
[0022] Figure 2 illustrates a schematic in which the previously
illustrated
intermediate interface renders one or more CAD design elements from a CAD user
5 interface in a three-dimensional interface without necessarily creating
corresponding
intelligent objects;
[0023] Figure 3A illustrates a three-dimensional user interface, such as
shown in Figure 2, in which the user rotates rendered design elements
corresponding
to imported CAD design elements for a top, perspective view thereof;
10 [0024] Figure 3B illustrates the three-dimensional user interface
of Figure
3A in which the user rotates the rendered design elements for a bottom,
perspective
view thereof as part of a "fly-through" navigation experience;
[0025] Figure 3C illustrates the user interface of Figures 3A and 3B in
which
the user further manipulates various features of the rendered design elements;
[0026] Figure 4 illustrates a schematic of the implementations shown in
Figures 2 through 3C in which the user subsequently generates intelligent
objects
corresponding to the rendered design elements, and further performs one or
more
modifications thereto;
[0027] Figure 5 illustrates a flowchart of a series of acts in a method
of
instantly rendering one or more records-based CAD drawings in 3D using the
intermediate interface, which is object oriented; and

CA 02923333 2016-03-08
11
[0028] Figure 6 illustrates
another flowchart of a series of acts in an
additional or alternative method of instantly rendering one or more CAD
drawings
in 3D using an object-oriented design program.

CA 02923333 2016-03-08
12
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0029] The present invention extends to systems, methods, and computer
program products configured to instantly render user-drawn CAD design elements

such as blocks and/ or lines (in a CAD application program) as one or more
design
elements in a separate, three-dimensional interface. This rendering is a three
dimensional rendering, enabling the user to move, rotate, "fly-through" or
edit the
one or more design elements in the three-dimensional interface. This can allow
the
user to effectively view a CAD-based design in full context, even if there may
be
certain errors or inconsistencies in the design. In addition, in at least one
implementation, the user can also convert the design elements to intelligent
objects,
and allow the system to warn or automatically correct for any errors or
deficiencies
in the design. This can allow the user to correlate the user's design changes
in the
CAD interface with real-world considerations, ensuring accuracy of the user's
viewing experience, as well as of ordering and manufacturing requests.
[0030] As will be understood more fully herein, these and other advantages
are realized at least in part since implementations of the present invention
provide
one or more mechanisms for automatically and instantly rendering record-based
data
(e.g., linear or sequential database entries representing graphical entities
in a CAD
application), as well as correlating such data to detailed, object-oriented
entities (or
"intelligent software objects"). This
translation/rendering/linking/correlating can be
accomplished and mediated at least in part through the use of one or more
intermediate interface 107 components configured to correlate record-based
changes
with object entities in an object-oriented database. Linking to the object
entities, in

CA 02923333 2016-03-08
13
turn, allows a CAD interface to take advantage of some of the more complex
features of an object-oriented system, such as producing, viewing and
modifying
three-dimensional (3D) views of a design. In one implementation, the object-
oriented design application program is implemented using a JAVA-based
programming language.
[0031] The use of object entities (e.g., JAVA-based object entities)
through a
separate or intermediate interface 107 allows a user to work within a record-
based
CAD application, within an object-oriented application, or within a third
application
(or corresponding output files) linked to the CAD application. In one
implementation, such as understood more fully with respect to Figures 2-6, the
intermediate interface 107 can be understood as linking to the CAD application
and
to textual file, which are representing outputs from a third party
application, or
inputs back into the third party application from CAD or textually. The user
can
then implement the functions and output from any or all of the CAD-based or
objected-oriented-based applications in an integrated, seamless fashion, such
as
modifying (e.g., trimming, extending, or mirroring, etc.) design entities
without
additional reactors, lisp type programs, or additional input and without
having to
replace the pre-existing CAD-based application program.
[0032] Figure lA illustrates an overview schematic diagram in which a
CAD
user interface is linked to both a record-based database and an object-
oriented
database via one or more intermediate interface 107 components using one
possible
default setting. In particular, Figure IA illustrates a basic CAD user
interface 105
comprising a series of drawing tools 110. Figure IA also illustrates, however,
in

CA 02923333 2016-03-08
14
contrast with typical CAD-based application programs, one or more object
"function" buttons 115 provided by an object-oriented design application
program.
Furthermore, Figure lA illustrates the use of one or more intermediate
interface 107
components 107, which are part of the object-oriented design application
program,
that interface between the CAD user interface 105 and both a record-based
database
113 and an object-oriented database 117.
[0033] As a preliminary matter, reference herein to "CAD" or "AUTOCAD"
is meant to describe programs that incorporate general design functionality
using
linear or record-based databases, rather than a specific reference to any
particular
existing product. In addition, although any database entry might be thought of
as a
"record" on some level, the term "record-based" when referring herein to an
application program or database will refer to application programs or
databases that
primarily use sequential or "linear" database entry/modification mechanisms,
rather
than object-oriented database entries. As previously mentioned, these types of
database entries (i.e., records) are not only typically sequential, but also
tend to
include only basic information about a design entity, such as design entity
type,
design entity position, or the like. In contrast to object-oriented
applications that use
object entities, therefore, a "record" can be understood herein as a passive
data
entry, while an "object block" can be understood herein as an active data
entry with
added intelligence.
[0034] In any event, Figure 1A illustrates an implementation of the
present
invention in which a user creates one or more design entities without
selecting one
or more object status items 115. In this case, the object state for each
design entity

CA 02923333 2016-03-08
would be set to "off." In general, object status item 115 can comprise any of
a
selectable button, icon, or other form of selectable option that would be
presented
through a graphical user interface on a computer display. In one
implementation,
the object-oriented design application provides one or more plugins or
modules, in
5 addition to the object status item 115, which tag each design entity
created or used in
CAD user interface 115 with an object status field (not shown). The object
status
field for each design entity, therefore, presents the "object state," which
indicates
whether the user has selected the object status item 115 for that design
entity.
[0035] In this example, Figure IA shows that a user selects use of a
line, and
10 draws line (or block) 120, potentially representing a wall in a design
space. Since
the user has not, in this example, selected item 115, intermediate interface
107
determines that the object state for design entities 120 and 125 are set to
"off," (or
other appropriate identifier in the object status field), and thus no desire
from the
user to link these design entities to an object entity. As shown in Figure 1A,
15 therefore, intermediate interface 107 identifies the object state from
any object status
field associated with instructions regarding design entity 120 as set to
"off."
Intermediate interface 107 then simply passes instructions regarding the
creation of
design entity 120 as message 123 to record-based database 113, but sends no
corresponding instructions to object-oriented database 117.
[0036] In contrast with Figure 1A, however, Figure 1B shows that the user
has selected object status item 115 in the context of creating or modifying
design
entity 120. In one implementation, mere selection of object status item 115
can
involve intermediate interface 107 copying or importing all record data (e.g.,
130,

CA 02923333 2016-03-08
16
135) corresponding to each design entity displayed in CAD user interface 105
(or all
applicable records) and creating corresponding object eentities (e.g., 133,
137) in
database 117. In the illustrated example, however, this selection simply
causes a
change in object state at least with respect to design entity 120 to "on," so
that
design entity 120 is correlated with an object entity. For example, Figure 1B
shows
that the user's drawing or placement of design entity 120 causes intermediate
interface 107 to send a "create object" message 140 to object-oriented
database 117,
in addition to passing message 123 (also shown in Figure 1A) indicating a
request to
create a new record 130.
t 0 [0037] In general, one will appreciate that there are a number of
different
ways that a user can correlate design entity 120 between record-based database
113
and object-oriented database 117. For example, a user could select object
status
item 115 before drawing any design entities, and set that as a default for all
design
entities until deselecting the object status item 115. Since each following
design
entity would have the same object state of "on," the intermediate interface
107
would create or modify both a record and an object entity corresponding to the

design entity during creation, modification, or other form of update.
[0038] In other cases, however, the user could select particular design
entities to have a particular object state of "on" or "off." In particular,
the user could
select object status item 115 during or after creating design entity 120,
and/or make
an additional selection (not shown) indicating that design entity 120 should
have an
object state of "on." In such a case, intermediate interface 107 could
recognize that
creation or modification of design entity involves modifications to an object
entity in

CA 02923333 2016-03-08
17
database 117 as well as a record in database 113, while creation or
modification of
design entity 125 involves modifications only to a record in database 113. In
still
further cases, one or more selection items (not shown) can be provided for the
user
to select conversion of all design entity records (or all records, design
entity or not)
from database 113 to database 117. This would involve any one or more of
copying,
transferring, or moving data from database 113 to database 117 to ensure
proper
correlation, or total substitution of record-based database 113 with object-
oriented
database 117.
[0039] In addition to the foregoing, Figure 1B also shows that selection
of
object status item 115 can result in the presentation of additional user
interfaces or
design choices to a user. For example, Figure 1B shows that upon identifying
that
the user has selected object status item 115, intermediate interface 107
presents
design interface options 145 as an inclusion in CAD user interface 105, or as
a
separate standalone interface. In either case, the user can add refmements or
other
details to a design entity in CAD user interface 105. For example, Figure 1B
shows
that the user has selected a "wall" option, in addition to the object status
item 115.
Thus, when the user creates design entity 120, the intermediate interface 107
recognizes the object state for the design entity, as well as the
corresponding details
entered through interface 145.
[0040] The intermediate interface 107 then sends message 140 to object-
oriented database 117 not only to create an object (133) for design entity
120, but
also to include the additional details requested, such as that the design
entity
represents a wall, or even other details about the wall structure, color,
design,

CA 02923333 2016-03-08
18
texture, materials, etc. Ordinarily, however, these and other details might
not be
included in the typical record for a design entity in a CAD application. For
example,
Figure IA shows that intermediate interface 107 simply sends the same message
123
as shown in Figure 1A that the type of design entity is a "line," as well as
the
position information. In any event, one will appreciate that design entities
that are
correlated with object entities can be opened and modified in any user
interface
(whether the CAD user interface 105, or another user interface provided by the

object-oriented design application program). By contrast, design entities that
are not
correlated with object entities (i.e., object status set to "off') will
generally be
opened or modified only in the CAD application program.
[0041] Figure 1C illustrates an implementation of the present invention
in
which an object of the object-oriented database of Figures 1A-1B attempts to
resolve
a potentially impractical user selection. In particular, Figure 1C illustrates
at least
one of the advantages provided to the record-based CAD application by
implementing the functionality of an object-oriented design
application/database.
For example, Figure 1C shows that the user extends the design entity 125, in
this
case a wall, through design entity 120, which in this case is also an outer
wall.
[0042] In a typical CAD-based application, the user might be free to
draft
this extension to design entity 125 because the records 130, 135 of database
113 do
not resolve the conflict, and only implement or record the user's drawing
selection.
By contrast, Figure 1C shows that the objects 133, 137 of object-oriented
database
117 can utilize intelligence to resolve the conflict. For example, Figure 1C
shows
that, upon receiving the user's selection, intermediate interface 107 sends
message

CA 02923333 2016-03-08
19
127a to record-based database 113, of the user's selection for line 125. In
addition,
intermediate interface 107 sends message 127b to object-oriented database 117,

which also includes essentially the same information, as applicable, regarding
the
user's selection for line 125. In contrast with records 120 and 125, however,
Figure
1C shows that object 137 determines based on its own data (as well as,
potentially,
on a comparison with the data of object 133) that this request is either
impractical or
impermissible.
[0043] Accordingly, Figure 1C shows that object 137 sends a response
message 143 to intermediate interface 107 indicating that this request is not
permissible. Intermediate interface 107 can then perform any number of
corresponding response actions. In one implementation, for example,
intermediate
interface 107 passes one or more messages (not shown) to CAD user interface
105,
which causes the new but impermissible user selection (shown in dashes) to be
removed or corrected. For any such removal or correction, intermediate
interface
107 can also pass one or more additional messages (not shown) to record-based
database 113 to update record 135 in the same manner. In other or alternative
implementations, intermediate interface 107 can send one or more messages to
prompt the user for additional action based on a warning signal, and/or pass a

corresponding signal to record 135 in database 113.
[0044] One will appreciate that this corrective ability can be applied to a
wide number of design entities drawn or made by a user in CAD user interface
105.
For example, the object entities of database 117 could correct a situation
where the
user drew the components of a chair and placed those components inadvertently
on

CA 02923333 2016-03-08
top of a wall. In such a case, the object entity might cause the CAD user
interface
105 to automatically move the chair to a more appropriate position, if not
deleting
the user's placement altogether.
[0045] In addition to the foregoing, the object entities of database 117
can be
5 used to correct or implement user selections made in views other than the
CAD user
interface 105. For example, Figure 1D shows that the user has selected a "3D"
option 116. In general, 3D option 116 can be any of a button, icon, or menu
pull-
down option, or the like provided by the object-oriented design application
(or
plugin/component thereof) through the CAD user interface 105. In at least one
10 implementation, 3D option 116, as with object option 115, is one of many
selectable
options in the CAD user interface 105, and can be used to open a new set of
toolbars
and/or interfaces. In any case, Figure 1D shows that, upon such selection and
ultimately requesting creation of a 3D representation, intermediate interface
107
opens 3D interface 109 is opened, showing lines 120 and 125 as walls in three-
15 dimensional format.
[00461 In general, the three-dimensional format of interface 109 is
generated
at least partly from the more detailed information contained in the object
entities
(e.g., 133, 137) of database 117. For example, the object entities of database
117
can contain information not only of size or position, but also of texture,
color, width
20 or gauge, number or types of mounting components, as well as three-
dimensional
representations of the types of materials used in the wall (e.g., glass, wood,
dry wall,
etc.), the lighting at a particular angle, etc. The object entities can also
include

CA 02923333 2016-03-08
21
information about pricing for various components, or other forms of
information
deemed applicable for each design entity.
[0047] As such, the user can then navigate around or through any of
these
design entities, in various angles and degrees of proximity, and even select
pricing
or other details instantly with respect to a particular design entity. The
user can also
make any selections or changes to the three-dimensional views (or two-
dimensional
views, as appropriate) of each design entity, and have those reflected
seamless in all
entries for each corresponding record or object, regardless of database (113
and/or
117).
[0048] In this case, for example, Figure 1D shows that the user's selection
of
3-D for item 116 results not only in the opening of 3-D interface 109, as well
as the
opening of a color palette interface 147. One will appreciate, however, that
the color
palette may also be opened by separate command, and not necessarily upon
creation
or opening of 3D interface 109. In any case, Figure 1D further shows that the
user
selects one of the colors from color palette interface 147, which the
intermediate
component 107 then applies to design entity 127. Intermediate component 107
then
sends message 150 to database 117, which updates the intelligent object 137
for this
color selection (if available). Similarly, and if applicable, intermediate
component
107 can then send a message 155 to record-based database 113 to update record
135
for design entity 125. In the event color is not used in the CAD user
interface 105,
intermediate component 107 may be able to even omit sending message 155 at
all.
[00491 Accordingly, Figures 1A-1D illustrates a number of different
components and schematics for seamlessly integrating the functionality of an
object-
.

CA 02923333 2016-03-08
22
oriented design application with a record-based design application. In
addition to
the foregoing, implementations of the present invention can also be used to
automatically import and render CAD-based object entities corresponding to
design
elements from geometry-based programs virtually instantly, and in the exact
manner
that the user drew and configured the design elements. This means that the
three-
dimensional interface can precisely capture finish features (and even layouts
of
colors, grain patterns, dimensions, etc.) that the user previously selected in
a third
party program, and thus allow the user to use intermediate interface 107
primarily to
view, rotate, and travel around (e.g., "fly through" navigation) the user's
designs. In
at least one implementation, this ability to render the design elements in an
instantaneous fashion can be provided to the user with or without accompanying

conversion to, or creation of, intelligent objects in database 117.
[0050] For example, Figure 2 illustrates an overview schematic diagram
of
system 100a, which is an additional or alternate implementation of previously
described system 100. As understood more fully herein, system 100a can provide
still other advantages for those who may want to use the software
corresponding to
intermediate interface 107 primarily for rendering, rather than rendering and
correlation with real-world values (e.g., via intelligent objects). In
particular, Figure
2 illustrates system 100a, in which a user uses CAD user interface 105 and
intermediate interface 107 to create a three-dimensional view of a design
element in
the form of a CAD block / line in the manner drawn by the user, but without
necessarily creating any corresponding intelligent object entities (e.g., 133,
137, etc.)
for the record (e.g., 120, 125, etc.)

CA 02923333 2016-03-08
23
[0051] There may be a number of reasons why a user may want to create
renderings without initially creating intelligent object entities (or
"objects"). For
example, the user may desire to simply render CAD drawings in 3D in a quick,
efficient manner, and not worry that some of the color or physical
arrangements of
elements may not be possible. That is, and as previously mentioned, the
intelligent
objects (e.g., 133, 137) are generally configured to automatically move or
update a
drawing in accordance with actual, real-world variables (e.g., tables cannot
be
placed on top of walls, chairs that come only in black or white cannot be
colored in
blue, etc.). Thus, without creating objects, the present software can ensure
that it
0 renders the user's designs in the three-dimensional interface (as in
Figure 2) with
precision. Furthermore, as understood more fully herein, without creating
intelligent
objects, the user can modify the 3-D rendering of the user's design without,
in some
cases, automatically updating the corresponding CAD entities.
[0052] Along these lines, Figure 2 shows that CAD interface 105
comprises
(or comprises a reference to) one or more features toolbars 205, which can
further
comprise various, selectable feature elements 205a, 205b and 205c. For
example,
CAD user interface 105 may provide its own features toolbar 205. In other
cases, a
third-party application program (not shown) provides toolbar 205, and/or
manages
input with respect to the corresponding options 205a-c, etc. In either case,
the
illustrated example shows that these selectable feature elements 205a, 205b,
and
205c allow a user to modify a design element for size, color and finish in the
CAD
user interface 105. In particular, Figure 2 shows that the table corresponding
to
design element 126 is four feet by eight feet, black, and having a wood grain
finish.

CA 02923333 2016-03-08
24
As the user selects and modifies these selectable feature options 205a-c,
Figure 2
shows that the corresponding CAD program populates the user's selections in
various records.
[0053] In one implementation, the CAD program (which provides CAD
interface 105) maintains these records in separate files and/or in separate
databases.
Nevertheless, one will appreciate that this is not required, and the CAD
program can
maintain such information in a single database with single records not only
for
design choices but for design element features. In any event, Figure 2
illustrates an
implementation in which the CAD program uses the record-based database 113,
to and/or a separate database features database 200. Furthermore, Figure 2
shows that
the CAD program stores the user's selections for the table and for the table
features
in separate records (i.e., 131, and 230). Thus, in order to accurately render
the
selected table design element 126 as drawn by the user, the intermediate
interface
107 will ultimately need to receive all of the information drawn by the user,
which,
in this case means receipt of multiple files including both any CAD-based
design
entities (CAD blocks or lines) and corresponding features.
[0054] For example, Figure 2 shows that the user has selected 3D
option
116. In the illustrated implementation, this user selection causes
intermediate
interface 107 to begin upload and rendering process. Along these lines, Figure
2
shows that intermediate interface 107 receives or imports message 235 from
interface 105, which comprises one or more design entities including CAD
blocks
for the drawn design elements 120 (wall), 121 (wall), and 126 (table) through
one or
more import interfaces 215. One will appreciate, however, that message 235
could

CA 02923333 2016-03-08
also or alternatively include one or more CAD design entities in the form of
CAD
lines, in addition to or in lieu of CAD blocks, as such.
[0055] Although, in some implementations, rendering / determining
module
210 could draw the CAD design elements in 3D in interface 109 on this
information
5 alone, such drawings would not comprise the context of finishes that the
user
selected in CAD interface 105, and thus would be inexact. In at least one
implementation, for example, the CAD design elements represent components of
specific dimensions with specific attributes, and both dimensions and
applicable
attributes must be recognized and correctly applied by the present invention,
in order
10 to represent the components properly in the rendering. Thus, Figure 2
shows that
the intermediate interface 107 further receives one or more additional
messages 240
comprising information regarding the selected features 230 that the user made
in
CAD interface 105 (via toolbar 205).
100561 In at least one implementation, the features 230 in message 240
can
15 comprise a Standard Information File (or SIF), although any number of
file formats
may be used to transmit design element feature information. Figure 2 also
shows
that intermediate interface 107 receives message 240 regarding user-selected
features from features database 200 (or a third-party application managing the

features toolbar 205 and/or features database 200). Of course, one will
appreciate
20 that intermediate interface 107 could receive the features message 240
from the
CAD program itself in some implementations.
[0057] In any event, and upon receipt of messages/communications 235,
240, Figure 2 shows that import interface 215 passes the received information
for

CA 02923333 2016-03-08
26
processing through one or more processing components or modules, such as
rendering / determining module 210. In contrast with the discussion herein
with
respect to Figures 1A-1D, intermediate interface 107 does not automatically
correlate and create any intelligent objects (or intelligent object entities)
in this case,
per se, since the user has not selected the object option 115. As previously
mentioned, the user has not selected object option 115 in this case. As such,
Figure
2 shows that object-oriented database 117 comprises "unintelligent" or "dumb"
objects 410a, 410b, etc., upon the import and processing of CAD design
entities.
[0058] By way of explanation, these unintelligent (or dumb) objects
410a,
to 410b, etc. merely maintain information in object-oriented database 117
with regard
to the CAD design elements and corresponding features that import interface
215
received in messages 235, 240. In contrast with the intelligent objects
otherwise
described herein (e.g., Figures 1A-1D, and Figure 4), Figure 2, however, these

unintelligent objects 410a, 410b are not linked to each other, and are not
linked to
any other objects or reference libraries (e.g., 420, Figure 4). As a result,
although
the unintelligent objects 410a, 410b, etc. may have some limited auto-
resolving
functionality (e.g., they may be able to "snap" into an appropriate position
in user
interface 109), they cannot continually resolve themselves in lieu of changes
to other
objects in database 117, or to any other changes in a reference library or
features
database 230.
[0059] Referring again to Figure 4, as the information in
communications
235 and 240 does not comprise rendering instructions, but rather comprises
information identifying design elements and selected features, rendering
module 210

CA 02923333 2016-03-08
27
does not actually attempt to render (directly) what is received. Rather, part
of
rendering communications 235 and 240 in an "instant" involves gathering and
processing pre-rendered information (i.e., "previously-generated rendering
information") in various forms to recreate the user's selections in 3D. For
example,
Figure 2 illustrates that intermediate interface 107 can further comprise
reference to
one or more object features database 230. In at least one implementation,
object
features database 230 comprises pre-rendered design instructions, which
instructions
the database 230 obtained in a separate step by rendering various design
elements,
shadows, and finishes for 3D representation.
[0060] Thus, rather than render each particular CAD design entity (CAD
block and/or CAD line) as the interface 107 receives it from the corresponding
CAD
program, rendering / determining module 210 can merely combine pre-rendered
instructions as a set of new rendering instructions for display. For example,
upon
receipt of communications 235, 240 from the CAD program, rendering /
determination module 210 queries object features database 230 (e.g., via one
or
more messages 213) to determine the existence of the user's requested CAD
design
elements, as well as the user-selected features for the CAD design elements.
In
some cases, this can involve coordinating CAD-entity information with standard

stock-keeping unit (SKU) information maintained by either or both of the CAD
program and the object-oriented program corresponding to intermediate
interface
107. Either way, Figure 2 shows that rendering / determining module 210
queries
database 230 to identify if there are prior 3D renderings of a table, table
shading,
black color, and wood grain finishes, etc., as necessary to draw the design.

CA 02923333 2016-03-08
28
[0061] Rendering module 210 can then receive one or more answers (e.g.,
messages 217) that either include the requested rendering instructions, or
indicate
that the instructions do not exist. Notably, in this case, object-features
database 230
will not determine whether specific design elements should (or can) include
specific
features, such as in inventory. Thus, even if a particular table does not
allow for a
wood grain finish, at least one implementation of the invention allows object
features database 230 (and/or object-oriented database 117, if applicable) to
still
provide rendering instructions for the particular table and wood grain finish
since the
users selected it.
[0062] In addition, if the rendering / determining module 210 does not
identify rendering instructions for a particular CAD design entity/element or
feature,
there are a number of ways intermediate interface 107 can proceed. For
example,
rendering determining module 210 can render the CAD design element without the

unavailable feature, or otherwise render the design element with a closely
matching
feature. Similarly, if the design element (e.g., table, chair, etc.) does not
exist at all
in the intermediate interface 107 inventor, rendering / determining module 109
could
draw the remaining design elements in interface 109, but place either an error

message or the like in place of the requested design element.
[0063] In any event, Figure 2 shows that, in this example, the
requested
features (e.g., via message 240) do correlate with what is available in the
object
features database. As a result, Figure 2 shows rendering / determining module
210
is able to render the requested walls and tables in 3D user interface 109
precisely as
the user requested them in the CAD interface 105. Specifically, 3D user
interface

CA 02923333 2016-03-08
29
109 shows a three-dimensional version of the table 126 with the exact size
(i.e., 4 x
8 feet), color (i.e., black) and finishes (i.e., wood grain) selected by the
user in the
CAD user interface 105. Furthermore, user-interface 109 is able to display
these
design elements virtually at the same instant that the user selected 3D option
116 in
CAD interface 105. As such, implementations of the present invention provide a
much richer, and more realistic view of design elements created in CAD
interfaces,
particularly for simply viewing what the user has created, and compared with
conventional rendering software.
[0064] As previously mentioned, intermediate interface 107 only created
unintelligent objects 410a, 410b, and thus did not create any automatically
and
continually resolvable intelligent objects (e.g., 410a', 410b', etc.) for the
imported
CAD design element(s) and corresponding features (e.g., messages 235, 240).
Nevertheless, intermediate interface 107 can still provide the user the
ability to still
move, navigate around, or otherwise modify the user's design in 3D user-
interface
109 at least in part. In at least one implementation, for example,
intermediate
interface 107 provides the user, through 3D user interface 109, the ability to
change
feature information on the design elements such as color, finish, or other
style
choices. In this implementation, the intermediate interface 107 might also be
configured to disallow changes to such things as dimension, or
additions/deletions of
design elements into the drawing.
[0065] Along these lines, Figures 3A, 3B and 3C illustrate examples of
the
aforementioned functionality. For example, Figure 3A shows that the user can
rotate the view of design elements in user interface 109 to see a perspective
top view

CA 02923333 2016-03-08
thereof. In addition, Figure 3B shows that the user can navigate underneath
(and fly
through) the table, and further view other design elements from that
perspective. In
addition, Figure 3C shows that the user can also manipulate aspects of the
design
elements to some extent. For example, Figure 3C shows that the user has
changed
5 not only the color, but also the finish of the table design element 126
so that the
color is spotted, the material finish is glass, and such that interface 109
shows the
new, three-dimensional view of table 126a.
[0066] As previously mentioned, however, this particular implementation
of
displaying the user's design choices are simply for viewing purposes in the
three
to dimensional view, and such changes are thus not replicated either to
object-oriented
database 117 or back to CAD interface 105. For example, the features toolbar
220
that user-interface 109 provides to the user in Figure 3C facilitates changing
of color
and finish, but not of dimension or type of design element (e.g., table or
chair) in
this example. That is, the intermediate interface 107 provides some of the
user's
15 selected features as modifiable options, but provides other user-
selected features as
being non-modifiable.
[0067] In some additional implementations, the 3D user interface 109
could
still allow a user to add or replace different design elements, even those of
different
dimensions, even though only unintelligent objects 410a, 410b are being used.
In
20 such cases the user would have to move or rotate the design elements in
the user
interface 109 himself in order to accommodate any changes (e.g., dimensional
changes), as the objects 410a, 410b would not automatically resolve and make
such
changes for the user (in contrast with objects 410a' and 410b' discussed
below).

CA 02923333 2016-03-08
31
Thus, in these types of implementations using unintelligent objects,
therefore, the
intermediate interface 107 provides a relatively limited, but at the same time
rich,
viewing experience of the user's CAD designs.
[0068] By contrast, and for the user to be able to change all the
features of
the table, specifically the dimensions of the table, as well as modify,
delete, or add
design elements in the 3D user interface 109 in automatically resolvable ways,
the
user will need to create an intelligent object for each the design elements.
For
example, Figure 4 illustrates an implementation in which the user has selected
(in
CAD user interface 105) not only the 3D option 116, but also the object option
115.
As previously described, this signals intermediate interface 107 to create one
or
more intelligent objects for the received CAD design elements and features. In
one
implementation, this can occur by CAD user interface 105 sending one or more
messages 400 to the intermediate interface 107 that tells the intermediate
interface
107 to create one or more intelligent objects.
[0069] Along these lines, Figure 4 shows that rendering / determining
module 210 of intermediate interface 107 then generates one or more
corresponding
intelligent objects 410a' and 410b' in object-oriented database 117. In at
least one
implementation, this generation of intelligent objects involves "adding
intelligence"
to (or otherwise converting) the existing "unintelligent" objects 410a, 410b,
etc. In
one implementation, for example, intermediate interface 107 adds intelligence
at
least in part by creating one or more links between related existing objects
so that
changes in one object can be automatically resolved and/or reflected in
another
linked object.

CA 02923333 2016-03-08
32
[0070] In addition, intermediate interface 107 can also add one or more
links
between these linked objects and one or more reference libraries 420 and/or to
the
object features database 230. In this case, the links can ensure that changes
in the
reference library 420 and/or object features database 230 are automatically
resolved
=
or replicated in the intelligent objects 410a', 410b', and vice-versa. In
still further
implementations, intermediate interface 107 can add additional computer-
executable
routines that cause each intelligent object 410' to not only identify changes
in other
objects or libraries, but also to react to such changes in an automatic,
continual way.
[0071] However generated or created, Figure 4 shows that object-oriented
database 117 now comprises at least an intelligent object 410a' for a table,
and
further comprises references to the previously selected features. In addition,
object-
oriented software (i.e., intermediate interface 107) can save groupings of
components/design elements as typical groupings within the object-oriented
database 117 for future use. For example, in addition to what is shown in
Figures 2-
4, the user can also select one or more options to group elements 120, 121,
and 126.
The user can then use the software (i.e., the intermediate interface 107) to
convert
existing typical arrangements to intelligent object-oriented arrangements (in
database 117) quickly and easily. When the user places such the saved
arrangement
in any future design, the user can also rearrange or manipulate that typical
arrangement and the components thereof at any time.
[0072] Referring again to Figure 4, now that the user has created one or
more intelligent objects (e.g., 410a', 410b' or generally as 410') for this
particular
table (and/or other design elements) (and/or objects for the group of design

CA 02923333 2016-03-08
33
elements), the user can now manipulate the design elements in the user
interface
109. For example, the user can move the table into a variety of different
locations in
the design space, or otherwise manipulate the table and any other design
elements in
the 3D user interface 109 in a coordinated, real-world way. This means that
the
given intelligent object 410' will continually reflect the user's design
choices as it
automatically resolves itself with each user input, but constrain those
choices based
on what is physically possible (i.e., not putting a table on top of a wall),
or what is
available in inventory (i.e., limiting color and finish selections to certain
types of
tables in stock, etc.) Furthermore, the intelligent object 410' can
continually
maintain and update one or more parts lists for the user's design as
appropriate for
the 3D layout in interface 109.
[0073] For example, Figure 4 illustrates an implementation in which the
user
moves the object-oriented design element 126b in the three-dimensional
interface
109 so that the table 126b directly abuts the two walls 120 and 121. In this
case, the
user has also selected a particular table that optimally uses connector
brackets
instead of table legs when placed in a certain way. As such, when the user
positions
table 126 against walls 120 and 121, the intelligent object 410a' correlates
the new
positioning information with other object information (e.g., 410b' for a
wall).
[0074] In at least one implementation, intelligent object 410a' further
correlates the new positioning information with data from a reference library,
which
stores rules and options for each type of design element. Accordingly, due to
the
various relationships the intelligent object 410a' has with other objects for
the
design elements in user-interface 109, and based on the information in
reference

CA 02923333 2016-03-08
34
library 420, intelligent object 410a' automatically updates the table to
remove three
table legs and add brackets. In particular, Figure 4 shows that user interface
109
provides a 3D view of table 126b with only one table leg and various brackets
against walls 120 and 121.
[0075] In addition to the foregoing, using intelligent objects 410' (also
133,
137, Figures 1A-1D) in this case allows a number of additional advantages not
otherwise found when simply rendering the CAD design entities such as shown in

Figures 2, and 3A-3C. For example, as previously mentioned in Figure 1A-1D and

the corresponding discussion, intermediate interface 107 can continually and
o automatically send back corrections or changes in the CAD design entities
to the
CAD program corresponding to CAD user interface 105. In addition, and as
previously mentioned, the ability to continually update various parts and
finishes
based on each user selection for positioning and addition/deletion of design
elements
allows the intermediate interface 107 to continually maintain an accurate
parts list.
[0076] For example, at the moment the user positions table 126 against
walls
120 and 121, the automatic determinations by intelligent object 410a' can also
be
instantly reflected in an updated parts list. Along these lines, Figure 4
illustrates an
updated parts list 430, which indicates, based on intelligent object 410a'
(for table
126), that the table has 1 leg and 3 support brackets. Thus, one will
appreciate that
at virtually any point in time while the user is viewing or modifying the
design
elements in 3D user interface 109, and the user is satisfied with the drawing
in user
interface 109, the user can generate an accurate parts list. For example, the
user can
ask intermediate interface 107 to open a user interface with a modifiable
parts list,

CA 02923333 2016-03-08
which the user can continually change or update, which changes can be
instantly
reflect in the drawings in 3D user interface 109.
[0077] As such, a user could alternatively make edits in the parts list
(or a
Bill of Materials, Order Proposal, reports etc.) and have this instantly
reflected in the
5 3D user interface 109. Upon selecting the 3D user interface 109, any
changes that
the user made in the parts list would thus be automatically reflected in the
rendering
of the 3D user interface. For example, if the color blue were available for
the table
126, and the user edited the color from black to blue in the parts list, the
user
interface 109 would automatically be updated to show the table in the color
blue,
io where appropriate. The user can then send any such parts lists (or Bill
of Materials,
Order Proposals, etc.) on to manufacturing, as appropriate.
[0078] In still other cases, the user can generate one or more output
files (not
shown) that are accurate, and can be used to update the features database 200,

corresponding third-party application(s) managing the database, and/or the CAD
15 program managing CAD user interface 105. As with generating a parts
list, for
example, the user can similarly ask intermediate interface 107 to generate one
or
more output files based on the current drawing in interface 109 that the user
can pass
to another entity. The intermediate interface 107 (e.g., via interface 215)
can then
pass the output file directly to features database 200, and/or to the third-
party
20 application program that manages features database 200. Then, when using
CAD
user interface 105 again, the CAD design elements (e.g., including any CAD
blocks
of CAD lines)

CA 02923333 2016-03-08
36
100791 Accordingly, Figures 2-4 and the corresponding text illustrate
or
describe a number of components, modules, and mechanisms that can be used to
enhance efficiency in the computer-aided drawing/design workspace with options
to
create software objects, or otherwise draw rich designs without creating
software
objects. In addition to the foregoing, implementations of the present
invention can
also be described in terms of one or more acts in a method for accomplishing a

particular result. For example, Figures 5 and 6 illustrate flowchart of
alternate
computer-implemented methods of using an object-oriented design program to
instantly render user designs created in a CAD program. The acts of these
o flowcharts are described below with respect to the components and
diagrams of
Figures 1A-4.
[0080] For example, Figure 5 shows that a method of using an object-
oriented design program to instantly render user designs made in a computer-
aided
design (CAD) program comprises an act 500 of identifying a user request to
render a
CAD drawing in 3D. Act 500 can include identifying one or more user requests
to
render in a three-dimensional user interface one or more design elements
created in a
separate CAD user interface. For example, Figure 2 shows that the user has
selected
3D option 115 in the CAD user interface 105. In one implementation, this sends
a
separate message to intermediate interface 107 indicating that the user is
ready to
render what is drawn in the CAD user interface 105. One will appreciate,
however,
that this request to render the CAD drawings can also be sent with the CAD
design
elements as described below.

CA 02923333 2016-03-08
,
. .
37
100811 Along these lines, Figure 5 also shows that the method
of instantly
rendering these CAD drawings comprises an act 510 of receiving one or more CAD

design elements for each requested drawing. Act 510 can include receiving one
or
more CAD design elements that represent one or more CAD block or line design
elements created by the user in the CAD user interface. For example, Figure 2
shows that intermediate interface 107, such as via import interface 215,
receives one
or more CAD design elements (e.g., via corresponding record 131). In one
implementation, message 235 further comprises the one or more requests in
message
235 to render the CAD design elements in 3D.
[0082] In addition, Figure 5 shows that the method can comprise an act 520
of receiving one or more files with feature information. Act 520 can include
receiving one or more files that identify features of the design elements that
the user
selected in the CAD user interface. For example, Figure 2 shows that
intermediate
interface 107, such as via import interface 215, further receives message 240
comprising feature information. In at least one implementation, and as
previously
described, this feature information can comprise information such as color or
style
choices, material choices, finish choices, and so on, which are used to define
the
look and feel of the CAD design elements made by the user in CAD user
interface
105.
[0083] Furthermore, Figure 5 shows that the method can comprise an act 530
of instantly displaying 3D rendering of the CAD design elements with pre-
rendered
information. Act 530 can includes automatically displaying the CAD design
elements as three-dimensional design elements in the three-dimensional user

CA 02923333 2016-03-08
38
interface using previously-generated rendering instructions. For example,
Figure 2
shows that intermediate interface 107, such as via rendering / determining
module
210 processes messages 235 and 240 in conjunction with the previously rendered

information stored in object features database 230. Rendering / determining
module
210 then uses the previously rendered information to instantly render the
received
CAD design elements and corresponding features (e.g., via messages 235, 240)
in
3D user-interface 109, just as the user drew them in CAD user interface 105.
[0084] In addition to the foregoing, Figure 6 illustrates that an
additional or
alternative method of the present invention of rendering CAD design elements
comprises an act 600 of identifying a user request to render a CAD drawing in
3D
without creating any intelligent software objects. Act 600 can include
identifying
one or more user requests to render in a three-dimensional user interface one
or
more design elements created in a separate CAD user interface, wherein the one
or
more user requests further indicate that no intelligent objects are to be
created. For
example, as previously discussed, when a user selected 3D option 116 but not
object
option 115, intermediate interface 107 can still import and render CAD design
elements, but will do so using the precise drawings and features indicated by
the
user in the CAD interface. This is enabled at least in part in this example by
the
intermediate interface 107 also not creating any intelligent software objects,
which
could change the renderings of the CAD design elements in a way that the user
did
not intend to draw in the CAD interface 105, or for which the user may not
have
been forewarned.

CA 02923333 2016-03-08
39
[0085] Figure 6 also shows that the method comprises an act 610 of
importing CAD design elements for each requested design element. Act 610 can
include importing from the CAD program into the object-oriented program one or

more CAD design elements that represent one or more CAD block or line design
elements created by the user in the CAD user interface. For example, Figure 2
shows that intermediate interface 107, such as via import interface 215,
receives one
or more messages 235 comprising CAD design elements corresponding to the
user's
designs in CAD user interface 105.
[0086] In addition, Figure 6 shows that the method can comprise an act
620
of importing a separate feature file for the imported CAD design elements. Act
620
can include importing a separate feature file comprising user-selected
features
corresponding to the one or more design elements in the one or CAD design
elements. For example, as previously mentioned, Figure 2 shows that
intermediate
interface 107 fiirther receives one or more messages 240 comprising feature
files
that indicate various finish information about the CAD design elements, which
features the user selected in the CAD interface 105. In one implementation,
intermediate interface 107 can alternatively receive both the feature
information and
the CAD design elements (CAD blocks and/or CAD lines) in the same import step.
[0087] Furthermore, Figure 6 shows that the method comprises an act 630
of
displaying the CAD design elements in 3D with pre-rendered information. Act
630
can include automatically displaying the CAD design elements as three-
dimensional
design elements in the three-dimensional user interface using previously-
generated
rendering instructions. For example, and as also previously mentioned, Figure
2

CA 02923333 2016-03-08
shows that intermediate interface 107, such as via rendering / determining
module
210, can immediately render the received CAD design elements and corresponding

features by using pre-rendered (or previously-generated rendering) information

stored in object features database 230. Thus, virtually upon receipt of
messages 235
5 and 240, rendering / determining module 210 prepares a fully rendered
version of
the design elements in user-interface 109.
[0088] Still further, Figure 6 shows that the method comprises an act
640 of
displaying some of the received features as modifiable, and other as non-
modifiable.
Act 640 can include displaying in the three-dimensional user interface at
least one of
10 the user-selected features from the feature file as being non-
modifiable, and another
of the user-selected features from the feature file as being modifiable. For
example,
as shown in Figure 2, 3D user-interface 109 shows the feature options in
toolbar 220
for color and finish as being modifiable, but does not show the dimensional
options
for size as being modifiable. As understood with respect to Figure 4, however,
the
15 intermediate interface 107 can provide the user with total access to
modify each of
the features presented in toolbar 220.
[0089] In view of the foregoing, one will appreciate that the
components and
modules of the present invention can capture product knowledge automatically
rather than requiring the user to remember and continually cross-reference and
20 update various applications. This automatic calculation and correction
by the
software can minimize human error, and further allow for immediate design
change
capability without rework, reduction or elimination of manual audit process,
and
automation of drawing and document creation processes. Such error reduction is

CA 02923333 2016-03-08
41
further enhanced not only by automated corrections, but also due to accurate
3D
validation of the design, and further allowing more sales due to the faster
time to
delivery and powerful visual lure of the 3D representation. For at least these
and
other reasons contained herein, implementations of the present invention
provide a
wide range of advantages in both designing, rendering, viewing, and finalizing
designs, regardless whether the designs were created using the more
conventional
records-based drawing/design programs (e.g., CAD programs).
[0090] The embodiments of the present invention may comprise a special
purpose or general-purpose computer including various computer hardware, as
discussed in greater detail below. Embodiments within the scope of the present
invention also include computer-readable media for carrying or having computer-

executable instructions or data structures stored thereon. Such computer-
readable
media can be any available media that can be accessed by a general purpose or
special purpose computer.
[0091] By way of example, and not limitation, such computer-readable
media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk
storage, magnetic disk storage or other magnetic storage devices, or any other

medium which can be used to carry or store desired program code means in the
form
of computer-executable instructions or data structures and which can be
accessed by
a general purpose or special purpose computer. When information is transferred
or
provided over a network or another communications connection (either
hardwired,
wireless, or a combination of hardwired or wireless) to a computer, the
computer
properly views the connection as a computer-readable medium. Thus, any such

CA 02923333 2016-03-08
42
connection is properly termed a computer-readable medium. Combinations of the
above should also be included within the scope of computer-readable media.
[0092] Computer-executable instructions comprise, for example,
instructions
and data which cause a general purpose computer, special purpose computer, or
special purpose processing device to perform a certain function or group of
functions. Although the subject matter has been described in language specific
to
structural features and/or methodological acts, it is to be understood that
the subject
matter defined in the appended claims is not necessarily limited to the
specific
features or acts described above. Rather, the specific features and acts
described
above are disclosed as example forms of implementing the claims.
[0093] The present invention may be embodied in other specific forms
without departing from its spirit or essential characteristics. The described
embodiments are to be considered in all respects only as illustrative and not
restrictive. The scope of the invention is, therefore, indicated by the
appended
claims rather than by the foregoing description. All changes that come within
the
meaning and range of equivalency of the claims are to be embraced within their

scope.

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date 2018-12-18
(22) Filed 2009-02-13
(41) Open to Public Inspection 2009-08-13
Examination Requested 2016-03-08
(45) Issued 2018-12-18

Abandonment History

Abandonment Date Reason Reinstatement Date
2017-02-13 FAILURE TO PAY APPLICATION MAINTENANCE FEE 2017-06-14

Maintenance Fee

Last Payment of $624.00 was received on 2024-02-09


 Upcoming maintenance fee amounts

Description Date Amount
Next Payment if standard fee 2025-02-13 $624.00
Next Payment if small entity fee 2025-02-13 $253.00

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Patent fees are adjusted on the 1st of January every year. The amounts above are the current amounts if received by December 31 of the current year.
Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Request for Examination $800.00 2016-03-08
Registration of a document - section 124 $100.00 2016-03-08
Application Fee $400.00 2016-03-08
Maintenance Fee - Application - New Act 2 2011-02-14 $100.00 2016-03-08
Maintenance Fee - Application - New Act 3 2012-02-13 $100.00 2016-03-08
Maintenance Fee - Application - New Act 4 2013-02-13 $100.00 2016-03-08
Maintenance Fee - Application - New Act 5 2014-02-13 $200.00 2016-03-08
Maintenance Fee - Application - New Act 6 2015-02-13 $200.00 2016-03-08
Maintenance Fee - Application - New Act 7 2016-02-15 $200.00 2016-03-08
Back Payment of Fees $100.00 2017-02-13
Reinstatement: Failure to Pay Application Maintenance Fees $200.00 2017-06-14
Maintenance Fee - Application - New Act 8 2017-02-13 $200.00 2017-06-14
Maintenance Fee - Application - New Act 9 2018-02-13 $200.00 2018-02-01
Final Fee $300.00 2018-11-01
Maintenance Fee - Patent - New Act 10 2019-02-13 $250.00 2019-02-12
Registration of a document - section 124 $100.00 2019-07-08
Maintenance Fee - Patent - New Act 11 2020-02-13 $250.00 2020-02-07
Maintenance Fee - Patent - New Act 12 2021-02-15 $255.00 2021-02-05
Maintenance Fee - Patent - New Act 13 2022-02-14 $254.49 2022-02-04
Maintenance Fee - Patent - New Act 14 2023-02-13 $263.14 2023-02-03
Registration of a document - section 124 2023-06-20 $100.00 2023-06-20
Maintenance Fee - Patent - New Act 15 2024-02-13 $624.00 2024-02-09
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
DIRTT ENVIRONMENTAL SOLUTIONS, LTD.
ARMSTRONG WORLD INDUSTRIES, INC.
Past Owners on Record
ICE EDGE BUSINESS SOLUTIONS LTD.
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Representative Drawing 2016-03-18 1 21
Cover Page 2016-03-18 1 57
Abstract 2016-03-08 1 22
Description 2016-03-08 42 1,414
Claims 2016-03-08 8 178
Drawings 2016-03-08 7 155
Abstract 2016-03-09 1 22
Claims 2016-03-09 3 92
Description 2016-03-09 42 1,404
Reinstatement 2017-04-06 2 57
Maintenance Fee Payment 2017-06-14 1 33
Office Letter 2017-06-16 1 29
Office Letter 2017-06-16 1 35
Examiner Requisition 2017-07-06 4 243
Refund / Change to the Method of Correspondence 2017-09-26 2 46
Amendment 2018-01-08 9 264
Claims 2018-01-08 3 88
Office Letter 2018-02-14 1 22
Final Fee 2018-11-01 3 68
Cover Page 2018-11-22 1 52
New Application 2016-03-08 5 129
Prosecution-Amendment 2016-03-08 9 235
Correspondence 2016-03-30 1 148
Correspondence 2017-01-12 8 180
Office Letter 2017-01-30 1 44
Maintenance Fee Payment 2017-02-13 2 53
Office Letter 2017-03-01 1 29