您的位置:首页 > 其它

Revit API元素镜像MirrorElement

2011-10-10 10:41 169 查看
这里涉及到一些专业术语Face,Plane,UV,还没搞清楚,暂时记录下来。
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class cmdMirrorWall : IExternalCommand
{
public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)
{
UIDocument uiDoc = cmdData.Application.ActiveUIDocument;

Transaction ts = new Transaction(uiDoc.Document, "http://revit.5d6d.com");
ts.Start();

Reference reference = uiDoc.Selection.PickObject(ObjectType.Element, "选择一面墙");
Wall wall = uiDoc.Document.GetElement(reference) as Wall;
MirrorWall(uiDoc.Document, wall);

ts.Commit();

return Result.Succeeded;
}
private void MirrorWall(Document doc, Wall wall)
{
Reference reference = HostObjectUtils.GetSideFaces(wall, ShellLayerType.Exterior).First();
Face face = wall.GetGeometryObjectFromReference(reference) as Face;
UV bboxMin = face.GetBoundingBox().Min;
Plane plane = new Plane(face.ComputeNormal(bboxMin), face.Evaluate(bboxMin).Add(new XYZ(10, 10, 0)));
ElementTransformUtils.MirrorElement(doc, wall.Id, plane);
}
}from:http://revit.5d6d.com/thread-1274-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: