有客户问道怎么修改视图的裁剪区域没有反应呢?

他是这么做的,首先创建一个视图,然后修改它的裁剪区域:

ViewFamilyType vTypeElev = Class1.getviewfamilytypes(ViewFamily.FloorPlan, RevitDoc).First<ViewFamilyType>();
var view = ViewPlan.Create(RevitDoc, vTypeElev.Id, RevitDoc.ActiveView.GenLevel.Id);
view.CropBoxActive = true;
BoundingBoxXYZ box = new BoundingBoxXYZ();
box.Min = new XYZ(100, 100, 0);
box.Max = new XYZ(200, 200, 100);
view.CropBox = box;

以上可以正常工作。(注意,以上代码需要在Transaction里面调用)

但是他单独修改裁剪区域的时候,却没有任何反应:

var view = RevitDoc.ActiveView;
BoundingBoxXYZ box = new BoundingBoxXYZ();
box.Min = new XYZ(0, 0, 0);
box.Max = new XYZ(100, 100, 100);
view.CropBox = box;

我试了一下,在我机器上的Revit是没有问题的。不清楚为什么他那边不行。

虽然无法重现,但是我还是建议他使用另外一种方式,那就是,调用ViewCropRegionShapeManager类的SetCropRegionShape函数:

double length = 100;
var view = RevitDoc.ActiveView;
List<Curve> nl = new List<Curve>();
XYZ p2 = new XYZ(0, 0, 0);
XYZ p3 = new XYZ(length, 0, 0);
XYZ p4 = new XYZ(length, length, 0);
XYZ p5 = new XYZ(0, length, 0);
nl.Add(Line.CreateBound(p2, p3));
nl.Add(Line.CreateBound(p3, p4));
nl.Add(Line.CreateBound(p4, p5));
nl.Add(Line.CreateBound(p5, p2));
CurveLoop cl = CurveLoop.Create(nl);
ViewCropRegionShapeManager vpcr = view.GetCropRegionShapeManager();
bool cropValid = vpcr.IsCropRegionShapeValid(cl);
if (cropValid)
{vpcr.SetCropRegionShape(cl);
}

这个函数相对灵活一点,可以设置除了矩形之外的其他形状。

P.S. 以上代码都是测试代码,目的是展示某些问题的解决办法,不可作为代码的规范,例如没有考虑错误检查,扩展性等等。

RevitAPI: 修改视图View裁剪区域Cropbox的大小相关推荐

  1. 5、修改视图(ALTER VIEW)

    修改视图是指修改 MySQL 数据库中存在的视图,当基本表的某些字段发生变化时,可以通过修改视图来保持与基本表的一致性. 基本语法 可以使用 ALTER VIEW 语句来对已有的视图进行修改. 语法格 ...

  2. MySql视图view的使用:创建、修改、删除

    一.MySql创建视图 CREATE VIEW 视图名 AS SELECT 查询语句; 注:将 SELECT 查询语句 替换成所写的sql语句 eg: CREATE VIEW v_article AS ...

  3. django批量修改table_python中Django视图(view)的详解(附示例)

    本篇文章给大家带来的内容是关于python中Django视图(view)的详解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一个视图函数(类),简称视图,是一个简单的Py ...

  4. Android中自定义视图View

    标签: 前言 好长时间没写blog了,心里感觉有点空荡荡的,今天有时间就来写一个关于自定义视图的的blog吧.关于这篇blog,网上已经有很多案例了,其实没什么难度的.但是我们在开发的过程中有时候会用 ...

  5. Android中自定义视图View之---前奏篇

    前言 好长时间没写blog了,心里感觉有点空荡荡的,今天有时间就来写一个关于自定义视图的的blog吧.关于这篇blog,网上已经有很多案例了,其实没什么难度的.但是我们在开发的过程中有时候会用到一些自 ...

  6. c# mvc5 view 多层_三、 添加视图View(ASP.NET MVC5 系列)

    在这一章节我们可以修改HelloWorldController类,通过使用视图模板来封装处理产生给客户端的HTML响应. 我们将使用Razor View engine来创建视图文件.基于Razor的视 ...

  7. iOS自定义裁剪区域,正方形圆形图片头像裁剪,仿QQ头像裁剪,圆形遮罩,矩型遮罩

    最近项目中用到了自定义图片裁剪区域的图片裁剪功能,自己写了一个,可能有诸多不完善的地方,请大家指正. 支持任意区域裁剪,9:16裁剪.16:9裁剪.1:1裁剪.圆形裁剪等等,总之裁剪框的大小,裁剪框的 ...

  8. 疯狂Android讲义(二)——第一部分:界面编程与视图 (View) 组件详解

    这里主要针对一些控件和布局的使用,篇幅会有点长.而且,不会像第一章一样全部详细列出.本章主要会用知识点的方式展示内容. ① Android应用开发的-项内容就是用户界面的开发.不管应用实际包含的逻辑多 ...

  9. MySQL 学习笔记(5)— 视图优缺点、创建视图、修改视图、删除视图

    1. 视图概念 简单来说,视图就是一个预定义的查询语句.视图在许多情况下可以当作表来使用,因此也被称为虚拟表(Virtual Table). 视图与表最大的区别在于它不包含数据,数据库中只存储视图的定 ...

最新文章

  1. python把数据变为数据框_将Python dict转换为数据框
  2. Java实现单例模式之饿汉式、懒汉式、枚举式,带测试。
  3. linuxoracle查看用户权限_实现Oracle授予用户权限的一个实例
  4. 批处理 如果提示错误暂停_dos批处理脚本代码,一键删除目录文件夹例子,dos命令bat教程...
  5. IMX462 Sensor 对接HI3559A
  6. 0x0000011b共享打印机无法连接的解决办法
  7. av_rescale_rnd计算原理
  8. 我是一只IT小小鸟——读后感
  9. excel两个表格数据对比_Excel跨表格数据对比
  10. matlab 端点检测 能零比法_端点检测方法
  11. C Halting Problem
  12. TSQL和PLSQL的区别
  13. 论责任成本管理体系的构建
  14. 《实施Cisco统一通信管理器(CIPT1)》一2.5 跨越IP WAN的集群部署模型
  15. Edge浏览器的主页被360篡改的解决办法
  16. 晶振01——晶振分类和无源晶振的设计
  17. 洛谷 P3906 Geodetic集合 题解
  18. 用php编程有1020个西瓜,有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?调用子函数计算天数...
  19. 2008福布斯400富豪榜上的大陆富豪
  20. FBX BlendShape/Morph动画解析

热门文章

  1. 微信小程序上传图片裁剪工具image-cropper使用
  2. JavaWeb开发 —— HTML
  3. 查看表之间的关系 需要在eas中的商业分析-扩展报表中心-报表平台下的语义层方案管理...
  4. Vmware Ubuntu实现文件拖拽
  5. 【word】word表格不自动跨页,文字显示不全
  6. php小偷程序--获取网站内容
  7. 火车票抢票API 根据乘客的车次与座席要求快速订票出票 1
  8. Ubuntu中Firefox不能访问简书
  9. 安装版—安装MySQL
  10. 指针数组和指向指针的指针