<div dir="ltr">The third parameter should not be null if the type is OBJEVENT_ATTR and an attribute's value has changed. (It may be null if the attribute was set to the same value)<div><br></div><div>Kevin</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 1, 2018 at 10:37 AM, Cinthya Lopez <span dir="ltr"><<a href="mailto:Cinthya_K_Lopez@raytheon.com" target="_blank">Cinthya_K_Lopez@raytheon.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div class="m_-7042301246942002734WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Hi Kevin,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">For #1, the third parameter that is passed into ObjectEvent is of type object. When I look at it in the debugger its value is null so casting it to object[] shows
 null as well. Am I missing something? I am working with GME 14.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I think this would be the information I need. If I can get the “attibuteName” to check which attribute is being modified, I can avoid falling into the case where
 my add-on code executes again when I modify my “read-only” attribute on the same object.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Thanks,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Cinthya</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> gme-users [mailto:<a href="mailto:gme-users-bounces@list.isis.vanderbilt.edu" target="_blank">gme-users-bounces@<wbr>list.isis.vanderbilt.edu</a>]
<b>On Behalf Of </b>Kevin Smyth<br>
<b>Sent:</b> Thursday, February 1, 2018 8:58 AM<br>
<b>To:</b> A list for GME users to share thoughts and discuss bugs and fixes. <<a href="mailto:gme-users@list.isis.vanderbilt.edu" target="_blank">gme-users@list.isis.<wbr>vanderbilt.edu</a>><br>
<b>Subject:</b> [External] Re: [gme-users] Creating read-only attributes in a meta-model<u></u><u></u></span></p><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Hi Cinthya,<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">It is not possible to disable editing of an attribute through the GUI. You can only hide attributes from the GUI.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I'd suggest:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">1. Your add-on detects when the user modifies the attribute and sets the value back to the original value. When your addon receives OBJEVENT_ATTR in ObjectEvent, the third parameter contains the old value. For C#, cast it to object[], and
 you'll see {"ATTR:", "attributeName", "oldValue"}. Or<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">2. Look at OBJEVENT_ATTR and return E_MGA_CONSTRAINT_<wbr>VIOLATION to signify the GME transaction should be aborted. In C#, you can do this like <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">int E_MGA_CONSTRAINT_VIOLATION = 0x87657fff;<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">throw new COMException("Constraint violation", E_MGA_CONSTRAINT_VIOLATION );<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">3. Create a hidden attribute in your meta-model. Your add-on sets this attribute and your original attribute to the same value. Then write a constraint that the attributes must be equal<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Kevin<u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">On Wed, Jan 31, 2018 at 5:22 PM, Cinthya Lopez <<a href="mailto:Cinthya_K_Lopez@raytheon.com" target="_blank">Cinthya_K_Lopez@raytheon.com</a>> wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal">Hello,<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">I am looking for a way to create a read-only attribute in my meta-model. Basically I want to be able to populate the value of my attribute through my add-on and it will only be
 informational to the user when they create their model.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Does anyone know of a way to do this in GME?<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Thank you,<u></u><u></u></p>
<p class="MsoNormal">Cinthya<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
______________________________<wbr>_________________<br>
gme-users mailing list<br>
<a href="mailto:gme-users@list.isis.vanderbilt.edu" target="_blank">gme-users@list.isis.<wbr>vanderbilt.edu</a><br>
<a href="http://list.isis.vanderbilt.edu/cgi-bin/mailman/listinfo/gme-users" target="_blank">http://list.isis.vanderbilt.<wbr>edu/cgi-bin/mailman/listinfo/<wbr>gme-users</a><u></u><u></u></p>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div></div></div>
</div>

<br>______________________________<wbr>_________________<br>
gme-users mailing list<br>
<a href="mailto:gme-users@list.isis.vanderbilt.edu">gme-users@list.isis.<wbr>vanderbilt.edu</a><br>
<a href="http://list.isis.vanderbilt.edu/cgi-bin/mailman/listinfo/gme-users" rel="noreferrer" target="_blank">http://list.isis.vanderbilt.<wbr>edu/cgi-bin/mailman/listinfo/<wbr>gme-users</a><br>
<br></blockquote></div><br></div>