尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

revit api扩展存储extensible storage

revit api扩展存储extensible storage
📅 发布时间:2026/6/20 22:44:51

revit api扩展存储extensible storage

    public Result Execute(ExternalCommandData commandData,ref string message,ElementSet elements){UIDocument uiDoc = commandData.Application.ActiveUIDocument;Document doc = uiDoc.Document;// Create transaction for working with schemaTransaction trans = new Transaction(doc, "Extensible Storage");trans.Start();// Select a wall elementWall wall = null;try{Reference r = uiDoc.Selection.PickObject(ObjectType.Element,new WallSelectionFilter());wall = doc.GetElement(r) as Wall;}catch (Autodesk.Revit.Exceptions.OperationCanceledException){message = "Nothing selected; please select a wall to attach extensible data to.";return Result.Failed;}Debug.Assert(null != wall, "expected a wall to be selected");if (null == wall){message = "Please select a wall to attach extensible data to.";return Result.Failed;}// Create a schema builderSchemaBuilder builder = new SchemaBuilder(_guid);// Set read and write access levelsbuilder.SetReadAccessLevel(AccessLevel.Public);builder.SetWriteAccessLevel(AccessLevel.Public);// Note: if this was set as vendor or application access, // we would have been additionally required to use SetVendorId// Set name to this schema builderbuilder.SetSchemaName("WallSocketLocation");builder.SetDocumentation("Data store for socket related info in a wall");// Create field1FieldBuilder fieldBuilder1 =builder.AddSimpleField("SocketLocation", typeof(XYZ));// Set unit typefieldBuilder1.SetUnitType(UnitType.UT_Length);// Add documentation (optional)// Create field2FieldBuilder fieldBuilder2 =builder.AddSimpleField("SocketNumber", typeof(string));//fieldBuilder2.SetUnitType(UnitType.UT_Custom);// Register the schema objectSchema schema = builder.Finish();// Create an entity (object) for this schema (class)Entity ent = new Entity(schema);Field socketLocation = schema.GetField("SocketLocation");ent.Set<XYZ>(socketLocation, new XYZ(2, 0, 0), DisplayUnitType.DUT_METERS);Field socketNumber = schema.GetField("SocketNumber");ent.Set<string>(socketNumber, "200");wall.SetEntity(ent);// Now create another entity (object) for this schema (class)Entity ent2 = new Entity(schema);Field socketNumber1 = schema.GetField("SocketNumber");ent2.Set<String>(socketNumber1, "400");wall.SetEntity(ent2);// Note: this will replace the previous entity on the wall // List all schemas in the documentstring s = string.Empty;IList<Schema> schemas = Schema.ListSchemas();foreach (Schema sch in schemas){s += "\r\nSchema Name: " + sch.SchemaName;}TaskDialog.Show("Schema details", s);// List all Fields for our schemas = string.Empty;Schema ourSchema = Schema.Lookup(_guid);IList<Field> fields = ourSchema.ListFields();foreach (Field fld in fields){s += "\r\nField Name: " + fld.FieldName;}TaskDialog.Show("Field details", s);// Extract the value for the field we createdEntity wallSchemaEnt = wall.GetEntity(Schema.Lookup(_guid));XYZ wallSocketPos = wallSchemaEnt.Get<XYZ>(Schema.Lookup(_guid).GetField("SocketLocation"),DisplayUnitType.DUT_METERS);s = "SocketLocation: " + Format.PointString(wallSocketPos);string wallSocketNumber = wallSchemaEnt.Get<String>(Schema.Lookup(_guid).GetField("SocketNumber"));s += "\r\nSocketNumber: " + wallSocketNumber;TaskDialog.Show("Field values", s);trans.Commit();return Result.Succeeded;}

 

相关新闻

  • 【题解】Codeforces 2062F Traveling Salescat
  • revit api 编程实现窗口缩放视图
  • Tauri2-Vite7Admin客户端管理后台|tauri2.9+vue3+element-plus后台系统

最新新闻

  • 动态稀疏坍缩
  • 124、【Agent】【OpenCode】项目配置(tsconfig.json 与 package.json)
  • GHunt实战指南:从Google邮箱挖掘公开情报的OSINT工具
  • PNX2015 VLD模块寄存器配置与错误处理实战指南
  • 2026年6月酱肉小笼包招商推荐,美食小吃/包子/手工小笼包/小吃/非遗红油小笼包/酱肉小笼包,酱肉小笼包招商推荐 - 品牌推荐师
  • Obsidian+DeepSeek V4百万上下文实战:构建知识操作系统

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号