当前位置: 首页 > 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.zqtcl.cn/news/894205/

相关文章:

  • 网站关键词排名外包织梦大气婚纱影楼网站源码
  • 网站建设执行力冠县哪里有做网站的
  • 免费网站推广咱们做网络营销推广的应用场景
  • 深圳正规网站制作哪家公司好做网站代理属于开设赌场罪吗
  • 江西宜春市建设局网站wordpress博客下载器
  • 汕头站扩建效果图微信怎么引流营销呢
  • 小学学校网站建设计划wordpress博客示例
  • 德邦公司网站建设特点万网是什么
  • 天津武清网站开发广东省建筑网站
  • 青岛做外贸网站哪家好佛山网站建设哪家好
  • 网站关键词设置技巧wordpress 获得参数
  • 程序网站开发搜索引擎有哪些技巧
  • 网站模板上传教程响应式网站建设免费
  • 网站建设与设计ppt模板wordpress调用大全
  • wordpress信息修改佛山网站优化如何
  • 最权威的排行榜网站招网站开发人员
  • 北京通州住房和城乡建设部网站网站获取访客手机号源码
  • 网站开发与建设网站程序基础
  • 网站建设属于什么税php网站建设全程实例
  • 做网站语言排名2018淄博市沂源县建设局网站
  • 腾冲网站建设哪个电商平台最好
  • 重点实验室网站建设宁波seo优化服务
  • 怎么用手机做刷会员网站网页设计指什么
  • 小企业网站建设多少钱网页设计图片剧中
  • 新乐做网站优化如何做二级域名子目录网站
  • 如何在网站上做推广中国在数码网站注册域名好 gt
  • 电子商务电商网站饿建设管理网站建设
  • php网站出现乱码网站建设项目总结
  • 网站建设公司墨子网络用我在线网站建设
  • 长寿网站建设公司服装设计有哪些网站