- 博客(42)
- 收藏
- 关注
原创 Bentley二次开发教程32-出图相关案例3-工程属性与几何构件联动案例
本案例中针对的是在放置构件并调整工程属性后,所设定的模型参数会实时进行刷新并在构件模型上得以体现,同时在放置后在没有对工程属性有修改需求的场景下适用。这样做的好处是在生成构件模型时构件本身并没有被施加参数,在多个构件同时存在的模型中相较于参数化模型,大大提高模型的承载能力与响应速度。该案例主要是用到Addin中的事件,它可以监控用户的行为,在用户执行执行行为时就会触发事件,跳转到对应的业务函数中,因此掌握方法的使用对于MicroStation二次开发来说也非常重要。
2024-04-28 09:56:48 459
原创 Bentley二次开发教程31-出图相关案例2-图纸自动生成工具
对于一些较为标准的构件,我们可以根据其特点抽象出其构建规则,以适用于该大类的所有构件,使用二次开发的方式自动根据模型信息生成图纸,与传统的图纸绘制相比,从模型到图纸的过程使用编程的方式自动生成,从而大幅度的提高制图效率。该工具大致可分为两个阶段:绘制构件阶段与生成图纸阶段,前者需要使用交互式工具,绘制出用于出图的构件,后者会依次创建NamedBoundary,SavedView与DrawingModel,并将SavedView参考到模型中,最后执行图纸中构件的标注。使用工具对生成的构件进行图纸的输出。
2024-04-28 09:53:29 511
原创 Bentley二次开发教程30-出图相关案例1-表格生成工具
针对目前的设计生产模式来说,最终工程信息都会以图纸的形式进行表达。作为BIM模型,其中拥有海量的工程信息,但是如何将模型中的信息归类,快速整合并输出为符合公司出图标准的图纸或表格,也是目前BIM技术短时间无法取代传统CAD绘制出图模式的一大原因。这里,我们给大家分别介绍用于生成符合公司要求图表的工具Demo和绘制构件后自动生成图纸的工具Demo。
2024-04-28 09:50:36 497
原创 Bentley二次开发教程29-交互窗口-案例实战3-文件选择复制工具
该工具会根据用户选择获得需要赋值元素的文件,读取文件信息后根据用户选择的模型动态读取模型中的元素信息,并实时调整条件筛选多选框中元素类型,元素图层,ItemType信息等,同时根据多选框中的设置动态锁定/解锁下拉框,用机制保证就算用户没有使用该工具的经验,只要根据插件给出的信息即可直接上手。该工具涉及到的WinForm控件有:TextBox,Button,ComboBox,ListBox,RadioButton,Label,CheckBox,ProgressBar。
2024-04-28 09:36:33 521
原创 Bentley二次开发教程28-交互窗口-案例实战2-EC属性赋值工具
该工具会根据用户输入的路径获取Schema文件的路径,然后通过路径读取对应的Schema文件并在树状图中显示EC类,当用户选择树状图上的节点时,此时会触发事件,根据EC属性添加用户自定义控件用于显示EC属性并可对其进行赋值操作。完成后选取元素,点击界面上的应用,此时元素会被赋予指定EC类,同时修改的EC属性值也会被同步赋予。该工具涉及到的WinForm控件有:TextBox,Button,TreeView,Panel,UserControl(用户自定义控件)。
2024-04-28 09:32:54 1227
原创 Bentley二次开发教程27-交互窗口-案例实战1-可视化矩形梁生成工具
为了展现在MicroStation二次开发中使用WinForm界面控件与MicroStation内的数据交互,这里我们使用三个案例进行展示,分别为可视化矩形梁生成工具,EC属性赋值工具与文件选择复制工具。
2024-04-28 09:13:08 636
原创 Bentley二次开发教程27-交互窗口-界面开发方法
正如上文所述,WinForm使用属性与事件实现数据与用户的信息传递。对于MicroStation二次开发而言,界面的控件主要用于用户信息与MicroStation软件中数据的交换。常用的控件有Button,CheckBox,ComboBox,Label,ListBox,Panel,ProgressBar,RadioButton,TextBox,TreeView等,在这里我们对常用控件的使用方法进行简单介绍。
2024-04-25 10:02:38 2194 1
原创 Bentley二次开发教程26-工程属性-ItemType操作实际案例
ItemType作为EC的简化版,其操作更加便捷,同时拥有可视化的操作界面,对于使用软件的人来说对于ItemType的创建,删除,修改,更新操作更加便捷。因此对于第一次接触工程属性或工程属性构成较为简单的使用场景下,我们推荐使用ItemType进行工程属性的赋予。
2024-04-24 17:24:45 1185
原创 Bentley二次开发教程25-工程属性-EC属性操作方法
因为Schema文件导入后没有像ItemType的操作界面,因此若需要了解文件中ECSchema的导入情况,需要使用keyin命令:ecx schema list显示在提示栏中,或使用ecx schema export导出文件查看。
2024-04-24 16:56:26 1140
原创 Bentley二次开发教程25-工程属性-概念介绍
对于工程信息,主要分为几何数据与工程数据两个部分,对于几何数据,Bentley采用模型来表达,而工程数据,起初Bentley采用XAttribute的方式在dgn文件中开辟一个特定空间存储非几何数据,但是在由于没有统一数据存储的方式和格式,导致不同专业软件之间的信息无法交流。最后,Bentley经过大量的摸索和借鉴形成了一套系统的数据解决方案系统ECFramework (Engineering Content Framework ),通过这套方案Bentley真正实现各个专业软件之间数据的无损流动和互动。
2024-04-24 16:07:01 1060
原创 Bentley二次开发教程24-交互式类工具
本次内容主要涉及到交互式工具的使用,在MicroStation中,超过一半的功能都是以交互式工具的形式而存在的,因此交互式工具在MicroStation二次开发中便显得非常重要。当我们的鼠标或键盘在视图中产生交互操作时,不同的动作会调用不同的回调函数。这种方式是“面向过程”编程思想的产物,在“面向对象”的编程思想下,SDK封装了DgnTool、DgnPrimitiveTool、DgnElementSetTool等类来供各位使用。
2024-04-24 15:09:41 959
原创 Bentley二次开发教程23-文件及模型管理-文字样式、参数化单元导入
该方法用于创建自定义的文字样式,大致的流程为声明文字样式后设置文字样式中文字的字体,字体宽度,高度等属性。本案例中,首先创建了一个名为"TestTextStyle"的文字样式,并设置字体为楷体,文字宽度及高度均为20个单位长,然后创建文本块,设置文本内容后创建文本元素,最后将文本元素写入模型。
2024-04-24 14:16:28 440
原创 Bentley二次开发教程22-文件及模型管理-材质、图层
材质主要用于对元素进行材质贴图,以表现实际的材料样式。材质表中包含材质表,材质面板以及材质。而其属性记录了反射等多种属性以表达实际材质效果。
2024-04-24 14:11:30 702
原创 Bentley二次开发教程21-文件及模型管理-分组(NamedGroup)介绍
当我们需要对模型中的元素分组时,就需要使用NamedGroup功能,不同于单元,他们的元素并没有那么强的组合关系,同时,组与组之间可以实现嵌套,体现元素间的层级关系。
2024-04-23 16:47:04 393
原创 Bentley二次开发教程20-文件及模型管理-文件操作
关于文件读取的大致流程为首先确定需要操作文件的路径,然后通过DgnDocument获得对应的DgnFile,通过DgnFile即可读取文件中信息。在本案例中,通过指定文件路径获取到对应文件中的信息,而后找到文件的默认模型,获取模型中的图形元素信息并进行输出,通过查看对应文件中的模型可以看出,输出结果与文件中实际存在的模型信息一一对应。在本案例中,首先在指定路径下创建了一个名为NewFileBySaveAs的dgn文件,然后将当前的文件信息另存至刚才创建的文件中。
2024-04-23 16:41:58 466
原创 Bentley二次开发教程19-文件及模型管理-参照操作
当我们需要与同专业,或者跨专业协同配合时,总是无可避免的需要参照他人的模型。若想通过编程的方式提前将参照模型与指定场景绑定起来,那么就需要掌握模型参照的方法。关于该方法大致的使用流程为首先确定参照引用的目标模型,然后通过参照文件的储存路径获取对应的文件,最后将文件中指定模型参照到目标模型中,写入模型即引用模型成功。在本案例中,执行上述代码后可以发现,名为FileManage - Copy.dgn的文件中的"test"模型中的数据被成功参照到当前模型空间中。
2024-04-23 16:29:27 305
原创 Bentley二次开发教程18-文件及模型管理-模型操作
当我们需要创建模型时,需要使用CreateNewModel()来对模型进行创建,在此过程中需要输入新建模型名称,模型类别以及确定模型类别时2D还是3D,完成后即生成制定模型。
2024-04-23 16:07:20 489
原创 Bentley二次开发教程17-文件及模型管理-模拟输入调用命令
对于目前使用C#在Addin框架编程来说,对于某些方法可能封装的并不是十分完全,或者说目前的MicroStation软件中的原生功能可以完美的实现业务需求,但是需要对其进行参数化,自动化并进行重复工作,那么模拟输入调用命令的方法便必须掌握。在这里我们需要注意:在模拟输入坐标时,Relative是坐标增量值,Fixed是坐标固定值,前者是指该点与上一个点之间坐标值的增量,后者指的是绝对坐标值,在模拟输入过程中需要确定输入的方式。在本案例中,根据宏中录制的命令及模拟输入坐标值,重现了宏执行的过程。
2024-04-23 15:00:45 426
原创 Bentley二次开发教程15-元素管理-元素分解
若我们需要根据元素自身或工程属性进行遍历检索,随着模型中元素数量的增多往往会大幅度增加遍历所需要的时间。而扫描工具不仅可以规定扫描区域,也可以指定遍历元素的类型,从而将原本模型中的全部元素的检索变为指定区域,指定元素类型的检索,大幅度提高效率。//获得当前激活的模型//分辨率单位转换为主单位//声明扫描标准//设置扫描目标模型//设置扫描部分(本案例中仅扫描图形元素)//声明可变位数组//设置数组容量。
2024-04-23 10:33:57 680
原创 Bentley二次开发教程14-元素管理-围栅使用方法
该方法类似于使用MicroStation软件中的选择元素建立围栅的方法,确定构造围栅的元素后,他会根据选取的元素构造出一个垂直于该元素的三维围栅体,获得该区域的所有元素在文件名为FenceClipByElement的案例中,预先建立了四个实体元素,然后我们首先使用形元素创建围栅的轮廓并定义围栅,规定只有围栅完全包含元素才能获取元素(InitFromActiveFence()中第二个参数控制),最终获得完全包含在围栅的元素。
2024-04-23 09:51:07 804
原创 Bentley二次开发教程13-元素管理-选择集使用方法介绍
基于MicroStation中强大的选择集功能,可以直接使用选择集中图层、颜色、线形、元素类型、元素模板扥刚对元素进行过滤,该方法介绍了如果读取到选择集中的元素。通过对于在选择集中获取到元素我们还可以根据业务的实际需求进一步的筛选元素,已达到获取目标元素的目的。
2024-04-22 16:46:21 942
原创 Bentley二次开发教程12-元素管理-遍历方法介绍
我们进行元素类型筛选时,一般来说需要使用Element的MSElementType属性对元素加以区别,其中对MicroStation软件中所有的元素均进行定义对于MicroStation中的大多数元素,比如说普通实体,线元素,标签元素,弧元素等均可以被成功识别,但是对于某些元素,仅凭MSElenetType属性无法对元素类型进行区分。
2024-04-22 11:00:38 1154
原创 Bentley二次开发教程10-元素变换及修改-布尔运算
创建的实体大小应控制在500m以内,否则可能会生成失败。所需要生成的实体范围确实大于500m,那么可以先将元素缩小再进行布尔运算,得到结果再进行元素放大操作即可。
2024-04-21 07:00:00 644 1
原创 Bentley二次开发教程09-元素变换及修改-填充
我们可以使用AddSolidFill()对元素进行实体填充,其中,第一个值为填充颜色索引值,与MicroStation中的颜色索引对应我们可以看到,生成元素的填充已经被索引为3(红色)的实体填充。
2024-04-20 09:00:00 607 1
原创 Bentley二次开发教程08-元素变换及修改-单位
当我们需要以指定的基准轴对元素进行旋转时,上面的方法就无法满足要求了,因此我们需要使用DTransform3d.FromRotationAroundLine(),在这个方法中我们需要首先依次定义旋转基点,旋转轴,旋转角度。//定义当前激活的模型空间//获取主单位与分辨率单位的比值;//定义直线起点//定义直线终点//定义几何直线//定义线元素//定义旋转轴向量//定义角度//设置旋转角度为45度//定义变换几何//使用变换几何定义变换信息//对线元素应用变换信息//将线元素写入模型。
2024-04-19 15:00:00 942 1
原创 Bentley二次开发教程07-创建几何元素-其他
在创建文字元素时,我们需要首先定义文本块的属性,其中包括文字样式,文字段落属性等,定义后在对文本块中输出的内容进行输入,最后生成文本元素。
2024-04-18 14:00:00 517 1
原创 Bentley二次开发教程03-第一个插件HelloWorld
接下来,我们将 Run 函数中的语句删除,并添加属性定义,关于属性定义我们可以打 开 MicroStation 软件,打开 key-in,输入 mdl load ,若插件已被加载,在下图位置即可看到 MdlTaskID 中定义的文字, 双击文字后即可看到在 xml 文件中定义的命令。图 51 添加属性定义图 52 应用定义名称。
2024-04-16 11:15:52 1574 1
原创 Bentley二次开发教程02-开发环境搭建
图 2 Bentley 产品 SDK 关系虽然 Bentley 拥有几乎涵盖了各个专业的设计软件,但在实际应用中, 可能会出现在特定场景下无法适配的情况,此时就需要通过二次开发的方式实现既定的功能需求,这也就是 Bentley 软件提供软件开发包的初衷与意义。您可以通过使用软件开发 包开发出符合您自身业务需求的工具甚至软件, 借此提高生产力。我们可以看到上图 列有 MicroStation SDK 和 ORD SDK ,ORD(OpenRoadsDesigner)是 Bentley 公司。
2024-04-16 10:41:12 1696
原创 Bentley二次开发教程01-前言
Bentley(奔特力)是一家总部位于美国费城、拥有3500多名员工、分布在世界80多个办公室、年收入7亿多美金的专注于基础设施软件开发的工程软件有限公司。基础设施领域包括公路、桥梁、机场、摩天大楼、工业厂房和电厂以及公用事业网络等。Bentley 在基础设施资产的整个生命周期内针对不同的职业,包括工程师、建筑师、规划师、承包商、制造商、IT 管理员、运营商和维护工程师的需求提供量身定制的解决方案。这些专业人士将在基础设施资产的生命周期内使用这些资产从事相关的工作。
2024-04-15 14:25:44 1029 2
原创 一次讲透Revit项目坐标设置
所有链接的文件,在总平里都是同一个位置,比如同一幢建筑的建筑、结构和机电,有的专业犯错没把项目基点设置对,这种情况就不需要考虑测量坐标系,直接在非剪裁状态下,把错误的项目基点位置移动到正确的位置,比如A-1轴交点,再用「项目基点到项目基点」链接进来就没问题了。等到大家的项目需要链接到一起时,因为每个文件的测量点在测量坐标里都在同一个位置,测量点和内部原点的相对位置也都是统一的,而每个项目基点都不在同一个位置,所以链接到场地文件的时候,只需要使用「原点对原点」方式,每个建筑都能放在正确的地方。
2024-04-09 15:16:29 4254
原创 revit二次开发中用到的C#语言的部分新语法
利用global using 语法可以进行全局using引用,这样就不用每个文件都有using一堆的引用。需要将所有的global using都放在一个文件里,文件名为GlobalUsings.cs。C# 新版本对于null做了很多的语法糖以及可空类型来帮助开发者减少因null处理不当导致的错误。文件范围限定namespace,将文件的缩进减少一级。◦ 首先开启可空类型 enable。
2024-04-02 14:39:37 235 1
原创 ?: 运算符 - 三元条件运算符
条件运算符 (?condition 表达式的计算结果必须为 true 或 false。若 condition 的计算结果为 true,将计算 consequent,其结果成为运算结果。若 condition 的计算结果为 false,将计算 alternative,其结果成为运算结果。只会计算 consequent 或 alternative。条件表达式是目标类型的。条件运算符为右联运算符,即形式的表达式计算结果为提示。
2024-03-18 16:00:00 343 1
原创 ?? 和 ??= 运算符 - Null 合并操作符
如果左操作数的值不为 null,则 null 合并运算符?仅当左操作数的计算结果为 null 时,Null 合并赋值运算符?[] 的表达式中,当包含 null 条件运算的表达式结果为 null 时,可以使用?如果可以为 null 的类型的值为 null 时要使用的值应为基础值类型的默认值,请使用 Nullable.GetValueOrDefault() 方法。当使用可以为 null 值类型并且需要提供基础值类型的值时,可以使用?= 运算符的左操作数的类型必须是可以为 null 的值类型。
2024-03-18 10:43:01 403
原创 WPF中的Pack URI
当您能够确定所提供的 pack URI 是相对 pack URI 还是绝对 pack URI 的时候,应该只指定 Absolute 或 Relative。幸运的是,Uri 类构造函数的 Uri(String, UriKind) 重载可以接受一个类型为 UriKind 的参数,使您可以指定 pack URI 是绝对。所使用的 pack URI 的类型(例如,当用户在运行时输入 pack URI 时),请改用RelativeOrAbsolute。究其原因,肯定是xaml没有加载到,致使界面没有渲染模板。
2024-03-12 14:26:45 849
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人