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

微网站 制作平台今天热点新闻

微网站 制作平台,今天热点新闻,网站公司建设公司,哪个网站做海报好前言 Revit 作为一款成熟的商业软件,它将自己的UI选择功能也通过 API 暴露出来。通过 API 可以按照特定的过滤规则来选择相应的元素,能力和UI基本上是等价的。这个 SDK 用四个例子展示了 API 的能力,内容如下。 内容 PickforDeletion 核心…

前言

Revit 作为一款成熟的商业软件,它将自己的UI选择功能也通过 API 暴露出来。通过 API 可以按照特定的过滤规则来选择相应的元素,能力和UI基本上是等价的。这个 SDK 用四个例子展示了 API 的能力,内容如下。

内容

在这里插入图片描述

PickforDeletion

核心逻辑:

  1. 通过 m_document.Selection.PickObjects(ObjectType.Element) 选择若干个元素
  2. 通过 m_document.Document.Delete(elemDeleteList) 删除元素

核心代码:

// 保存需要删除的元素
List<ElementId> elemDeleteList = new List<ElementId>();
// 通过PickObjects选择多个元素
IList<Reference> eRefList = m_document.Selection.PickObjects(ObjectType.Element, "Please pick some element to delete. ESC for Cancel.");
// 将选中的元素加入选择集
foreach (Reference eRef in eRefList){if (eRef != null && eRef.ElementId != ElementId.InvalidElementId){elemDeleteList.Add(eRef.ElementId);}
}
// 删除选择集中的元素
m_document.Document.Delete(elemDeleteList);

PlaceAtPointOnWallFace

核心逻辑:

  1. 通过 m_document.Selection.PickObject(ObjectType.PointOnElement) 选择一个点
  2. 放置窗户:m_document.Document.Create.NewFamilyInstance

核心代码:

// 选择墙上的一个点
Reference pickedRefer = m_document.Selection.PickObject(ObjectType.PointOnElement, new WallFaceFilter(m_document.Document), "Please pick a point on Wall face.");
// 找到对应的窗户类型
string symbolName = "36\" x 48\"";
FilteredElementCollector elemCollector = new FilteredElementCollector(m_document.Document);
elemCollector.WhereElementIsElementType();
var query = from element in elemCollector where element.Name == symbolName select element;
Element elemType = query.Single<Element>();
FamilySymbol windowType = elemType as FamilySymbol;
// 放置窗户
m_document.Document.Create.NewFamilyInstance(pickedRefer .GlobalPoint, windowType, m_document.Document.GetElement(pickedRefer ), StructuralType.NonStructural);

PlaceAtPickedFaceWorkplane

核心逻辑:

  1. 选择一个面,m_document.Selection.PickObject(ObjectType.Face)
  2. 提取面,创建工作平面:SketchPlane plane = SketchPlane.Create(m_document.Document, geometryPlane);
  3. 设置新的工作平面:m_document.Document.ActiveView.SketchPlane = faceSketchPlane;m_document.Document.ActiveView.ShowActiveWorkPlane();
  4. 选择工作平面上的一个点:m_document.Selection.PickPoint
  5. 创建模型线:Curve circle = Arc.Create(point, 5, 0, Math.PI * 2, faceSketchPlane.GetPlane().XVec, faceSketchPlane.GetPlane().YVec);m_CreationBase.NewModelCurve(circle, faceSketchPlane);

核心代码:

