获取参考CAD图层和参考CAD的路径
Document m_uidoc = commandData.Application.ActiveUIDocument; // 操作的CAD为UI截面
UIDocument m_curDoc = m_uidoc.Document; // 操作文件的时候为CurDoc文件
// 获取参考的CAD图元
Reference reference = m_uidoc.Selection.PickObject(ObjectType.Element, "选择图块");
Element referenceElement = m_curDoc.GetElement(reference);
GeometryObject geometryObject = referenceElement.GetGeometryObjectFromReference(reference);
string layerName = "";
Category targetCategory = null;
if (geometryObject.GraphicsStyleId != ElementId.InvalidElementId) // 判断是否有效
{
GraphicsStyle gs = m_curDoc.GetElement(geometryObject.GraphicsStyleId) as
GraphicsStyle;
if (gs != null)
{
targetCategory = gs.GraphicsStyleCategory;
layerName = targetCategory.Name;
}
else
{
MessageBox.Show("选取的图块是无效的,请重新选取!", "提示");
return;
}
}
// 获取参考CAD文件地址
CADLinkType cadLinkType = m_uidoc.Document.GetElement(referenceElement.GetTypeId()) as CADLinkType;
string fileName = ModelPathUtils.ConvertModelPathToUserVisiblePath
(cadLinkType.GetExternalFileReference().GetAbsolutePath());