<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi All,<div class=""><br class=""></div><div class="">I’ve added the ability for an attribute definition to inherit the association rule from its base definition.  This should streamline the creation of templates.</div><div class=""><br class=""></div><div class="">For example you can create a definition called “Surface Boundary Condition” and assign an association rule to indicate that it can be associated with faces.  By default and definition based on “Surface Boundary Condition” will inherit this association rule and therefore be associated with model faces.</div><div class="">You can still override the inherited rule (note that in this implementation it will replace the entire rule).</div><div class=""><br class=""></div><div class="">To support this functionality there were some changes made to the attribute::Definition API:</div><div class=""><br class=""></div><div class="">associationRule() - returns the association rule that the definition uses - note that this can be a rule inherited from its Base Definition.  As a result this method now returns a shared pointer to a const model entity item definition</div><div class="">localAssociationRule() - returns the local association rule overriding the rule the definition would inherit from its base definition (Note that this can be nullptr)</div><div class="">createLocalAssociationRule() - creates a local association rule for the definition (by default its associated with nothing)</div><div class="">clearLocalAssociationRule() - removes the local association rule- the definition will now use the one inherited by its base definition </div><div class="">setAssociationRule(...) -> setLocalAssociationRule(…) - sets the definition’s local association rule that overrides the one inherited by its base definition</div><div class="">associationMask() -> returns the association mask that the definition uses - note that this can be the mask inherited from its Base Definition. </div><div class="">setAssociationMask->setLocalAssociationMask - sets the mask of the local association rule (and creates one if necessary)</div><div class=""><br class=""></div><div class="">What needs to be done in the future is to determine what constraints (if any) are imposed on the local association rule by the association rule inherited by the base definition?  Does the rule need to be a subset or a superset of the inherited rule. </div><div class=""><br class=""></div><div class="">For Example assume a base definition foo can be applied to edges and faces</div><div class="">A definition bar is derived from foo and is going to have a local association rule</div><div class=""><br class=""></div><div class="">Which of the following are allowed?</div><div class=""><br class=""></div><div class="">1. bar can be associated with just faces (its rule is a subset of foo’s rule)</div><div class="">2. bar can be associated with edges, faces, and volumes (its rule is a superset)</div><div class="">3. bar can be associated with volumes (its rule is independent)</div><div class=""><br class=""></div><div class="">The question boils down to if bar can be treated as a foo then should it be associated to at least all  things foo? - then the we do superset</div><div class="">or is it a specialization of foo - in that case its a subset</div><div class=""><br class=""></div><div class="">I think case 3 (independent) is probably not allowed?</div><div class=""><br class=""></div><div class="">Note that the functionality is currently being tested and should be committed soon.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Comments?</div><div class=""><br class=""></div><div class="">Bob</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div class="">
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Robert M. O'Bara, MEng.<br class="">Assistant Director of Scientific Computing<br class=""><br class="">Kitware Inc.<br class="">28 Corporate Drive<br class="">Suite 101<br class="">Clifton Park, NY 12065<br class=""><br class="">Phone: (518) 881- 4931</div><div class=""><br class=""></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>

<br class=""></div></body></html>