Revit SDK:SpatialFieldGradient 在面上显示渐变颜色(AVF)分析显示样式

这篇具有很好参考价值的文章主要介绍了Revit SDK:SpatialFieldGradient 在面上显示渐变颜色(AVF)分析显示样式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

这个例子使用Revit显示样式功能将面显示成不同的颜色。分析显示样式参考官方文档。

内容

Revit SDK:SpatialFieldGradient 在面上显示渐变颜色(AVF)分析显示样式,Revit SDK 介绍,C#
效果:
Revit SDK:SpatialFieldGradient 在面上显示渐变颜色(AVF)分析显示样式,Revit SDK 介绍,C#
核心逻辑:

  1. 得到一个 SpatialFieldManager
  2. 拾取一系列的面:uiDoc.Selection.PickObjects(ObjectType.Face)
  3. 计算面上的 UV 值,以及对应的颜色值
  4. 应用到对应的面:sfm.UpdateSpatialFieldPrimitive

核心代码:

// 获取或者创建 SpatialFieldManager
SpatialFieldManager sfm = SpatialFieldManager.GetSpatialFieldManager(doc.ActiveView);         
if (sfm == null) sfm = SpatialFieldManager.CreateSpatialFieldManager(doc.ActiveView, 1);

// 选择面
IList<Reference> refList = new List<Reference>();
refList = uiDoc.Selection.PickObjects(Autodesk.Revit.UI.Selection.ObjectType.Face);
// 对每一个面进行计算和设置
foreach (Reference reference in refList){
   // 
   IList<UV> uvPts = new List<UV>();
   List<double> doubleList = new List<double>();
   IList<ValueAtPoint> valList = new List<ValueAtPoint>();
   Face face = doc.GetElement(reference).GetGeometryObjectFromReference(reference)as Face;
   BoundingBoxUV bb = face.GetBoundingBox();
   UV min = bb.Min;
   UV max = bb.Max;

   for (double u = min.U; u < max.U; u += (max.U - min.U) / 10){
      for (double v = min.V; v < max.V; v += (max.V - min.V) / 10){
         UV uv = new UV(u, v);
         if (face.IsInside(uv)){
            uvPts.Add(uv);
            // 用时间和v值计算一个颜色数值
            doubleList.Add(v + DateTime.Now.Second);
            valList.Add(new ValueAtPoint(doubleList));
            doubleList.Clear();
         }
      }
   }

   // 更新分析模型,即显示颜色
   FieldDomainPointsByUV pnts = new FieldDomainPointsByUV(uvPts);
   FieldValues vals = new FieldValues(valList);
      int idx = sfm.AddSpatialFieldPrimitive(reference);
      AnalysisResultSchema resultSchema = new AnalysisResultSchema("Schema 1", "Schema 1 Description"); 
      sfm.UpdateSpatialFieldPrimitive(idx, pnts, vals, sfm.RegisterResult(resultSchema));
}

其它

分析显示样式:文章来源地址https://www.toymoban.com/news/detail-687890.html

  1. SpatialFieldManager 是显示样式对应的主要API;
  2. UI入口参考:创建分析显示样式

