// Gets the display name of an object type. public static string GetDisplayName(RXClass classObject) { using (RXObject rawObject = classObject.Create()) { if (classObject.IsDerivedFrom(RXObject.GetClass(typeof(AecDbObject)))) { AecDbObject dbObject = (AecDbObject)rawObject; return(dbObject.DisplayName); } else if (classObject.IsDerivedFrom(RXObject.GetClass(typeof(AecEntity)))) { AecEntity entity = (AecEntity)rawObject; return(entity.DisplayName); } else if (classObject.IsDerivedFrom(RXObject.GetClass(typeof(DBObject)))) { string dxfName = classObject.DxfName; if (dxfName == null) { return(classObject.Name); } else { return(dxfName); } } } throw new ArgumentException("wrong class type"); }
GetClassesDerivedFrom(RXClass searchClassType, ArrayList derivedClasses, bool allowClassesWithoutDxfName) { Debug.Assert(derivedClasses != null); Dictionary dict = SystemObjects.ClassDictionary; if (dict != null) { IEnumerable enumerable = dict as IEnumerable; if (enumerable != null) { IEnumerator enumerator = enumerable.GetEnumerator(); while (enumerator.MoveNext()) { RXClass rxClass = (RXClass)((DictionaryEntry)enumerator.Current).Value; if (rxClass.IsDerivedFrom(searchClassType)) { if (!allowClassesWithoutDxfName && ((rxClass.DxfName == null) || (rxClass.DxfName == string.Empty))) { // skip it } else { if (derivedClasses.Contains(rxClass) == false) { derivedClasses.Add(rxClass); } } } } } } }
public static bool IsAssignableFrom(RXClass rxclass) { return(rxclass.UnmanagedObject == unmanagedObject || (hasChildren && rxclass.IsDerivedFrom(instance))); }