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
如有更好实现方法,还请大牛们指点!