CN113542572B - 基于Revit平台的枪机摄像机布置及镜头选型方法 - Google Patents
基于Revit平台的枪机摄像机布置及镜头选型方法 Download PDFInfo
- Publication number
- CN113542572B CN113542572B CN202111082346.7A CN202111082346A CN113542572B CN 113542572 B CN113542572 B CN 113542572B CN 202111082346 A CN202111082346 A CN 202111082346A CN 113542572 B CN113542572 B CN 113542572B
- Authority
- CN
- China
- Prior art keywords
- model
- point
- camera
- node
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/50—Constructional details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N17/00—Diagnosis, testing or measuring for television systems or their details
- H04N17/002—Diagnosis, testing or measuring for television systems or their details for television cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/50—Constructional details
- H04N23/55—Optical parts specially adapted for electronic image sensors; Mounting thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Abstract
本发明涉及视频监控技术领域,具体涉及基于Revit平台的枪机摄像机布置及镜头选型方法。创建Revit参数化的枪机摄像机族;将其载入并布置于Revit项目中;然后拾取设置枪机摄像机族参数;计算监控范围;设置标识参数;标记当前枪机摄像机族的镜头选型结果;创建枪机摄像机族视角三维视图;使用Dynamo插件来计算模拟枪机摄像机族的监控范围射线;对最佳监控距离射线和弱视监控距离射线分别进行着色处理,实现模拟不同位置、不同镜头焦距型号的枪机摄像机族所监控的有效范围。本发明创建参数化枪机摄像机族并应用到Revit项目场景中任意位置,模拟枪机摄像机族在三维场景中的有效监控范围,提前预知监控效果。
Description
技术领域
本发明涉及视频监控技术领域,具体涉及基于Revit平台的枪机摄像机布置及镜头选型方法。
背景技术
传统枪机摄像机布置中,通常利用辅助线检查摄像机的布置和监控范围,但是这样的布置方法只能简单地确定摄像机的监控范围,易导致的因实际场景中的物体遮挡而产生视觉盲区、实际空间距离与镜头型号计划不符等问题。
因此,需要一种方法,针对枪机摄像机族的布置及不同型号镜头的参数,解决现有技术中无法精确确定有效监控范围产生视觉盲区、实际空间距离与镜头型号计划不符等问题。
发明内容
本发明提供基于Revit平台的枪机摄像机布置及镜头选型方法,通过Revit平台创建参数化枪机摄像机族并应用到Revit项目场景中任意位置,再通过平台的Dynamo可视化编程插件,结合枪机摄像机族的布置及不同型号镜头的参数,模拟不同的枪机摄像机在三维场景中的有效监控范围,提前预知监控效果。从而解决现有技术中存在的问题。
基于Revit平台的枪机摄像机布置及镜头选型方法,包括如下步骤:
步骤1,创建Revit参数化的枪机摄像机族;然后将创建好的枪机摄像机族载入并布置于Revit项目中;
步骤2,使用Dynamo插件设计程序来拾取并设置枪机摄像机族参数;
步骤3,计算枪机摄像机族的监控范围;
步骤4,设置枪机摄像机族型号标识参数;标记当前方案中枪机摄像机族的镜头选型结果;
步骤5,创建枪机摄像机族视角三维视图;
步骤6,使用Dynamo插件设计程序来计算模拟枪机摄像机族的监控范围射线;
步骤7,对最佳监控距离射线和弱视监控距离射线分别进行分段着色处理,从而实现模拟枪机摄像机族中不同位置、不同镜头焦距型号的枪机摄像机族所监控的有效范围。
采用这样的方法,通过Revit平台创建参数化枪机摄像机族并应用到Revit项目场景中任意位置,再通过平台的Dynamo可视化编程插件,并模拟枪机摄像机族的位置、仰角、水平角、镜头型号,提前预知枪机摄像机族的图像采集效果,获悉可视范围及最佳监控距离,规避了因方案设计不当、环境因素考虑漏缺导致监控目标处于视觉盲区中或无效监控距离中的问题。
进一步的,所述步骤1包括:
步骤1.1,制作文字族,利用文字族标记枪机摄像机族的属性;
文字族的制作基于Revit平台中基于面的公制常规模型族样板,在参照标高平面原点处创建模型文字,文字内容为标记枪机摄像机族的属性。完成创建之后对模型文字的文字、材质、深度及文字大小属性进行参数绑定,参数名分别记为模型文字内容、模型文字材质、模型文字高度及模型文字大小;
然后创建枪机摄像机机身族,其包括腔体模型、端头模型、镜头模型;创建第一自适应点和第二自适应点,第一自适应点位于腔体模型内部,第二自适应点位于镜头中心位置,记录第一自适应点至第二自适应点的实际距离,作为第二自适应点距离第一自适应点的旋转半径;在文字族制作完成后将其载入摄像机机身族,在腔体模型表面创建文字族实例,调整文字族实例在腔体模型表面位置,使文字大致处于表面中心,设置文字族实例的模型文字材质、模型文字高度及模型文字大小参数材质属性或数值,直至符合观感,并对文字族实例的模型文字内容参数进行绑定,参数名记为摄像机机身文字内容;最终形成完整的枪机摄像机机身族;
步骤1.2,创建支架族,所述支架族包括支架基座模型、横杆模型、竖杆模型、模型点及模型线;以竖杆模型顶部中心位置为原点,分别创建形成支架基座模型、横杆模型、竖杆模型、模型点及模型线;所述模型点包括第一模型点和第二模型点;所述模型线分别以第一模型点和第二模型点为起点和终点;
所述第一自适应点处于枪机摄像机机身族绕支架族运动的轴心截面上,第一自适应点与第二自适应点的连线与摄像机机身族的轴线重合;
步骤1.3,然后将载入的完整的摄像机机身族和支架族,通过编辑及参数公式设计,最终形成参数化的枪机摄像机族。
在支架族中载入枪机摄像机机身族时,分别选择第一模型点和第二模型点,作为枪机摄像机机身族第一自适应点和第二自适应点的定位点,在支架族中完成一个枪机摄像机机身族实例的创建,并对枪机摄像机机身族实例的摄像机机身文字内容参数进行绑定,参数名记为枪机摄像机族文字内容。
当调整仰角参数或水平角参数的参数值时,第二模型点将以第一模型点为球心,以枪机摄像机机身族中第一自适应点至第二自适应点间距的固定距离为半径做运动,从而实现对枪机摄像机机身族实例空间位置的控制。
进一步的,步骤2包括:
将枪机摄像机族载入;
创建第一Dynamo程序,其包括1个第一Select Model Element节点、2个NumberSlider节点、2个String节点及2个Element.SetParameterByName节点;所述第一SelectModel Element节点拾取上述Revit项目中的枪机摄像机族的实例;2个Number Slider节点中的数值滑块分别作为仰角参数滑块、水平角参数滑块;所述Number Slider节点中数值滑块的Min、Max及Step数值,分别作为数值滑块调整的起始值、结束值及步距;2个String节点的值分别为枪机摄像机族的仰角的参数名称字符串和水平角的参数名称字符串;2个Element.SetParameterByName节点用于接收所述枪机摄像机族中仰角参数的参数名称及其参数值和水平角参数的参数名称及其参数值,然后将仰角参数的参数值和水平角参数的参数值设置为输入的参数值;通过运行第一Dynamo程序,将仰角参数滑块、水平角参数滑块的值分别赋予枪机摄像机族中的仰角参数和水平角参数。
进一步的,步骤3包括:
创建第二Dynamo程序,并用其读取镜头焦距、分析线密度、分析点精度,然后计算监控范围,其包括固定距离处枪机摄像机族监控范围的宽和高的计算,监控范围内分析线的计算和分析线上分析点的计算;所述第二Dynamo程序包括第一Python Script节点;其设置4个输入端,分别连接第一Dynamo程序中经过参数修改之后的Element.SetParameterByName输出端、镜头焦距参数下拉列表输出端、分析线密度输出端和分析点精度输出端;
固定距离处枪机摄像机族监控范围的宽和高的计算包括:所述第二Dynamo程序通过函数Element.Curves获取所述模型线,再通过函数Vector.ByTwoPoints(),计算出模型线起点指向模型线的终点的空间向量;采用Geometry.Translate()函数,计算出模型线的终点沿上述空间向量偏移的距离,然后根据枪机摄像机族的镜头焦距型号,获取监控范围的宽度和高度,通过Rectangle.ByWidthLength()函数创建矩形线框,完成固定距离处枪机摄像机族的监控范围的宽和高的计算。
进一步的,所述监控范围内分析线的计算包括:
读取分析线密度参数,以所述矩形线框为边界,将其向内划分为多个矩形小线框构成矩形线框组;所述矩形线框组内多个矩形小线框的几何中心重合;从外至内多个矩形小线框的宽和高均分别为递减的等差数列,将其记为矩形线框数列,所述矩形线框数列与分析线密度参数一致;将矩形线框组内多个矩形小线框的边界作为监控范围内的分析线。
进一步的,分析线上分析点的计算包括:
在所述分析线上间隔创建分析点,并以分析点精度为固定步距,0为起始值,创建等差数列,等差数列最大值上限小于分析线的长度,通过Curve.PointAtSegmentLength()函数在分析线上创建等差数列中每项数值长度处的点,计算形成分析点组;
然后以所述模型线的终点为起点,依次以分析点组中每一个点为终点,得到空间向量组;并设置该第一Python Script节点的输出端为数组:[模型线的终点,空间向量组]。
在步骤3所述“Python Script”节点中,通过Element.SetParameterByName()函数,对枪机摄像机族的枪机文字内容进行设置,修改为包括镜头焦距型号及有效监控距离的文字信息。
进一步的,所述步骤5包括:
创建第三Dynamo程序,其包括:1个第二Python Script节点、1个第一Code Block节点、1个第二Select Model Element节点、1个String节点、1个Boolean节点和1个PerspectiveView.ByEyePointTargetAndElement节点;
其中,第二Python Script节点包括2个输入端口,分别连接步骤3步骤中所述的Select Model Element节点输出端和步骤4中所述下拉列表节点输出端,在第二PythonScript节点内,然后通过函数Element.Curves获取所述模型线,再通过函数Vector.ByTwoPoints(),计算出模型线起点指向模型线的终点的空间向量;然后计算出枪机摄像机族的监控范围的最小距离和最大距离的平均值;采用Geometry.Translate()函数,计算出模型线的终点沿对应空间向量偏移所述平均值的距离,得到偏移后的点;
将数组[模型线的终点,偏移后的点]作为第三Dynamo程序中第二Python Script节点的输出值;
使用函数在Code Block节点中将第二Python Script节点的输出值分成两项,分别对应模型线的终点和偏移后的点;String节点作为枪机摄像机族视角三维视图的名称输入端;Boolean节点为布尔值节点,提供布尔参数;使用PerspectiveView.ByEyePointTargetAndElement节点功能由视点和目标位置以及图元创建Revit透视视图,其eyePoint输入端连接Code Block节点第一项输出,用以设置枪机摄像机族视角三维视图的视点;target输入端连接Code Block节点第二项输出,用以设置枪机摄像机族视角三维视图的目标位置;element输入端连接第二Select Model Element节点输出端,用以设置监控范围内的图元,name输入端连接String节点输出端,用以设置新建视图的名称;isolateElement输入端连接Boolean节点输出端,用以设置在枪机摄像机族视角三维视图中是否单独显示element输入端引入的图元。
进一步的,所述步骤6包括:
设计第四Dynamo程序,其包括1个第二CodeBlock节点、1个Views节点及1个RayBounce.ByOriginDirection节点;
所述第二CodeBlock节点将所述第一Python Script节点的输出端的数组拆分为模型线的终点和空间向量组,RayBounce.ByOriginDirection节点返回从指定原点和原方向反弹的光线相交的位置和图元;在RayBounce.ByOriginDirection节点接入上述拆分后的模型线的终点和空间向量组,并设置最大射线弹跳次数为1;所述指定原点为空间向量组中所有向量方向发射光线的原点;
通过Views节点选择视图空间,第四Dynamo程序将返回以模型线的终点为原点,沿空间向量组中所有向量方向发射光线触碰到的第一个图元及触碰点,最终形成触碰点图像,所述触碰点图像显示枪机摄像机族的监控范围;选择不同的镜头焦距类型,第四Dynamo程序,可生成不同镜头焦距类型下,不同监控范围的触碰点图像。
进一步的,所述步骤7包括:
对最佳监控距离射线的分段着色:
创建第五Dynamo程序,其包括1个第三Python Script节点、1个第一ColorPalette节点及1个第一GeometryColor.ByGeometryColor节点;
以所述模型线的终点为起点,以第四Dynamo程序中RayBounce.ByOriginDirection节点的points输出端的每一个点为终点,创建第一直线段,并对每条第一直线段进行分割;以模型线的终点为原点,取镜头焦距型号最小值至最大值范围内的第一线段,并通过第一Color Palette节点选择颜色,再以第一GeometryColor.ByGeometryColor节点为所述第一线段设置颜色显示。
进一步的,所述步骤7包括:
对弱视监控距离射线的分段着色:
创建第六Dynamo程序,其包括:1个第四Python Script节点、1个第二ColorPalette节点及1个第二GeometryColor.ByGeometryColor节点;
以所述模型线的终点为起点,以第四Dynamo程序中RayBounce.ByOriginDirection节点的points输出端的每一个点为终点,创建第二直线段,并对每条第二直线段进行分割;以模型线的终点为原点,取镜头焦距型号最小值以下和最大值范围以上的第二线段,并通过第二Color Palette节点选择颜色,再以第二GeometryColor.ByGeometryColor节点为上述第二线段设置线段的颜色显示。
本发明的有益效果为:
本发明通过Revit平台创建参数化枪机摄像机族并应用到Revit项目场景中任意位置,再通过平台的Dynamo可视化编程插件,结合枪机摄像机族的布置及不同型号镜头的参数,模拟枪机摄像机族的位置、仰角、水平角、镜头型号,提前预知枪机摄像机族图像采集效果,获悉可视范围及最佳监控距离,模拟枪机摄像机族在三维场景中的有效监控范围。规避了因方案设计不当、环境因素考虑漏缺导致监控目标处于视觉盲区中或无效监控距离中的问题。
附图说明
图1为本发明实施例中完整的摄像机机身族;
图2为本发明实施例中支架族的位置示意图;
图3为本发明实施例中支架族的结构示意图;
图4为本发明实施例中枪机摄像机族的结构示意图;
图5为本发明实施例中枪机摄像机族在载入项目中的示意图;
图6为本发明实施例中第一Dynamo程序的示意图;
图7为本发明实施例中第二Dynamo程序的示意图;
图8为本发明实施例中矩形线框的示意图;
图9为本发明实施例中矩形线框组的示意图;
图10为本发明实施例中分析点组的示意图;
图11为本发明实施例中第三Dynamo程序的示意图;
图12为本发明实施例中枪机摄像机族视角三维视图的示意图;
图13为本发明实施例中第四Dynamo程序的示意图;
图14为本发明实施例中触碰点的示意图;
图15为本发明实施例中采用6mm焦距镜头时触碰点的示意图;
图16为本发明实施例中采用8mm焦距镜头时触碰点的示意图;
图17为本发明实施例中采用12mm焦距镜头时触碰点的示意图;
图18为本发明实施例中采用16mm焦距镜头时触碰点的示意图;
图19为本发明实施例中镜头成像清晰度与监控距离之间关系的示意图;
图20为本发明实施例中第五Dynamo程序的示意图;
图21为本发明实施例中最佳监控范围射线的示意图;
图22为本发明实施例中近距离监控范围射线和远距离监控范围射线的示意图;
图23为本发明中方法的流程图;
附图标记:
1、腔体模型;2、端头模型;3、镜头模型;4、文字族;5、第一自适应点;6、第二自适应点;7、第一参照平面;8、第二参照平面;9、中心(左/右)参照平面;10、中心(前/后)参照平面;11、第一模型点;12、第二模型点;13、横杆模型;14、竖杆模型;15、支架基座模型;16、模型线;17、枪机摄像机族;18、矩形线框;19、矩形小线框;20、空间坐标系;21、分析点;22、触碰点。
具体实施方式
显然,下面所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
一种基于Revit平台的枪机摄像机布置及镜头选型方法,包括如下步骤:
步骤1,创建Revit参数化的枪机摄像机族17;然后将创建好的枪机摄像机族17载入并布置于Revit项目中;
步骤2,使用Dynamo插件设计程序来拾取并设置枪机摄像机族参数;
步骤3,计算枪机摄像机族的监控范围;
步骤4,设置枪机摄像机族型号标识参数;标记当前方案中枪机摄像机族的镜头选型结果;
步骤5,创建枪机摄像机族视角三维视图;
步骤6,使用Dynamo插件设计程序来计算模拟枪机摄像机族的监控范围射线;
步骤7,对最佳监控距离射线和弱视监控距离射线分别进行分段着色处理,从而实现模拟枪机摄像机族中不同位置、不同镜头焦距型号的枪机摄像机族所监控的有效范围。
采用这样的方法,通过Revit平台创建参数化枪机摄像机族并应用到Revit项目场景中任意位置,再通过平台的Dynamo可视化编程插件,并模拟枪机摄像机族的位置、仰角、水平角、镜头型号,提前预知枪机摄像机族的图像采集效果,获悉可视范围及最佳监控距离,规避了因方案设计不当、环境因素考虑漏缺导致监控目标处于视觉盲区中或无效监控距离中的问题。
所述步骤1包括:
步骤1.1,制作文字族4,利用文字族4标记枪机摄像机属性;
文字族4的制作基于Revit平台中基于面的公制常规模型族样板,在参照标高平面原点处创建模型文字,文字内容为标记枪机摄像机族的属性,其设定格式为:2.8mm * 30m,用2.8mm表示镜头焦距为2.8mm,30m则表示枪机摄像机族的最佳可视范围最大值为30m。完成创建之后对模型文字的文字、材质、深度及文字大小属性进行参数绑定,参数名分别记为模型文字内容、模型文字材质、模型文字高度及模型文字大小。
然后通过使用模型线16或参照线,创建旋转轴及闭合的轮廓,选择轮廓创建实心形状和空心形状,创建枪机摄像机机身族,其包括腔体模型1、端头模型2、镜头模型3;创建第一自适应点5和第二自适应点6,第一自适应点5位于腔体模型1内部,第二自适应点6位于镜头中心位置,并且第一自适应点5处于枪机摄像机机身族绕支架族运动的轴心截面上,第一自适应点5与第二自适应点6的连线与枪机摄像机机身族的轴线重合;记录第一自适应点5至第二自适应点6的实际距离,作为第二自适应点6距离第一自适应点5的旋转半径;在文字族4制作完成后将其载入枪机摄像机机身族,在腔体模型1表面创建文字族4实例,调整文字族4实例在腔体模型1表面位置,使文字大致处于表面中心,设置文字族4实例的模型文字材质、模型文字高度及模型文字大小参数材质属性或数值,直至符合观感,并对文字族4实例的模型文字内容参数进行绑定,参数名记为摄像机机身文字内容;最终形成完整的枪机摄像机机身族;
步骤1.2,创建支架族,所述支架族包括支架基座模型15、横杆模型13、竖杆模型14、模型点及模型线16;以竖杆模型14顶部中心位置为原点,分别创建形成支架基座模型15、横杆模型13、竖杆模型14、模型点及模型线16;所述模型点包括第一模型点11和第二模型点12;
在竖杆顶部中心位置,创建第一模型点11。切换至参照标高平面,在中心(左/右)参照平面9左侧距离大于第一自适应点5至第二自适应点6间距的固定距离处创建平行于中心(左/右)参照平面9的第一参照平面7,在中心(前/后)参照平面10上方距离大于第一自适应点5至第二自适应点6间距的固定距离处创建平行于中心(前/后)参照平面10的第二参照平面8,为中心(左/右)参照平面9与第一参照平面7之间添加尺寸标注,为中心(前/后)参照平面10与第二参照平面8之间添加尺寸标注,为上述尺寸标注添加同一个参数。
然后在第一参照平面7右侧,第二参照平面8下方,创建第二模型点12,添加第一参照平面7与第二模型点12的尺寸标注,记录第二模型点12在第一参照平面7右侧的偏移距离,添加第二参照平面8与第二模型点12的尺寸标注,记录第二模型点12在第二参照平面8下方的偏移距离,同时,为第二模型点12的偏移属性添加参数,记录第二模型点12在参照标高平面上的偏移高度,如图2所示。
在支架族的族类型中,添加仰角参数和水平角参数,为第二模型点12在第一参照平面7右侧的偏移距离参数设定公式:
第二模型点12在第一参照平面7右侧的偏移距离 =中心(左/右)参照平面9与第一参照平面7间距 - 第一自适应点5至第二自适应点6间距的固定距离*sin(90°-仰角参数)*sin(水平角参数)。
为第二模型点12在第二参照平面8下方的偏移距离参数设定公式:
第二模型点12在第一参照平面7右侧的偏移距离 =中心(前/后)参照平面10与第二参照平面8间距 - 第一自适应点5至第二自适应点6间距的固定距离*sin(90°-仰角参数)*cos(水平角参数)。
为第二模型点12在参照标高平面上的偏移高度添加参数:
在参照标高平面上的偏移高度 =第一自适应点5至第二自适应点6间距的固定距离*cos(90°-仰角参数)。
以第一模型点11为起点,第二模型点12为终点,绘制模型线16,确定枪机摄像机族的监控方向的向量标识线,如图3所示。
步骤1.3,然后将载入的完整的摄像机机身族支架族,通过编辑及参数公式设计,最终形成参数化的枪机摄像机族。
在支架族中载入枪机摄像机机身族时,分别选择第一模型点11和第二模型点12,作为枪机摄像机机身族第一自适应点5和第二自适应点6的定位点,在支架族中完成一个枪机摄像机机身族实例的创建,并对枪机摄像机机身族实例的摄像机机身文字内容参数进行绑定,参数名记为枪机摄像机族文字内容。
当调整仰角参数或水平角参数的数值时,第二模型点12将以第一模型点11为球心,以枪机摄像机机身族中第一自适应点5至第二自适应点6间距的固定距离为半径做运动,从而实现对枪机摄像机机身族实例空间位置的控制。
步骤2包括:
将枪机摄像机族载入Revit项目模型,如图5所示;
创建第一Dynamo程序,如图6所示,其包括1个第一Select Model Element节点、2个Number Slider节点、2个String节点及2个Element.SetParameterByName节点;所述第一Select Model Element节点拾取上述Revit项目中的枪机摄像机族实例;2个NumberSlider节点中的数值滑块分别作为仰角参数滑块、水平角参数滑块;所述Number Slider节点中数值滑块的Min、Max及Step数值,分别作为数值滑块调整的起始值、结束值及步距;2个String节点的值分别为枪机摄像机族的仰角的参数名称字符串和水平角的参数名称字符串;2个Element.SetParameterByName节点用于接收所述枪机摄像机族中仰角参数的参数名称及其参数值和水平角参数的参数名称及其参数值,然后将仰角参数的参数值和水平角参数的参数值设置为输入的参数值;通过运行第一Dynamo程序,将仰角参数滑块、水平角参数滑块的值分别赋予枪机摄像机族中的仰角参数和水平角参数。
步骤3包括:
创建第二Dynamo程序,并用其读取镜头焦距、分析线密度、分析点21精度,然后计算监控范围,其包括固定距离处枪机摄像机族监控范围的宽和高的计算,监控范围内分析线的计算和分析线上分析点21的计算;所述第二Dynamo程序包括第一Python Script节点;其设置4个输入端,分别连接第一Dynamo程序中经过参数修改之后的Element.SetParameterByName输出端、镜头焦距参数下拉列表输出端、分析线密度输出端和分析点21精度输出端;
镜头焦距参数通过下拉列表节点存储,编写第二Dynamo程序的下拉列表节点,存储枪机摄像机族的镜头焦距型号及对应参数,参数包括焦距、最佳照射距离最小值、最佳照射距离最大值,参数间通过字母或符号隔开。
分析线密度通过第二Dynamo程序的Integer Slider数值滑块存储数值,数值用于控制监控范围框内,分布的分析线数量。
分析点21的精度通过第二Dynamo程序的Code Block代码块存储数值,数值用于控制分析线上点的固定分布间距。
第二Dynamo程序的第一Python Script节点包括4个输入端,分别连接第二Dynamo程序中经过参数修改之后的Element.SetParameterByName输出端、镜头焦距参数下拉列表输出端、分析线密度输出端、分析点21精度输出端,如图7所示。
固定距离处枪机摄像机族监控范围的宽和高的计算包括:
所述第二Dynamo程序通过函数Element.Curves获取所述模型线16,再通过函数Vector.ByTwoPoints(),计算出模型线16起点指向模型线16的终点的空间向量;采用Geometry.Translate()函数,计算出模型线16的终点沿上述空间向量偏移的距离,然后根据镜头焦距型号,获取监控范围的宽度和高度,并以该偏移点为原点、以模型线16的空间向量为Z轴创建空间坐标系20,空间坐标系20X轴的在世界坐标系中的Z轴分量为0,即空间坐标系20X轴处于水平平面上。基于空间坐标系20的XY平面,根据镜头焦距型号,获取在该平面处,监控范围的宽度和高度,通过Rectangle.ByWidthLength()函数创建矩形线框18。完成固定距离处枪机摄像机族监控范围的宽和高的计算。
所述监控范围内分析线的计算包括:
读取分析线密度参数,以所述矩形线框18为边界,将其向内划分为多个矩形小线框19构成矩形线框18组;所述矩形线框18组内多个矩形小线框19几何中心重合;从外至内多个矩形小线框19的宽和高均分别为递减的等差数列,将其记为矩形线框18数列,所述矩形线框18数列与分析线密度参数一致;将矩形线框18组内多个矩形小线框19的边界作为监控范围内的分析线。
分析线上分析点21的计算包括:
在所述分析线上间隔创建分析点21,并以分析点21精度为固定步距,0为起始值,创建等差数列,等差数列最大值上限小于分析线的长度,通过Curve.PointAtSegmentLength()函数在分析线上创建等差数列中每项数值长度处的点,计算形成分析点21组;
然后以所述模型线16的终点为起点,依次以分析点21组中每一个点为终点,得到空间向量组;并设置该第一Python Script节点的输出端为数组:[模型线16的终点,空间向量组]。
在步骤3所述“Python Script”节点中,通过Element.SetParameterByName()函数,对枪机摄像机族实例的枪机文字内容进行设置,修改为包括镜头焦距型号及有效监控距离的文字信息。
所述步骤5包括:
创建枪机摄像机族视角的三维视图,创建第三Dynamo程序,其包括:1个第二Python Script节点、1个第一Code Block节点、1个第二Select Model Element节点、1个String节点、1个Boolean节点组成和1个PerspectiveView.ByEyePointTargetAndElement节点;
其中,第二Python Script节点包括2个输入端口,分别连接步骤3步骤中所述的Select Model Element节点输出端和步骤4中所述下拉列表节点输出端,在第二PythonScript节点内,然后通过函数Element.Curves获取所述模型线16,模型线16的起点对应了参数化枪机摄像机族的第一模型点11,模型线16的终点则对应了参数化枪机摄像机族的第二模型点12,再通过函数Vector.ByTwoPoints(),计算出模型线16起点指向模型线16的终点的空间向量;然后计算出枪机摄像机族的镜头监控的最小距离和最大距离的平均值;采用Geometry.Translate()函数,计算出模型线16的终点沿对应空间向量偏移所述平均值的距离,得到偏移后的点;
将数组[模型线16的终点,偏移后的点]作为第三Dynamo程序中第二PythonScript节点的输出值;
使用函数在Code Block节点中将第二Python Script节点的输出值分成两项,分别对应模型线16的终点和偏移后的点;String节点作为枪机摄像机族视角三维视图的名称输入端;Boolean节点为布尔值节点,提供布尔参数;使用PerspectiveView.ByEyePointTargetAndElement节点功能由视点和目标位置以及图元创建Revit透视视图,其eyePoint输入端连接Code Block节点第一项输出,用以设置枪机摄像机族视角三维视图的视点;target 输入端连接Code Block节点第二项输出,用以设置枪机摄像机族视角三维视图的目标位置;element输入端连接第二Select Model Element节点输出端,用以设置监控范围内的图元,name输入端连接String节点输出端,用以设置枪机摄像机族视角三维视图的名称;isolateElement输入端连接Boolean节点输出端,用以设置在枪机摄像机族视角三维视图中是否单独显示element输入端引入的图元。
所述步骤6包括:
设计第四Dynamo程序,其包括包括1个第二CodeBlock节点、1个Views节点及1个RayBounce.ByOriginDirection节点;
所述第二CodeBlock节点将所述第一Python Script节点的输出端的数组拆分为模型线16的终点和空间向量组,RayBounce.ByOriginDirection节点返回从指定原点和原方向反弹的光线相交的位置和图元;在RayBounce.ByOriginDirection节点接入上述拆分后的模型线16的终点和空间向量组,并设置最大射线弹跳次数为1;所述指定原点为空间向量组中所有向量方向发射光线的原点,即为模型线16的终点;
通过Views节点选择视图空间,第四Dynamo程序将返回以模型线16的终点为原点,沿空间向量组中所有向量方向发射光线触碰到的第一个图元及触碰点22,最终形成触碰点22图像,所述触碰点22图像显示枪机摄像机族的监控范围;选择不同的镜头焦距类型,第四Dynamo程序,可生成不同镜头焦距类型下,不同监控范围的触碰点22图像。
所述步骤7包括:
对最佳监控距离射线的分段着色,在有效范围内,镜头成像清晰度还和监控距离存在关系,太远或太近都会导致画面不清晰,每一种镜头焦距型号都有最佳监控距离限制,如图19所示:
创建第五Dynamo程序,其包括1个第三Python Script节点、1个第一ColorPalette节点及1个第一GeometryColor.ByGeometryColor节点;
以所述模型线16的终点为起点,以第四Dynamo程序中RayBounce.ByOriginDirection节点的points输出端的每一个点为终点,创建第一直线段,并对每条第一直线段进行分割;以模型线16的终点为原点,取镜头焦距型号最小值至最大值范围内的第一线段,并通过第一Color Palette节点选择颜色,再以第一GeometryColor.ByGeometryColor节点为所述第一线段设置颜色显示。
所述步骤7包括:
对弱视监控距离射线的分段着色:
创建第六Dynamo程序,其包括:1个第四Python Script节点、1个第二ColorPalette节点及1个第二GeometryColor.ByGeometryColor节点;
以所述模型线16的终点为起点,以第四Dynamo程序中RayBounce.ByOriginDirection节点的points输出端的每一个点为终点,创建第二直线段,并对每条第二直线段进行分割;以模型线16的终点为原点,取镜头焦距型号最小值以下和最大值范围以上的第二线段,并通过第二Color Palette节点选择颜色,再以第二GeometryColor.ByGeometryColor节点为上述第二线段设置线段的颜色显示。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (10)
1.基于Revit平台的枪机摄像机布置及镜头选型方法,其特征在于,包括如下步骤:
步骤1,创建Revit参数化的枪机摄像机族;然后将创建好的枪机摄像机族载入并布置于Revit项目中;
步骤2,使用Dynamo插件设计程序来拾取并设置枪机摄像机族参数;
步骤3,计算枪机摄像机族的监控范围;
步骤4,设置枪机摄像机族的型号标识参数;标记当前方案中枪机摄像机族的镜头选型结果;
步骤5,创建枪机摄像机族视角三维视图;
步骤6,使用Dynamo插件设计程序来计算模拟枪机摄像机族的监控范围射线;
步骤7,对最佳监控距离射线和弱视监控距离射线分别进行分段着色处理,从而实现模拟不同位置、不同镜头焦距型号的枪机摄像机族所监控的有效范围。
2.根据权利要求1所述的基于Revit平台的枪机摄像机布置及镜头选型方法,其特征在于,所述步骤1包括:
步骤1.1,制作文字族,利用文字族标记枪机摄像机族的属性;然后创建枪机摄像机机身族,其包括腔体模型、端头模型、镜头模型;创建第一自适应点和第二自适应点,第一自适应点位于腔体模型内部,第二自适应点位于镜头中心位置,在文字族制作完成后将其载入枪机摄像机机身族,形成完整的枪机摄像机机身族;
步骤1.2,创建支架族,所述支架族包括支架基座模型、横杆模型、竖杆模型、模型点及模型线;以竖杆模型顶部中心位置为原点,分别创建形成支架基座模型、横杆模型、竖杆模型、模型点及模型线;所述模型点包括第一模型点和第二模型点;所述模型线分别以第一模型点和第二模型点为起点和终点;
所述第一自适应点处于枪机摄像机机身族绕支架族运动的轴心截面上,第一自适应点与第二自适应点的连线与枪机摄像机机身族的轴线重合;
步骤1.3,然后将载入的完整的摄像机机身族和支架族,通过编辑及参数公式设计,最终形成参数化的枪机摄像机族。
3.根据权利要求1所述的基于Revit平台的枪机摄像机布置及镜头选型方法,其特征在于,步骤2包括:
创建第一Dynamo程序,其包括1个第一Select Model Element节点、2个Number Slider节点、2个String节点及2个Element.SetParameterByName节点;所述第一Select ModelElement节点拾取上述Revit项目中的枪机摄像机族;2个Number Slider节点中的数值滑块分别作为仰角参数滑块、水平角参数滑块;将所述Number Slider节点中的数值滑块的Min、Max及Step数值,分别作为数值滑块调整的起始值、结束值及步距;2个String节点的值分别为枪机摄像机族的仰角的参数名称字符串和水平角的参数名称字符串;2个Element.SetParameterByName节点用于接收所述枪机摄像机族中仰角参数的参数名称及其参数值和水平角参数的参数名称及其参数值,然后将仰角参数的参数值和水平角参数的参数值设置为输入的参数值;通过运行第一Dynamo程序,将仰角参数滑块、水平角参数滑块的值分别赋予枪机摄像机族中的仰角参数和水平角参数。
4.根据权利要求2所述的基于Revit平台的枪机摄像机布置及镜头选型方法,其特征在于,步骤3包括:
创建第二Dynamo程序,并用其读取镜头焦距、分析线密度、分析点精度,然后计算监控范围,其包括固定距离处枪机摄像机族的监控范围的宽和高的计算,监控范围内分析线的计算和分析线上分析点的计算;所述第二Dynamo程序包括第一Python Script节点;
固定距离处枪机摄像机族的监控范围的宽和高的计算包括:所述第二Dynamo程序通过函数Element.Curves获取所述模型线,再通过函数Vector.ByTwoPoints(),计算出模型线起点指向模型线的终点的空间向量;采用Geometry.Translate()函数,计算出模型线的终点沿上述空间向量偏移的距离,然后根据枪机摄像机族的镜头焦距型号,获取监控范围的宽度和高度,通过Rectangle.ByWidthLength()函数创建矩形线框,完成固定距离处枪机摄像机族的监控范围的宽和高的计算。
5.根据权利要求4所述的基于Revit平台的枪机摄像机布置及镜头选型方法,其特征在于,所述监控范围内分析线的计算包括:
读取分析线密度参数,以所述矩形线框为边界,将其向内划分为多个矩形小线框构成矩形线框组;所述矩形线框组内多个矩形小线框的几何中心重合;从外至内多个矩形小线框的宽和高均分别为递减的等差数列,将其记为矩形线框数列,所述矩形线框数列与分析线密度参数一致;将矩形线框组内多个矩形小线框的边界作为监控范围内的分析线。
6.根据权利要求5所述的基于Revit平台的枪机摄像机布置及镜头选型方法,其特征在于,分析线上分析点的计算包括:
在所述分析线上间隔创建分析点,并以分析点精度为固定步距,0为起始值,创建等差数列,等差数列最大值上限小于分析线的长度,通过Curve.PointAtSegmentLength()函数在分析线上创建等差数列中每项数值长度处的点,计算形成分析点组;
然后以所述模型线的终点为起点,依次以分析点组中每一个点为终点,得到空间向量组;并设置该第一Python Script节点的输出端为数组:[模型线的终点,空间向量组]。
7.根据权利要求2所述的基于Revit平台的枪机摄像机布置及镜头选型方法,其特征在于,所述步骤5包括:
创建第三Dynamo程序,其包括:1个第二Python Script节点、1个第一Code Block节点、1个第二Select Model Element节点、1个String节点、1个Boolean节点和1个PerspectiveView.ByEyePointTargetAndElement节点;
然后通过函数Element.Curves获取所述模型线,再通过函数Vector.ByTwoPoints(),计算出模型线起点指向模型线的终点的空间向量;然后计算出枪机摄像机族的监控范围的最小距离和最大距离的平均值;采用Geometry.Translate()函数,计算出模型线的终点沿对应空间向量偏移所述平均值的距离,得到偏移后的点;
将数组[模型线的终点,偏移后的点]作为第三Dynamo程序中第二Python Script节点的输出值;
在Code Block节点中将第二Python Script节点的输出值分成两项,分别对应模型线的终点和偏移后的点;String节点作为枪机摄像机族视角三维视图的名称输入端;Boolean节点为布尔值节点,提供布尔参数;使用PerspectiveView.ByEyePointTargetAndElement节点功能由视点和目标位置以及图元创建枪机摄像机族视角三维视图,其eyePoint输入端连接Code Block节点第一项输出,用以设置枪机摄像机族视角三维视图的视点;target 输入端连接Code Block节点第二项输出,用以设置枪机摄像机族视角三维视图的目标位置;element输入端连接第二Select Model Element节点输出端,用以设置监控范围内的图元,name输入端连接String节点输出端,用以设置枪机摄像机族视角三维视图的名称;isolateElement输入端连接Boolean节点输出端,用以设置在枪机摄像机族视角三维视图中是否单独显示element输入端引入的图元。
8.根据权利要求4所述的基于Revit平台的枪机摄像机布置及镜头选型方法,其特征在于,所述步骤6包括:
设计第四Dynamo程序,其包括1个第二CodeBlock节点、1个Views节点及1个RayBounce.ByOriginDirection节点;
所述第二CodeBlock节点将所述第一Python Script节点的输出端的数组拆分为模型线的终点和空间向量组,RayBounce.ByOriginDirection节点返回从指定原点和原方向反弹的光线相交的位置和图元;在RayBounce.ByOriginDirection节点接入上述拆分后的模型线的终点和空间向量组,并设置最大射线弹跳次数为1;所述指定原点为空间向量组中所有向量方向发射光线的原点;
通过Views节点选择视图空间,第四Dynamo程序将返回以模型线的终点为原点,沿空间向量组中所有向量方向发射光线触碰到的第一个图元及触碰点,最终形成触碰点图像,所述触碰点图像显示枪机摄像机族的监控范围;选择不同的镜头焦距类型,第四Dynamo程序可生成不同镜头焦距类型下,不同监控范围的触碰点图像。
9.根据权利要求8所述的基于Revit平台的枪机摄像机布置及镜头选型方法,其特征在于,所述步骤7包括:
对最佳监控距离射线的分段着色:
创建第五Dynamo程序,其包括1个第三Python Script节点、1个第一Color Palette节点及1个第一GeometryColor.ByGeometryColor节点;
以所述模型线的终点为起点,以第四Dynamo程序中RayBounce.ByOriginDirection节点的points输出端的每一个点为终点,创建第一直线段,并对每条第一直线段进行分割;以模型线的终点为原点,取镜头焦距型号最小值至最大值范围内的第一线段,并通过第一Color Palette节点选择颜色,再以第一GeometryColor.ByGeometryColor节点为所述第一线段设置颜色显示。
10.根据权利要求8所述的基于Revit平台的枪机摄像机布置及镜头选型方法,其特征在于,所述步骤7包括:
对弱视监控距离射线的分段着色:
创建第六Dynamo程序,其包括:1个第四Python Script节点、1个第二Color Palette节点及1个第二GeometryColor.ByGeometryColor节点;
以所述模型线的终点为起点,以第四Dynamo程序中RayBounce.ByOriginDirection节点的points输出端的每一个点为终点,创建第二直线段,并对每条第二直线段进行分割;以模型线的终点为原点,取镜头焦距型号最小值以下和最大值范围以上的第二线段,并通过第二Color Palette节点选择颜色,再以第二GeometryColor.ByGeometryColor节点为上述第二线段设置线段的颜色显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111082346.7A CN113542572B (zh) | 2021-09-15 | 2021-09-15 | 基于Revit平台的枪机摄像机布置及镜头选型方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111082346.7A CN113542572B (zh) | 2021-09-15 | 2021-09-15 | 基于Revit平台的枪机摄像机布置及镜头选型方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113542572A CN113542572A (zh) | 2021-10-22 |
CN113542572B true CN113542572B (zh) | 2021-11-23 |
Family
ID=78123152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111082346.7A Active CN113542572B (zh) | 2021-09-15 | 2021-09-15 | 基于Revit平台的枪机摄像机布置及镜头选型方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113542572B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102447835A (zh) * | 2011-10-29 | 2012-05-09 | 合肥博微安全电子科技有限公司 | 无盲区多目标协同跟踪方法及系统 |
CN106599477A (zh) * | 2016-12-15 | 2017-04-26 | 广州华森建筑与工程设计顾问有限公司 | 一种基于revit三维平台桩基自动生成与三维算量方法 |
CN109800536A (zh) * | 2019-02-17 | 2019-05-24 | 四川汶马高速公路有限责任公司 | 一种基于Revit与Dynamo参数化隧道模型快速建模方法 |
CN110580376A (zh) * | 2019-07-30 | 2019-12-17 | 浙江大学 | 一种基于Revit和Dynamo的桩基础模型创建方法 |
CN111985025A (zh) * | 2020-07-23 | 2020-11-24 | 中建八局第一建设有限公司 | 基于Unity 3D的建筑工程施工标准图集智能可视化系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080246759A1 (en) * | 2005-02-23 | 2008-10-09 | Craig Summers | Automatic Scene Modeling for the 3D Camera and 3D Video |
EP2600316A1 (en) * | 2011-11-29 | 2013-06-05 | Inria Institut National de Recherche en Informatique et en Automatique | Method, system and software program for shooting and editing a film comprising at least one image of a 3D computer-generated animation |
-
2021
- 2021-09-15 CN CN202111082346.7A patent/CN113542572B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102447835A (zh) * | 2011-10-29 | 2012-05-09 | 合肥博微安全电子科技有限公司 | 无盲区多目标协同跟踪方法及系统 |
CN106599477A (zh) * | 2016-12-15 | 2017-04-26 | 广州华森建筑与工程设计顾问有限公司 | 一种基于revit三维平台桩基自动生成与三维算量方法 |
CN109800536A (zh) * | 2019-02-17 | 2019-05-24 | 四川汶马高速公路有限责任公司 | 一种基于Revit与Dynamo参数化隧道模型快速建模方法 |
CN110580376A (zh) * | 2019-07-30 | 2019-12-17 | 浙江大学 | 一种基于Revit和Dynamo的桩基础模型创建方法 |
CN111985025A (zh) * | 2020-07-23 | 2020-11-24 | 中建八局第一建设有限公司 | 基于Unity 3D的建筑工程施工标准图集智能可视化系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113542572A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109816704A (zh) | 物体的三维信息获取方法和装置 | |
CN108062776B (zh) | 相机姿态跟踪方法和装置 | |
US8330803B2 (en) | Method and apparatus for 3D digitization of an object | |
CN109003325A (zh) | 一种三维重建的方法、介质、装置和计算设备 | |
US6664956B1 (en) | Method for generating a personalized 3-D face model | |
CN108401461A (zh) | 三维建图方法、装置、系统、云端平台、电子设备和计算机程序产品 | |
CN109643465A (zh) | 用于创建混合现实环境的系统等 | |
CN108648269A (zh) | 三维建筑物模型的单体化方法和系统 | |
CN107170037A (zh) | 一种基于多摄像机的实时三维点云重建方法和系统 | |
CN104735435B (zh) | 影像处理方法及电子装置 | |
CN107067299A (zh) | 虚拟试衣方法和系统 | |
US7016527B2 (en) | Method for processing image data and modeling device | |
US9956717B2 (en) | Mapping for three dimensional surfaces | |
CN102047189A (zh) | 切削加工仿真显示装置、切削加工仿真显示方法以及切削加工仿真显示程序 | |
CN109727314A (zh) | 一种增强现实场景融合及其展示方法 | |
CN109903382A (zh) | 点云数据的融合方法及装置 | |
CN110312111A (zh) | 用于图像装置的自动校准的装置、系统和方法 | |
CN109446929A (zh) | 一种基于增强现实技术的简笔画识别系统 | |
CN110648274A (zh) | 鱼眼图像的生成方法及装置 | |
CN115735207A (zh) | 用于从三维(3d)和二维(2d)成像资产自动生成照片真实感的虚拟3d包装和产品模型的3d建模系统和方法 | |
CN112184793B (zh) | 深度数据的处理方法、装置及可读存储介质 | |
CN105023294A (zh) | 结合传感器与Unity3D的定点移动增强现实方法 | |
JPH04102178A (ja) | 物体モデル入力装置 | |
US20050062737A1 (en) | Method for making a colorful 3D model | |
CN106067160B (zh) | 大屏幕融合投影方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |