Revit工作集协同模式的API应用探究

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

© 2013 Autodesk
获得编辑权限
ICollection<ElementId> checkedOutElementIds = WorksharingUtils.CheckoutElements(RevitDoc, elementsToBeCheckedout);
© 2013 Autodesk
© 2013 Autodesk
课程简介
对于大型的设计项目,有效地协同工作、工作共享 可以提高建筑设计的效率,优化建筑的经济性,对 于设计团队来说无疑是非常重要的话题。本课程将 从二次开发的角度,介绍工作共享相关API的设计 与使用。
© 2013 Autodesk
日程
Revit工作共享主要工作流程 工作共享中的数据操作 工作共享中的工作集管理 工作共享中的权限管理 工作共享的显示模式 工作共享相关的事件
© 2013 Autodesk
ElementWorksetFilter
ElementWorksetFilter elmentWorksetFilter = new ElementWorksetFilter(worksetId, false);
FilteredElementCollector collector = new FilteredElementCollector(RevitDoc); ICollection<Element> worksetElemsfounds = collector.WherePasses(elmentWorksetFilter).ToElements();
权限
保存
同步到中心文件
© 2013 Autodesk
数据提取
载入最新工作集 保存
© 2013 Autodesk
数据修改
权限
没有权限 授权 授权 修改
© 2013 Autodesk
Worksharing API
© 2013 Autodesk
工作共享数据操作
Save, SaveAs, SaveOptions和 WorksharingSaveAsOptions Open和OpenOptions ReloadLatest,HasAllChangesFromCentral 和ReloadLatestOptions SynchronizeWithCentral, SynchronizeWithCentralOptions,Relinqui shOptions和TransactWithCentralOptions
© 2013 Autodesk
WorksetDefaultVisibilitySettings
WorksetDefaultVisibilitySettings defaultVisibility = WorksetDefaultVisibilitySettings. GetWorksetDefaultVisibilitySettings(RevitDoc); bool isVisible = defaultVisibility.IsWorksetVisible(worksetId); defaultVisibility.SetWorksetVisibility(worksetId, !isVisible);
CallBack callInst = new CallBack(); transOptions.SetLockCallback(callInst); RevitDoc.SynchronizeWithCentral(transOptions, options);
© 2013 Autodesk
工作共享中的工作集管理

Workset和WorksetTable WorksetDefaultVisibilitySettings WorksetVisibility ElementWorksetFilter FilteredWorksetCollector和 WorksetKindFilter
© 2013 Autodesk
© 2013 Autodesk
WorksetVisibility
View view = getActiveView(); WorksetVisibility visibility = view.GetWorksetVisibility(worksetId); view.SetWorksetVisibility(worksetId, WorksetVisibility.Hidden); visibility = view.GetWorksetVisibility(worksetId); view.SetWorksetVisibility(worksetId, WorksetVisibility.UseGlobalSetting); visibility = view.GetWorksetVisibility(worksetId); view.SetWorksetVisibility(worksetId, WorksetVisibility.Visible);
© 2013 Autodesk
SynchronizeWithCentral
SynchronizeWithCentralOptions options = new SynchronizeWithCentralOptions(); options.Comment = @"Relinquish Options"; RelinquishOptions newRelinqOptions = new RelinquishOptions(false); newRelinqOptions.CheckedOutElements = true; newRelinqOptions.StandardWorksets = false; options.SetRelinquishOptions(newRelinqOptions); TransactWithCentralOptions transOptions = new TransactWithCentralOptions();
Workset和WorksetTable
WorksetTable worksetTable = RevitDoc.GetWorksetTable(); WorksetId activeId = worksetTable.GetActiveWorksetId(); Workset activeWorkset = worksetTable.GetWorkset(activeId); Workset wallWorkset = worksetTable.GetWorkset(wall.WorksetId);
© 2013 Autodesk
工作共享的显示模式
WorksharingDisplayMode WorksharingDisplaySettings WorksharingDisplayGraphicSettings
© 2013 Autodesk
Save, SaveAs, SaveOptions, SaveAsOptions和 WorksharingSaveAsOptions
© 2013 Autodesk
Open,OpenOptions和DetachFromCentralOption
OpenOptions openOptions = new OpenOptions(); WorksetConfiguration config = openOptions.GetOpenWorksetsConfiguration(); if (null == config) { config = new WorksetConfiguration(); openOptions.SetOpenWorksetsConfiguration(config); } config.OpenLastViewed(); Document newDoc = RevitApp.OpenDocumentFile(ModelPathUtils.ConvertUserVisiblePathTo ModelPath("OpenDocument.rvt"), openOptions);
© 2013 Autodesk
工作共享权限管理
EnableWorksharing CheckoutElements和RelinquishOwnership
© 2013 Autodesk
开启工作共享
RevitDoc.EnableWorksharing("abc", "def"); Assert.IsTrue(RevitDoc.IsWorkshared);
首届中国开发者训练营——DevCamp China 1st
Revit 工作集协同模式的API应用探究
刘培珺
Autodesk中国研究院 开发经理
© 2013 Autodesk
认识我
刘培珺
职务/Autodesk中国研究院 开发经理 部门/IPG
பைடு நூலகம்
2004年毕业于浙江大学CAD&CG国家重点实验室并获得工学 博士学位。毕业后加入阿尔卡特从事无线研发工作。2006 年加入Autodesk AEC部门,Revit API 团队开发经理,负 责Revit API的设计、开发与测试。
放弃编辑权限
TransactWithCentralOptions transOptions = new TransactWithCentralOptions(); RelinquishOptions relinqOptions = new RelinquishOptions(false); relinqOptions.CheckedOutElements = true; relinqOptions.FamilyWorksets = false; relinqOptions.StandardWorksets = false; relinqOptions.UserWorksets = false; relinqOptions.ViewWorksets = false; // relinquish checked out elements RelinquishedItems items = WorksharingUtils.RelinquishOwnership(RevitDoc, relinqOptions, transOptions);
© 2013 Autodesk
ReloadLatest
Transaction trans = new Transaction(RevitDoc, "RL"); trans.Start(); ReloadLatestOptions options = new ReloadLatestOptions(); RevitDoc.ReloadLatest(options); bool isUpdated = RevitDoc.HasAllChangesFromCentral(); trans.Commit();
© 2013 Autodesk
FilteredWorksetCollector和WorksetKindFilter
FilteredWorksetCollector collector = new FilteredWorksetCollector(RevitDoc); collector.OfKind(WorksetKind.UserWorkset); IList<Workset> worksets = collector.ToWorksets(); WorksetKindFilter standardFilter = new WorksetKindFilter(WorksetKind.StandardWorkset, true); collector.WherePasses(standardFilter);
© 2013 Autodesk
什么是工作共享?
© 2013 Autodesk
Revit工作协同功能
© 2013 Autodesk
工作协同主要 流程
© 2013 Autodesk
创建中心文件
打开工作共享
保存
© 2013 Autodesk
创建本地文件
打开
保存
© 2013 Autodesk
数据保存
相关文档
最新文档