Revit教程:Revit中?八角屋顶与坡屋顶的连接绘制

问题提出:如下图所示的带有八角形突出的屋顶应如何生成呢? 

(1)首先我们绘制其它屋顶的轮廓线用迹线屋顶:

点击常用工具栏屋顶边的三角下拉按钮——迹线屋顶。如下图:

然后选择进入我们需要绘制的相应的标高平面,用拾取墙来创建屋顶迹线。根据CAD原图设置他的定义坡度和悬挑值。如下图:

根据上面所说的绘制完成屋顶轮廓,  因为我们还要绘制八角屋顶所以我们可以把坡屋顶左下方稍微绘制长一些。如下图: 

绘制完以后我们点击完成屋顶,如下图:

(2)我们开始绘制八角屋顶。

同样按照上面所说选择迹线屋顶来绘制。选择用【多边形】来绘制,因为我们绘制的是八角屋顶所以更改下面的边数为8。如下图:

按照CAD原文件绘制出八角屋顶如下图:

点击完成屋顶,因为我们上面把坡屋顶画长了一些所以我们可以对他进行开洞,点击修改面板下洞口下拉三角按钮选择垂直洞口。如图:

 

点击坡屋顶进入绘图模式。用拾取线命令如图-1依次选择两边所需要开洞的线如图-2绘制一个闭合区域点击删除按钮,这样就删除了我们在绘制坡屋顶时拉长的地方。

图-1

图-2

然后在点击完成洞口。如图:

这样我们就完成了八角屋顶和坡屋顶的绘制连接。




Revit叠层墙怎么设置?Revit如何设置叠层墙

    BIM软件小技巧:Revit如何设置叠层墙

    叠层墙是revitarchitecture的一种特殊墙体类型。当一面墙上下有不同的厚度,材质,构造层时,可以用叠层墙来创建。

    创建步骤如下:

    1.单击功能区“常用”选项卡“构件”面板中“墙”—“建筑墙”

    2.从“属性”面板的类型选择器选择“叠层墙”下“砌块勒脚砖墙”

    3.单击“编辑类型”对话框打开“类型属性”对话框,复制新的叠层墙。

    4.打开“结构”编辑对话框。

    5.单击“插入”增加一行,用“向上”命令移动到第一行,单击“可变”从“名称”列表选择“带粉刷砖与砌体复合墙”

    6.设置第二,三行墙体高度为1500,900,其他参数默认。

    7.在对话框顶部的“偏移”下拉列表中选择墙体在垂直方向的对齐方式,单击“确定”完成设置,关闭对话框即可创建叠层墙体。

    8.叠层墙的分解:

    选择创建的的叠层墙,鼠标右键,选择“断开”即可分解叠层墙。可单独编辑每一段墙体。(特别提醒:叠层墙分解后不能重新组合,请谨慎操作,按Ctrl+Z可取消操作。)




Revit教程:在Revit中如何将公制窗改为幕墙窗

4.6.7-如何将公制窗改为幕墙窗

问题:某些时候需要在幕墙上添加门或者窗,只有使用幕墙窗或者幕墙门才能够替换幕墙嵌板,然而公制门窗族占多数,那么如何将公制门窗转换为幕墙门窗呢?

(1)选择公制窗进入窗族编辑状态,在族列表中选择基本墙,在“基本墙1”的基础上复制“基本墙2”如(图-1)所示,然后删除“基本墙1”如(图-2)。

【注意】忽略弹出的警告对话框。

图-1

图-2

(2)进入平面视图将窗的宽度改为实例参数,运用同样的方法进入立面视图将窗高改为实例参数,并保存族文件。

图-3

(3)在样板文件中选择“公制幕墙嵌板”新建嵌板族,如(图-4)所示,单击“插入”选项卡>“从库中载入”面板>“载入族”工具载入刚才所保存的族文件,如(图-5)所示。

图-4

图-5

(4)运用对齐工具将窗两边与参照线对齐并锁住,运用同样的方法进入立面视图将窗高上下两边与参照线对齐,如(图-6)所示。

图-6

(5)把设置好的族文件载入到项目中,选择幕墙在属性下拉菜单中点击刚才载入的族文件如(图-7)所示。

图-7




Revit取消墙自动连接怎么做?在Revit中墙体设置不允许连接的三种方法

    我们在Revit中绘制墙体时,通常墙体会自动连接,如何解决这个问题呢?

    今天就给大家分享几种常用更改墙体连接方式的方法。

    图文步骤详解

    1、点击建筑选项卡下墙命令,然后在选项栏里将连接方式改为不允许连接,再绘制墙体。

    2、如果之前没有修改连接方式就直接绘制了墙体,也有方法可以修改。选中绘制的墙体,右键点击端点,选择不允许连接。

    3、选中墙体,然后在修改选项卡里点击墙连接命令,将鼠标放置在两堵墙连接处附近,会出现一个方形选择框,先左键点击一下,然后在选项栏里点击选择不允许连接,这样也可以修改墙体连接方式。

    这就是墙体连接方式更改的三种方式。一种是在绘制墙体之前使用,另外两种是绘制完墙体之后可以用。




revit风管族教程:如何在Revit中按级别安排风管系统族件

    来源丨益埃毕教育

    根据Revit模型文件里风管系统级别的要求,风管系统按其系统的工作压力划分四个类别,它们为微压、低压、中压和高压。按系统工作压力P(Pa)范围大小和密封不同的要求,高压风管系统级别最高,微压、低压系统风管级别较低,而中压系统风管则居中。

    在Revit中为风管系统设置级别,可以根据软件菜单栏上的工具来处理,有两种方法:一是利用明细表安排风管系统其类型属性设置的自定义级别,二是在项目参数添加自定义参数并通过风管图例来设置,这样不同的风管系统族件就能按照一切命令表达不同的级别。

    打开某项目文件,可以看到项目浏览器里风管系统设置的几个系统,按照级别要求,可以设置:排风兼排烟系统为高压系统,排风系统、送回风系统、楼梯间加压风系统及消防补风系统为中压系统,新风系统为低压系统,如图所示。

    使用第一种方法,详见步骤:

    1、在“项目浏览器”里“风管系统”选择“EA-排风系统”,右键单击“类型属性”,在“类型属性”对话框下“标识数据”的“说明”备注“中压系统”,并点击“确定”,如图所示。

    2、重复1步骤,依次为其它风管系统在其类型属性里面备注不同的级别。

    3、新建明细表,过滤选择权仅适用于风管系统,通过明细表的创建过程添加族与类型、系统名称和级别说明等,如图所示。

    这样就通过明细表的设置下安排不同风管系统的自定义级别:低压、中压及高压等。

    使用第二种方法,详见步骤:

    1、点击“管理”选项卡面板的“项目参数”,在参数属性对话框上,名称(N):级别,参数分组方式(G):模型属性,并在过滤器列表下关联和风管系统相关的族件,回到项目参数对话框下点击“确定”,如图所示。

    2、依据不同的风管系统分类,在平面视图上选中主要风管,比如“PPY-排风兼排烟系统”,在其右边属性面板上“模型属性”框中输入“高压系统”,点击“确定”,如图所示。

    3、重复2步骤,依次为其它风管系统在属性栏里的模型属性上备注不同的级别。

    4、点击“分析”选项卡面板上的“颜色图例”-“风管图例”,在“选择颜色方案”对话框上点击“确定”,如图所示。

    5、在操作界面上点击该图例并单击修改面板上的“编辑方案”,出现此对话框,新建一个方案名称为“风管颜色填充-级别”,标题为“风管颜色填充-级别”,颜色选择为“级别”,利用“+”和“-”按键在表格上添加“中压系统”和“低压系统”,删掉其它无用数据,点击“确定”,见下图。

    这样就利用项目参数添加自定义级别并通过风管图例来表达风管系统三个不同的级别。

    根据上述两种方法,结合实际中的特殊要求可以参照此方法来设置不同系统族件的级别。

    -END-

   

    

    

  

  

  




Revit电气设计基础教程,Revit电气设置配线设置

“电气设置”对话框可以指定配线参数、电压定义、配电系统、电缆桥架和线管设置以及负荷计算和电路编号设置。

  • 配线设置

在“电气设置”对话框的左侧窗格中选择“配线”后,右侧窗格将包含配线表。

线表中的设置决定着 Revit 对于导线尺寸的计算方式以及导线在项目电气系统平面图中的显示方式。

环境温度:在“值”列中输入数值,可以自定义配线所在环境的温度。

配线交叉间隙:指定用于显示相互交叉的未连接导线的间隙的宽度。

