EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

LWL0709 发表于 2015-6-26 07:54:28

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

安坞郎 发表于 2015-6-26 09:13:12

大漠风沙太厉害了,

冯~ 发表于 2015-6-26 10:04:38

C:\Users\Administrator\AppData\Roaming\Autodesk\Revit\Addins\2015 这个目录下有什么吗?我的没有这个文件夹

冯~ 发表于 2015-6-26 10:05:22

Roaming文件夹下就没有Autodesk这个文件夹了

冯~ 发表于 2015-6-26 11:12:49

我这个是怎么回事?

大漠风沙 发表于 2015-6-26 11:38:39

冯~ 发表于 2015-6-26 11:12
我这个是怎么回事?

配置文档里修改一下类库即dll文件绝对路径。

大漠风沙 发表于 2015-6-26 11:39:03

大漠风沙 发表于 2015-6-26 11:38
配置文档里修改一下类库即dll文件绝对路径。

那个路径是我电脑里的文件路径。

冯~ 发表于 2015-6-26 13:39:46

大漠风沙 发表于 2015-6-26 11:39
那个路径是我电脑里的文件路径。

谢谢了。 配置文档在哪?

一条小鱼。 发表于 2015-6-29 16:14:26

越来越落地了

EaBIM门户编辑 发表于 2015-7-2 09:44:18

顶,顶,!!

hw001 发表于 2015-7-2 11:42:54

牛人啊,继续努力。

大漠风沙 发表于 2015-7-4 19:28:46

这几天忙事情去了,今天把构件选择功能写了写,基本就是自己原来希望达到的效果。

大漠风沙 发表于 2015-7-6 21:50:42

发现构件数量较大时,加载列表时间有点长,看叶雄进老师博客说revit不支持含api操作的多线程,不知道大牛们怎么处理。


wangnao820 发表于 2015-7-7 09:32:09

顶。。。。静等插件成型的那一天

大漠风沙 发表于 2015-7-9 22:13:42

构件显示功能
在当前视图选择需在三维视图中显示的构件,无选择默认当前视图所有可见构件。
执行命令后生成新的三维视图,来显示这些构件,其他构件会自动隐藏,并将该三维视图切换为当前视图。
1、楼层平面

2、执行构件显示命令后

3、再次执行该命令(或按设置的快捷键),会回到原楼层平面。如已创建过该视图的三维视图,则该命令为楼层平面和三维视图之间相互切换。

c#源码如下:
#region DAMO_gjxs = 构件显示
   
   
   
    public class DAMO_gjxs : IExternalCommand //外部命令
    {
      public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elems)
      {
            UIDocument uidoc = cmdData.Application.ActiveUIDocument;
            Document doc = uidoc.Document;
            if (doc.IsFamilyDocument)//感觉族文档没必要
            {
                MessageBox.Show("该操作仅适用项目文档,不适用族文档!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return Result.Succeeded;
            }                        
            try
            {
                Autodesk.Revit.DB.View view = doc.ActiveView;//当前视图
                ICollection<ElementId> ids = uidoc.Selection.GetElementIds();//选择对象
                if (0 == ids.Count)//如果没有选择
                {
                  if (view is ViewSection)//当前视图为立面视图且没有选择对象时退出
                  {
                        return Result.Succeeded;
                     }
                      else if (view is View3D)//当前视图为三维视图且没有选择对象时切换至原楼层平面视图
                     {
                         FilteredElementCollector collectL = new FilteredElementCollector(doc);
                         ICollection<Element> collectionL = collectL.OfClass(typeof(Autodesk.Revit.DB.View)).ToElements();
                         foreach (Element element in collectionL)
                         {
                           Autodesk.Revit.DB.View v = element as Autodesk.Revit.DB.View;
                           if (view.ViewName == "三维视图_" + v.ViewType.ToString() + "_" + v.ViewName)
                           {
                                 if (!v.IsTemplate)
                                 {
                                     uidoc.ActiveView = v;
                                     break;
                                 }
                           }
                         }
                         return Result.Succeeded;                  
                     }//未选择对象时列出当前视图所有可见对象
                     FilteredElementCollector collector = new FilteredElementCollector(doc, view.Id).WhereElementIsNotElementType();
                     ids = collector.ToElementIds();
                }
                Transaction ts = new Transaction(doc, "Create_View3D");
                ts.Start();
                bool fg = true;
                FilteredElementCollector collect = new FilteredElementCollector(doc);
                ICollection<Element> collection = collect.OfClass(typeof(View3D)).ToElements();
                View3D view3d = null;
                foreach (Element element in collection)
                {
                  View3D v = element as View3D;
                  if (v.ViewName == "三维视图_" + view.ViewType.ToString() +"_"+ view.ViewName)
                  {
                        if (!v.IsTemplate)
                        {
                        view3d =v
                        fg = false;//已生成过当前视图的三维视图
                        break;
                        }
                  }
                }
                if (fg)
                {               
                   ViewFamilyType viewFamilyType = null;
                   collect = new FilteredElementCollector(doc);
                   var viewFamilyTypes = collect.OfClass(typeof(ViewFamilyType)).ToElements();
                   foreach (Element e in viewFamilyTypes)
                   {
                     ViewFamilyType v = e as ViewFamilyType;
                     if (v.ViewFamily == ViewFamily.ThreeDimensional)
                     {
                           viewFamilyType = v;
                           break;
                     }
                   }
                   view3d = View3D.CreateIsometric(doc, viewFamilyType.Id);
                   view3d.ViewName = "三维视图_" + view.ViewType.ToString() + "_" + view.ViewName;
                }
                ts.Commit();
                uidoc.ActiveView = view3d;//设置生成的三维视图为当前视图
                Transaction tss = new Transaction(doc, "View3D_HideElements");
                tss.Start();
                if (fg)
                {
                view = doc.ActiveView;
                collect = new FilteredElementCollector(doc, view.Id).WhereElementIsNotElementType();
                ICollection<ElementId> idss = collect.ToElementIds();
                ICollection<ElementId> ds = idss;
                ds = idss.Except(ids).ToList();
                ids.Clear();
                foreach (ElementId id in ds)
                {
                  Element element = doc.GetElement(id);
                  if (element.CanBeHidden(view) == true)
                  {
                        ids.Add(id);
                  }
                }
                view.HideElementsTemporary(ids);//临时隐藏其他图元
                }
                tss.Commit();
            }
            catch (Exception msg)
            {
               return Result.Cancelled;
            }
            return Result.Succeeded;
      }
    }
    #endregion
    如有更好实现方法,还请大牛们指点!
页: 1 [2] 3 4 5
查看完整版本: Revit二次开发 RevitLookUp安装说明