// 选择一个面
Reference faceRef = m_document.Selection.PickObject(ObjectType.Face, new PlanarFaceFilter(m_document.Document), "Please pick a planar face to set the work plane. ESC for cancel.");
// 通过面的索引获取面的几何
GeometryObject geoObject = m_document.Document.GetElement(faceRef).GetGeometryObjectFromReference(faceRef);
PlanarFace planarFace = geoObject as PlanarFace;
// 创建一个工作平面
Plane geometryPlane = Plane.CreateByNormalAndOrigin(planarFace.FaceNormal, planarFace.Origin);
SketchPlane faceSketchPlane = SketchPlane.Create(m_document.Document, geometryPlane);
// 将新建的工作平面设置为当前视图的活动工作平面
m_document.Document.ActiveView.SketchPlane = faceSketchPlane;
m_document.Document.ActiveView.ShowActiveWorkPlane();
// 选择工作平面上的一个点
ObjectSnapTypes snapType = ObjectSnapTypes.Centers | ObjectSnapTypes.Endpoints | ObjectSnapTypes.Intersections | ObjectSnapTypes.Midpoints | ObjectSnapTypes.Nearest | ObjectSnapTypes.WorkPlaneGrid;
XYZ point = m_document.Selection.PickPoint(snapType, "Please pick a point to place component.");
// 以选中点为中心绘制一个圆
Curve circle = Arc.Create(point, 5, 0, Math.PI * 2, faceSketchPlane.GetPlane().XVec, faceSketchPlane.GetPlane().YVec);
m_CreationBase.NewModelCurve(circle, faceSketchPlane);

SelectionDialog

核心逻辑:

  1. 选择一个元素:m_document.Selection.PickObject(Autodesk.Revit.UI.Selection.ObjectType.Element
  2. 选择一个目标点:XYZ targetPoint = m_document.Selection.PickPoint("Please pick a point.")
  3. 移动元素到目标点:ElementTransformUtils.MoveElement(m_document.Document,elem.Id, vecToMove);

核心代码:

// 选择要移动的元素,记录初始位置
Reference eRef = m_document.Selection.PickObject(Autodesk.Revit.UI.Selection.ObjectType.Element, "Please pick an element.");
SelectedElement = m_document.Document.GetElement(eRef);
m_elemPickedPoint = eRef.GlobalPoint;
// 选择一个目标点
XYZ targetPoint = m_document.Selection.PickPoint("Please pick a point.);
// 移动元素到目标点
XYZ vecToMove = targetPoint - m_elemPickedPoint;
m_elemPickedPoint = targetPoint;
ElementTransformUtils.MoveElement(m_document.Document,elem.Id, vecToMove);

参考

创建族实例,参考博客:https://blog.csdn.net/weixin_44153630/article/details/104650998
ElementTransformUtils,参考博客:https://blog.csdn.net/weixin_44153630/article/details/103884784

http://www.khdw.cn/news/58940.html

相关文章:

  • 上杭县铁路建设办公室网站教育培训机构推荐
  • 广州网站建设网络推广公司阿里云建站费用
  • 拼多多网络营销模式seo综合查询怎么关闭
  • 沈阳网站建设seo优化百度云盘资源共享链接群组链接
  • 佛山做网站优化公司高清视频网络服务器
  • 分享影视资源的网站怎么做app拉新渠道
  • 绵阳网站建设设计新闻营销
  • 网站标签span班级优化大师怎么加入班级
  • 随州哪里学做网站刚刚地震最新消息今天
  • 南京市建设工程网站樱桃磁力bt天堂
  • 机票旅游网站开发东莞百度快速优化排名
  • 郑州网站推广优化外包公司杭州seo平台
  • 商城网站策划书网络营销网站推广方法
  • 长链接生成短链接网址谷歌自然排名优化
  • 深圳网站优化服务海淀seo搜索引擎优化公司
  • wordpress建站流程北京培训学校
  • 福州交通建设投资集团网站整合营销传播的明显特征是
  • 哪家云盘免费空间大网站搜索优化价格
  • 个人小程序开发多少钱网站推广怎么优化
  • 烟台做网站打电话话术网站的优化和推广方案
  • 蓝德网站建设可以商用的电视app永久软件
  • 武汉住房建设局浑江区关键词seo排名优化
  • web网站开发论文的参考文献整站优化
  • 江西网站制作的公司哪家好手机优化管家
  • 做网站是什么样的工作网站建设平台官网
  • 做商城网站需要多少钱接单平台
  • 北京北京网站建设如何优化关键词的方法
  • 网站建设计入什么科目能让手机流畅到爆的软件
  • wordpress显示阅读量seo网络营销的技术
  • 免费给网站做seo外贸seo软文发布平台