您的位置:首页 > 其它

RevitAPI: 如何获得链接CAD里面对象的图层信息?

2016-03-18 17:33 2006 查看
当导入或者链接CAD文件之后,一般我们在Revit里面选中该CAD,点击"导入实例”的“查询”,选中某个图元,就会弹出图层信息



那么API如何实现此功能呢?

本人刚开始并没有找到如何做到,后来偶然机会发现Line/GeometryObject类有个属性叫GraphicsStyleId,试了一下,答案就出来了。

那就是,

使用Selection.PickObject(s)来选择链接文件里的对象获取到Reference
然后使用Element.GetGeometryObjectFromReference(Reference)获取几何信息,该几何信息是GeometryObject类,于是通过GraphicsStyleId就可以获取到GraphicsStyle,
最后通过GraphicsStyleId的GraphicsStyleCategory属性获得类别Category,Category.Name即是图层的名称

可以看看完整的代码:
var doc = commandData.Application.ActiveUIDocument.Document;
var uiSel = commandData.Application.ActiveUIDocument.Selection;

try
{
var reference = uiSel.PickObject(ObjectType.PointOnElement, "statusPrompt");
var element = doc.GetElement(reference);
var geoObj = element.GetGeometryObjectFromReference(reference);
if (geoObj.GraphicsStyleId != ElementId.InvalidElementId)
{
GraphicsStyle gs = doc.GetElement(geoObj.GraphicsStyleId) as GraphicsStyle;
if (gs != null)
{
var name = gs.GraphicsStyleCategory.Name;
}
}
}
catch (Autodesk.Revit.Exceptions.OperationCanceledException)
{
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: