在BIM项目中经常遇见由盈建科或者其他软件直接导出的revit模型,这些模型在使用过程中经常需要人工手动处理过后才能进行BIM标准化。有些时候遇到导出的楼板都是修改过子图元后的,而这时候我们需要将这些楼板重设形状,由于导出的模型可能是直接修改“自标高的高度偏移”也可能是通过修改子图元的高度来调整标高的,模型较大时大批量手动重设时容易出错且耗费大量时间,此时需要运用二次开发手段进行解决相关问题。
以下为相关代码:
using System;
using System.Collections.Generic;
using System.Linq;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.UI.Selection;
namespace ResetFloorsShape
{
[Transaction(TransactionMode.Manual)]
public class ResetShape : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
List<Element> floorref_list = uidoc.Selection.PickElementsByRectangle(new Isfloor