Revit API中的“偏移”命令

本文关键字:命令 偏移 API 中的 Revit | 更新日期: 2023-09-27 18:20:40

如何在C#插件中使用偏移量命令?我有要包含在偏移和偏移值中的直线/圆弧列表。我找不到要使用的命令。

我认为ElementTransformUnit类包含一些可以做它的东西,但它似乎没有。。。

感谢

Revit API中的“偏移”命令

据我所知,没有Offset命令,但我认为使用ElementTransformUtils.CopyElement方法可以很容易地生成一个。试试这样的东西:

    static ElementId Offset(this Element originalelement, double offsetamount, string offsetdirection)
    {
        ElementId newelement = null;
        Document curdoc = originalelement.Document;
        LocationPoint elp = originalelement.Location as LocationPoint;
        XYZ elem_location = null;
        switch(offsetdirection.ToUpper())
        {
            default:
                break;
            case "X":
                elem_location = new XYZ(offsetamount, 0.0, 0.0) + elp.Point;
                break;
            case "Y":
                // code for Y
                break;
            case "Z":
                // code for Z
                break;
        }
        try
        {
            using (Transaction tr_offset = new Transaction(curdoc, "Offsetting element"))
            {
                tr_offset.Start();
                newelement = ElementTransformUtils.CopyElement(curdoc, originalelement.Id, elem_location).FirstOrDefault();
                tr_offset.Commit();
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Command Failed. See below: 'n" + e.StackTrace.ToString());
        }
        return newelement;
    }

如果你做了一个Direction枚举或类似的东西可能会更好,但我认为这应该符合你的目的。