当前位置: 首页 > news >正文

网站seo 优化推荐十个国外网站

网站seo 优化,推荐十个国外网站,做外贸是什么网站,wordpress php 7 速度优化前言 Revit 有一套完整的几何造型能力,每一个体量都是一个GenericForm,这些体量可以通过拉伸、扫掠等创建。这个例子介绍如何将他们合并成一个体量。 内容 合并体量的关键接口: // Autodesk.Revit.DB.Document public GeomCombination Com…

前言

Revit 有一套完整的几何造型能力,每一个体量都是一个GenericForm,这些体量可以通过拉伸、扫掠等创建。这个例子介绍如何将他们合并成一个体量。

内容

在这里插入图片描述
合并体量的关键接口:

// Autodesk.Revit.DB.Document
public GeomCombination CombineElements(CombinableElementArray members);

可以合并的实体,相关类的集成体系:
在这里插入图片描述
如何通过UI创建各种类型的实体,可以参考 Revit 官方文档:创建实心形状

case 1:手动选中了一些元素

核心逻辑:

  1. 遍历所有选中元素
  2. 确保元素是GenericForm,且是实体solid
  3. 确保都是 CombinableElementGenericForm集成自CombinableElement,这步有点多余)
  4. 合并符合条件的元素: doc.Document.CombineElements(solids)

核心代码:

// 遍历所有选中元素
foreach (Autodesk.Revit.DB.ElementId elementId in doc.Selection.GetElementIds())
{Autodesk.Revit.DB.Element element = doc.Document.GetElement(elementId);// 确保元素是`GenericForm`,且是实体solidGenericForm gf = element as GenericForm;if (null != gf && !gf.IsSolid)continue;// 确保都是 `CombinableElement` (`GenericForm`集成自`CombinableElement`,这步有点多余)CombinableElement ce = element as CombinableElement;if (null != ce)solids.Append(ce);
}
// 合并符合条件的元素
doc.Document.CombineElements(solids);

case 2:没有选中,则处理整个文档

核心逻辑:

  1. 过滤出所有的GenericFormGeomCombination
  2. 遍历过滤元素
  3. 确保元素是GenericForm,且是实体solid
  4. 确保都是 CombinableElementGenericForm集成自CombinableElement,这步有点多余)
  5. 对有重叠的元素进行几何合并:JoinOverlapping,判断是否重叠的逻辑在 IsOverlapped

核心代码:

// 过滤出所有的`GenericForm`和`GeomCombination`
LogicalOrFilter filter = new LogicalOrFilter(new ElementClassFilter(typeof(GenericForm)), new ElementClassFilter(typeof(GeomCombination)));
// 遍历过滤元素
FilteredElementIterator itor = (new FilteredElementCollector(document)).WherePasses(filter).GetElementIterator();
itor.Reset();
while (itor.MoveNext()){// 确保元素是`GenericForm`,且是实体solidGenericForm gf = itor.Current as GenericForm;if (null != gf && !gf.IsSolid)continue;// 确保都是 `CombinableElement` (`GenericForm`集成自`CombinableElement`,这步有点多余)CombinableElement ce = itor.Current as CombinableElement;if (null == ce)continue;m_elements.Add(ce);
}
// 对有重叠的元素进行几何合并
GeomCombination geomCombination = JoinOverlapping(m_elements, document);

JoinOverlapping 的核心逻辑在于判断是否重叠的逻辑, IsOverlapped

  1. 获取元素几何,GeometryElement get_Geometry(Options options)
  2. 获取GeometryObject所有Face
    类型是 Solid,通过接口 solid.Faces
    类型是 GeometryElement, 通过 GetEnumerator 接口递归调用
  3. 获取所有的线 GetAllCurves
    首先获取所有的 Face,通过 face.EdgeLoops 获取线的几何信息
  4. 判断线和面是否相交

部分核心代码:

// 获取元素几何
Options geOptions = Command.s_appCreation.NewGeometryOptions();
elementA.get_Geometry(geOptions);// 获取所有的 Face,需要递归调用
private static void GetAllFaces(GeometryElement geoElement, List<Face> faces){IEnumerator<GeometryObject> Objects = geoElement.GetEnumerator();while (Objects.MoveNext()){GeometryObject geObject = Objects.Current;GetAllFaces(geObject, faces);}
}
private static void GetAllFaces(Solid solid, List<Face> faces){foreach (Face face in solid.Faces){faces.Add(face);}
}
private static void GetAllFaces(GeometryObject geometry, List<Face> faces){if (geometry is GeometryElement){GetAllFaces(geometry as GeometryElement, faces);return;
}if (geometry is Solid){GetAllFaces(geometry as Solid, faces);return;}
}// 获取所有的 curve,类似,省略

其它

这个 sample 代码质量有些混乱,需自行整理分析。

http://www.yayakq.cn/news/889612/

相关文章:

  • 手机做网站创意产品设计书
  • 宁波网站建设价格外贸网站建设网站
  • 网站登录界面 psd昌平石家庄网站建设
  • 网站开发个人感想wordpress底部修改
  • 如何自己建一个微网站去哪个网站做兼职
  • 生物科技公司网站模板下载珠海市网站建设哪家好
  • 网站单个页面301跳转企业小程序怎么申请注册
  • 网站快速注册表白网站制作平台
  • 黄江网站设计专业做网站app的公司有哪些
  • 网站底部空白智能logo设计网站
  • html网站分页怎么做的洛阳做网站哪家便宜
  • 建设个人网站的参考网站及文献成品源码78w78
  • 河长制网站建设响应式电影网站
  • 建设部职业资格注册网站wordpress改字库
  • 网站宣传册怎么做的重庆全网推广
  • 展示型网站设计与制作团队网站工商网监标
  • 建设通官方网站下载e航免费的开发网站建设
  • 网站建设费入如保入账网站项目团队介绍怎么写
  • 做网站的公司赚钱吗哪个网站可以做翻译兼职
  • 查询网站备案信息wordpress建中英文
  • 教育局建设网站的必要性建设银行网站怎么先无贷款呢
  • php网站怎么做伪静态网站开发人员职位晋升空间
  • linux 搭建网站服务器企业注册登记信息查询
  • php网站开发实例编程python django 做 网站
  • 洛阳网站排名做写手一般上什么网站
  • 四平网站建设怎么选域名申请而完成以后怎么做网站
  • 网站建设在线商城微信网站多少钱
  • 双公示 网站专栏建设安徽建筑工程网站
  • 郑州网站建设信息wordpress plug in
  • 网站建设进无形资产的规定网站给假冒伪劣产品做推广