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); }