请问如何获取对象的唯一标识的ID号
请问如何获取对象的唯一标识的ID号。想把对象关联到数据库,作为主键Dxf 5 Handle 句柄 可以了,非常感谢,可以获取唯一值了。
还想麻烦大侠解决一个问题,如何在程序中指定Handle值,获取对象。 handle可以换,不可以指定 不好意思,可能我没说清楚
比如我现在获得的一条直线对象的handle是8C,如何通过8c这个值,获取直线这个对象,对这个对象进行操作 public Autodesk.AutoCAD.DatabaseServices.ObjectId GetObjectId(bool createIfNotFound, Autodesk.AutoCAD.DatabaseServices.Handle objHandle, int identifier)
Autodesk.AutoCAD.DatabaseServices.Database 的成员 /// <summary>
/// 从句柄转换成ObjectId
/// Version : 2010.03.29 Sieben
/// </summary>
/// <param name="handle">句柄,可以是Handle,string,int,long数据类型</param>
/// <returns>成功返回句柄所对应的ObjectId,否则返回ObjectId.Null</returns>
public static ObjectId HandleToObjectId(object handle)
{
try
{
if (handle == null) return ObjectId.Null;
ObjectId tId2 = ObjectId.Null;
if (handle is Handle)
return sc.db.GetObjectId(false, (Handle)handle, 0);
else if (handle is string)
{
string tStr = handle.ToString().Trim();
if (tStr == "")
return ObjectId.Null;
else if (tStr == "0")
return ObjectId.Null;
else
{
long lNum = Convert.ToInt64(tStr, 16);
if (lNum == 0L)
return ObjectId.Null;
else
return sc.db.GetObjectId(false, new Handle(lNum), 0);
}
}
else if (handle is int || handle is long)
{
long lNum = (long)handle;
if (lNum == 0L)
return ObjectId.Null;
else
return sc.db.GetObjectId(false, new Handle(lNum), 0);
}
else
return ObjectId.Null;
}
catch
{
return ObjectId.Null;
}
} 谢谢,我试试看!
页:
[1]