![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
L-H·Hsu
revit development
展开
-
OOCT WPF_D3D项目报错无法加载依赖项
运行OCCT_WPF示例项目原创 2024-04-12 16:20:02 · 396 阅读 · 0 评论 -
Revit Add-in Manager 多重依赖无法更新的问题解决办法
Revit Add-in Management原创 2024-04-12 14:17:53 · 358 阅读 · 0 评论 -
WPF 通过一个dictionary管理多个Command注册
WPF通过CommandManage类管理绑定多个Command原创 2023-03-10 16:14:47 · 159 阅读 · 0 评论 -
.net core application报错The required library hostfxr.dll could not be found.
.net core exe报错 The required library hostfxr.dll could not be found.原创 2022-09-01 15:27:41 · 1799 阅读 · 0 评论 -
WPF 截图工具
1.增加箭头样式2. 取消Eventhandler挂载事件原创 2022-08-27 16:46:01 · 474 阅读 · 0 评论 -
Revit 二次开发 HOF 方式调用transaction
创建泛型接口,将transaction函数调用封装,减少函数编写浪费原创 2022-07-01 15:55:11 · 242 阅读 · 0 评论 -
File 文件线程占用的问题
在检索文件是否存在,如果不存在就创建这个命令的时候,后续的操作会报错线程占用原因:File.Create()命令会输出Stream,需要将流关闭,否则在运行期间会报错线程占用的问题var stream = File.Create(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\RecheckModelUser.xml");原创 2022-01-04 16:30:47 · 471 阅读 · 0 评论 -
折线多边形的原位放大
文章目录需要生成的效果折线多边形的原位缩放两种办法6.10 多边形放大、缩小及移动 P309c#实现缺点分析向量缩放办法算法剖析算法步骤c#代码Revit API 方法需要生成的效果吊坑或集水坑的基本原理是按照板边界外侧生成一圈墙体进行封堵折线多边形的原位缩放两种办法一种是周培德的计算几何-算法设计与分析(第三版)中的办法另外一种是引用自折线平行线的计算方法的办法,最后第二种可以解决项目问题,但是两种算法都写了一遍就都分析一下,这种情况以后还会遇到方便回查。6.10 多边形放大、缩小及移动 P3原创 2021-12-17 15:23:55 · 937 阅读 · 0 评论 -
Teigha开发读取CAD文字信息出现偏移
今天读取cad文字发现文字出现偏移,反复测试发现不是代码的问题,午休时想起来cad图纸中的文字因为设计师使用插件会出现一定的问题,所以打开cad发现文字坐标点与实际位置差距正好是生成偏差,下面的图片就是cad文字的坐标信息。看了一下cad的text函数,发现也没有能够直接取到位置的函数,但是可以使用方法AlignmentPoint,这种办法可以生成相应的文字但是会出现一定的偏差,因为涉及左对齐与右对齐,可能文字的起始点在字体的右侧~~~~~。发现这个问题后我对翻模的精度有了更深刻的理解,但是由于目前原创 2021-11-16 14:46:33 · 515 阅读 · 0 评论 -
C# 根据模板将数据写入word
参照的下载链接创建的项目接口: C#实现通过模板自动创建Word文档的方法,但是资源是一个txt文件,需要重新手打代码,不过也算是练习了。在开始之前,我们需要先从nuget安装Microsoft.Office.Interop.Word,下面是代码需要的直接复制就可以,用起来和NPOI还是稍微有些不同。report.csusing System;using System.Diagnostics;using Microsoft.Office.Interop.Word;namespace expor原创 2021-10-13 16:32:43 · 1193 阅读 · 2 评论 -
获得电脑特殊文件夹的办法,如:\AppData\Local\Temp
官方连接:Environment.SpecialFolder我们通常会在文件中加载一些缓存文件,方便下次运行的时候调取。如果使用硬盘地址如:H:\preview ,用户可能会出现没有H盘符的情况,但是所有的电脑都会有一些固定的缓存路径.如果想要访问Temp文件夹,在电脑中我们可以输入%temp%命令快速进入,在程序中我们通过Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)调取,参数为枚举值,可以参照官方链原创 2021-01-11 16:32:02 · 4245 阅读 · 0 评论 -
Revit MEP中Connector连接器的问题
在Revit二次开发中,相较于土建模块多出了管道系统模块,每个机电管件与管道之间连接由Connector控制,从而将整个管道系统串联起来如果在LookUp中点开管道可以看到分为ConnectorManagement 与 All Refs两个类,之中都存储了Connector,刚接触的人可能会觉得比较乱如果从喷淋开始依次查询所有相交管道,我们可以获取每一个Connector的All Refs进入Connector之后获取Owner然后进入相应构件的Management从而获得所有的构件连接器。简单来说A原创 2020-12-14 10:05:52 · 965 阅读 · 0 评论 -
c# 字符串与16进制互导
参考链接:c#实现16进制和字符串之间转换的代码C#字符串与16进制的相互转换结果:code:using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp{ class Program { static void Ma原创 2020-12-03 10:11:35 · 154 阅读 · 0 评论 -
Revit中实现WCF客户端部署
在之前的WCF文章中,成功创建了本地部署与服务器部署,但是当我想要在Revit端实现读取数据库信息于是创建了一个项目测试效果。参考案例:Revit二次开发高级应用(1)——利用wcf做简单的族库管理Drive Revit through a WCF Service代码服务端using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Runtime.Seria原创 2020-11-09 15:01:03 · 233 阅读 · 0 评论 -
NPOI循环创建Cell数据丢失问题
多个数据循环创建,最终导出Excel会出现数据大面积丢失,只有零星几个数据出现。后来发现其实是循环内部的代码出现问题,分析一下其实是因为自己NPOI和代码复查没有做好导致循环数据出现问题,所以记录下来,防止自己再次范相同的错误!左图中循环会疯狂创建IRow导致之前创建的行数据丢失,只会显示行较其他组多的内容及最后一次运行的内容。后面类似数据处理应该集中创建一个数据行进行填充。...原创 2020-10-04 11:47:10 · 593 阅读 · 0 评论 -
大话设计模式
第一章简单工厂模式题目:通过控制台程序让用户输入指定值和计算方法进行求值我的第一想法会是建四个类分别代表‘+’,‘-’,‘*’,‘/’通过调用四个方法进行分别的计算,不够这种方式在main里面会显得特别臃肿,通过继承类,重写方法,并将方法放在单独的计算类中会让整个代码看上去更有条理性。 class Program { static void Main(string[] args) { Console.WriteLine("Please e原创 2020-09-20 10:55:44 · 312 阅读 · 0 评论 -
Revit 自启动插件管理小工具制作
在安装过多插件时会导致Revit启动时报错:由于数量超过18个无法加载后续产品的错误,大部分许可文件会放置在C:\ProgramData\Autodesk\Revit\Addins\****下,通过修改后缀名即可将拒绝文件的启动。对于像某些产品会一次性防止十几个许可文件,设计工程师修改起来比较复杂所以写了一个工具进行集体修改。全部项目已经上传到Githubgithub地址...原创 2020-09-08 14:49:22 · 759 阅读 · 0 评论 -
WinForm重写右上角“关闭”按钮的方法
protected override void WndProc(ref Message msg){ const int WM_SYSCOMMAND = 0x0112; const int SC_CLOSE = 0xF060; if (msg.Msg == WM_SYSCOMMAND && ((int)msg.WParam == SC_CLOSE)) { // 点击winform右上关闭按钮 // 加入想要的逻辑处理 return; } base.WndProc(r原创 2020-08-27 15:08:00 · 1366 阅读 · 0 评论 -
Revit Dcokpane 某个 ItemsControl 与它的项源不一致
今天再可停靠窗口进行点击按钮从而再DataGrid中上传数据时,发现多次上传会出现问题某个 ItemsControl 与它的项源不一致,后来再查问题时发现是因为由于有多线程异常导致的问题。原因应该是可停靠面板与Revit本身时两个进程,再主进程与窗口之间进行数据传递导致进程错误,从而引发的问题。void UpdateItems(ExternalProperity.ProjectMessageClass message) { Dispatc原创 2020-08-27 09:53:51 · 203 阅读 · 0 评论 -
根据字符串获得相应枚举值和DescriptionAttribute
根据字符串获得枚举值var em = (ChooseEnum) Enum.Parse( typeof(ChooseEnum), desc);根据枚举值获得DescriptionAttribute public static string ConvertToSql(Enum value) { Type enumType = value.GetType(); string name = Enum.GetName(enumType, valu原创 2020-08-26 15:46:33 · 647 阅读 · 0 评论 -
Winform DatagridCombox绑定数据显示无法对设置了 DataSource 的组合框排序。请使用基础数据模型对数据排序
今天使用winform创建datagridview其中绑定了combox数据 name.DataPropertyName = "PropertyName"; name.DisplayMember = "pn_name"; name.ValueMember = "pn_id"; name.DataSource = GetNames().Tables[0];项目报错:无法对设置了 DataSource 的组合框排序。请使用基础数据模型原创 2020-07-09 17:19:43 · 261 阅读 · 0 评论 -
C# wpf 智能选择对话框
参考链接:WPF-15:AutoCompleteBox的使用(实现下拉列表)WPF: AutoCompleteBox, an autocomplete text box准备:WpfToolKit.dll,System.Windows.Controls.Input.Toolkit.dll下载或通过nuget搜索安装,下载链接在第一个博客中内容:前端通过wpftool框架实现自动补全信息或智能选择的功能在前端添加xmlns:toolkit="clr-namespace:System.Windo原创 2020-06-19 15:25:59 · 680 阅读 · 0 评论 -
数据库视图使用
视图(view)通过对视图的使用,我们可以将多个表的待使用项串联成一个虚拟表,通过对虚拟表的调用,可以节省语句的复杂程度。CREATE VIEW view 创建视图DROP VIEW view 删除视图如果需要更新视图,可以先进行删除然后新建也可以使用CREATE OR REPLACE VIEW view进行更新,语句的意思是如果有同名称则覆盖没有则创建一个虚拟表格。我们在使用视图时,应该避免创建过多的视图联结,在使用多个视图联结是需要测试一下运行时间code:drop view genera原创 2020-06-02 16:06:24 · 231 阅读 · 0 评论 -
App.config文件中数据库连接加密
将文件名称修改为Web.config,启动命令行工具工具->命令行输入aspnet_regiis -pef "**目标字符串**" " **目标地址(e:\)**之后将Web.config修改回App.config即可访问在我们访问时需要ConfigurationManager类,使用VS快捷键ctrl+.使用nuget进行快速布置https://blog.csdn.net/u011981242/article/details/51090487...原创 2020-06-02 15:01:04 · 387 阅读 · 0 评论 -
c#如何比较版本号的大小
参照文章:C# 如何比较版本号大小在c#中有version类可以进行版本号的比较 Version v1 = new Version(db_version); Version v2 = new Version(local_version);使用version类可以将数据库的软件版本与本地做对照从而实现自动更新...原创 2020-05-25 16:18:48 · 1240 阅读 · 0 评论 -
Revit 二次开发放置基于面的族时生成错误
在进行基于面的族放置开发时,运行程序,发现停车位的位置全部变化,只有原点位置能够对齐通过排查发现怀疑与板本身的向量有关,即板放样线条的第一条线,通过对四个方向不同板进行分析可以发现基于面的族基础预览位置在不断进行改变,并于向量保持平行状态,如下图:同样厚度类型楼板并且不带有坡度,仅首条绘制样条曲线有区别,发现每个停车位初始状态都在发生变化,如果进行开发不考虑此问题,==会在平面斜板或其他...原创 2020-02-26 15:30:34 · 617 阅读 · 0 评论 -
如何使用服务器创建FTP站点
[https://blog.csdn.net/qq_34147601/article/details/84394132]转载 2020-02-18 16:01:25 · 238 阅读 · 0 评论 -
2016RevitAPI一次性生成多个构件
今天检索API发现一个比较有意思的类:FamilyInstanceCreationData通过传入参数可以使用doc.Create.NewFamilyInstances2()一次生成所有构件。这个类可以用于翻模或调整构件的情况。在方法中自带两种方法.axis&&.RotateAngle可以省却我之前生成构建后ElementTransformUtils.RotateElemen...原创 2020-01-19 17:42:35 · 420 阅读 · 0 评论 -
修改A列表同时B列表同时修改的问题记录
引用文章今天在编程时进行列表的转换,同时对转换后列表进行删除操作。List<XYZ> A = firList; A.RemoveAt(0);发现对A进行删除操作后,firList的列表也会随之进行删除。具体原因目前没有查清,估计是因为内存占用的原因,导致两个列表会同时进行操作,具体原因未查清,插个旗子后面补充。 ...原创 2020-01-19 15:05:57 · 152 阅读 · 0 评论 -
获取项目内所有的房间
revit中element与room类不想通,想要取得项目中所有的room类需要var rooms = collector.OfCategory(BuiltInCategory.OST_Rooms).OfClass(typeof(SpatialElement)).ToElements();获取。原创 2019-10-10 14:57:33 · 211 阅读 · 0 评论 -
矢量法求点到线段的距离
参考博客:https://www.cnblogs.com/lyggqm/p/4651979.html通过对向量进行计算,将点到线段的计算通过两个值比较计算点的三种概率,再线段内,线段的左右两侧。通过计算可以快速将点到线段的距离求出。具体理论再参考博客给出。在Revit二次开发中,需要求点到线段最短距离,在API中有Curve.Distance可以求出,也可以使用三角函数将角度求出不过这种方法...原创 2019-08-30 09:45:38 · 836 阅读 · 0 评论 -
Linq语句中IEnumerable <T>判断为空办法
判断集合办法参考文章:https://blog.csdn.net/u010178308/article/details/77681573在使用LINQ语句的时候会生成IEnumerable source的集合,在查询集合是否为空的时候一般采用source.count()的办法进进行查询,但是对于LINQ语句count无法返回我们想要的值。Any()在LINQ语句查询时,使用if(!so...原创 2019-06-09 15:38:45 · 2861 阅读 · 1 评论