Revit API: DWG翻模的基本原理

前言

市场上把 DWG 翻模成 Revit 的软件有很多,主要还是有很大的需求。Revit 相比与 CAD, 门槛还是要高很多。那么 DWG 翻模的基本原理是什么?如何自己也简单的翻个模呢?

DWG 在Revit

把一个 DWG 导入 Revit,在Revit 中选中它,显示的是一个 ImportInstance。DWG的图层都哪里去了呢?打开VG。
DWG 图层或者说不同类型的线都可以在这里看到。而它们都存储在哪里呢?
ImportInstanceCategory,有很多的 SubCategory。而每一个 SubCategory 可以控制对应的内容的显示样式。
在这里插入图片描述

隐藏图层

导入的 DWG 整体是一个 ImportInstance, 就是一个 element:

  1. Revit API 提供了选择 element 一部分的功能,uidoc.Selection.PickObject(ObjectType.PointOnElement)
  2. 返回的是一个 Reference,通过它可以得到对应的几何图形,GeometryObject geoObj = elem.GetGeometryObjectFromReference(refer)
  3. 通过 GeometryObject 可以得到 GraphicsStyle,从而得到对应的 Category
  4. 视图可以按照 Category 设置显示或者隐藏。
		public void GetDWGObject()
		{
			UIDocument uidoc = Application.ActiveUIDocument;
			Reference refer = uidoc.Selection.PickObject(ObjectType.PointOnElement);
			
			Element elem = Document.GetElement(refer);
			GeometryElement geoElem = elem.get_Geometry(new Options());
			GeometryObject geoObj = elem.GetGeometryObjectFromReference(refer);
			
			Category targetCategory = null;
			ElementId graphicsStyleId = null;
			
			if(geoObj.GraphicsStyleId != ElementId.InvalidElementId)
			{
				graphicsStyleId = geoObj.GraphicsStyleId;
				GraphicsStyle gs = Document.GetElement(geoObj.GraphicsStyleId) as GraphicsStyle;
				if(gs != null)
				{
					targetCategory = gs.GraphicsStyleCategory;
					var name = targetCategory.Name;
				}
				
				Transaction trans = new Transaction(Document, "隐藏图层");
				trans.Start();
				this.Document.ActiveView.SetCategoryHidden(targetCategory.Id, true);
				trans.Commit();
			}
		}

参考:在Revit中读取、隐藏并绘制CAD线
原文中,doc.ActiveView.SetVisibility(targetCategory, false); 应该已经 obsolete 了。

绘制模型线

直接参考:在Revit中读取、隐藏并绘制CAD线
这一部分主要是为了告诉你确实可以拿到几何图形。

总结

可以从 DWG 中拿到对应的几何图形,并且通过图层或者其它标记,识别出几何图形的功能。比如某些线代表的是墙、柱子或者梁,那么就可以写规则在 Revit 中创建出来。于是翻模就完成了。
翻模本身不难,不过那么多需要翻模的物体,都有自己的逻辑,基本上没什么特别通用的方法,毕竟机器是不能自己看图纸的,需要人工编写规则,工作量还是挺大的。

  • 0
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客BIM工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值