if (elem->dirtyAttribute() || elem->dirtyAttributeP()) { ElementBuilder::refine(*this, el, elem); elem->resetDirtyAttribute(); }
ElementBuilder::refine(*this, el, elem);
  updateElement(const typename Model::Element& el) const  {    SmartPtr<typename ElementBuilder::type> elem = getElement<ElementBuilder>(el);    if (elem->dirtyAttribute() || elem->dirtyAttributeP() || elem->dirtyStructure())      {	ElementBuilder::begin(*this, el, elem);	if (elem->dirtyAttribute() || elem->dirtyAttributeP())	  {	    ElementBuilder::refine(*this, el, elem);	    elem->resetDirtyAttribute();	  }	ElementBuilder::construct(*this, el, elem);	elem->resetDirtyStructure();	ElementBuilder::end(*this, el, elem);      }    return elem;  }