0

我想标注我所有的通用模型,即面板和零件。我选择了一种方法来实现这一点。但我能看到的唯一问题是,在重新镶板时,它不会覆盖尺寸。

private static void CreateDimension(XYZ start, XYZ end, View view, string text, XYZ dir, double offset) { try { if (!start.IsEqual(end)) { using (Transaction t = new Transaction(AppMain.Settings.ActiveDoc , "添加尺寸")) { 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);
        }
    }

还有其他方法吗?

谢谢,罗伯

4

1 回答 1

0

您是否找到了通过用户界面手动解决此问题的方法?这通常是处理 Revit API 任务的最佳起点。如果您可以通过 UI 解决它,那么很有可能它也可以自动化。如果没有找到 UI 解决方案,自动化也几乎是不可能的。

我将通过执行手动修改来分析 Revit 数据库中所涉及的元素及其参数的确切差异。一旦您确切地发现了手动 UI 交互所更改的内容,您可能可以通过 API 以编程方式复制相同的更改。以下是关于如何处理 Revit API 编程任务的更详尽描述:

http://thebuildingcoder.typepad.com/blog/2017/01/virtues-of-reproduction-research-mep-settings-ontology.html#3

于 2017-03-17T07:59:00.580 回答