IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Revit SDK 介绍:FabricationPartLayout -> 正文阅读

[开发工具]Revit SDK 介绍:FabricationPartLayout

前言

Autodesk Fabrication 是一款产品,它和 Revit 做了集成。这是 SDK 中对于它们集成提供的 API 例子。

内容

Ancillaries

运行命令 Ancillaries 获取预制构件对用的辅助设备:
在这里插入图片描述
从 Revit UI 上不能完全找到对应的内容,从字面上猜测,应该是垫圈、连接、铆钉等的设置。
命令文件:Revit 2021 SDK\Samples\FabricationPartLayout\CS\Ancillaries.cs
整体逻辑:

  1. 确认当前文件有预制零件的配置,FabricationConfiguration.GetFabricationConfiguration(doc)
  2. 通过点选,选择一个 FabricationPart
  3. 获取辅助设备,fabPart.GetPartAncillaryUsage()
  4. 获取辅助设备的作用和名称,ancillaryUsage.UsageTypeconfig.GetAncillaryName(ancillaryUsage.AncillaryId)
    核心代码整理:
// 得到预制相关的配置
FabricationConfiguration config = null;
config = FabricationConfiguration.GetFabricationConfiguration(doc);

// 选择一个预制零件
FabricationPart fabPart = null;
Reference refObj = uidoc.Selection.PickObject(ObjectType.Element, "Pick a fabrication part to start.");
fabPart = doc.GetElement(refObj) as FabricationPart;

// 获取辅助设备
IList<FabricationAncillaryUsage> ancillaries = fabPart.GetPartAncillaryUsage();
List<string> ancillaryDescriptions = new List<string>();

// 创建一个包含辅助设备作用和名称的列表
foreach (var ancillaryUsage in ancillaries)
{
   FabricationAncillaryType ancilType = ancillaryUsage.Type;
   FabricationAncillaryUsageType usageType = ancillaryUsage.UsageType;
   ancillaryDescriptions.Add($"{ancilType.ToString()}: {usageType.ToString()} - "
      + $"{config.GetAncillaryName(ancillaryUsage.AncillaryId)}");
}

ButtonGroupExclusions

运行命令的结果,把特定的按钮和组排除出去,在 UI 上体现为多了一个红色的叉:
在这里插入图片描述
命令文件:Revit 2021 sdk\samples\FabricationPartLayout\CS\ButtonGroupExclusions.cs
核心逻辑:

// 通过名称获得对应的 service
FabricationConfiguration config = FabricationConfiguration.GetFabricationConfiguration(doc);
IList<FabricationService> allLoadedServices = config.GetAllLoadedServices();
FabricationService selectedService = allLoadedServices.FirstOrDefault(x => x.Name == serviceName);

// 从 service 排除单个按钮或者一个组
selectedService.OverrideServiceButtonExclusion(rectangularGroupIndex, i, true);
selectedService.SetServiceGroupExclusions(new List<int>() { roundGroupIndex });

ChangeService

运行命令的结果:
在这里插入图片描述
实际上就是修改了服务的类型:
在这里插入图片描述
实际效果和UI上的更改服务是一样的:

在这里插入图片描述
命令文件:Revit 2021 sdk\samples\FabricationPartLayout\CS\ChangeService.cs
核心逻辑:

FabricationNetworkChangeService applychange = new FabricationNetworkChangeService(doc);
// Set the selection of element identifiers to be changed
applychange.SetSelection( selIds );
// Set the service to the second service in the list (ductwork exhaust service)
applychange.SetServiceId( allLoadedServices[1].ServiceId );
// Set the group to the second in the list (round)
applychange.SetGroupId( 1 );
applychange.SetMapOfSizesForStraights( sizeMappings );
applychange.SetMapOfInLinePartTypes( swapinlineIds );
FabricationNetworkChangeServiceResult result = applychange.ApplyChange();

其他命令

ConvertToFabrication.cs

把原生 Revit 构件转成 FabricationPart

ExportToMAJ.cs

输出 MAJ 文件:

ISet<ElementId> exported = FabricationPart.SaveAsFabricationJob(doc, elementIds, filename, new FabricationSaveJobOptions(true));

ExportToPCF.cs

输出 PCF 文件:

FabricationUtils.ExportToPCF(doc, fabParts, filename);

FabPartGeometry.cs

输出几何图形:

IList<Mesh> main = getMeshes(part.get_Geometry(options));
IList<Mesh> ins = getMeshes(part.GetInsulationLiningGeometry());

FabricationPartLayout.cs

自动创建一系列的预制构件。需要将 Revit 切换为英文版才能正常运行,原因是代码里面参数名称写成了英文,而不是通过 id 去查找。
在这里插入图片描述

备注

用官方的例子,经常死机,有时间可以调查一下。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:25:54  更:2022-05-24 18:28:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:55:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码