revit如何创建revit2016项目样板文件在哪文件?

软件自带的项目样板文件有四个,每次做项目都要在其基础上做修改设置,可能会浪费很多时间,每一个企业、团队都喜欢制作自己的样板,今天小编带大家看看如何来创建一个属于自己团队的项目样板?1.浏览器组织的设置,将各个专业区分开来,设置成自己方便使用的样式;2.视图样板设置,调整好各个专业各个视图对应的模型显示状态(VV可见性),视图范围、视图名称、规程等参数,并保存视图样板;3.设置过滤器,根据项目的需要可能会用到不同的过滤器,这里建议每次做项目的时候都把设置好的过滤器保存下来,因为在开始项目之前谁也不知道具体需要设置什么样的过滤器;当然每次设置的过滤器要统一规范,不要随便命名;4.设置明细表,可以提前把明细表字段、设置规则、排序方式定义好;5.图纸设置,制作自己团队或企业的图纸,作为族保存好,以后可以一直使用;6.DWG导出设置,修改图元线型、线宽、线颜色、字体等导出到CAD的图层设置;7.载入常用的族,可以适当载入一些常用的族,保存在样本中,如:开关、插座、灯具等;8.系统族类型设置,提前将项目所需的族类型进行预设,如:管道、墙、柱等;设置项目样板的目的是为了能减少一些重复的操作,提高项目创建速率,缩短时间,但不是通过一两个项目就能把这个样板做好做完整,需要不断的积累经验,知识再来不断进行更新设置,才能完善项目样板,作出一个属于自己的样板文件。
参数参数是记录Revit元素模型属性的对象。在Revit软件中,属性界面中的内容就是Revit参数的一种展现形式。参数作为Revit提供的一种编辑图元参数的通用机制,这里介绍这种机制是如何实现的,以及如何访问参数。在Revit平台API中,参数在图元类中进行管理。可用以下这些方法访问参数:●通过遍历某图元所有参数的Element.Parameters集合获取所选图元参数●通过重载Element.Parameter属性直接访问参数。若参数不存在,则此属性返回null。●由Element.ParametersMap集合,通过名称访问参数。若已知名称字符串、内置ID、定义或GUID,则可从图元中检索参数对象。Parameter[String]属性重载根据其本地化名称获取参数,如果需在多个语言区域运行,并要按名称查找参数,那么编写的代码应能处理不同的语言。Parameter [GUID]属性重载根据其全局唯一标识 (GUID) 获取共享参数,当其创建时GUID即已被分配给共享参数。参数归属Revit的特点,就是其所有元素,都可以通过参数化驱动,参数之间可以进行计算,而驱动构件的运行,参数应用可划分为以下几个方面:1、族参数主要用于定义族的参数信息,用于驱动族的特点,其不会出现在明细表和标记之中,此参数存储在族文件本身。2、项目参数是之给当前项目中指定对象添加参数,此参数可以出现在明细表,但无法出现在标记中,此参数存储在项目文件之中。3、共享参数是文件外部定义的参数,这些参数需要共享文件来定义,其特点是可以由多个项目和族共享,也可以自由导出到任何明细表和标记中。4、全局参数是用于定义全局的参数信息,这个参数可以不归属任何构件,但可以作为其他构件参数中的变量。参数类型成员名称说明Number实数,可包括小数点Moment力矩AreaForce面力LinearForce线性力Force力YesNo布尔值,表示为Yes或NoMaterial材料属性值URL文本字符串,表示网址Angle角度。内部表示为弧度。用户可见为用户已选定的单位表示Volume体积。内部表示为十进制立方英尺。用户可见为用户已选择的单位表示Area面积。内部表示为十进制平方英尺。用户可见为用户已选择的单位表示Integer整数,或正或负Invalid参数类型无效,不应使用此值Length长度。内部表示为十进制英尺。用户可见为用户已选择的单位表示Text文本字符串获取/修改参数元素都有参数,可以通过Element.Parameters获取所有的参数,然后遍历找到需要的参数。也可以通过Element. get_ Parameter( 参数)来获取单个参数,这里“参数”有四种选择:string参数名字. BuiltInParameter参数枚举、Definition参数定义和Guid参数的guid.注意:使用元素名字查找元素的时候,需要注意本地化的问题,因为不同语言的Revito版本的参数名字是不一样的,比如中文版的叫“长度”的参数,英文叫“Length",同样的程序(比如上面的例子),在英文里面就会出问题。对此,我们建议尽量使用BuiltInParameter。效率上讲,最高的是BuiltInParameter参数,其次是Definition和Guid,最慢的是使用参数名字。using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
namespace HelloRevitParameter
{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class RevitAllParameterCmd : IExternalCommand
{
public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData, ref string message,
ElementSet elements)
{
try
{
UIDocument uidoc = commandData.Application.ActiveUIDocument;
//获取句柄
Document doc = uidoc.Document;
//获取文档
ICollection<ElementId> selIds = uidoc.Selection.GetElementIds();
//获取选择的图元id集合
Element element = null;
if (0 != selIds.Count)
{
element = doc.GetElement(selIds.Last());
}
if (null != element)
{
ParameterSet paramSet = element.Parameters;
//获取参数集合
if (paramSet.IsEmpty)
//判空
{
TaskDialog.Show("参数", "当前元素参数为空!");
}
else
{
string msg = string.Empty;
IEnumerator pIter = paramSet.GetEnumerator();
//循环访问的枚举数
while (pIter.MoveNext())
//循环输出参数
{
Parameter param = (Parameter)pIter.Current;
//获取枚举数当前位置的元素
if (null != param)
{
msg += string.Format("{0}:{1}\n", param.Definition.Name, param.AsValueString());
}
}
TaskDialog.Show("参数", msg);
}
}
else
{
TaskDialog.Show("选集", "当前选集没有元素!");
}
return Autodesk.Revit.UI.Result.Succeeded;
}
catch (Exception ex)
{
message = ex.Message;
return Autodesk.Revit.UI.Result.Failed;
}
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
namespace HelloRevitParameter
{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class RevitParameterCmd : IExternalCommand
{
public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData, ref string message,
ElementSet elements)
{
try
{
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
ICollection<ElementId> selIds = uidoc.Selection.GetElementIds();
Element element = null;
if (0 != selIds.Count)
{
element = doc.GetElement(selIds.Last());
}
if (null != element)
{
Parameter param = element.LookupParameter("类别");
if (null == param)
{
TaskDialog.Show("参数", "当前元素没有类别参数!");
}
else
{
string msg = string.Empty;
msg += string.Format("{0}:{1}\n", param.Definition.Name, param.AsValueString());
TaskDialog.Show("参数", msg);
}
}
else
{
TaskDialog.Show("选集", "当前选集没有元素!");
}
return Autodesk.Revit.UI.Result.Succeeded;
}
catch (Exception ex)
{
message = ex.Message;
return Autodesk.Revit.UI.Result.Failed;
}
}
}
}
使用BuiltInParameter获取长度wall wall= null;
Parameter parameterLength = wall. get_ Parameter(BuiltInParameter.CURVE_ELEM_LENGTH);
if (parameterlength ! = null && parameterLength.StorageType = = StorageType . Double)
{
double length = parameterLength.AsDouble( );
//使用length
}
2)修改参数获取到参数之后,进行修改就比较简单了,直接调用Parameter. Set(参数)这个函数。可以做一些判断判断该参数是否是ReadOnly (p.IsReadOnly)判断该参数交互时是否可修改(p.UserModifiable)判断该参数的StorageType将要写入该参数的值转换为相应的数据类型,然后Set()Parameter parameterBase0ffset = wall.get_ Parameter(BuiltInParameter.WALL BASE _OFFSET);
if (parameterBase0ffset ! = null && parameterBase0ffset.StorageType = = StorageType.
Double)
{
if (! parameterBase0ffset.IsRead0nly)
bool success = parameterBase0ffset.Set(10);
if (! success)
//更新错误报告
}
else
//参数是只读的
}
①设置的值类型一定要和参数的存储类型匹配,如果参数类型是string,我们调用的是Set(0. 123),就会出错。②只读参数(即Parameter. IsReadOnly= = true)无法被修改。

我要回帖

更多关于 revit2016项目样板文件在哪 的文章