<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>
<META content="MSHTML 6.00.2900.2722" name=GENERATOR></HEAD>
<BODY><!-- Converted from text/plain format -->
<P><FONT size=2>Sorry for misleading, you're right.<BR><BR>Anyway, here you
find the description.<BR>Zoli</FONT></P><FONT size=2>
<H2 style="MARGIN: 12pt 0in 3pt"><EM><FONT face=Arial>Smart
Copy</FONT></EM></H2>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>The smart copy enables users to copy one or more elements from one
project to another. This process in XML based, the selected objects and their
constituents being dumped into the clipboard in XML format and then parsed upon
paste. Additive or merging paste of these selected objects is
possible.</FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>Scenario1: A and X are objects in one project with some relation between
them (i.e. reference). First X is copied to another project, and renamed to Y.
Later when A is copied the relation to X’s copy (Y) can be restored (A will
point to Y).</FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>Scenario 2: First A is copied to the destination project. Since X’s copy
(Y) does not exist, A’s relation with Y can’t be created (will remain a null
reference). Later X is copied, and the new object is renamed to Y. Then if A is
copied again and merged into the destination project, the relation between A and
X will be re-created (null-reference A will be set to point to Y).</FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><?xml:namespace
prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p><FONT
size=3> </FONT></o:p></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3><IMG height=192 src="cid:483025417@27092005-0E06" width=576
v:shapes="_x0000_s1026 _x0000_s1027 _x0000_s1028 _x0000_s1029 _x0000_s1030 _x0000_s1031 _x0000_s1032 _x0000_s1033 _x0000_s1034 _x0000_s1035 _x0000_s1036 _x0000_s1037"></FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3><SPAN style="mso-spacerun: yes"> </SPAN>The smart copy and paste
feature is accessible from the Edit or context menus under “Copy Smart” and
“Paste Special/Smart” menu items.</FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><o:p><FONT
size=3> </FONT></o:p></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><o:p><FONT
size=3> </FONT></o:p></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><I
style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 14pt">Smart Copy
process:<o:p></o:p></SPAN></I></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>The smart copy feature copies objects and their relations to the
clipboard. The user selects a few objects in the source project and executes the
Copy Smart command. If this selection is done in the main editing window and
there are connections drawn among the selected objects (not selected explicitly
by the user) that connection becomes part of the selection also (this is true
for regular Copy also). In case a model or folder is selected, depending on the
user’s choice (checkboxes “Containment” and “Folder Containment”) the contained
elements are also selected. A type filter is provided also, allowing the user to
exclude certain types from the hierarchical selection: References, Sets, Atoms
or Connections. This might be useful in a case when the user selects the two
endpoints of a connection but the connection is not needed, or when a hierarchy
is copied, but i.e. references are not needed.</FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><o:p><FONT
size=3> </FONT></o:p></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>Each object in the selection is assigned a globally unique id (if it
doesn’t have already), which will ease the paste process, when relations have to
be re-established (i.e. referred object lookup) or merging is needed.
Smart-pasted objects are assinged another unique id but store their originating
object’s id. </FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><o:p><FONT
size=3> </FONT></o:p></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>The unique ids play an important role during Pasting with Merge, when
each object copied with Smart Copy is searched for in the target project and if
a match is found, then merging occurs. </FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><o:p><FONT
size=3> </FONT></o:p></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><I
style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 14pt">Paste
Special/Smart/Add process:<o:p></o:p></SPAN></I></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>This process is the simpler case of paste, which consists of inserting
new objects into the target project, and re-establishing relations among them
and the objects in the target project as well. When models, folders or atoms are
Smart Copied and Pasted with Add option, then the objects are simply inserted in
the target project. In case of sets or references, a new set or reference object
will be inserted into the target project, and the relations (set-member or
reference) will be reconstructed based on the unique ids of the set-members or
the referred object. This search succeeds if the set-members or the referred
object had been copied from the originating project previously. Otherwise the
relative path information is used to find the objects. The relative path
information is uniquely identifying the objects only if no two objects of the
same kind have similar names in the project. If the relative path does find two
objects ambiguously, one of these is selected and a warning is issued to the
console. </FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>If a connection is copied with Smart Copy and Paste Special/Smart/Add
then the connection ends are searched for based on their unique ids and their
relative path information, and if both are found the connection is
drawn.</FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>In case a derived object is copied and pasted, a unique id and relative
path based search is done for the archetype the object is derived from. If this
succeeds, then the object is rederived, otherwise the object is created as an
archetype, the user being notified about lost archetype relation.</FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><o:p><FONT
size=3> </FONT></o:p></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><I
style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 14pt">Paste
Special/Smart/Merge process:<o:p></o:p></SPAN></I></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>The merge paste does a selective insertion. Whenever an object in the
clipboard is recognized in the destination project (based on id or relative
path) new object creation is avoided. The additional properties and relations of
the insertable object are merged onto the existing object. The recognition based
on id succeeds if the existing object had been also copied previously from the
source project. Otherwise a relative path based match is attempted, warning
being issued in case of ambiguity. When no match is found the object is simply
inserted like in the Paste Smart/Add case.</FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>Property merging means combining attribute and registry values. An
attribute value of the source object is copied over the destination object’s
attribute if the latter has not been edited previously (has default value,
showed in gray). Registry merging is about creating previously non-existing
nodes in the destination object’s registry.</FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>Relation merge occurs in case of models, references, sets and
connections. Model merge may create additional child objects in the matched
model. Reference merge may set a null-reference to point to a valid target. Set
merge may add new members to a set. Connection merge consists of checking
whether an id-based match exists in the target project, if yes then properties
are merged, if no then a connection is created. Since connections generally have
similar names, no relative path based search is done for them.</FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><o:p><FONT
size=3> </FONT></o:p></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><FONT
size=3>Important to note that no reference is redirected, no connection is
disconnected during merge. All activity is logged to the Console window, thus
the user may verify the paste process’ activity upon completion. </FONT></P>
<P class=MsoNormal
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><o:p><FONT
size=3> </FONT></o:p></P>
<P><FONT face=Arial color=#0000ff></FONT><FONT face=Arial
color=#0000ff></FONT><FONT face=Arial color=#0000ff></FONT><BR><BR>>
-----Original Message-----<BR>> From:
gme-users-bounces@list.isis.vanderbilt.edu<BR>> [<A
href="mailto:gme-users-bounces@list.isis.vanderbilt.edu">mailto:gme-users-bounces@list.isis.vanderbilt.edu</A>]
On Behalf<BR>> Of Jonathan S.<BR>> Sent: Tuesday, September 27, 2005 12:44
PM<BR>> To: gme-users<BR>> Subject: RE: [gme-users] Using
SmartCopy<BR>><BR>><BR>> Hi Zoli,<BR>><BR>> I searched for these
terms and did not find it:<BR>> Smart<BR>> Copy
Smart<BR>> Smart Copy<BR>> Paste Special<BR>>
Merge<BR>><BR>> The only description I found was:<BR>> "Copy
Smart feature: refined for better cross project copying"<BR>><BR>> Is
there more someplace? :)<BR>><BR>> Cheers,<BR>>
Jonathan<BR>><BR>> > Hi,<BR>> ><BR>> > Description can be
found in GME Documentation.<BR>> ><BR>> > Zoli<BR>>
</FONT></P></BODY></HTML>