导线记号:可以选择为火线、地线和零线显示的记号的样式。Revit 提供了四种记号样式。

横跨记号的斜线:单击“值”列,单击下拉按钮,选择“是”将此功能应用于记号,可以将地线的记号显示为横跨其他导线的记号的对角线。如果选择“否”,则显示为地线指定的记号。

显示记号:指定是始终隐藏记号(从不)、始终显示记号(始终)还是只为回路显示记号
(回路)。

分支线路导线尺寸的最大电压降/馈线线路导线尺寸的最大电压降:电压降指当电流通过用电设备后,其设备两端产生的压差称其为电压降。在“值”列中输入数值以指定最大电压降。




Revit二次开发——从链接文件中选取指定元素


这里稍微讲一下怎么从链接文件中选取指定元素,这里以选取Space为例。
首先要另写一个Class。

public class SelectionLinkFilter : ISelectionFilter
 {
 Document linkDoc = null;
 public bool AllowElement(Element elem)
 {
 if(elem is RevitLinkInstance)
 {
 linkDoc = (elem as RevitLinkInstance).GetLinkDocument();
 return true;
 }
 return false;
 }

 public bool AllowReference(Reference reference, XYZ position)
 {
 if(linkDoc.GetElement(reference.LinkedElementId) is Space)
 {
 return true;
 }
 return false;
 }
 }

然后在选择中用这个class;

 UIDocument uiDoc = commandData.Application.ActiveUIDocument;
 Reference reference = uiDoc.Selection.PickObject(ObjectType.LinkedElement, new SelectionLinkFilter());



revit快捷键怎么用?如何在REVIT利用按键提示提高操作效率

    在Revit中,除了设定的快捷键可以快速启动命令之外,还可以利用软件的按键提示,快速的打开菜单栏或者某个选项卡。在Revit界面中,我们可以单击“ALT”键。此时会在界面上显示出按键提示快捷键。

    这样,我们就可以单击显示出的快捷键F来开启菜单栏或者其他键来开启某个选项卡了。

   

    

    免费Revit教学视频

  

  

  




Revit安装失败怎么解决?Revit安装指南来了!

Revit作为最常用的bim软件之一,由于体量大、不同电脑软硬件情况不同等原因,安装经常是不那么顺利的,特别是初次安装的系统,经常会安装失败。下面就来总结一下Revit安装失败的常见问题及解决办法,期望能帮到大家。

01断网安装时中断失败,或联网安装时速度卡慢

问题分析:Revit使用时需要Visual C++运行库,不同版本还需要不同版本的.net framework,而这两者在现在大家常用的win10系统里都不是完全自带的,Revit在安装时会自行去联网下载安装这些运行库,这时候如果断网或者网络卡顿就可能导致安装卡顿或失败,在失败时revit会给出失败原因(安装失败的运行库)。

02之前安装过软件,但未卸载干净

解决办法:(详情见推文“Autodesk软件卸载教程”,关键词“卸载”)

利用官方工具UninstallTool软件将之前安装的revit及其子程序完全卸载干净后,再重新安装Revit。

03软件安装的路径问题

安装过Autodesk软件的朋友们都知道,一般我们下载下来的安装包,都需要在电脑上进行一个“二次解压”的过程才能再安装。

建议将路径设在与你准备安装Revit的文件夹不同的文件夹,且文件夹路径不宜过长,路径中也不要有中文或特殊符号。

之后Revit安装时所选定的路径也不宜过长,路径中同样也不要有中文或特殊符号。

04电脑系统版本问题

win7系统:

必须是带有sp1升级包的系统,也就是安装系统时是win7 sp1,如果不带sp1升级包,则不能安装Revit软件。win7 32 位系统只能安装Revit2014及以前的版本,15,16,17版本不能安装。

win8系统:

如果安装不成功,需要进行兼容性设置。【setup】右键——属性——兼容性。

如下图:

win10系统:

基本上都会安装成功,除非是系统与软件安装要求环境不匹配或缺失

05激活后打开软件闪退

常见问题:安装成功后,进行注册激活完成后打开闪退。

问题分析:这种情况一般都是注册没有成功导致的,我们需要删除相应的注册信息,并再次进行注册激活,就可以使用了。

教程:

1.进入我的电脑:C盘,并将查看——隐藏的项目勾选上。

2.进入C盘下的ProgramData文件夹

3.找到下图中所示的文件夹,打开,会有三个文件,删除后重新打开Revit使用注册机进行注册。

删除这三个文件

4.再次注册时注意不要带空格等错误符号,注册成功后就可以正常使用了。

总结

以上就是Revit安装中出现的常见问题,在安装时要多加注意。安装好之后,建议不要轻易卸载,特别是不要直接通过控制面板或电脑管家等常用软件卸载方式卸载,一定要使用专用工具来卸载。如果实在无法安装,建议在做好数据备份的前提下重装系统。




Revit锁定图元怎么解锁?Revit中如何选择锁定图元

    我们在Revit中导入cad的时候经常使用的是原点到原点的方式,

    但是因为Revit的项目基点跟cad的原点经常不统一导致cad导入之后需要移动,这个时候我们经常发现导入的这个cad图纸无法选择,只是因为Revit中导入cad如果选择原点到原点,那么导入进来的cad是处于锁定状态的,如何选择锁定状态的图元呢?

    很简单,Revit右下角有一个选择锁定图元的开关,如果你的锁定的图元不能移动,肯定是这个开关处于关闭状态,如图

   

    这个时候单击一下开关,变为打开状态,即可对锁定的图元进行选择,然后再解锁移动等其他操作。




Revit与Navisworks的区别是什么?

目前,在BIM的学习当中,软件作为需要的工具是必不可少的,这其中包括了Revit与Navisworks,两款软件都来自AutoDesk公司,并且两者都有建模的功能,但是功能并非相同,下面就谈谈Revit与Navisworks的根本区别是什么?

Revit是专门针对建筑信息化模型(BIM)设计的,它提供支持建筑设计和文件管理的软件。其基础技术包括建筑信息化模型以及参数化变更引擎在经过设计和优化后,可以支持整个建筑生命周期的信息建立和管理。建筑信息模型是一种先进的数据库基础结构,可以满足建筑设计和相关团队的信息需求。Revit也将此信息基础结构的功能,扩大到整个建筑项目的结构、构造和敷地设计中。Revit是目前市面上常見的BIM软件的一,除了可进行基本的模型绘制外,亦能针对组件进行输入信息的动作,软件中的设备分类本身便包含了Omniclass编码,并且可外挂COBie Extension工具,使绘制完成的模型档案的信息输出成COBie标准电子表格。

在此列出几项Revit软件优点:

1. 系统画面与操作上非常的容易。

2. 明细表的功能。

3. 多元的物件数据库。

4. 提供详细的2D剖面详图。

5. 档案输出及输入的格式多元。

Autodesk Revit具有丰富的在线组件扩充数据库资源,除非项目有特别的对象需额外绘制外,大多数单纯的组件模型都可以解决,并且可自行设定參数,增加使用者所需的參数性质,对使用者来說是较为贴切的设计。而且本身具有明细表输出的功能,其内容更可依照使用者需求来进行编辑以达使用者的需求。

Navisworks是Autodesk公司旗下一套项目检视软件,它支持建筑或基础设施的建筑信息模型,提供建筑物建造的相关建筑、工程和营造专业人员一个审查建筑、结构、机电模型等综合模型的平台。它能帮助建物建造的各相关人员整合、协调、分析建筑物的相关数据,并在项目开始前了解或解决一些建造上的问题。

Autodesk Navisworks的项目审阅功能,可以进行整体项目分析与设计模拟。而Autodesk 【Navisworks】版本有三种,分别为Navisworks Freedom 、Navisworks Manage及Navisworks Simulate,三种版本的简单介绍如下:

Navisworks Freedom它是Navisworks唯一释出的免费软件版本,它可以进行基本的模型观看,其实时可视化让整个项目审核更加轻松,也强化相关人员从概念至操作的沟通和合作协调,但是,它能支持观看的文件格式较少,仅提供检视优化NWD数据格式。

Navisworks Manage它支持三维模型设计,具备制作明细表、可视化、模型动画和协同合作的工具,及进阶的冲突检测功能。它将主要的三维模型数据在系统中储存为单一项目模式,便于冲突侦测和干涉管理。它提供支持硬冲突和余隙侦测的强大搜寻、浏览和显示工具,也提供全方位的监控和工作流程工具,在解决的前持续报告和追踪发现的问题。而Navisworks Simulate所提供的功能,Navisworks Manage也包含在内。

