当前位置: 首页 > news >正文

凡科建站怎么样网页设计实训报告

凡科建站怎么样,网页设计实训报告,如何注册网站平台,网站建设企业公司推荐在项目中需要读取rvt文件#xff0c;但是因为该格式为非公开格式#xff0c;其数据需要revit的支持#xff0c;但批量读取不可能一个一个用revit软件去打开。不过该方法还是需要revit的依赖#xff0c;速度比开软件快了知道多少1.1. 新建一个控制台项目1.2. 添加Revit API引…在项目中需要读取rvt文件但是因为该格式为非公开格式其数据需要revit的支持但批量读取不可能一个一个用revit软件去打开。不过该方法还是需要revit的依赖速度比开软件快了知道多少1.1. 新建一个控制台项目1.2. 添加Revit API引用我们找到revit安装目录下的这两个DLL添加到项目引用中RevitNET.dllRevitAPI.dll修改属性复制本地FALSE1.3. 为MAIN函数添加STAThread特性[STAThread]//一定要有static void Main(string[] args){}如果未添加则报错异常SEHException: 外部组件发生异常。1.4. 修改控制台项目为64位由于revit为64位程序所以我们的控制台程序一定要为64位才可正常使用。1.5. 添加封装好的revitContext类可以直接使用可以根据自己需要去修改其中的Application就是revit主要的public class RevitContext{#region private fieldsProduct _revitProduct;private static bool isLoadEnv false;//是否已添加过环境变量#endregion#region public fields/// /// revit程序目录/// public static string RevitPath;#endregion#region eventpublic event EventHandler InitRevitFinished;#endregion#region public properties/// /// 打开REVIT文件时的设置/// public OpenOptions OpenOptions { get; set; }/// /// Revit Application/// public Autodesk.Revit.ApplicationServices.Application Application this._revitProduct?.Application;#endregion#region constructors/// ////// /// revit安装目录public RevitContext(string revitPath){RevitPath revitPath;AddEnv();}/// /// 使用此构造方法前需要调用 RevitContext.AddEnv();/// public RevitContext(){}#endregion#region public methodspublic void InitRevit(){this.OpenOptions new OpenOptions{Audit true,AllowOpeningLocalByWrongUser false,DetachFromCentralOption DetachFromCentralOption.DetachAndDiscardWorksets //从中心模型分离};_revitProduct Product.GetInstalledProduct();var clientApplicationId new ClientApplicationId(Guid.NewGuid(), RevitContext, BIM);_revitProduct.SetPreferredLanguage(Autodesk.Revit.ApplicationServices.LanguageType.Chinese_Simplified);_revitProduct.Init(clientApplicationId, I am authorized by Autodesk to use this UI-less functionality.);OnInitRevitFinished();}public Document OpenFile(string filename, OpenOptions options null){if (options null){options this.OpenOptions;}ModelPath model new FilePath(filename);return this._revitProduct.Application.OpenDocumentFile(model, options);}/// /// 获取默认三维视图/// /// 文档/// public View3D GetView3D(Document document){if (document.ActiveView is View3D view3D !view3D.IsPerspective view3D.CanBePrinted){return view3D;}FilteredElementCollector filternew FilteredElementCollector(document);return (View3D) filter.OfClass(typeof(View3D)).FirstElement();}/// /// 获取指定三维视图/// /// 文档/// 指定视图名称/// public View3D GetView3D(Document document,string viewName){FilteredElementCollector filter new FilteredElementCollector(document);return (View3D)filter.OfClass(typeof(View3D)).FirstOrDefault(x x.NameviewName);}public IList GetElementsWithView(View3D view){FilteredElementCollector collectornew FilteredElementCollector(view.Document,view.Id);return collector.ToElements();}#endregion#region public static methods/// /// 添加revit安装路径到环境变量以便加载相应的DLL/// /// 添加revit安装路径public static void AddEnv(string revitPathnull){if (isLoadEnv){return;}if (revitPath!null){RevitPath revitPath;}AddEnvironmentPaths(RevitPath);AppDomain.CurrentDomain.AssemblyResolve CurrentDomain_AssemblyResolve;}#endregion#region private static methods/// /// 添加环境变量/// /// revit安装路径static void AddEnvironmentPaths(params string[] paths){string[] first {Environment.GetEnvironmentVariable(PATH) ?? string.Empty};string value string.Join(Path.PathSeparator.ToString(), first.Concat(paths));Environment.SetEnvironmentVariable(PATH, value);}/// /// 动态加载revit相关的dll/// /// /// /// static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args){var assemblyName new AssemblyName(args.Name);var text ${Path.Combine(RevitPath, assemblyName.Name)}.dll;Assembly result;if (File.Exists(text)){Console.WriteLine($Load Revit Dll Path:{text});result Assembly.LoadFrom(text);}else{result null;}return result;}#endregion#region private methodsprivate void OnInitRevitFinished(){this.InitRevitFinished?.Invoke(this, this._revitProduct);}#endregion}1.6. 使用并测试class Program{static RevitContext revit;static Program(){RevitContext.AddEnv(D:\Program Files\Autodesk\Navisworks Manage 2020\Loaders\Rx\);}[STAThread]//一定要有static void Main(string[] args){revit new RevitContext();revit.InitRevitFinished InitRevitFinished;revit.InitRevit();Console.ReadKey();}private static void InitRevitFinished(object sender, Product revitProduct){Console.WriteLine(当前使用Revit版本为 revitProduct.Application.VersionName);Document document revit.OpenFile(E:\test\2019\经典小文件\2020.rvt);View3D view revit.GetView3D(document);if (view!null){Console.WriteLine(view.Name);var elements revit.GetElementsWithView(view);foreach (var element in elements){Console.WriteLine(element.Name);}}}}完成1.7. 留下的坑如何在不指定revit路径的情况下加载(动态获取revit安装路径)根据revit文件版本加载相应的revit路径一个程序动态支持多版本revit以上问题本人已有相应的方法。原文出处https://www.cnblogs.com/tchivs/p/11925856.html
http://www.pierceye.com/news/894205/

