- 博客(21)
- 资源 (3)
- 收藏
- 关注
原创 Revit族库管理系统
revit企业管理族库功能:1、本地部署数据库,安全有效的管理企业标准族族库,如图12、个人用户,本地族库直接把个人电脑上的族库记载到系统中,方便快捷,如图2 图1 ...
2020-07-31 22:16:53 4614 2
原创 Revit二次开发 - 族库最近使用菜单
RibbonGallery当时在“构件坞”中看到这种样式的ribbon菜单,觉得挺有意思的,于是找它的实现方案:1、首先用Adwindows找到“构件坞”的Tab;2、再找到“最近使用”的Panel,看看它里面的控件是啥对象;3、这样就找到了RibbonGallery,发现它在我们常使用的“RevitAPIUI.dll”中是没有封装,那么就只有Adwindows了;4、最后搜索找资料,几乎没有... ...这只能结合调试时对象的属性,测试如何使用,挺麻烦的。(当然可以反编译构件坞,虽
2021-03-30 23:15:36 889 4
原创 如何编写自己的数据访问层
概述 在二开(族库、算量等)或者大部分管理软件的开发中,多数系统架构是基于数据库设计的,那么怎么设计数据访问层呢?一、设计框架图中分成三块:1、左边的xxxServices为app公开访问数据接口;2、中间红色部分为底层操作数据库接口,通过依赖注入的方式给xxxServices使用;3、xxx DAL为底层操作数据库接口的具体实现,可能是SQL Server的实现,可能是用于程序开发的的Fake数据提供的实现,也可能是阿里云、腾讯云等云服务器的数据访问的实现等;二、导出..
2021-01-04 15:30:48 2244 5
原创 Revit二次开发 - 安装包的制作
如何把我们发布的库制作成安装包,直接百度“制作安装包工具”有许多软件推荐,比如说NSIS、SetupFactory、InstallShield等等;这些软件大同小异,添加我们的库文件,提供交互界面设置基本参数,比如说软件名称、版本号、默认安装路径等等,如果界面操作无法满足当前需求的话,可以结合它提供的脚本来做更多的事情,比如写注册表、修改addin文件等等;学会一种制作安装包的工具并且能灵活应用挺好的,能快速的打包自己的程序,而且这些软件大部分提供了保存项目的功能,也就是一个模板,而且脚本基本通用,
2020-11-01 22:30:46 937 1
原创 Revit二次开发 - 菜单配置
Ribbon菜单,这个大家肯定不会陌生,除非黑科技 - -#,不然任何一款插件开发完成后都需要给用户准备界面操作菜单,如下图所示。创建菜单的方式有两种:像SDK Sample中的例子一样,硬核写在代码中 通过外部配置文件灵活的生成菜单用第一种方式写过菜单的开发者应该深有体会,硬核写实在太麻烦了,菜单一多,调整按钮位置都是很需要耐心的事情,而且每次菜单的修改都会导致需要重新发布程序,哪怕是敲错了一个文字。你的程序经过 编译、打包、加密、发布 一套流程下来突然发现菜单的一个文本写错了,这不抽
2020-09-03 23:46:10 959
原创 Revit二次开发 - 算量模块 - 几何接口
Revit接口GeometryCreationUtilitiesBooleanOperationsUtilsStructuralFramingUtilsJoinGeometryUtils二维平面开源库https://sourceforge.net/projects/polyclipping/问题1:项目中梁柱基本都发生了剪切的关系,如果需要获取构件原始的Solid,可能就需要先打断这些关系再取,我说的可能不是很清楚,但是如果你在正在做这方面的事情时,应该会遇到这些问题并且
2020-09-01 21:50:04 892
原创 Revit二次开发 - 算量模块 - 构件预览
下图为一知名算量软件的构件预览的效果,我们自己开发算量软件应该绕不过它,不管是开发还是测试,该功能提供了直观查看和校核结果的途径,话不多说,看实现。它的参考文档可以查看SDK的中AnalysisVisualizationFramework文件夹下的内容;也可以直接百度搜Revit二次开发 AVF,能找到和下面相似的代码;我感觉用AVF能直接解决显示构件的效率问题。 static class AVFSolidUtils { public static voi
2020-09-01 21:31:43 956 1
原创 Revit二次开发 - 位置查看帮助类
revit二次开发中,从顶层抽象上看,很大部分的需求,就是如何把正确的构件摆放在正确的位置,最后得出一个正确的结果所有,如何快速、直观的查看 构件坐标、轮廓、坐标系统 等等位置信息变得尤为重要,它能提高我们的开发效率和正确率。我们一般的操作是在lookup中查看,不过它的结果是一长串的数字,一眼看不出问题,最后写接口把这些数据创建到document中,比如:需要查看梁的方向,我会创建用一个带有箭头的线把梁的LocationCurve创建出来;比如常规模型,需要看出该构件的位置,则把这个点打出来,如下
2020-08-21 11:21:43 559
原创 Revit二次开发 - 插件更新升级
加载插件的方式一般有两种1、通过自己做的一个壳程序(.exe)再启动revit加载插件2、打开Revit就自动加载插件第一种方式的升级操作很好办到的,因为在启动Revit之间,你是知道Revit的插件是否需要更新,如需更新,直接从服务器下载覆盖即可,不存在动态库被占用的情况;而第二种方式,在加载你的插件后,需要更新的相关库可能已经被加载revit环境中了,这时覆盖可能会提示被占用的异常。这时就需要把你的库调整下结构了(可作参考):addin文件指向加载器"WXVisual.Rev
2020-08-13 23:59:12 1221
原创 Revit二次开发 - 动态模型更新DMU
当你关心的构件(注册时)行为发生改变时,revit会通过回调的方式相应该事件class UpdaterTemplateService : IUpdater { const string UpdaterId = "082604f4-9551-4bd3-b676-d5e10fb99577"; readonly AddInId _appId = null; readonly UpdaterId _updaterId = null; //
2020-08-13 23:23:55 1244
原创 Revit二次开发 - 过滤元素
在revit二次开发中,过滤指定类型元素的需求是很常见的,比如说获取标高、轴网、三维视图、FamilySymbol等等,于是乎: /// <summary> /// 元素过滤服务 /// </summary> public static class FilterElementService { #region 通用过滤器 /// <summary> /// 过滤元素
2020-08-11 22:14:00 993
原创 Revit二次开发 - 设置元素颜色和透明度
public static class ElementColorUtils { static ElementId _fillPatternElementId = null; /// <summary> /// 设置 元素填充颜色 /// </summary> /// <param name="element"></param> /// <param.
2020-08-11 17:36:56 1441
原创 提高我的代码质量
关于写代码,严格遵从某种良好的习惯,会给你带来意想不到的效果,它是一种提高你效率最简单、代价最小的一种方式。接下来,作者会介绍个人认为比较好的编码习惯,仅供大家参考交流。关于编码习惯,大多数来自《代码大全》关于设计,则来自《敏捷开发-敏捷软件开发:原则、模式与实践》废话不多说,直入主题:1、该篇文章会持续更新,慢慢积累,是本人的笔记,更希望给读者一些些启发,那就是有意义的。。。...
2020-08-04 23:36:29 231 1
原创 Revit中创建TextNote
创建TextNote时,不知Revit中它是以何种对齐方式创建,也很难放到我们想要的位置,固有如下工具类: public static class TextNoteSrv { public static TextNote CreateTextNote( this ViewPlan viewPlan, string text, ElementId textTypeId, XYZ.
2020-08-04 22:45:48 923 3
原创 Revit二次开发 - 创建共享参数
/// <summary> /// 共享参数服务 /// </summary> class SharedParameterService { Document _document = null; readonly string ShareParamFileName = "visual_ShareParam.txt"; /// <summary> /// ...
2020-08-01 14:16:39 790 1
原创 给Revit发送ESC消息
static void SendKeyToRevit(byte bVk, int dwFlags) { IntPtr Revit = Autodesk.Windows.ComponentManager.ApplicationWindow; SetForegroundWindow(Revit); keybd_event(bVk, 0, dwFlags, 0); } pub...
2020-08-01 10:36:07 380
原创 revit二次开发 获取或设置参数
/// <summary> /// 获取设置element参数服务 /// </summary> public static class ParamUtils { #region get public static string GetStringValue(this Element instance, BuiltInParameter builtInParameter) { ...
2020-07-31 23:39:53 1676
原创 revit坐标与屏幕坐标的转换
class ScreenClientPointUtils { UIDocument _uiDocument = null; UIView _uiView = null; Transform _transfrom = Transform.Identity; public ScreenClientPointUtils(UIDocument uiDocument) { System.Diagno...
2020-07-31 23:32:57 1085 4
原创 revit二次开发 外部事件调用方法
/// <summary> /// 外部事件应该在OnStartup事件中注册, /// 否则可能会无法执行 /// </summary> class ExternalEventManagement { bool _register = false; Dictionary<ExternalEventType, IExternalEventHandlerExt> _dicEventHandle...
2020-07-31 23:17:41 1373
原创 revit开发相关资料
找资料的网站http://thebuildingcoder.typepad.com/https://forums.autodesk.com/t5/revit-api-forum/bd-p/160https://www.autodesk.com/developer-network/platform-technologies/revit?_ga=2.146816119.1970775508.1577942217-306096580.1571798270https://blog.csdn.net/
2020-07-31 22:52:32 314 1
数据访问层DAL设计框架_Demo.rar
2021-01-04
Revit_2018_族库管理_20200601.exe
2020-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人