将视图中的尺寸复制到另一个 Revit API

Copy dimensions from a View to another Revit API

我正在尝试使用 API 在 Revit 2016/2017 上创建一个新插件。 这个想法是将一组元素从小型 revit 文件复制到一个中央文件以进行编译。

这是我正在使用的代码:

FilterableValueProvider provider = new ParameterValueProvider(new ElementId(BuiltInParameter.ALL_MODEL_TYPE_NAME));
FilterRule rule = new FilterStringRule(provider, new FilterStringContains(), "BY_GO", false);
ElementParameterFilter epf = new ElementParameterFilter(rule, true);
ICollection<ElementId> npText = new FilteredElementCollector(secDoc, secView.Id).WherePasses(epf).ToElementIds();
using (TransactionGroup tx = new TransactionGroup(mainDoc, "Insert " + Main._roomFile.Typology))
{
    ICollection<ElementId> pastedElements;
    tx.Start();
    using (Transaction tr = new Transaction(mainDoc, "Copy elements"))
    {
        tr.Start();
        pastedElements = ElementTransformUtils.CopyElements(secView, npText, mainView, null, new CopyPasteOptions());
        tr.Commit();
    }
    using (Transaction tr = new Transaction(mainDoc, "Move elements"))
    {
        tr.Start();
        pastedElements = new FilteredElementCollector(mainDoc, pastedElements).WherePasses(epf).ToElementIds();
        XYZ originePoint = new FilteredElementCollector(mainDoc, pastedElements).OfClass(typeof(Floor)).First().get_BoundingBox(null).Min;
        XYZ translation = extremitePoint - originePoint;
        translation = new XYZ(translation.X, translation.Y, 0);
        ElementTransformUtils.MoveElements(mainDoc, pastedElements, translation);
        tr.Commit();
    }

    tx.Assimilate();
}

我用的时候,除了尺寸,其他都很好。它们在新文档中(我可以通过 ID 和 RevitLookup 获取它们)但它们是隐藏的。如果我 select 在其中添加尺寸界线并添加尺寸界线,则尺寸现在再次可见。 我试图关闭并重新打开 Revit 并将 vien 放在 sheet bt nothing.

有什么想法吗?

谢谢!

你需要重新生成我认为的视图。

尝试添加:

Document.Regenerate();

Here就是问题的答案。 Autodesk 必须解决它,但解决方法是使用不可见尺寸的参考创建尺寸,然后删除它们。