<!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&nbsp;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&#8217;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&#8217;s copy 
(Y) does not exist, A&#8217;s relation with Y can&#8217;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>&nbsp;</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">&nbsp;</SPAN>The smart copy and paste 
feature is accessible from the Edit or context menus under &#8220;Copy Smart&#8221; and 
&#8220;Paste Special/Smart&#8221; menu items.</FONT></P>
<P class=MsoNormal 
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><o:p><FONT 
size=3>&nbsp;</FONT></o:p></P>
<P class=MsoNormal 
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><o:p><FONT 
size=3>&nbsp;</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&#8217;s choice (checkboxes &#8220;Containment&#8221; and &#8220;Folder Containment&#8221;) 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>&nbsp;</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&#8217;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&#8217;s id. </FONT></P>
<P class=MsoNormal 
style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><o:p><FONT 
size=3>&nbsp;</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>&nbsp;</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>&nbsp;</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&#8217;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&#8217;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>&nbsp;</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&#8217; 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>&nbsp;</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>&gt; 
-----Original Message-----<BR>&gt; From: 
gme-users-bounces@list.isis.vanderbilt.edu<BR>&gt; [<A 
href="mailto:gme-users-bounces@list.isis.vanderbilt.edu">mailto:gme-users-bounces@list.isis.vanderbilt.edu</A>] 
On Behalf<BR>&gt; Of Jonathan S.<BR>&gt; Sent: Tuesday, September 27, 2005 12:44 
PM<BR>&gt; To: gme-users<BR>&gt; Subject: RE: [gme-users] Using 
SmartCopy<BR>&gt;<BR>&gt;<BR>&gt; Hi Zoli,<BR>&gt;<BR>&gt; I searched for these 
terms and did not find it:<BR>&gt;&nbsp; Smart<BR>&gt;&nbsp; Copy 
Smart<BR>&gt;&nbsp; Smart Copy<BR>&gt;&nbsp; Paste Special<BR>&gt;&nbsp; 
Merge<BR>&gt;<BR>&gt; The only description I found was:<BR>&gt;&nbsp; "Copy 
Smart feature: refined for better cross project copying"<BR>&gt;<BR>&gt; Is 
there more someplace? :)<BR>&gt;<BR>&gt; Cheers,<BR>&gt; 
Jonathan<BR>&gt;<BR>&gt; &gt; Hi,<BR>&gt; &gt;<BR>&gt; &gt; Description can be 
found in GME Documentation.<BR>&gt; &gt;<BR>&gt; &gt; Zoli<BR>&gt; 
</FONT></P></BODY></HTML>