相关文章:

  • qq群优惠券里面网站怎么做的长春网站建设找源晟
  • 如何建一个公司的网站百度快速收录入口
  • 网络市场营销湘潭seo优化
  • 网站建设的模块传奇合成版2合1雷霆版手游
  • wordpress快站怎么样js网站开发视频
  • 滕州市 网站建设公司合肥网站建设方案案例
  • 外贸网站推广企业ida设计公司上海
  • 网站怎么做图片转链湄潭建设局官方网站
  • 泰州品牌网站建设二建报名时间2023年报名时间
  • 企业网站优化兴田德润怎么样wordpress标签不输出文章
  • 百度站长平台论坛永嘉网站制作
  • 月嫂公司网站建设构思免费的短视频素材库
  • 2017做哪些网站致富邢台市行政区划图
  • 深圳和海枫建设集团有限公司网站国内外基于vue框架的网站建设现状
  • 珠海免费网站制作购物网站前台模板
  • 小程序软件制作网站捷克注册公司网站
  • 做网站细节电商网站建设 平台
  • 网站建设方案书1500全国中小企业网站
  • 阳江市建设局网站合肥最新消息今天
  • 做关于什么样的网站好货代去什么网站开发客户
  • 中国工程建设造价管理协会网站漳州seo顾问
  • 什么网站可以做2.5D场景网站过程建设
  • google移动网站建站十大原则室内装修工人培训班
  • 自己做网站要会什么软件下载搭建网站有什么用
  • 天津做网站找谁网站如何做首面关键词
  • 微信小程序做链接网站做catalog的免费网站
  • 呼市网站制作招聘建设网站 托管 费用
  • dede自适应网站模板济南著名网站建设
  • 旅游网站排名榜手机开发网站工具
  • 饰品公司网站建设策划书百度seo优化收费标准