对Revit 2020 API的重大更改和更新
API变化
自动初始化CEFSharp
Revit和Autodesk外接程序在内部使用CEFSharp库实现几个功能。一些第三方的外接程序也是这样做的。有时,当使用不同版本的库时,会导致Revit的不稳定性问题,为了避免版本冲突,我们将澄清使用的是什么CEFSharp版本,并在所有外接程序初始化之前加载它。
- 在这个版本中,Revit使用CEFSharp版本65.0.1。
- 在初始化过程中,启用了遗留JavaScript绑定:
MEP制造API降级
下列成员已被否决和替换:
不推荐成员 |
更换 |
FabricationConfiguration.GetMaterialThickness() |
材料厚度 |
结构API降级
下列成员遭到反对:
不推荐成员 |
更换 |
Autodesk.Revit.DB.Structure.StructuralConnectionHandler.GetSubPartIds() |
N/a |
子部分功能以前已被删除,因此没有替换方法。
导出API变化
下列成员已被否决和替换:
不推荐成员 |
更换 |
CustomExporter.export(View3d) |
出口(视图) |
有关自定义导出程序的新2D视图支持的详细信息,请参阅API添加部分。
图像API变化
随着为支持PDF导入和图像API扩展所做的更改,下列成员和类已被取消推荐和替换:
不推荐成员 |
更换 |
ImageType.Create(文档,字符串) |
ImageType.Create(文档,ImageTypeOptions) |
ImageType.ReloadFrom(字符串) |
ImageType.ReloadFrom(ImageTypeOptions) |
导入(String,ImageImportOptions,View,Out元素) |
ImageType.Create()后面跟着ImageInstance.Create() |
类ImageImportOptions |
类ImageTypeOptions |
废API去除
下面的API成员和类已经被标记为过时,在本版本中已经被删除。有关要使用的替换的信息,请参阅以前版本中的API文档:
班
方法
- ProjectLocation.IsProjectLocationNameUnique(Document,字符串)
- FabricationPart.IsStraightSegment(文件,ElementId)
- FabricationPart.CanSplitStraight(文件,ElementId,XYZ)
- ExportToMAJ(Document,IList,String,bool,走出(IList)
- ParameterFilterElement.Create(文档、字符串、IC管束、IList)
- ParameterFilterElement.GetRules()
- 参数FilterElement.etRules()
- ParameterFilterElement.AllRuleParametersApplicable(IList)
- ParameterFilterElement.AllRuleParametersApplicable(文档,IC-,IList)
- ParameterFilterElement.GetRuleParameter(FilterRule)
- ParameterFilterElement.GetRuleParameters()
特性
API添加
附加详细组API添加
Group和GroupTypeAPI现在包含了与附加的详细组相关的API。
新方法:
- ShowAttachedDetailGroups()
- ShowAllAttachedDetailGroups()
- HideAttachedDetailGroups()
- HideAllAttachedDetailGroups()
控制元素组的附加详细信息组的可见性,如给定视图中所示。
新方法:
- Group.GetAvailableAttachedDetailGroupTypeIds()
- GroupType.getAvailableAttachedDetailGroupTypeIds()
返回此组或组类型可用的附加详细信息组。
新方法:
检查输入附加详细信息组的方向是否与输入视图的方向匹配。请注意,垂直高程视图(例如,北视图和东视图)中的细节组被认为是兼容的。当显示这些详细信息组时,如果注释的方向与目标视图的方向不匹配(例如,故障定义维度Per头arToView),则可以生成基于id的错误(FailureMessage)。为了避免在错误的视图中显示详细组,您可以检查详细信息组的OwnerViewId,以确保它与试图在其中显示它的视图相匹配。
新特性:
- IsAttached集团
- 帕伦特集团(Group.AttachedParentId)
提供有关组是否被附加的信息,如果是,则提供与其关联的组的信息。
PDF和ImageAPI添加
ImageType API
新成员:
- ImageType.Create(文档,ImageTypeOptions)
- ImageType.CanReload()
- ImageType.ReloadFrom(ImageTypeOptions)
- ImageType.ExternalResourceType
- ImageType.PageNumber
- ImageType.PathType
添加对将特定页面从PDF加载为图像、从路径以外的外部资源位置加载图像以及以相对或绝对形式存储路径的支持。API也进行了修改,允许在一个操作中加载ImageType,并将其放置在单独操作中的视图中。
其中一些成员引用新类。
包含在创建或重新加载图像时使用的选项,包括:
- ImageTypeOptions.IsValid()
- 图像类型选项.页面编号
- ImageTypeOptions.Path
- 图像类型选择分辨率
- ImageTypeOptions.SetExternalResourceReference()
分辨率以dpi测量,并将光栅图像中的像素数与其大小联系起来。
ImageInstance API
新班
表示放置在视图中的图像。它包括:
- Create(文档、视图、元素ID、ImagePlacementOptions)
- ImageInstance.GetLocation(BoxPlacement)
- 设置位置(XYZ,BoxPlacement)
- ImageInstance.Width
- 想象
- ImageInstance.EnableSnaps
只能为基于PDF的实例启用抓取功能。
元素LogicalFilter API添加
设置滤波器
新职能:
- ElementLogicalFilter.etFilters()
允许设置由给定的ElementLogicalFilter组合的ElementFilter。这允许使用更简单的方法修改存储在视图筛选器中的筛选条件。
应用程序API添加
日志回放
新职能:
确定Revit当前是否处于日记播放模式。
UI API添加
将动画进度条添加到任务对话框中
新财产:
- TaskDialog.EnableMarqueeDialogBar
允许TaskDialog包含具有不确定的开始和停止的进度条。动画将持续到TaskDialog关闭为止。
为DockablePane指定最小宽度和高度
现在可以为DockablePane设置最小宽度和高度:
- Autodesk.Revit.UI.DockablePaneState.MinimumWidth
- Autodesk.Revit.UI.DockablePaneState.MinimumHeight
它们被指定为已注册窗格的InitialState的一部分。这两个属性的默认值都是200像素。
文件添加
返回云工作共享模型的云模型信息
新财产:
指示当前文档是否位于云中。
如果模型存储在云中,则返回模型的GUID。
新方法:
返回云模型路径。
在BIM 360上打开/保存/修改云模型
新方法:
将当前模型保存为BIM 360中的云模型。通过此方法只能保存非工作共享模型。
新方法:
保存当前的云模型。
新方法:
将云模型转换为工作共享云模型。可以使用Document.CanEnableCloudWorkshare()方法检查该操作在给定模型上是否有效。
REVIT的现有模型打开函数(Application.OpenDocumentFile和UIApplication.OpenAndActivateDocument)如果用户试图在没有正确权限的情况下打开云模型,则将抛出RevitServerUnAuthizedException。
确定是否正在进行背景计算
新方法:
- Document.IsBackoundCalculationInProgress()
标识是否正在对此文档进行任何背景计算。当文档正在进行背景计算时,用户无法执行以下操作:
-保存/关闭文件。
-出口/打印文件。
-在工作共享环境中同步到中央。
-创造一个钢铁元素。
-复制/镜面/旋转钢制元素。
-编辑板元素的草图。
-编辑一个自定义连接。
类别API添加
类别可见性
新财产:
如果类别在Revit用户界面中的类别列表中对用户可见,则返回true(对话框,如可见性图形或视图过滤器)。
获取类别的字符串名称
新方法:
- LabelUtils.GetLabelFor(BuiltInClass)
返回当前Revit语言中给定BuiltInClass的字符串名称。
参数API添加
获取局部参数名称
新方法:
- LabelUtils.GetLabelFor(BuiltInParameter,Autodesk.Revit.ApplicationServices.LanguageType))
返回表示输入语言内建参数的本地化字符串名称。
隐藏空参数
新财产
指示当共享参数没有值时是否应隐藏在属性调色板和Element.GetOrderedParameters()中。
类似的功能已经添加到其他类中:
- ExternalDefinitionCreationOptions.HideWhenNoValue
- SharedParameterElement.ShouldHideWhenNoValue()
新方法:
可以重置共享参数的值,该参数的HideWhenNoValue标志设置为已清除状态。(此方法不适用于清除任何其他参数类型的值)。
是否存在参数值的过滤
新的过滤器类:
-
参数值表示规则
-
HasValueFilterRule
- HasNoValueFilterRule
定义筛选器规则,计算参数是否具有特定元素的值。
使用静态方法:
- FilterRule.CreateHasValueParameterRule()
- FilterRule.CreateHasNoValueParameterRule()
若要创建这些规则的实例以用于参数筛选器,请执行以下操作。
在附表中,使用新的枚举值:
- ScheduleFilterType.HasValue
- ScheduleFilterType.HasNoValue
连同方法:
- ScheduleDefinition.CanFilterByValuePresence()
根据分配给该参数的值的存在与否进行筛选。
几何API添加
曲线环API
新财产:
返回曲线循环中的曲线数。
新方法:
- CurveLoop.CreateViaOffset()
创建一个新的曲线循环,它是现有曲线循环的偏移量。这种方法不同于以前公开的API,因为它以一个双偏移距离数组而不是一个双偏移距离作为输入。此数组的大小必须与曲线循环的大小相匹配。位置曲线 i 将与双面位置相抵。 i 在数组中。
视图API添加
视图模板API添加
新方法:
- View.createViewTemplate()
- View.isViewValidForTemplatcreation()
允许您将现有视图转换为视图模板。创建的视图模板具有自动生成的唯一名称。
RevitAPI为几个版本提供了一个功能相当全面的功能,可以设置和修改视图模板及其属性。这些功能现在新的示例“ViewTemplate Creation”中得到了演示。
视图筛选器API添加
对ParameterFilterElement存储的ElementFilter(表示视图筛选器的类)的验证限制已经放宽,以便更灵活地创建OR筛选器,其中条件只能引用与特定类别关联的参数。当前,ElementFilter必须是ElementParameterFilter或ElementLogicalFilter,它们表示ElementParameterFilter的布尔组合。此外,我们检查每个ElementParameterFilter是否满足以下条件:
- 它的FilterRules数组不是空的,包含:
- 任何类型的FilterValueRule、FilterInverseRule和SharedParameterApplicableRule或
- 只包含一个来自此参数FilterFilterElement或
- 确切地说有两条规则:第一条是FilterRecoryRule,只包含来自此ParameterFilterElement存储的类别的一个类别;第二条是FilterValueRule、FilterInverseRule或SharedParameterApplicableRule类型的FilterRule。
注意,只有当ElementParameterFilter的父节点是LogicalOrFilter时,才允许第二个和第三个项目中的情况。
除了验证方面的变化外,新方法还包括:
- ParameterFilterElement.GetElementFilterParametersForCategory()
检索与筛选器中的所有规则关联的参数列表,这些规则与对应于单个类别ID的FilterCatoryRule组合(使用逻辑和)。
进度表API添加
新财产:
指示计划网格行是否在工作表上可见。
新财产:
允许用户在表格视图中设置计划的缩放级别。此设置不会更改工作表视图中文本、行或列的大小。此外,该设置是临时的,仅适用于当前会话。
站点API添加
足表面加成
新方法:
- Autodesk.Revit.DB.Architecture.TopographySurface.Create(Document,IList点,IList面,字符串)
从给定的三角剖分面列表创建地形表面。
新方法:
- Autodesk.Revit.DB.Architecture.TopographySurface.IsValidFaceSet()
检查给定的三角剖分数据集是否有效。
拓扑连接型加法
新班级:
- Autodesk.Revit.DB.Architecture.TopographyLinkType
表示作为链接导入到当前Revit模型中的站点文件。
新方法:
- Autodesk.Revit.DB.Architecture.TopographyLinkType.Reload()
从当前位置重新加载TpographyLinkType。
共享坐标API添加
位置加法
新方法:
设置当前文档的地理坐标系统。
基点加法
新的只读属性:
获取与基点在Revit内部坐标中的位置对应的XYZ值。
新的只读属性:
获取与基点在转换(共享)坐标中的位置对应的XYZ值。
部分API添加
从DirectShape创建部件
现在可以通过DirectShape实例在同一主机文档或链接中创建部件。由于各种原因可能会阻止从元素创建部分,所以新方法
- DirectShape.CanCreateParts()
- DirectShapeType.CanCreateParts()
指示是否可以从其中一个类的实例创建部件。
返回创建分割部分的实体
新方法:
- GetSplittingCurves(文档,ElementId)
- GetSplittingCurves(Document,ElementId,Out SketchPlane)
识别并返回所绘制的曲线,以创建部分分割,并可选地,还输出这些曲线的草图平面。
新方法:
- GetSplittingElements(文档,ElementId)
标识并返回用于创建除法的元素(参考平面、级别或网格)。
栏杆API添加
BalusterInfo引用名
新职能:
- GetReferenceNameForhost()
- BalusterInfo.GetReferenceNameForTopails()
允许访问名称字符串,以便在当前Revit语言中用作对“主机”或“顶级铁路”的引用。
导出API添加
CustomExporter现在支持一些2D视图
类CustomExporter现在可以导出2D视图。目前唯一支持的2D视图类型是计划、区段和海拔。新方法:
接受3D或2D视图。
方法:
- CustomExporter.export(IList)
现在可以接受3D或2D视图,但集合中的视图必须是所有3D或所有2D视图的限制。
对于export()调用,导出上下文必须与视图的类型相对应;3D视图使用IModelExportContext或IPhotoRenderContext,2D视图使用IExportContext2D。
几个新属性扩展了CustomExporter的选项,以支持2D对象:
- CustomExporter.Export2DGeometricObjectsIncludingPatternLines-指示几何对象的模式线是否应该在2D上下文中导出。默认为false。
- CustomExporter.Export2DIncludingAnnotationObjects-指示是否应该在2D上下文中导出注释对象。默认为false。
- Export2DForceDisplayStyle-强制导出的显示样式。如果样式为DisplayStyle.Un定义,则导出将使用DisplayStyle.WireFrame表示线框视图,DisplayStyle.HDR用于其他视图。默认为DisplayStyle.Un定义。
新界面:
应该用于导出2D视图。除了从IExportContext继承的方法之外,它还有以下方法:
- IExportContext2D.OnElementBegin2D()
- IExportContext2D.OnElementEnd2D()
- IExportContext2D.OnFaceEdge2D()
- IExportContext2D.OnFaceSilhouette2D()
新班级:
- 元素节点
- FaceEdgeNode
- FaceSilhouetteNode
包含各种2D导出对象的数据。
关于DisplayStyle2D导出的几点注记。
- 不管最终输出的对象是什么,即使它被另一个元素所屏蔽,几何对象方法(On曲线、OnFaceEdge2D、OnFaceSilhouet2D)都会被调用。
在DisplayStle.HDR:
- 调用Tessellated几何学方法(OnLineSegment和OnPolylineSegments),而不考虑各自几何对象方法(On曲线、OnFaceEdge2D、OnFaceSilhouette2D)的返回值。
- 这些方法都不会在OnInstanceBegin/OnInstanceEnd或OnLinkBegin/OnLinkEnd的相应调用对之间调用。它们在OnElementBegin2D/OnElementEnd2D和OnViewBegin/OnViewEnd之间调用。
有关使用API自定义导出2D视图的示例,请参阅新的示例CustomExporter/Custom2DExporter。
新的Navisworks出口选项
在NavisworksExportOptions类中添加了三个新选项:
- 海军-出口-选择。因素
- 海军-出口-转灯
- NavisworksExportOptions.ConvertLinkedCADFormats
请注意,您需要获得一个更新的Navisworks出口商才能成功地使用这些选项。
多引用注释加法
附加参考资料
多引用分析现在可以从模型中选择其他引用。以下新方法支持这一点:
- MultiReferenceAnnotationOptions.SetAdditionalReferencesToDimension()
- MultiReferenceAnnotationOptions.GetAdditionalReferencesToDimension()
- MultiReferenceAnnotation.AreElementsValidForMultiReferenceAnnotation()
请注意,对维度的附加引用不能来自与MultiReferenceAnnotationType的引用类别相同的类别。可以使用以下函数来验证这一点:
- MultiReferenceAnnotationOption.ReferencesDontMatchReferenceCategory()
3D视图放置限制
新方法:
- MultiReferenceAnnotation.Is3DViewValidForDimension()
用于验证维度对于视图是否有效。无法在3D视图中创建线性固定维度。只有当视图方向垂直于当前工作平面法线时,才能在三维视图中创建线性维数。
材料API添加
上光模式API
为了帮助创建访问和操作给定模式的属性的代码,引入了预定义的属性以允许编译时引用属性名称,而无需将其转录为代码中的字符串。新的预定义属性在新类中可用:
- AutoDescrip.Revit.DB.Visual.AdvancedGlaing
其内容代表了“高级玻璃”型的外观资产。
分析API添加
旅游API路径
新班级:
- AutoDesk.Revit.DB.Analysis.PathOfTravel
表示计算计划视图中两个点之间最短可导航路径的元素。
这个班的一些新成员包括:
- Create()-创建一个给定起始点和结束点的PathOfTravel元素。
- CreateMultiple()-创建给定起始点和结束点数组的多个PathOfTravel元素。
- CreateMack()-通过将一组起始点中的每一个映射到一组端点中的每一个来创建多个PathOfTravel元素。
- PathOfTravel.GetCurveloop()
- 路径开始
- 路径旅行路径中点
- 路径路径
新班级:
- Autodesk.Revit.DB.Analysis.RouteAnalysisSettings
表示一个新的设置元素,该设置元素包含计划视图中用于路由计算的项目范围设置。目前,这些设置只供AutoDescri.Revit.DB.Analysis.PathOfTravel元素使用,但在将来,它们可以被任何其他功能使用,这些功能可以进行路由计算。
一些新成员包括:
- RouteAnalysisSettings.EnableIgnoredCategoryIds()-允许api用户在计算期间启用忽略某些类别的元素。
- SetIgnoredExperoryIds()-设置在计算过程中要忽略的类别。
- RouteAnalysisSettingAnalysisZoneTopoffset-分析区域顶部,指定为高于计划视图级别的偏移量。
- RouteAnalysisSettings.AnalysisZoneBottomOffset-分析区域底部,指定为高于计划视图级别的偏移量。
结构API添加
RebarConstraint加法
新方法:
- RebarConstraint.IsReferenceValidForConstraint()
检查提供的引用是否可用于创建Rebar约束。
基于共享参数的自由表格钢筋更新
自由格式钢筋现在可以基于一个或多个共享参数重新生成.添加了几个方法来支持此行为:
- Autodesk.Revit.DB.Structure.RebarFreeFormAccessor.AddUpdatingSharedParameter()
- Autodesk.Revit.DB.Structure.RebarFreeFormAccessor.RemoveUpdatingSharedParameter()
- Autodesk.Revit.DB.Structure.RebarFreeFormAccessor.GetUpdatingSharedParameters()
- Autodesk.Revit.DB.Structure.RebarUpdateCurvesData.GetChangedSharedParameterGUIDs()-返回一个数组,该数组包含自上次再生以来更改的共享参数。
- Autodesk.Revit.DB.Structure.RebarUpdateCurvesData.GetRebarId()-返回正在重新生成的钢筋的元素ID。
注意,在设置依赖项之前,共享参数必须已绑定到Rebar类别。
StructuralConnectionHandler添加
新财产:
- Autodesk.Revit.DB.Structure.StructuralConnectionHandler.OverrideTypeParams
允许或不允许重写连接类型的参数。
当设置为true时,将通过复制类型参数集为此连接创建一组实例参数。用户可以更改这些实例参数,以便使此连接不同于其他类型的实例。对类型参数的任何进一步修改都不会影响此实例(直到“覆盖”被关闭)。
当设置为false时,将丢弃连接实例参数,并再次使用类型参数。
MEP API添加
部分加法
新方法:
- FabricationPart.GetFisationLining几何学()
返回制造部件的任何绝缘或衬垫几何形状。如果没有绝缘或衬板应用,返回值将为空。
FabricationNetworkChangeService
新方法:
- FabricationNetworkChangeService.ChangeService()
将所选元素标识符的服务更改为传递的服务、组标识符和限制仅存在于组标识符中的部件的位置的选项。
电子系统API添加
新特性:
- 电路连接型
- ElectricalSystem.IsBasePanelFeedThroughLugsOccupied
提供对所述电气系统的电路连接类型的访问,以及关于基板的进给通过凸耳是否已被占用的信息。