[英]Dimensions attached to Parts or Generic Models Revit
我想确定所有通用模型的尺寸,即面板和零件。 我选择了一种方法来完成此任务。 但是我能看到的唯一问题是,在对墙重新镶板时,它不会覆盖尺寸。
私有静态无效CreateDimension(XYZ开始,XYZ结束,视图视图,字符串文本,XYZ目录,双偏移量){尝试{如果(!start.IsEqual(end)){ ,“添加尺寸”))){t.Start();
Curve c = Line.CreateBound(start, end);
XYZ normal = dir.Multiply(offset);
Line tranformed = c.CreateTransformed(Transform.CreateTranslation(normal)) as Line;
if (null != tranformed)
{
XYZ ai = start;
XYZ ao = tranformed.GetEndPoint(0);
Line lineA = Line.CreateBound(ai, ao);
DetailCurve modelcurveA = AppMain.Settings.ActiveDoc.Create.NewDetailCurve(view, lineA);
XYZ bi = end;
XYZ bo = tranformed.GetEndPoint(1);
Line lineB = Autodesk.Revit.DB.Line.CreateBound(bi, bo);
DetailCurve modelcurveB = AppMain.Settings.ActiveDoc.Create.NewDetailCurve(view, lineB);
ReferenceArray ra = new ReferenceArray();
ra.Append(modelcurveA.GeometryCurve.Reference);
ra.Append(modelcurveB.GeometryCurve.Reference);
Line lineAB = Line.CreateBound(ao, bo);
Dimension dimension = AppMain.Settings.ActiveDoc.Create.NewDimension(view, lineAB, ra);
dimension.Below = text;
}
t.Commit();
}
}
}
catch (Exception ex)
{
AppMain.Settings.LogErrorMessage(ex.Message);
}
}
还有其他方法吗?
谢谢,罗伯
您是否找到了一种通过用户界面手动解决此问题的方法? 这是处理Revit API任务的最佳起点。 如果您可以通过用户界面解决问题,则很有可能也可以将其自动化。 如果找不到UI解决方案,那么自动化几乎也是不可能的。
我将通过执行手动修改来分析Revit数据库中涉及的元素及其参数引起的确切差异。 一旦发现手动UI交互所做的确切更改,您就可以通过API以编程方式复制相同的更改。 这是有关如何解决Revit API编程任务的更详尽的描述:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.