- 博客(106)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 【Revit二次开发】点与线
在revit二次开发中要经常用到点和线,这里我总结了点和线的获取及常用的方法,包括:点是否在线上,点和线的距离等等。
2023-04-04 18:00:00
689
原创 【Revit二次开发】几何
在Revit二次开发中,几何是非常重要的一部分,因为在Revit中,所有的构件都是由几何形状组成的。获取构件的几何信息对象(GeometryObject),可以通过GeometryInstance对象获取。需要注意的是,几何信息中的坐标是以Revit内部的坐标系表示的,需要进行转换才能与其他外部坐标系进行对比。获取构件的几何图形(Solid),可以通过Element对象的GetSolidGeometry方法获取。获取构件的几何信息(Geometry),可以通过Element对象的Geometry属性获取。
2023-03-28 11:00:50
1654
原创 JavaScript实现伽马函数(gamma())
伽玛函数(Gamma函数),也叫欧拉第二积分,是阶乘函数在实数与复数上扩展的一类函数。该函数在分析学、概率论、偏微分方程和组合数学中有重要的应用。与之有密切联系的函数是贝塔函数,也叫第一类欧拉积分。可以用来快速计算同伽马函数形式相类似的积分。伽玛函数不是初等函数,而是用积分形式定义的超越函数,怎么看都让人觉得不如初等函数自然亲切。然而伽玛函数也被称为阶乘函数,高等数学会告诉我们一个基本结论:伽玛函数是阶乘的推广。
2023-03-28 00:38:02
892
原创 JavaScript小结
JavaScript 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言,是一种被嵌入HTML网页之中的基于对象和事件驱动编程的脚本语言。脚本实际上是一段程序,用来完成某些特殊功能。JavaScript功能:1、可以将文本动态的放入HTML页面。2、可以对事件做出响应。3、可以读写HTML元素。4、可被用来验证用户输入的数据。5、可被用来检测访问者的浏览器,并根据所检测到的浏览器,为这个浏览器载入相应的页面。6、可被用来创建cookies,用来存储和取回位于访问者的计算机中的信息。
2023-01-28 21:59:57
969
原创 【数据库】MySQL和Navicate安装和使用
download-》选择免费版或者其他版本-》选择系统和版本号-》根据需要下载。打开客户端输入密码就可以使用了。可以选择:1、默认,2、服务器,3、客户端,4、全部,5、手动。2、导入sql文件或者直接写入sql文件或者使用图形界面。可以考虑在官网下载或者在其它途径获取Navicate。MySQL的Windows安装版只提供 32 位了。可以考虑在官网下载或者在其它途径获取MySQL。1、连接数据库:输入密码,并取一个连接名。如果需要卸载,先卸载软件再删除注册表。2、依据提示点击下一步知道完成。
2022-12-13 21:52:03
1921
原创 Java web环境配置
新建 node_global 和 node_cache 文件夹。下载svn和中文语言包然后设置语言为中文简体。5、配置全局安装的模块路径和缓存路径。设置-》系统-》系统信息-》高级设置。1、在官网下载相应的版本。3、检查是否安装完成。
2022-12-09 00:10:37
566
原创 计算机组成原理之编码、进制转换和运算
采样的过程就是抽取某点的频率值,很显然,在一秒中内抽取的点越多,获取得频率信息更丰富,为了复原波形,一次振动中,必须有2个点的采样,人耳能够感觉到的最高频率为20kHz,因此要满足人耳的听觉要求,则需要至少每秒进行40k次采样,用40kHz表达,这个40kHz就是采样率。光有频率信息是不够的,我们还必须获得该频率的能量值并量化,用于表示信号强度。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
2022-12-08 23:35:34
697
原创 【C#开发】?、??、?.的使用
值类型和引用类型不同,它在使用时不能为空(在声明时可以不赋值,但在使用前必须赋值)。当a为null时则返回b,a不为null时则返回a本身。声明了一个可空的int类型变量,也可以写成。不为null适执行Count方法。注意:可空类型为空时不能计算。
2022-12-08 23:34:42
292
原创 【Revit二次开发】应用程序和文档
应用程序和文档(Application and Document)是Revit API的顶层对象。应用程序对象:一个独立的Revit会话,提供访问文件、选项和应用程序范围的其他数据及设置。文档对象是单个revit项目文件。Revit可以有多个打开的项目,对应多个文档对象。应用程序对象是指一-个独立的 Revit会话,提供访问文件、选项和应用程序范围的其他数据及设置。
2022-11-24 15:12:29
1396
原创 【Revit二次开发】元素(Element)
区别是,系统族的族实例在Revit中可以找到与之相关的变成类型,例如,使用系统族:基本墙绘制的图元,它的编程类型是Wall。我们先全部当作模型图元,以“排烟“为例,排烟的设备是可以通过购买或者现场焊接制作出来安装在现实世界中的,而”排烟”两个字,我们是无法把这两字和最终的建筑相对应。“模型图元表示存在于建筑项目中的物理项”,通俗的讲,凡是在设计图纸中出现的模型图元,在现实世界中必将会存在与之描述一致的物理实体。而对于二次开发的执行者,能够区分已有模型图元是否为结构图元即可,见图元的属性参数“结构“。
2022-11-24 15:11:14
1542
原创 【Revit二次开发】外部事件(ExternalEvent)
外部事件并不是指Csharp中的event关键词修饰的类型,而是一种实现事件机制的接口,它的工作方式与编程中的事件相似:一个插件程序能在某个动作即将发生或发生后得到通知,然后根据这个动作采取行动。
2022-11-12 00:34:32
1240
原创 【Revit二次开发】模型中存储数据——参数和外部存储(Parameter, Schema and Entity)
在Revit平台API中,每个图元对象都有参数属性,它是隶属于图元所有属性的集合,在此集合中更改属性值。- 每个图元的参数都有一个与之关联的ElementId类型的ID- 大多数参数是Revit内置的 - 还有一部分是存储在硬盘外部共享参数文件的共享参数Revit API允许创建Schema类数据结构并将它们的实例附着到Revit模型中的任何Element。>Revit API中外部存储相关的类Sechema:数据结构SchemaBuilder:数据架构编辑器Field:字段FieldB
2022-11-09 16:30:18
1728
原创 【Revit二次开发】事务和事务处理(Transaction and FailureHandlingOptions)
任何一个对文档修改的操作都需要包含在-一个打开的属于该文档的事务中,否则就会有异常抛出。在任何时候,一个文档当前只能有一个打开的事务,但在一个事务中可以有一个或多个修改模型的操作。TransactionHandleCmd类功能为在同一位置绘制三堵墙,并在事务中使用自定义的故障处理选项,自定义的方式是把SameElementProcessor作为故障预处理器Set到故障处理选项中。事务是将一系列修改Revit模型的操作提交到文档的一种对象。任何一个对文档修改的操作都要包含在一个打开的属于该文档的食物中。
2022-11-03 18:00:00
1141
原创 Revit报错:Attempting to create an ExternalEvent outside of a standard API execution
Attempting to create an ExternalEvent outside of a standard API execution
2022-10-20 14:14:42
504
原创 数据结构基本概念
从具体问题中抽象出数学模型设计一个解决这个模型的算法编写程序,进行测试、调整得到最终结果寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些对象之间的关系,然后用数学语言加以描述。数据结构三要素:逻辑结构、存储结构、数据运算算法:是对特定问题求解步骤的描述。
2022-10-17 21:00:00
537
原创 在word中使用Aurora插入Tex算法伪代码、表格和公式
打开word->插入->对象->Aurora Equation。输入latex代码并点击Refresh。输入MikTex相应文件地址。把MikTex中下载的包导入。关闭对象在word中出现内容。1、下载安装MikTex。点击Properties。出现Done即编译完成。下载安装Aurora。点击Packages。
2022-10-11 20:00:00
2722
1
原创 【Revit二次开发】族
族样板可以是基于主体的样板, 也可以是独立的样板。在当前文档中,如果加载了一些构建族,并创建了这些族的族实例,那么,对某个族实例进行EditFamily操作,将会进人到族编辑的文档中,可以对族进行修改。在当前文档中,如果加载了一些构建族,并创建了这些族的族实例,那么,对某个族实例进行EditFamily操作,将会进人到族编辑的文档中,可以对族进行修改。如果用面向对象语言中的概念来讲,族相当于类模板(Class Template),族类型相当于类(Class) ,族实例相当于对象(Object)。
2022-10-11 16:57:39
3169
2
原创 Revit二次开发——视图
它们可以是图形,如平面图;Autodesk. Revit.DB. View类是Revit文件中所有视图类型的基类。Autodesk. Revit.Ul.UIView类表示在Revit用户界面中的窗口视图。Autodesk.Revit.DB.View类是Revit文件中所有视图类型的基类;Autodesk.Revit.UI.UIView类表示在Revit用户界面中的窗口视图。也可以通过删除该视图所依赖的对象来间接删除该视图,例如,删除标高,相应的平面视图也会被删除,或者删除相机,相应的三维视图也会被删除。
2022-09-29 09:11:45
3032
原创 【Revit二次开发】单位转换
单位的表示,由DisplayUnitType枚举字段表示,变成了UnitTypeId静态类的只读属性。使用UnitTypeId代替DisplayUnitType。Revit内部基本单位是英尺,我们需要进行单位转换。Revit2021和2020相比。
2022-09-28 09:00:24
1274
原创 Revit二次开发——墙
下面分别列出了标高、轴网和模型线API构造方法,从构造方法中我们可以判断你所创建的图元时是否是否基于标高、面或者其他。随着对API中各个图元的构造方法的熟练掌握,创建图元将变得得心应手。另外,也可以实现在revit中绘制要开发的图元,查看图元创建依赖于哪些信息,来指导API构造器的选择。这是因为,在Revit中由一部分图元是基于标高(Level)的,其他的还有基于视图的二维图元(向文字、详图线和填充等等的注释元素),基于面的图元(如基于墙面的灯),基于宿主的图元(如门,窗和洞口等)。
2022-09-26 15:03:28
1066
原创 C#开发——数据库操作
DataSet一次性从数据源获取数据到本地,并在本地建立一个微型数据库(包含表、行、列、规则、表之间的关系等),期间可以断开与服务器的连接,使用SqlDataAdapter对象操作“本地微型数据库”,结束后通过SqlDataAdapter一次性更新到远程数据库服务器。SqlDataReader时刻与远程数据库服务器保持连接,将远程的数据通过“流”的形式单向传输给客户端,它是“只读”的。由于是直接访问数据库,所以效率较高,但使用起来不方便。二是DataSet联合SqlDataAdapter来操作数据库。
2022-09-22 08:58:40
2552
原创 【Revit二次开发】模型线
与之前的创建轴网和标高不同,没有特意去设置Revit参数。另外,在创建之前要首先创建一个成为草图平面的图元来承载模型线。因为在revit中普通的模型线图元是基于面的。综合我们已经创建的标高、轴网和模型线,在建立这些模型时,都需要一些几何信息,如点,线,面等。对于几何信息在Revit API中的相关类将会在最后一节中介绍,这些类的操作都支持中学的几何知识,主要涉及到三维正交坐标系,极坐标系,线段、弧的表达,点、线、面关系等等。
2022-09-07 13:33:35
1434
原创 【C#开发】using
Dispose模式是.NET提供的一种显式清理对象资源的约定方式,用于在.NET 中释放对象封装的非托管资源。内存的释放具有不确定性;当我们做一些比较占用资源的操作,而且该类或者它的父类继承了IDisposable接口,这样就可以使用using语句,在此范围的末尾自动将对象释放,常见的using使用在对数据库的操作的时候。某些类型的非托管对象有数量限制或很耗费系统资源,在代码使用完它们后,尽可能快的释放它们是非常重要的,using用于定义一个范围,在此范围的末尾将释放对象,强制清理资源。...
2022-09-01 16:55:59
2213
原创 Revit二次开发——图元(元素)编辑
例如,如果在坐标点(O,0, 0)新创建了一个柱子,然后移动它到新的坐标点(10, 20, 30),这个柱子将会移动到(10, 20, 0),而不是(10, 20, 30)。移动元素集的方法也会出现这种情况。元素的几个重要的属性包括: Category(类别),Location(位 置),Levelld(标 高),Groupld(组),Id, UniqueId(唯一 Id)等等。API提供了移动元素的方法,可以把-一个或者几个元素从一个地方移动到另一个地方,从精确程度来说,和UI的移动命令是一样的。....
2022-08-29 09:57:02
2290
原创 Revit二次开发——轴网
通过Grid.Curve属性能够拿到轴网的曲线,如果Grid.IsCurved返回true,那么Curve将是一个弧形曲线Arc 对象,否则就是Line对象。多个轴网可以使用Document.NewGrids( )方法同时进行创建,该方法采用CurveArray。在Revit平台API中,有两个重载Document方法可用于创建新的轴网。●如果IsCurved属性返回true, 则Curve属性为Arc类对象。数使用代码3-39方法,可以创建曲线或直线轴网。注意:用于创建轴网的弧线或直线必须在水平面内。..
2022-08-27 16:58:11
1174
原创 C#开发——基础语法
C# 中的关键组织结构概念包括程序、命名空间、类型、成员和程序集。 程序声明类型,而类型则包含成员,并被整理到命名空间中。 类型示例包括类、结构和接口。 成员示例包括字段、方法、属性和事件。 编译完的 C# 程序实际上会打包到程序集中。 程序集的文件扩展名通常为 .exe 或 .dll,具体视其分别实现的是应用程序还是库而定。C# 程序可以存储在多个源文件中。 在编译 C# 程序时,将同时处理所有源文件,并且源文件可以自由地相互引用。 从概念上讲,就好像所有源文件在被处理之前都连接到一个大文件。 在 C#
2022-08-27 16:51:01
2445
转载 C#开发——C# 程序构建
重写方法是在派生类中实现的方法,可修改基类实现的行为。属性的声明方式与字段相似,区别是属性声明以在分隔符 { 和 } 之间写入的 get 访问器或 set 访问器结束,而不是以分号结束。参数数组只能是方法的最后一个参数,且参数数组的类型必须是一维数组类型。在使用参数数组的方法中,参数数组的行为与数组类型的常规参数完全相同。不过,在调用包含形参数组的方法时,要么可以传递形参数组类型的一个实参,要么可以传递形参数组的元素类型的任意数量实参。两者都是包含关联类型的已命名成员,用于访问字段和属性的语法也是一样的。.
2022-08-27 10:58:19
1608
原创 C#开发——ref和out
使用ref关键字指定参数进行引用传递注意:使用ref,首先需要使用”不是常量“的变量,其次是必须使用初始化过的变量,C#不允许ref参数在调用他的函数中初始化该参数在函数结束后可能会改变值{maxIndex}......
2022-08-26 17:08:56
183
原创 C#开发——基本概念和HelloWord
C# 设计中受版本控制加*强直接影响的方面 包括:单独的 virtual 和 override 修饰符,关于方法重载决策的规则,以及对显式接口成员声明的支持。通过 C# 生成的 CIL 代码可以与通过 .NET 版本的 F#、Visual Basic、C++ 或其他 20 多种与 CTS 兼容的任何语言所生成的代码进行交互。一个程序集可能包含多个用不同 .NET 语言编写的模块,且类型可以相互引用,就像是用同一种语言编写的 一样。C# 中的关键组织结构概念包括程序、命名空间、类型、成员和程序集。
2022-08-25 16:12:26
2169
原创 Revit二次开发——族的基础
族样板可以是基于主体的样板, 也可以是独立的样板。在当前文档中,如果加载了一些构建族,并创建了这些族的族实例,那么,对某个族实例进行EditFamily操作,将会进人到族编辑的文档中,可以对族进行修改。在当前文档中,如果加载了一些构建族,并创建了这些族的族实例,那么,对某个族实例进行EditFamily操作,将会进人到族编辑的文档中,可以对族进行修改。如果用面向对象语言中的概念来讲,族相当于类模板(Class Template),族类型相当于类(Class) ,族实例相当于对象(Object)。
2022-08-23 22:00:00
2373
原创 【Revit二次开发】标高
1)标高的高度( Elevation and ProjectElevation)通过Level. Elevation属性(对应的BuiltInParameter是LEVEL_ ELEV)可以获取标高的高度,它代表的是该标高相对于“基面(Elevation Base)”的高度,基面可以是“项目基点”,也可以是“测量点”,在Revit界面上,用户可以通过标高对应的标高的类型(LevelType)属性来确定基面。继承的Name属性用于检索Revit用户界面中的标高符号旁的用户可见的标高名称。
2022-08-23 21:15:00
1974
1
原创 Revit二次开发——选集
PickObject()、PickObjects( )和PickElementsByRectangle( )都有一一 个以ISelectionFilter作为参数的重载。它有两个可以重载的方法: AllowElement()用 于指定是否允许选择某个图元,AllowReference( )用于指定是否允许选择对某个几何体的参照。可指定的对象类型有图元和图元上的点、边或面。Revit API中定义了单选、多选、框选等方式的用户选集,用户可以十分方便的使用鼠标和键盘完成这三种方式的图元选择。
2022-08-19 15:58:56
1123
原创 Revit二次开发——参数获取和修改
参数是记录Revit元素模型属性的对象。在Revit软件中,属性界面中的内容就是Revit参数的一种展现形式。参数作为Revit提供的一种编辑图元参数的通用机制,这里介绍这种机制是如何实现的,以及如何访问参数。
2022-08-19 11:26:49
5110
1
原创 revit二次开发——过滤器基础
过滤器Revit API提供一种机制,用于过滤和迭代Revit文件中的图元。这是用于获取一组相关图元的最好方式,如文件中所有的墙或门。过滤器也可以用来寻找出一-组很具体的图元,如某一特定尺寸的所有的梁。(1)新建一个FilteredElementCollector;(3)获取滤过的图元或图元ID (使用几种方法之一)。通过指定过滤器获取图元的基本步骤如下: .(2)对它运用一个或多个过滤器;.....................
2022-08-18 16:57:12
1913
原创 Revit二次开发——HelloRevitApp
语言为C#,项目模板应为.Net Framework 类库,框架平台以Revit API 中的说明为准,Revit 2021 的要求选择.Net Framework 4.8。编写addin清单文件保存到C:\ProgramData\Autodesk\Revit\Addins\2021,即可在revit打开插件。新建项目-》添加引用-》添加代码-》构建程序-》创建addin清单文件/或者通过AddinManager插件运行。RevitLookUp 官方的快速浏览Revit内部对象世界的Revit插件;....
2022-08-18 13:50:09
617
原创 Java基础总结(上)
这里写自定义目录标题1 Java1.1 Java语言基础1.2 面向对象1.3 并发与线程1.4 JVM1.5 数据结构与算法1.5 设计模式2 开源框架2.1 Spring2.2 Tomcat3 微服务4 分布式1 Java1.1 Java语言基础1.2 面向对象1.3 并发与线程1.4 JVM1.5 数据结构与算法1.5 设计模式2 开源框架2.1 Spring2.2 Tomcat3 微服务4 分布式......
2022-04-07 22:09:29
1742
1
如何写原生的伽马函数
2021-05-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人