Example #1
0
 bool RemovePropertyValueT(ElementId oid, out T pv)
 {
     if (m_propertyValue.TryGetValue(oid, out pv))
     {
         m_propertyValue.Remove(oid);
         if (m_valueIndex != null)
         {
             if (m_valueIndex.TryGetKey(pv, ref pv))
             {
                 BTreeSet <ElementId> oidArray = m_valueIndex[pv];
                 if (oidArray.Count > 1)
                 {
                     oidArray.Remove(oid);
                 }
                 else
                 {
                     oidArray.Unpersist(Session);
                     m_valueIndex.Remove(pv);
                 }
             }
         }
         else if (m_valueIndexUnique != null)
         {
             m_valueIndexUnique.Remove(pv);
         }
         return(true);
     }
     return(false);
 }