Navisworks Simulate跟Navisworks Manage的功能相仿,但是具备进阶的明细表制作和可视化功能,能进行4D或5D的施工时间排程,提供全方位的标记、审核和注释工具,支持所有设计領域的协同合作,提供全方位的 API和数据整合工具,有助于提供可视化的入口网站,以轻松直觉的方式存取所有项目数据。




Revit二次开发——读取构件的材料外观信息

     

  revit读取材料的外观信息不能通过lookup来搞定,所以读取起来稍微有点麻烦。但是在revit二次开发的官方基础教程里有相关的解释。

         这里就以一个墙体为例,读取墙体材料的所有外观信息(如下图)。这里主要针对autodesk的官方材料库来说的。对于非官方材料库的,下面的代码里被注释掉的可以参考一下。其实读取材料的原理比较简单,过程如下:

1)获取材料的ID,ICollection<ElementId> matId = elem.GetMaterialIds(true); 

2)// 读取revit标准材质库  
            AssetSet objlibraryAsset = revitApp.get_Assets(AssetType.Appearance);

3)从CompoundStructureLayer中获得材料

4)分两种情况读取材料。

        

       对于 APT_Asset和APT_Reference这两种类型还需要再次递归。具体代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Utility;
using System.IO;

namespace 读取墙体材料
{
 [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
 [Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)]
 [Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
 public class MyClass : IExternalCommand
 {
 public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
 {
 Document revitDoc = commandData.Application.ActiveUIDocument.Document; //取得文档
 Application revitApp = commandData.Application.Application; //取得应用程序
 UIDocument uiDoc = commandData.Application.ActiveUIDocument;
 Selection sel = uiDoc.Selection;
 Reference ref1 = sel.PickObject(ObjectType.Element, "选择一个族实例");
 Element elem = revitDoc.GetElement(ref1);

 // 读取revit标准材质库 
 AssetSet objlibraryAsset = revitApp.get_Assets(AssetType.Appearance);

 Wall wall = elem as Wall; 
 ICollection<ElementId> matId = elem.GetMaterialIds(true); 
 #region 从elementId中获得材料,这种方法获得的是主材
 //foreach (var item in matId)
 //{

 // TaskDialog.Show("REVIT", item.ToString());
 // Material mat2 = revitDoc.GetElement(item) as Material; //从elementId中获得材料
 //}
 #endregion

 #region 从CompoundStructureLayer中获得材料,这种方法可以获得与该元素相关的全部材料
 WallType wallType = wall.WallType;
 CompoundStructure compoundStructure = wallType.GetCompoundStructure();
 IList<CompoundStructureLayer> layers = compoundStructure.GetLayers();
 ReadAssetProperty readAssetProperty = new ReadAssetProperty();
 foreach (var item in layers)
 {
 
 Material mat2 = revitDoc.GetElement(item.MaterialId) as Material;
 // TaskDialog.Show("REVIT", mat2.Name.ToString()+ mat2.Id);
 ElementId assetElementId = mat2.AppearanceAssetId;
 if(assetElementId!=ElementId.InvalidElementId)
 {
 //获取外观元素
 AppearanceAssetElement appearanceAssetElement = revitDoc.GetElement(assetElementId) as AppearanceAssetElement;

 //读写外观元素 
 
 Asset currentAsset = appearanceAssetElement.GetRenderingAsset();
 // TaskDialog.Show("revit", currentAsset.AssetType.ToString() + ";" + currentAsset.LibraryName.ToString() 
 // + ";" + currentAsset.Title.ToString()+";" + currentAsset.Size.ToString());

 ////外观子元素
 //IList<AssetProperty> listProperty=new List<AssetProperty>() ;
 //for(int i=0;i<currentAsset.Size;i++)
 //{
 // listProperty.Add(currentAsset[i]);
 //}

 //string info = "";
 //foreach(var item2 in listProperty)
 //{
 // info += item2.Name.ToString()+ "n";
 //}
 //TaskDialog.Show("revit", info);
 ReadAsset(currentAsset, objlibraryAsset, readAssetProperty, assetElementId.ToString());
 }
 }

 #endregion
 Form1 form = new Form1();
 form.ShowDialog();

 return Result.Succeeded;
 }
 public void ReadAsset(Asset currentAsset, AssetSet objlibraryAsset, ReadAssetProperty readAssetProperty,string matId)
 {
 //欧特克的外观子元素
 IList<AssetProperty> listProperty = new List<AssetProperty>();
 if (currentAsset.Size == 0)
 {
 foreach (Asset objCurrentAsset in objlibraryAsset)
 {
 if (objCurrentAsset.Name == currentAsset.Name &&
 objCurrentAsset.LibraryName == currentAsset.LibraryName)
 {
 for (int i = 0; i < objCurrentAsset.Size; i++)
 {
 listProperty.Add(objCurrentAsset[i]);
 }
 foreach (var item2 in listProperty)
 {
 ReadAutodeskAssetProperty(item2, readAssetProperty, objlibraryAsset,matId);
 }
 } 
 } 
 }
 else
 {
 
 for (int i = 0; i < currentAsset.Size; i++)
 {
 listProperty.Add(currentAsset[i]);
 }
 foreach (var item2 in listProperty)
 {
 ReadAutodeskAssetProperty(item2, readAssetProperty, objlibraryAsset, matId);
 } 
 
 }
 }
 
 public void ReadAutodeskAssetProperty(AssetProperty assetProperty, ReadAssetProperty readAssetProperty, AssetSet objlibraryAsset, string matId)
 {
 switch (assetProperty.Type)
 {
 case AssetPropertyType.APT_Integer:
 var assetPropertyInt = assetProperty as AssetPropertyInteger;
 if(readAssetProperty.CheckMaterialMxExists(matId, assetProperty.Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, assetProperty.Name, assetProperty.Type.ToString(), assetPropertyInt.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_Distance:
 var assetPropertyDistance = assetProperty as AssetPropertyDistance;
 if (readAssetProperty.CheckMaterialMxExists(matId, assetProperty.Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, assetProperty.Name, assetProperty.Type.ToString(), assetPropertyDistance.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_Double:
 var assetPropertyDouble = assetProperty as AssetPropertyDouble;
 if (readAssetProperty.CheckMaterialMxExists(matId, assetProperty.Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, assetProperty.Name, assetProperty.Type.ToString(), assetPropertyDouble.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_DoubleArray2d:
 var assetPropertyDoubleArray2d = assetProperty as AssetPropertyDoubleArray2d;
 if (readAssetProperty.CheckMaterialMxExists(matId, assetProperty.Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, assetProperty.Name, assetProperty.Type.ToString(), assetPropertyDoubleArray2d.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_DoubleArray4d:
 var assetPropertyDoubleArray4d = assetProperty as AssetPropertyDoubleArray4d;
 if (readAssetProperty.CheckMaterialMxExists(matId, assetProperty.Name))
 {
 string value4d = assetPropertyDoubleArray4d.Value.get_Item(0).ToString() + "," + assetPropertyDoubleArray4d.Value.get_Item(1).ToString() + "," +
 assetPropertyDoubleArray4d.Value.get_Item(2).ToString() + "," + assetPropertyDoubleArray4d.Value.get_Item(3).ToString();
 readAssetProperty.ReadAssetPropertyFromRevit(matId, assetProperty.Name, assetProperty.Type.ToString(), value4d);
 }
 break;

 case AssetPropertyType.APT_String:
 var assetPropertyString = assetProperty as AssetPropertyString;
 if (readAssetProperty.CheckMaterialMxExists(matId, assetProperty.Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, assetProperty.Name, assetProperty.Type.ToString(), assetPropertyString.Value);
 }
 break;

 case AssetPropertyType.APT_Boolean:
 var assetPropertyBoolean = assetProperty as AssetPropertyBoolean;
 if (readAssetProperty.CheckMaterialMxExists(matId, assetProperty.Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, assetProperty.Name, assetProperty.Type.ToString(), assetPropertyBoolean.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_Double44:
 var assetPropertyDouble44 = assetProperty as AssetPropertyDoubleArray4d;
 if (readAssetProperty.CheckMaterialMxExists(matId, assetProperty.Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, assetProperty.Name, assetProperty.Type.ToString(), assetPropertyDouble44.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_List:
 AssetPropertyList propList = assetProperty as AssetPropertyList;
 IList<AssetProperty> subProps = propList.GetValue();
 if (subProps.Count == 0)
 break;
 switch (subProps[0].Type)
 {
 case AssetPropertyType.APT_Integer:
 foreach (AssetProperty subProp in subProps)
 {
 AssetPropertyInteger intProp = subProp as AssetPropertyInteger;
 if (readAssetProperty.CheckMaterialMxExists(matId, assetProperty.Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, assetProperty.Name, assetProperty.Type.ToString(), intProp.Value.ToString());
 }
 }
 break;
 }
 break;

 case AssetPropertyType.APT_Asset: 
 var assetPropertyAsset = assetProperty as Asset;
 ReadAsset(assetPropertyAsset, objlibraryAsset, readAssetProperty,matId);
 break;

 case AssetPropertyType.APT_Reference:
 
 var assetPropertyReference = assetProperty as AssetPropertyReference;
 IList<AssetProperty> listProperty2 = assetPropertyReference.GetAllConnectedProperties();
 foreach (var item3 in listProperty2)
 {
 var AssetProperty3 = item3 as Asset;
 for (int i = 0; i < AssetProperty3.Size; i++)
 {
 switch (AssetProperty3[i].Type)
 {
 case AssetPropertyType.APT_Integer:
 var assetPropertyInt2 = AssetProperty3[i] as AssetPropertyInteger;
 if (readAssetProperty.CheckMaterialMxExists(matId, AssetProperty3[i].Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, AssetProperty3[i].Name, AssetProperty3[i].Type.ToString(), assetPropertyInt2.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_Distance:
 var assetPropertyDistance2 = AssetProperty3[i] as AssetPropertyDistance;
 if (readAssetProperty.CheckMaterialMxExists(matId, AssetProperty3[i].Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, AssetProperty3[i].Name, AssetProperty3[i].Type.ToString(), assetPropertyDistance2.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_Double:
 var assetPropertyDouble2 = AssetProperty3[i] as AssetPropertyDouble;
 if (readAssetProperty.CheckMaterialMxExists(matId, AssetProperty3[i].Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, AssetProperty3[i].Name, AssetProperty3[i].Type.ToString(), assetPropertyDouble2.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_DoubleArray2d:
 var assetPropertyDoubleArray2d2 = AssetProperty3[i] as AssetPropertyDoubleArray2d;
 if (readAssetProperty.CheckMaterialMxExists(matId, AssetProperty3[i].Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, AssetProperty3[i].Name, AssetProperty3[i].Type.ToString(), assetPropertyDoubleArray2d2.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_DoubleArray4d:
 var assetPropertyDoubleArray4d2 = AssetProperty3[i] as AssetPropertyDoubleArray4d;
 if (readAssetProperty.CheckMaterialMxExists(matId, AssetProperty3[i].Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, AssetProperty3[i].Name, AssetProperty3[i].Type.ToString(), assetPropertyDoubleArray4d2.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_String:
 var assetPropertyString2 = AssetProperty3[i] as AssetPropertyString;
 if (readAssetProperty.CheckMaterialMxExists(matId, AssetProperty3[i].Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, AssetProperty3[i].Name, AssetProperty3[i].Type.ToString(), assetPropertyString2.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_Boolean:
 var assetPropertyBoolean2 = AssetProperty3[i] as AssetPropertyBoolean;
 if (readAssetProperty.CheckMaterialMxExists(matId, AssetProperty3[i].Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, AssetProperty3[i].Name, AssetProperty3[i].Type.ToString(), assetPropertyBoolean2.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_Double44:
 var assetPropertyDouble442 = AssetProperty3[i] as AssetPropertyDoubleArray4d;
 if (readAssetProperty.CheckMaterialMxExists(matId, AssetProperty3[i].Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, AssetProperty3[i].Name, AssetProperty3[i].Type.ToString(), assetPropertyDouble442.Value.ToString());
 }
 break;

 case AssetPropertyType.APT_List:
 AssetPropertyList propList2 = AssetProperty3[i] as AssetPropertyList;
 IList<AssetProperty> subProps2 = propList2.GetValue();
 if (subProps2.Count == 0)
 break;
 switch (subProps2[0].Type)
 {
 case AssetPropertyType.APT_Integer:
 foreach (AssetProperty subProp in subProps2)
 {
 AssetPropertyInteger intProp2 = subProp as AssetPropertyInteger;
 if (readAssetProperty.CheckMaterialMxExists(matId, AssetProperty3[i].Name))
 {
 readAssetProperty.ReadAssetPropertyFromRevit(matId, AssetProperty3[i].Name, AssetProperty3[i].Type.ToString(), intProp2.Value.ToString());
 }
 }
 break;
 }
 break;
 }

 }
 }
 break;
 default:
 //info += assetProperty.Name + ";" + assetProperty.Type.ToString() + "n";
 break;
 }
 }
 }
}

这其中还有一个往数据库中读取材料性质的类,这个类有两个作用:

1)把材料放到数据库里

2)检查数据库里是否已经存在该材料的信息

其中下面这句代码是数据库的链接地址,依据个人的电脑不同而改变。

private string str = "Data Source=USER-20161016YAMEDICINE;Initial Catalog=MyMaterials;Integrated Security=True";

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 读取墙体材料
{
 
 public class ReadAssetProperty
 {
 private string str = "Data Source=USER-20161016YAMEDICINE;Initial Catalog=MyMaterials;Integrated Security=True";
 public void ReadAssetPropertyFromRevit(string materialId ,string paramName, string type,string value)
 {
 int n = -1;
 //连接数据库
 using (SqlConnection con = new SqlConnection(str))
 {
 //string sql = string.Format("insert into MaterialFormRevit(MaterialId,ParamName, MatType, Value) values('{0}','{1}','{2}',{3})", 1,paramName, type, value);
 string sql = string.Format("insert into MaterialFormRevit(MaterialId,ParamName, MatType, Value) values('{0}','{1}','{2}','{3}')", materialId, paramName, type, value);
 using (SqlCommand cmd = new SqlCommand(sql, con))
 {
 con.Open();
 n = cmd.ExecuteNonQuery();
 }
 }
 //string msg = n > 0 ? "操作成功" : "操作失败";
 //LoadData();//刷新数据
 }
 public bool CheckMaterialMxExists(string strMaterialId, string paramName)
 {
 bool flag = false; 
 SqlConnection mycon = new SqlConnection(str);
 //查询此编号是否存在
 mycon.Open();
 SqlCommand mycmd = new SqlCommand("select MaterialId from MaterialFormRevit where MaterialId='" + strMaterialId + "'AND ParamName='" + paramName + "'", mycon);
 SqlDataReader mysdr = mycmd.ExecuteReader();
 if (mysdr.HasRows)
 {
 flag = false;
 }
 else
 {
 flag = true;
 }
 mysdr.Close();
 mycon.Close();
 return flag;
 }
 }
 
}

其中中间过渡属性的材料如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 读取墙体材料
{
 public class Depart
 {
 private int _MaterialId;
 private string _ParamName;
 private string _Type;
 private string _Value;

 public int MaterialId
 {
 get
 {
 return _MaterialId;
 }

 set
 {
 _MaterialId = value;
 }
 }

 public string ParamName
 {
 get
 {
 return _ParamName;
 }

 set
 {
 _ParamName = value;
 }
 }

 public string Type
 {
 get
 {
 return _Type;
 }

 set
 {
 _Type = value;
 }
 }

 public string Value
 {
 get
 {
 return _Value;
 }

 set
 {
 _Value = value;
 }
 }
 }
}

最后Form的代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace 读取墙体材料
{
 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }
 string str = "Data Source=USER-20161016YAMEDICINE;Initial Catalog=MyMaterials;Integrated Security=True";
 private void Form1_Load(object sender, EventArgs e)
 {
 LoadData();
 }
 private void LoadData()
 {
 List<Depart> list = new List<Depart>();
 //通过连接字符串连接数据库
 using (SqlConnection con = new SqlConnection(str))
 {

 //拼接sql语句
 string sql = "select * from MaterialFormRevit";
 //准备执行sql语句的对象
 using (SqlCommand cmd = new SqlCommand(sql, con))
 {
 con.Open();//打开数据库
 //准备读数据
 using (SqlDataReader reader = cmd.ExecuteReader())
 {
 //判断是否有数据(有没有行)
 if (reader.HasRows)
 {

 //读取每一行
 while (reader.Read())
 {

 Depart dk = new Depart();//创建部门对象
 // dk.MaterialId= Convert.ToInt32(reader["MaterialId"]);
 dk.MaterialId =Convert.ToInt32(reader["MaterialId"].ToString()) ;
 dk.ParamName = reader["ParamName"].ToString();
 dk.Type = reader["MatType"].ToString();
 dk.Value = reader["Value"].ToString();

 list.Add(dk);//添加到集合中


 }//end while
 }//end if
 }// end sqldatareader
 }//end using
 }//end using


 dgv.AutoGenerateColumns = false;//禁止自动生成列
 dgv.DataSource = list;//绑定数据
 //dgv.SelectedRows[0].Selected = false;//禁止被选中

 }
 }
}

最后结果如图:




revit基线怎么关?Revit如何清除绘图界面中的构件基线?

    1、在使用Revit绘图时,有时会楼层平面看到其他楼层的构件基线,导致绘图界面杂乱。

    2、需要在属性栏中找到基线一栏,将楼层改为对应楼层。

    3、修改完成后即可看到构件基线不再被显示。

   

    

    免费Revit教学视频

  

  

  




Revit轴网怎么建立?Revit软件实操之轴网创建

轴网是建筑制图的主体框架,建筑物的主要支承构件按照轴网定位排列,达到井然有序。在Revit软件使用中,熟练掌握轴网的创建、编辑、属性调整等操作方法十分重要。一起来看看创建轴网的相关操作吧。

    一、轴网的创建

    1.绘制轴网

绘制轴网的方式有线、起点-终点-半径弧、圆心-端点弧、拾取线、多段等方式。

    2.复制阵列轴网

①复制轴网

选择一根轴网,单击工具栏中的【复制】按钮,可以快速复制轴网,注意勾选复制选项栏中的选项,勾选【多个】,则一次可以复制多个图元,勾选【约束】,则只能沿正交方向复制图元。

    ②阵列轴网

选择一根轴网,单击工具栏中的【阵列】按钮,可以一次绘制多个间距相等的轴网,建议取消勾选“成组并关联”,防止关联后无法进行修改,输入“项目数”为“6”即生成包含被阵列对象在内的共6个轴网,并保证正交。也可以勾选“约束”复选框,以保证正交。

    二、轴网的编辑

    1.轴网标头功能键概述

    2.调整标头位置

①调整所有轴线

选择任何一根轴线,所有对齐轴线的端点位置会出现一条蓝色的对齐虚线,拖动轴线端点处进行位置调整,所有轴线都会同步移动。

②调整单根轴线

先打开轴线对齐锁,再拖拽轴线标头端点。

③仅在当前视图调整轴线

当轴线在3D的状态下,调整标高的位置时,所有平面图中的轴线端点都会同步联动,仅想在当前平面内调整单根标高,则单击“3D”,将标头的“3D”改为“2D”,再去拖拽标头端点。

④轴线的影响范围

选择一根或多根轴线,选项栏上出现【影响范围】功能键,点击该功能键,弹出【影响基准范围】对话框,在对话框中选择需要的平面或立面视图名称,可以将上述调整的标头位置、轴号显示、轴号偏移等设置应用到所选视图。

    3.修改轴线名称

双击轴线的名称即可修改。

    4.轴线标头显示控制

单击轴线标头外侧的“隐藏/显示标头”,即可关闭/打开标高标头的显示。

    5.轴号的偏移

点击标头的“折线符号”即可完成偏移,可单击“拖拽点”对偏移的位置进行调整。

    三、轴网的属性

    1.实例属性

单击一根轴线,属性栏中显示实例属性,可修改轴线的名称。

    2.类型属性

单击一根轴线,打开“类型属性”对话框,可以对轴线的线宽,颜色等进行调整。




revit材质贴图如何创建?Revit材质库的创建和编辑

    文章来源:BISDC饭堂

    先来快速了解几个你会常用到的材质技巧!

    一、将SU里的材质贴图赋予到Revit来

    材质不想满天找,可快速利用SU里现有的材质贴图赋予到Revit中来?

    01.首先,在SU材质编辑器中获得材质贴图

    通常在SU中我们通过油漆桶来赋材质,贴图也可以在材料的编辑面板中快速找到。

    点击纹理图像路径的右边第二个图标【在外部编辑器中编辑纹理图像】会弹出贴图图片格式的预览窗口。此时我们将这个材质贴图另存到跟随Revit项目的文件夹中待用。

    02.其次,在Revit中创建材质

    在Revit的材质浏览器中创建或复制材质,在【外观】选项卡下的【图像】,默认路径栏显示为“(未选定图像)”,鼠标停留在这行字上方字体变为高亮,点击则可弹出替换图像的选框,找到刚才步骤01备好的SU中提取出来的贴图,则加载好了贴图。

    加载好后,你还可以双击图像栏弹出【纹理编辑器】,可以和在SU中一样调整纹理贴图的位置、比例和重复方式等等。

    如果你还不太熟悉材质浏览器的用法

    别担心,

    后文我们会详细介绍!

    二、将CAD中的填充图案载入到Revit中来

    Revit中翻找不到心水的填充图案,我只想直接用CAD图里的图案!

    CAD的立面图上经常要表达到不同材质的填充示意和图例。当我们希望在Revit里的立面图也用到相同的填充样式,这里有个技巧可以分享给大家。

    01.首先,提取CAD的填充图案

    在CAD顶部【文件】下拉选择“打印样式管理器”。(这步只是为了让大家快速进入CAD的安装程序路径啦,方法大家可以自由发挥)。向上级菜单找到安装路径根目录下的“support”文件夹,在文件夹的搜索框搜索“.pat”,则可找到【acad.pat】文件,拷贝到跟随Revit项目的路径来备用。

    如果你看上的图案是中文命名的,则很有可能是天正的图案填充,则需要进入天正的安装路径下去搜索找到【acad.pat】文件,拷贝备用。

    02.在Revit中加载填充图案

    从【管理】选项卡去修改或新建填充图案:

    从材质中去修改填充图案:打开材质编辑器,在想要修改的材质类别中,【图形】选项卡下的【表面填充图案】的【前景】行,单击“图案”进入“填充样式”窗口。

    点击页面底部的“新建填充样式”→类型选择“自定义”,单击“浏览”,选择刚才从CAD(或天正)安装路径拷贝备用的【acad.pat】文件。找到你心水的填充图案,如果看不到预览可试下调整“导入比例”就可以了!

    三、Revit中快速更换墙体材质的方法

    墙属性编辑材质太麻烦,我需要频繁更换材质,甚至一面墙上有不同材质!

    对于方案的小伙伴来说,前期建模深度要求不需要太高的时候,会觉得墙体属性编辑内去更换材质不方便。

    01.方法一:最简单快速的墙体填色方法

    其实Revit里也可以像SU那样

    Click一下油漆桶就快速赋上材质!

    Step1、【修改】→“几何图形”面板中找到填色,快捷键是PT

    Step2、弹出材质框点选,或搜索框输入关键字快速找到材质

    Step3、点击选中要修改的墙面

    材质就自动更换了!立面填充也是可以看到的!

    反悔了?

    想要回最初的材质,点击填色下拉的删除填色

    请留意哦,

    此方法只是在墙面表现效果,不能更改墙类型的实际属性。

    如果确定了要使用的材质,

    记得要去改好类型属性哦!

    02.方法二:一面墙体有几种不同材质的方法

    不甘于乏味的我们有时候希望一片墙体上可以同时出现几种不同的材质,形成丰富的变化。这在revit里也是可以实现的。

    Step1、添加一个饰面层

    选中想要编辑的墙体,打开“结构”参数的“编辑部件”对话框,插入一个饰面层。

    Step2、创建零件

    选择墙体,点击上方面板的【创建零件】

    Step3、分割零件

    选择其中的一个面层,点击上方面板的【分割零件】,如右图所示

    Step4、编辑草图

    点击【编辑草图】选项,弹出“修改|分区>编辑草图”选项卡

    Step5、设置工作平面

    弹出的对话框中选项选择“拾取一个平面”,点击确定后,选择想要编辑的墙的立面

    Step6、请开始你的创作!

    在墙的立面上开始绘制草图,点击“√”完成

    Final!、换皮肤吧!

    选中饰面层,把属性框中“通过原始分类的材质”取消勾选,然后再给每个饰面做不同的材质填充!

   

    

    

  

  

  




Revit暖通建模怎么做?Revit在暖通建模中遇到的难事!看你遇到过没

    相信各位BIMer肯定接触过Revit软件,不管你是在哪个平台下的工作,Revit还是耳熟能详的,这是一个入门门槛适当,市场占有率极高的BIM建模软件,但是一个软件不可能是完美的,不管是它的工作模式还是成果表达,肯定都会有缺陷,Revit也是如此的,经过公众号平台的数据分析,我发现目前主要有两个出现频率比较高的暖通建模问题时常困扰大家。一个是冷媒管系统的创建,另外一个是地暖盘管的创建,还有一个经常出现的问题就是喷淋系统太卡电脑。

    01、第一个冷媒管道系统

    首先大家应该先了解冷媒管系统的组成,一般是气管、液管和分歧管组成,这三者的材质一般都是铜,扮演的角色和“水系统”空调系统中的供回水管和三通是一样的。但是,由于铜管的延展性比较好,在施工过程中通常会把气管、液管、加保温套管后固定。

    那么问题来了,我们建模是为了什么?主要还是两个需求,一个是看设备安装的合理性,还有就是算量的需要。在入户后,由于铜管的灵活性比较好,所以这里首先需要考虑多联机室内机的安装位置合理性,如果室内机安装的没有问题,那么铜管一般不会有问题,只要不是硬碰撞和脑残布局,一般都能安装。接下来说算量,由于多联机不同厂家对冷量和配管的参数可能不一致,算量建议大家使用其他软件来算量,比如天正暖通、鸿业等,与其花一天时间建模算量,不如花半天时间来用专业的软件来算。

    02、地暖盘管

    地暖盘管的问题基本和前面冷媒管系统的是一样的,第一,地暖盘管建模真的没有意义,第二,算量用CAD,只需要轻轻一点,量也就出来了,无非长度!当然了,也有一种地暖盘管需要建模的情况,那就是甲方爸爸给了很多很多钱~~~~~~~~~~。不要觉得有模型才高端,适合工作、适合应用的才是大家需要的!

    03、第三个,喷淋系统

    喷淋系统是我们在机电建模中经常会设计的一个系统,但是会有一个情况——喷淋系统建模完成后通常会很卡。其实喷淋系统在主管道部分模型的量也不是很大,但是在支管喷头的部分,模型的量会成倍增长。很多人都会抱怨电脑配置不好,这里给大家提个醒,不管你电脑是多好的配置,总有模型能让你卡。所以我们这里必须做取舍,这里建议大家在做喷淋系统的时候只绘制管径在50以上的管道,这个管径在我们做管综的时候已经完全够用了,小的管道也可以随着建筑结构灵活布置,解决了大问题,小问题就可以用其他办法解决了。

   

    

    

  

  

  




如何在Revit中创建图纸列表?

1.视图选项卡,在图纸下拉列表,选择“图纸列表”。

2.在图纸列表属性对话框,选择字段图纸编号,图纸名称。

3.确定后,如图

4.如果还想加一些其他的参数,如“图幅”,是需要我们自己来添加项目参数的。单击“项目参数”命令,如图

5.在明细表中就会出现“图幅”,将其添加到图纸列表明细表中,如图

6.可以手动输入图幅大小。




如何在Revit中快速的处理顶部扶栏造型?

在做项目过程中一些无障碍坡道的栏杆扶手需要编辑,如下图所示:

1、在平面视图绘制一段栏杆扶手,切换到三维视图。

2、选择顶部扶栏,单击“编辑扶栏”命令。

3、单击“ViewCube”的“前”,然后单击“编辑路径”命令。

4、选择“直线”的绘制方式,绘制需要的造型。

5、单击“编辑扶栏连接”,鼠标移动至路径的交点会出现先正方形,单击后原有的正方形会变成叉号。

6、 编辑扶栏连接有三种方式“根据类型、“斜接”、“圆角”,选择不同的命令,在根据绘制方式中的圆角弧等命令进行修改。




revit标高怎么画?关于Revit—标高的多种绘制方法

    1.直接绘制的标高

    首先进入任意一个立面视图,点击建筑选项卡,在基准面板下选择标高命令,就可以在操作平面进行绘制。如图1-1

    图1-1

    标高绘制时会与原有的标高生成临时尺寸标注,用于定位,直接绘制的标高会在楼层平面直接生成相应的平面视图。

    2.复制的方式绘制标高

    首先选中一条标高,在弹出的修改面板下选择复制命令,在临时编辑栏中勾选多个和约束,输入相应的标高间距即可。

    复制的标高不会直接生成相应的楼层平面,需要点击视图选项卡,点击平面视图下的楼层平面,勾选相应的平面视图即可。

    3.阵列的方式绘制标高

    对于楼层较多的建筑,我们一般采用阵列的方式绘制标高,同样选中其中一条标高,在弹出的修改面板下选择阵列命令,在临时编辑栏中取消勾选成组并关联,输入项目数(项目数包括选中的这条标高),勾选移动到第二个(输入间距为相邻两个标高的间距)或者最后一个(输入间距为第一条到最后一条标高的间距)如图3-1,鼠标移动到编辑窗口,选择一个阵列基点,输入间距即可。

    图3-1

   

    

    

  

  

  




如何将Revit默认样板文件路径丢失找回?Revit样板文件路径失效解决方法

    当revit默认样板有问题或者丢失该如何解决?步骤如下:

    1、首先打开Revit选项菜单,如图所示:

    2、点击左侧“文件位置”,如图所示:

    3、点开样板路径的图标,找到样板位置,图中左侧为“+”为新建样板,“-”为删除此样板。如图所示:

    大家可能还会遇到一个问题,每次载入族的时候不是直接就像下方所示,

    该怎么解决呢?很简单,首先点开Revit选项,找到“文件位置”,点击“放置”

    点击后边的三个小点设置好路径即可,如图所示:

    选择正确的文件——China,之后载入族的时候就可以直接选择族文件,不再手动更改位置。




利用Dynamo提高Revit工作效率的十个小程序(纯干货)

Dynamo案例百解——简单实用的Dynamo图文教程已经基本完成了!有兴趣小伙伴,可以加我微信,进行购买哦~

        经常有群里的小伙伴问我一个问题——我很想学Dynamo,但是不知道该做些什么,也不知道该从哪里开始学起。确实是如此,Dynamo能做很多事情,但是有时候很难开始。

我也不知道该如何告诉你去学习它,但是我可以分享一些经验,告诉你它可以做什么,有可能对你有用,也有可能不是你想要的,但是Dynamo确实是执行Revit繁琐任务的一种很好的方法,它可以让你更高效。

鉴于此,我梳理了10个有关使用Dynamo轻松实现自动化的工作流示例,希望能让你知道什么是可以轻松实现自动化的。

(PS:本次文章不是教程,只是分享一些小案例,购买了Dynamo案例百解的小伙伴,可以到教程里下载案例文件)

本次文章基于Revit2020和Dynamo2.3,用到的packages如下:

            archi-lab

            Clockwork

            Lunchbox

            Rhythm

            BimorphNodes MEPover

接下来进入正题,相信以下十个方法,可以帮助你在Revit中节省一些时间:

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
1、根据Excel数据,创建楼层标高

        这个脚本,是从Excel中读取楼层名称和对应的高程,然后根据此信息,快速创建楼层标高。当你开始一个新项目的时候,这是一个不错的脚本。

核心节点:Level.ByElevationAndName

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

        完整截图:

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
2、简单计算总建筑面积和容积率

        此脚本收集红线区域内的所有建筑面积,然后按楼层汇总计算,最后计算总建筑面积。接下来读取建筑红线,并计算红线内区域面积,之后计算容积率:

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
3、将族实例和类型参数值导出的Excel

        此脚本可以导出所选族的每个实例和类型的参数值并写入Excel。当你需要生成一些族信息表格的时候,这是一个很好用的脚本。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
4、自动标注轴网尺寸

        此脚本会自动根据视图中绘制的曲线,进行轴网尺寸标注,无需手动单击每个轴网,此脚本可以在几秒钟内完成轴网尺寸标注。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
5、在多张图纸上放置图例

        需要将图例放在一堆图纸上,但是不想手动放置?使用这个脚本,就能解决问题。只需要选择图纸范围,要添加的图例和插入点,然后交给Dynamo即可!

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
6、按类型计算墙体长度

        需要知道每种类型的墙有多少?每种类型的总长度如何?使用这个简单脚本,可以快速获取模型中使用的所有类型的墙,然后输出每种类型的总数和总长度。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
7、停车位编号

        这是一个很实用的脚本,很多教程里都讲过,当你需要重新调整停车位编号的时候,你才会感觉到Revit的痛苦。幸运的是,这个脚本使它容易多了。只需要绘制一条样条曲线,然后指定起始编号。Dynamo将车位按正确的顺序排列,然后编号。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

这里就套用我教程里带UI的那个截图了,不再重新弄了:

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
8、为视图创建图纸

        此脚本可以为视图创建图纸,然后将这些视图放在对应的图纸上。当然需要快速查看一组视图或图纸集时,它非常有用。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
9、批量升级Revit模型

        每年中的那段时间,Revit升级虽然带来了很多新功能,但这也意味着你需要升级你的项目文件和族文件。此脚本使升级这件事变得轻而易举。首先,制作一个族库副本,接下来,选择要在Dynamo中升级的文件夹,单机运行,然后坐下来喝杯茶。Dynamo将打开每个族文件,将其升级到新版本后,再保存该文件。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

注:这里用Rhythm里的节点,也可以用Orchid里的节点,参考之前的文章:Dynamo批量分离中心文件并另存到指定目录

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
10、根据cad曲线创建管道

        CAD管道翻模?这个脚本很容易实现。将DWG文件导入Revit模型,然后运行脚本,它将获取指定的线型生成指定的管道类型。并且你可以轻松的修改脚本,生成不同的管道。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

        好了,今天要分享的就这些,准备好开始使用Dynamo来提高Revit工作效率了吗?可以购买我的语雀图文教程——Dynamo案例百解——简单实用的Dynamo图文教程,你可以看到更多关于Dynamo的案例。

当然了,小伙伴们如果有其他的应用方向,欢迎留言一起讨论哦~~

本公众号还有其他Dynamo案例教程:

一、Dynamo批量将房间名称转换为模型文字

二、Dynamo一键清理Revit中未放置的房间和多余的房间
三、最短路径——通过Dynamo批量创建行进路线
四、通过Dynamo批量打印PDF图纸
五、Dynamo批量分离中心文件并另存到指定目录
六、Dynamo读取cad图快坐标,匹配地形种树
七、Dynamo自动创建门窗详图
八、批量删除不需要过滤器
九、根据Excel创建管道系统及材质
十、墨西哥 jardines de 餐厅竹框架柱Dynamo建模思路
十一、利用Dynamo批量为阳台窗添加栏杆

原文始发于微信公众号(BIM的乐趣):利用Dynamo提高Revit工作效率的十个小程序(纯干货)




Revit中心文件损坏如何修复?

Revit在建模过程中,当内建模型或者是常规模型等外部插入族增多,族复杂后。在导入族或者在绘制过程中,以及中英文输入法切换时,很容易造成中心文件的崩溃,当出现中心文件崩溃的时候。有时候会提示你是否保存恢复文件。当我们保存恢复文件的时候。下次只要在打开恢复文件,然后同步一下,既可以,但是也出现崩溃后中心文件损坏的情况。以下讲到如何恢复中心文件。

1.打开REVIT2014协作出的恢复备份,点击恢复备份

2.选择中心文件以及备份文件的所在位置,本文中我的这个中心文件XXX地下室文件20150716放置在桌面上,中心文件生成后会自动保存为Revit_temp,XXX地下室文件20150716_backup等两个文件。此时我们点击后者即XXX地下室文件20150716_backup文件夹

3.此时显示项目备份版本,显示当前版本,保存者(即文件所用者),保存日期时间。然后点击另存为

4.选择保存位置。即可完成中心文件损坏后的文件夹恢复!




关于Revit嵌套族的原理及注意事项

Revit嵌套族的原理及注意事项!嵌套族在Revit项目中的使用评率也是比较高的,所谓嵌套,就在用一个新的族来承载原有族,并将原有族的参数用现有族中的参数表现出来,用一张图来说明。

族B承载了族A,也就说族B现在是个嵌套族,并且族A的某些参数用族B的参数表达出来了,当然,族A也可以再承载其他族,参数关系层层表达,都是没有问题的,在族B中承载多个族也是没有问题的。我们之前做过的参变闸阀就是一个嵌套族。

阀体是一部分,手柄又是一部分,然后两部分共同组成了一个阀门族。

那么,嵌套族再制作过程中需要注意哪些东西呢?

1.关联族参数

被承载族(族A)的参数无论是实例参数还是类型参数在承载族(族B)中都可以重新设置,参数即可关联既有参数也可新建参数。但是参数必须单位一致。

2.被承载族的使用

被承载族(族A)在入到承载族中,可以载入一个,也可载入多个,如果是实例参数的话还可对多个组的实例参数设置不同的关联参数。

3.被承载族(族A)可用的编辑功能

被承载族可以使用基本图元可能的大部分功能,比如整列、对齐、锁定、旋转等。大家在制作的过程中注意它们之间的物理和数学关系即可。




PKPM在多高层钢筋混凝土结构设计中最困惑的系列问题及其解决办法(14)

1、部分框支剪力墙转换层上一层剪力墙老是超筋怎么办?

解释:在部分框支剪力墙结构中经常会出现转换层上一层剪力墙老是超筋的情况,而且一般都是水平筋超,也就是抗剪超。其根本原因是由于PKPM中框支梁采用梁单元模拟,上部剪力墙采用墙元模拟,梁单元与墙单元的连接情况与实际情况不符造成的。真实情况是转换层上一层剪力墙水平剪力比计算结果要小很多,因此PKPM的计算结果是不太合理的。解决办法有两种:

(1)   采用墙元模拟框支梁,即框支柱和框支梁用剪力墙开洞的方式生成。

(2)   框支梁仍然用梁单元模拟,但将转换层分成两层建模。如转换层层高6米,框支梁2米高,则将其分为一个5层高的转换层+(0.5框支梁梁高=1.0米)的上部标准层,上部标准层计算结果以转换层上第二层计算结果为准。

2、如何根据上部结构和地质情况快速选择基础类型?

解释:地面下5米以内(无地下室)或底板底处土的地基承载力特征值(可考虑深宽修正)与结构总平均重度之间关系对基础选型影响很大,一般规律如下:

(1)若可采用独立基础;

(2)若,可采用条形基础;

(3)若可采用筏板基础;

(4)若,应采用桩基础或进行地基处理后采用筏板基础。

3、独立基础一般采用锥形基础还是阶梯形基础?

解释:锥形独基和阶梯形独基在实际工程中均有做的。锥形基础支模工作量小,施工方便,但对混凝土塌落度控制要求较严格。阶梯形独基支模工作量较大,但对混凝土塌落度控制要求较松,混凝土浇筑质量更有保证,因此阶梯形独基应用范围更大。

4、阶梯形独立基础最小配筋率如何计算?

解释:可以按最危险截面控制最小配筋率。一个设计合理的阶梯形独立基础一般都是第一阶最危险(长高比一般为2),因此当设计合理的阶梯形独基可按第一阶截面控制最小配筋率,而不必按全截面控制。

(来源:微信公众号“PKPM构力科技”,善意转载,如有侵权请联系删除!)




revit如何三维标注?REVIT三维标注-让你的标注叼炸天!

    在我们的日常工作种,尤其在做管道综合时发现了一些错误,需要我们来出一些问题报告反馈给设计院。这时一般的做法是用相关位置的多专业平面图和文字叙述来描述这个问题。今天小标教大家一种可以直接在三维中直接标注的方法!

    接下来我们就一起来学习一下吧!

    在三维视图中是可以直接进行标注的。例如,标注两根柱子之间的间距。

    点击【注释】选项卡-【对齐】,进行标注。

    【ps:此时我们使用的是默认设置,只可以标注水平距离】

    那么如何来标注垂直距离呢?

    思路:先设置一个垂直面为工作平面-再使用对齐命令进行标注。

    首先我们来设置一下【工作平面】,工作平面板块里面的【设置】-【拾取一个平面】-【拾取一个垂直面】。

    【ps:拾取的面为所有垂直方向的面,例如:垂直的柱面、梁面、墙面等等】

    【ps:当工作平面设置为垂直的平面后,才可以标注垂直方向之间的距离】

    点击【注释】选项卡-【对齐】,进行标注。

   

    

    免费Revit教学视频

  

  

  




Revit如何给栏杆加材质?Revit中栏杆立柱材质的添加

    在Revit中,栏杆扶栏材质可以在编辑类型的“扶栏结构”中直接修改,而立杆在编辑类型中无法直接修改,今天带大家学习如何修改栏杆立杆材质。

    1、在修改之前,我们需要先确认立杆的类型及尺寸,选择栏杆,点击“编辑类型”,在弹出的对话框中点击“栏杆位置”后的“编辑”。

    2、在弹出的对话框中确认“主样式”及“支柱”栏杆类型及尺寸(如“栏杆-圆形:25mm”)。

    3、在“项目浏览器”点击“族”中的“栏杆扶手”,找到“栏杆-圆形”下的“25mm”,双击。

    4、在弹出的对话框中即可修改“栏杆材质”。

    5、例如修改材质为“涂料-黄色”并确定。

    6、修改完成的效果如图所示。

   

    

    免费Revit教学视频

  

  

  




在Revit中如何做管综的净高分析设置?

在调整完整个区域的管综之后可能因为业主对于机电安装的净高有严格的要求,我们需要整理项目中的所有管线的高程。但是由于过滤器没有办法以机电部分的高度设置过滤器,所以我们在这里需要特别设置来达到筛选出不同高程的目的。

1. 打开需要做净高分析的Revit文件。

2. 点击属性面板中的范围标签下的视图范围编辑。

3.设置视图范围,最好从调节管综时的最低点开始设置视图范围(注:顶一定要设置为与地相同的相关标高),最好设置顶的偏移量比底的偏移量多100,也可以根据具体精度的不同设置不同的偏移量差值,剖切面设在中间数值。

4.单击确定后在平面图中能显现出来的就是在顶和底标高范围内存在的管道,再点击左上角Revit图标——导出——CAD格式——dwg。

5.点击下一步。

6.保存在自己的工作文件中,文件名最好命名为顶和底的偏移量,文件类型存为低版本的AutoCAD文件,不要勾选【将图纸上的视图和链接作为外部参照导出(X)】。

7.导出成CAD格式后将文件用CAD打开,用多段线将图上有的部分围起来,填充颜色,这样就形成的某一标高下的图纸,重复上述步骤,最后将图纸整合起来,就能形成净高分析图。

净高分析的意义:

在向业主汇报工作的时候,我们需要形成一张通过不同颜色表示不同高程区域的直观图纸。能一目了然的知道什么地方满足净高要求,什么地方不能满足,在什么地方,对于用户体验有没有影响,等等。




在Revit软件中如何创建三棱锥?

目前,Revit已经是目前在建筑模型设计中使用的比较常见的软件,但是应用次数多了也会出现各种各样的问题。

Revit链接的模型在Navisworks中不可见的解决方法!在Revit中打开一个模型,例如结构模型,再将对应的模型,例如机电模型链接进来,保存模型。

将保存的模型用Navisworks软件打开,可以看到链接的机电模型并没有显示。

有两种方法解决这种链接模型不可见的情况:

1、Revit导出为nwc文件,然后用Navisworks打开。

在Revit导出场景为nwc文件,在Navisworks设置下,找到文件读取器,用Navisworks打开保存的nwc文件,链接的机电模型正常显示。

2、直接用Navisworks打开.rvt文件。

打开Navisworks软件,打开选项编辑器,找到文件读取下的Revit,把转换链接文件勾选上,点击“确定”。再用其打开Revit模型,链接的机电模型正常显示。

意义:Navisworks软件和Revit作为同一系列产品,可将Revit完成的模型,导入到Navisworks软件进行碰撞检查、漫游等后续操作。通过学习上述文章,可以很好地解决在Revit模型中存在链接模型不可见的问题,方便操作。




Revit工作流:在MEP预制详图中调整已连接预制零件的尺寸

    你是否在调整已连接预制零件的同时,发现选定零件的位置也被修改了?或者,连接到这些零件的零件位置被修改了?

    利用“属性”选项板或“编辑零件”工具修改连接的预制零件的尺寸。

    您可以使用该功能调整没有次端点的已连接预制零件(例如接头、拔梢、方转圆过渡件)的尺寸。

    调整已连接预制零件不会修改选定零件的位置,或连接到这些零件的零件位置。例如,已选管路上管件的位置保持不变,这样便无需重新定位焦点之间的直段,即使零件已经重新调整尺寸也是如此。

    调整已连接预制零件的尺寸:

    1.选择要调整尺寸的已连接预制零件。

    选择要调整尺寸的已连接零件时,请确保选择使用相同服务样本和规格的已连接零件。

    2.在“属性”选项板中,在以下字段中输入新的尺寸值。

    主端点字段:干管主宽度、深度或直径

    下例显示的是一个已选圆形管网的管路。在“属性”选项板中,“干管主直径”字段已从12″更改为8″。

    产品条目:对于产品所列零件(例如管道系统零件),请从“属性”选项板的“产品条目”定义中选择新尺寸。

    3.如果显示错误对话框,提示该零件将断开连接,请单击“断开”。

    选中零件即已调整尺寸。

    4.您可能需要重新连接管路中已断开的零件。

    例如,风管的矩形直段上有多个接头连接在管路的一侧或多侧,在此风管上调整直段管路的尺寸可保持直段位置和接点连接不变。然而,任何位于管路末端的过渡件(如拔梢)都会断开连接并需要重新连接。

    使用现有工具重新连接已断开连接的零件。例如,若要重新连接已断开连接的零件(产品所列零件),您可以使用“布线填充”工具。

   

    

    

  

  

  




revit清除未使用项怎么做?Revit项目文件如何瘦身

    有时候我们在一个项目中载入了很多族,但实际使用了只是其中的一小部分,还有很多族并没有在模型中体现,但它们依然存放在项目文件里,这样就会导致这个项目模型内容不多,但实际文件还比较大。要减少项目文件的大小,我们可以通过“清除未使用项”来实现。

    方法如下:

    1)找到“管理”选项卡中“清除未使用项”,点击。

    2)在弹出的窗口中先点击“放弃全部”,然后再在左侧勾选需要清理的项目。

    3)最后点击“确定”,完成从当前项目中清除所有选中的对象,保存项目即可完成对revit项目文件的瘦身。

   

    

    

  

  

  




BIM设备运维管理存在哪些问题?如何解决?

目前BIM在维运管理阶段中已有部分相关的运用,大多都以设施管理(FM)为主。传统的设施管理在BIM系统介入前,皆以纸本条列式的方式做为资产盘点的信息记载,如此的管理方式需要运用大量的人力来进行信息的纪录与分类,过程中容易导致信息的流失与传递的误差产生。因此将BIM运用于建筑设备的维护管理,信息能以三维模型显现,并储存于数字空间中,可视化的管理方便信息的读取及调阅、信息数字化方便信息管理及更改,BIM导入维运管理减少了人力与时间成本的浪费以及弥补信息上的落差。维运管理阶段将会是BIM运用在建筑生命周期过程中的重要发展趋势,而目前BIM维运管理的运用着重于设施管理。设施管理主要的项目内容在于建物的资产管理与设备的修缮维护等,以维持建物基本运作之对象与设备的静态管理层面。

BIM运用于设施管理中,服务的范畴停留于设备的勘验与维修的维护管理,还未能达到建物及信息与环境及用户之间的相互关联的操作,BIM的导入应更积极的使建物与环境产生互动,以下列出目前设施管理上仍需加强的部分:

(1)停留在被动的管理模式:目前设备上的维护仍需要管理人员定期勘验,无法实时更新设施状态,设备处于被动的维护与检验,虽然管理者在管理过程中藉由BIM做资产的盘点以及数据的回报可减少信息上的遗失,提升信息的完整性,但在管理的流程上与BIM介入之前的传统管理方式并无太多的差异性。信息的管理仍呈现用户单方面的对照,对象与信息之间缺乏积极主动的响应环境变化与用户需求之动态调适管理。

(2)信息与空间脱节:目前BIM在设施管理中的信息皆是在计算机中以虚拟数字信息呈现,信息的呈现有条列式的报表与可视化的模型,但只能在虚拟平台里浏览,在检视过程中无法在现地空间达到所见即所得,管理者在勘验对象时,无法直接获取背后的相关数据,信息的运用与实际空间场域的对象关联性低。即便可以使用虚拟实境技术(VirtualReality,VR)带领管理者进入虚拟模型中浏览建筑模型的信息,但信息与实际的建筑空间并无任何连结,仍无法对维运管理阶段提供实质面的运用。

(3)脱离场域的管理:信息的服务与需要管理的场域有所脱节,管理者必须具备一定的知识才能判断哪些设备需要被维护,现阶段的设施管理模式无法将BIM的信息完整呈现于实际空间中要服务的对应位置整合AR与BIM应用于实虚共构之建物维运管理上,管理者于现地勘验后难以直接在现地完成信息的整理流程,需要依赖于常识与印象完成维护管理,对于整个空间场域的管理与服务投递无法直接在现地建筑空间的位置中呈现,信息的管理服务需在另一个场域中完成,服务管理与现地的空间脱节、关联性低。

Revit MEP如何给管道添加坡度?

Revit MEP如何给管道添加坡度?下面就来分析一下。

1:单击“系统”→“管道”→“向上坡度或向下坡度”,发现坡度值中只有一些坡度选择。

  2:添加一些项目需要的水管坡度值,方便后期绘制有坡度管道选择。在“管理”→“MEP设置”→“机械设置”→“选择管道设置”→“坡度”中添加坡度。

  3:添加完成后,我们再选择绘制管道,选择向上坡度或向下坡度,发现坡度值中出现了我们刚添加的坡度,证明坡度值添加完成。