到了这里,关于Revit SDK:SpatialFieldGradient 在面上显示渐变颜色(AVF)分析显示样式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Revit SDK 介绍:ManipulateForm 体量族的修改

    这个例子介绍体量族的修改。包含了创建体量,用API 移动体量族的顶点、边、轮廓(面)。 效果分步骤展示。 整理: 创建拉伸体 m_revitDoc.FamilyCreate.NewLoftForm(true, profiles) 增加一个截面 form.AddProfile(connectingEdge.Reference, param) 移动截面的边 两个函数连用无法得到有有效的值 fo

    2024年02月09日
    浏览(37)
  • Revit SDK 介绍:PanelSchedule 配电盘明细表

    这个例子介绍 Revit 的配电盘明细表,PanelSchedule。Revit 的电器专业在国内用的并不是十分广泛,但从功能上来说还是比较完整的。 这个例子里有三个命令: PanelScheduleExport - 导出配电盘明细表 InstanceViewCreation - 创建配电盘明细表 SheetImport - 在图纸中导入配电盘明细表 用于导出

    2024年02月12日
    浏览(35)
  • Revit SDK 介绍:CreateAirHandler 创建户式风管机

    这个例子介绍如何通过 API 创建一个户式风管机族的内容,包含几何和接头。 必须打开机械设备的族模板 创建几何实体来表示风管机 创建风机的接头 创建几何实体来表示风管机 例子中创建了多个拉伸,下面仅截取一段代码: 创建风机的接头 例子中有四个接头,两个风管,

    2024年02月10日
    浏览(35)
  • Revit SDK 介绍:MeasurePanelArea 统计分割表面中族的面积

    这个例子介绍如果从分割表面中,获取内部Tile(或者Panel)的族里面的几何实体的面的面积。 本例子的逻辑相对来说比较简单,主要是对 DividedSurface 和 Element 的API接口要熟悉。 设置单个面板Panel的面积上限和下限 获取所有分割表面 如果用户已经选择了分割表面,就使用当前

    2024年02月09日
    浏览(32)
  • Revit SDK 介绍:AutoStamp 自动水印 & AutoUpdate 自动更新 & CancelSave

    这三个例子都是通过注册事件来完成相应的工作,内容比较简单。 事件参考博客:Revit API:Events 事件总览 使用到的事件: 注册事件: 事件处理: 这个例子仅仅是更新了地址信息: 注册文件打开完成事件 application.ControlledApplication.DocumentOpened 事件处理函数 在文件上加入地址

    2024年02月10日
    浏览(37)
  • iOS开发之颜色渐变

    CAGradientLayer 在其 背景色上 绘制颜色渐变的图层,填充该图层的形状(包括圆角)。 使用渐变层可以创建包含任意数量颜色的颜色渐变。默认情况下,颜色均匀地分布在整个图层中,但您可以通过渐变指定控制颜色位置的位置。 下例,显示了如何创建包含四种颜色的渐变层,这

    2024年01月17日
    浏览(38)
  • Revit 3D高效处理:cad exchanger sdk 3.21 Crack

    3D 格式概述:Revit Revit 已成为寻求高效、准确的建筑信息建模的专业人士的首选解决方案。在这篇引人入胜的功能概述中了解 Revit 的特性和影响。 什么是Revit? Autodesk Revit 是一款流行的 CAD 软件,重点关注 BIM,被建筑师、工程师、设计师和承包商广泛使用。它最初由 Charle

    2024年02月11日
    浏览(48)
  • unity 颜色渐变的shader

    在 Unity 中,可以使用 Shader 来实现颜色渐变的效果。 要实现这个效果,你需要在 Unity 中创建一个新的 Shader 文件。你可以使用 Surface Shader 来简化这个过程,因为 Surface Shader 会自动为你生成颜色缓冲区和基本光照。 在 Shader 中,你需要定义一些变量来存储颜色渐变的起始颜色

    2024年02月15日
    浏览(31)
  • 【CSS 23】颜色 RGBA HSLA 不透明度opacity 线性渐变 径向渐变 透明度渐变 重复渐变

    颜色 CSS 支持 140 多种颜色名称,以及十六进制值、RGB 值、RGBA 值、HSL 值、HSLA 值和不透明度 RGBA颜色 RGBA 颜色值是 RGB 颜色值的扩展,带有 alpha 通道 - 该通道规定颜色的不透明度 RGBA 颜色值是这样规定的:rgba(red, green, blue, alpha) alpha 参数是介于 0.0(完全透明)和 1.0(完全不

    2024年02月13日
    浏览(53)
  • labview实现呼吸灯颜色渐变效果

    呼吸灯效果具有美好的视觉观感,前一段时期感受了一位大佬在MCU中实现呼吸灯颜色渐变效果,很是震撼。这引起了我的兴趣,本文则是实现一种呼吸灯效果(主要在于颜色的渐变体现)。

    2024年02月17日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包