专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

IFC转MESH和BREPIfcOpenShell

  本文介绍如何利用IfcOpenShell读取IFC文件中的几何数据并生成网格或BREP。
  一、IfcOpenShell简介
  IfcOpenShell是一个用于处理IFC数据的库,采用LGPL3。0(自由和开源)许可。
  IfcOpenShell的功能包括:解析ifc从ifc表示创建几何体使用pythonOCC显示几何体提供Blender的Ifc导入器提供3dsMax的Ifc导入器将几何体转换为多种格式
  一些使用IfcOpenShell的项目包括:FreeCAD:参数化CAD建模器,包括BIM工作台BIMserver:多用户自托管BIM平台,带有插件生态系统以查看、分析、合并等
  在本文中,我们将使用一个从ifc实体生成网格体的函数,在我们的例子中是IfcWall,看看我们可以得到什么结果。二、获取原始IFC文件
  首先使用FreeCAD创建一个简单墙并导出为。ifc文件:
  先决条件:已安装IfcOpenShell。此处使用的版本:0。6。0a1三、IFC转网格体
  首先我们需要引入ifcopenshell并打开ifc文件:importifcopenshellfromifcopenshellimportgeomdefreadgeom(ifcpath):ifcfileifcopenshell。open(ifcpath)settingsgeom。settings()
  geom。settings用于设置转换选项。默认情况下,ifcopenshell生成具有顶点、边和面的网格。
  ifcfile。bytype(IfcClass)是获取所选类(包括子类)的所有元素的一种非常方便的方法。因此,如果使用IfcBuildingElement,它还将包括IfcWall、IfcWindow、IfcSlab、IfcBeam等
  geom。createshape(settings,ifcentity)是将ifc实体转换为网格的函数。我们可以观察到顶点存储在单个元组中,而不是xyz三元组。边和面也一样。forifcentityinifcfile。bytype(IfcWall):shapegeom。createshape(settings,ifcentity)iosstandsforIfcOpenShelliosverticesshape。geometry。vertsiosedgesshape。geometry。edgesiosfacesshape。geometry。facesIfcOpenShellstoreverticesinasingletuple,sameforedgesandfacesprint(iosvertices)print(iosedges)print(iosfaces)Abovewillresultin:(0。0,0。0,0。0,0。0,0。0,3。0,10。0,0。0,0。0,10。0,0。0,3。0,10。0,0。2,0。0,10。0,0。2,3。0,0。0,0。2,0。0,0。0,0。2,3。0)(0,1,1,3,0,2,2,3,2,3,2,4,3,5,4,5,4,5,5,7,4,6,6,7,6,7,0,6,1,7,0,1,0,6,0,2,4,6,2,4,1,7,1,3,5,7,3,5)(1,0,3,3,0,2,3,2,4,5,3,4,5,4,7,7,4,6,7,6,0,1,7,0,0,6,2,2,6,4,3,7,1,5,7,3)
  很明显,顶点是x,y,z一个接一个的三元组。但是如何定义边和面呢?边是由2个顶点包围的线,但我们看到的值不是顶点。网格中的面是由3个顶点和3条边界定的三角形表面。如果我们制作一组边和面值,我们会得到一组长度为8的值。print(set(iosedges))print(set(iosfaces))Abovewillresultin:{0,1,2,3,4,5,6,7}{0,1,2,3,4,5,6,7}
  如果我们按3个值(x,y,z)对顶点进行分组,按2个值(vertex1,vertex2)对边进行分组,按3个值对面进行分组(3个顶点或3条边),我们会看到我们的墙几何体由8个顶点、24条边和12个面定义。边和面值都是顶点索引。LetsparseitandprepareitforFreeCADimportvertices〔FreeCAD。Vector(iosvertices〔i:i3〕)foriinrange(0,len(iosvertices),3)〕edges〔iosedges〔i:i2〕foriinrange(0,len(iosedges),2)〕faces〔tuple(iosfaces〔i:i3〕)foriinrange(0,len(iosfaces),3)〕print(fThis{ifcentity。isa()}hasbeendefinedby{len(vertices)}vertices,{len(edges)}edgesand{len(faces)}faces)print(vertices)print(edges)print(faces)Abovewillresultin:ThisIfcWallhasbeendefinedby8vertices,24edgesand12faces〔(0。0,0。0,0。0),(0。0,0。0,3。0),(10。0,0。0,0。0),(10。0,0。0,3。0),(10。0,0。2,0。0),(10。0,0。2,3。0),(0。0,0。2,0。0),(0。0,0。2,3。0)〕〔(0,1),(1,3),(0,2),(2,3),(2,3),(2,4),(3,5),(4,5),(4,5),(5,7),(4,6),(6,7),(6,7),(0,6),(1,7),(0,1),(0,6),(0,2),(4,6),(2,4),(1,7),(1,3),(5,7),(3,5)〕〔(1,0,3),(3,0,2),(3,2,4),(5,3,4),(5,4,7),(7,4,6),(7,6,0),(1,7,0),(0,6,2),(2,6,4),(3,7,1),(5,7,3)〕return{vertices:vertices,edges:edges,faces:faces}
  当然FreeCAD已经有更好的方法来导入IfcWall,但让我们使用自己的网格来生成几何图形:importFreeCADimportFreeCADGuiimportMeshifnamemain:meshvaluesreadgeom(homecyrilgitpythoncvc。netIfcOpenShellSamplesWall。ifc)CreateaFreeCADgeometry。AFreeCADcantakeverticesandfacesasinputmeshMesh。Mesh((meshvalues〔vertices〕,meshvalues〔faces〕))Ifclenghtinternalunit:meter。FreeCADinternalunit:mm。scalefactor1000matrixFreeCAD。Matrix()matrix。scale(scalefactor,scalefactor,scalefactor)mesh。transform(matrix)AllowyoutoembedFreeCADinpythonhttps:www。freecadweb。orgwikiEmbeddingFreeCADFreeCADGui。showMainWindow()docFreeCAD。newDocument()AddgeometrytoFreeCADscenegraph(Coin)fcmeshdoc。addObject(Mesh::Feature,IfcMesh)fcmesh。MeshmeshSetDrawStyletodisplaymeshedges。OrientviewandfittowallFreeCADGui。runCommand(StdDrawStyle,1)FreeCADGui。Selection。addSelection(fcmesh)FreeCADGui。activeView()。viewIsometric()FreeCADGui。SendMsgToActiveView(ViewSelection)FreeCADGui。execloop()
  上图是在FreeCAD中生成的几何图形,网格可以快速显示,但它通常不是你想要在BIM创作软件中使用的内容。所以下次我们将看到如何生成边界表示。
  完整的源代码可在此处获得。四、IFC转BREP
  前面我们使用IfcOpenShell(IOS)的标准设置来读取正在生成网格的ifc几何体。要生成其他内容,让我们看一下可用的设置。
  如果你的IDE提供了良好的自动完成功能,你将能够看到有哪些选项,但看不到它们的含义。通过使用其中一个选项作为关键字在IOS存储库中进行快速搜索,可以很快找到一个名为IfcGeomIteratorSettings。h的头文件,其中包含所有定义:SpecifieswhethertousetheOpenCascadeBREPformatforrepresentationitemsratherthantocreatetrianglemeshes。ThisisusefulisIfcOpenShellisusedasalibraryinanapplicationthatisalsobuiltonOpenCascade。USEBREPDATA13,
  BREP代表边界表示,这可能是你在对参数化风管或管道及其相关组件建模时想要使用的。在python中定义设置如下:Definesettingssettingsgeom。settings()settings。set(settings。USEBREPDATA,True)
  如果将生成的brep数据写入文件,你将看到它实际上是设置说明中建议的OpenCascadeBREP格式。shapegeom。createshape(settings,ifcentity)occstandsforOpenCascadeoccshapeshape。geometry。brepdataIfcOpenShellgenerateanOpenCascadeBREPwithopen(IfcOpenShellSamplesbrepdata,w)asfile:file。write(occshape)
  幸运的是,被视为FreeCAD核心组件的Part模块也基于OpenCascade,这使得将几何体导入FreeCAD变得如此简单:CreateFreeCADshapefromOpenCascadeBREPfcshapePart。Shape()fcshape。importBrepFromString(occshape)Ifclenghtinternalunit:meter。FreeCADinternalunit:mm。fcshape。scale(1000)AddgeometrytoFreeCADscenegraph(Coin)fcpartdoc。addObject(Part::Feature,IfcPart)fcpart。Shapefcshape
  不要忘记在文件顶部导入Part而不是Mesh。
  如果我们使用此处提供的完整代码为之前文章中的墙生成几何图形,将获得相同的实体,但这次不是网格(没有三角形):
  上面只导入了IfcWall实体,现在让我们从wikilab。ifc的wikihouse项目导入IfcElement实体,得到以下几何图形:
  当然FreeCAD仍然有更好的导入方式,但如果你激活着色模式,会得到更好的效果:
  原文链接:http:www。bimant。comblogifctomeshandbrep

舞剧大熊猫明年6月滚滚而来视频加载中从奥运福娃晶晶到好莱坞的功夫熊猫,再到北京冬奥会吉祥物冰墩墩,熊猫热风靡世界,从未降温。一个全新的熊猫IP来了今天(11月1日),记者从舞剧大熊猫开排仪式暨主创见面会上获DNF旭旭宝宝太羡慕!红19太刀武器诞生,自古红眼出高强前段时间旭旭宝宝大发神威,增幅出红19的短剑,使用继承功能,给变成了光剑,恰好职业是白手,作为百分比职业,提升那是相当离谱。但才短短过去几天,又一把红19武器诞生,这次是太刀,国服同世界人民携手开创人类更加美好的未来论学习贯彻党的二十大精神立志于中华民族千秋伟业,致力于人类和平与发展崇高事业,在党的二十大报告中,习近平总书记深刻指明我们党的责任与使命,强调中国始终坚持维护世界和平促进共同发展的外交政策宗旨,致力于推动五岁男童梦中猝死,这究竟是怎么回事?家长朋友们千万要注意了秋日生活打卡季五岁男童梦中猝死,尸检结果给所有的家长敲响了警钟,我也是刚刚才看到,十分的震惊,这是很多家长们极易犯的低级错误。五岁的小林特别可爱,这天呢,妈妈和往常一样给他吃了糯米男孩2岁前的样子人见人爱,一场高烧后只剩下手指能动天上的星星不说话,地上的娃娃想妈妈在云南昭通一家医院的病房里,一阵婉转的歌声给苍白的病房填了些色彩。这是小海最喜欢的歌,生病前如果听到妈妈唱这首歌他早就手舞足蹈的扭起来,可如今小海为啥老人常说过午不晒被?背后道理家长须知,让娃冬季少生病作者探长(共1706字,阅读约4分钟)又到了严寒的冬季,对于家有宝宝的父母来说,便会格外的关注宝宝的穿衣和保暖,就怕孩子着凉感冒。于是穿厚点,盖暖点就成为很多家长每天都会注意的事情我们的孩子是受父母的影响大还是同伴的影响大?今天我们来分享的话题是,你的孩子是怎么被身边的同伴影响的,我们的孩子是受父母的影响大还是同伴的影响大呢?在孩子零到六岁的时候,父母的影响起主要作用,经常讲三岁看大,七岁看老,说的就剖腹产的宝宝不聪明?首先我是支持剖腹产的,剖腹产生下的宝宝很聪明可爱。怀孕35周的时候问医生剖腹产还是顺产,医生说能顺产就顺产。而我身边的女性亲友,无一不劝我顺产,都说顺产好,能自己生就不要剖。她们说婴儿常晒太阳好处多,千万不要忽视这几点太阳婴儿晒太阳的时间在夏天,太阳比较毒上午8点9点,下午4点以后春秋季上午10点11点冬季上午10点1点每个地方的阳光强度不同,时间方面可做调整,同时晒太阳的时长要根据宝宝的身体情女孩起名醉翁池亭的女孩名,明月千里,草木生欢一曲新词酒一杯,自然浩瀚的宇宙,是如此的深奥和美丽,正如诗词的魅力一般,令人着迷,不少家长们在给宝宝起名时也将选用朗朗上口的诗句,聊表内心对文人墨客精神的向往,我们知道,孩子的名字挤豆豆也要命之前有新闻爆料,一个9天的婴儿,因为乳房肿大,被家里的老人挤成了乳腺炎!还有一些老人觉得,不管新生儿有没有异常,孩子的乳头挤一挤,可以发育的更好。这些都是毫无根据的做法。盲目给新生
原神迪卢克是最弱五星主C?老玩家表示不解,满命强度至少T1哈罗大家好,我是盟盟,本期和大家聊聊原神的话题。最近看到一张名为2。6版本角色强度的排行榜,其中介绍了目前版本的强势主C副C喝辅助,比如位居T0的主C有一命胡桃零命神里绫华两命神里政策力度更大!2022年枣庄市新增退税减税缓税约25亿元见习记者杨雯5月18日,枣庄市落实更大力度减税降费政策新闻发布会在会展中心召开。记者了解到,2022年国家实施更大力度的组合式税费支持政策,省委省政府也创新出台地方减负措施,实行减湖南市辖区数据岳阳总量高,株洲人口多,常德吃亏在烟厂合并奇奇怪怪的湖南市辖区数据,非省会城市里,市辖区GDP最高的是岳阳市,前几年最高的还是常德市,常德卷烟厂合并,常德是血亏。(全省市辖区统计数据表在文章末尾,来源渔夫之志)衡阳市号称湖刘涛否认因王珂炒币离婚,已起诉爆料的财经大V,对方发文求饶5月18日,刘涛委托星权律师事务所启动诉讼程序,已起诉公然发布有关王珂刘涛离婚和炒币等不实言论的财经大V。星权律师事务所发文后,被起诉的财经大V也进行了回应。他在微博晒出和律师联系前4个月全国一般公共预算收入74293亿元新华社北京5月17日电(记者申铖)财政部17日发布数据显示,前4个月,全国一般公共预算收入74293亿元,扣除留抵退税因素后增长5,按自然口径计算下降4。8。其中,中央一般公共预算美智库预测大陆收台3个步骤,4国会卷入战争,美本土将被轰炸随着两岸统一的脚步声越来越近,不乏一些西方所谓的智库学者频频臆测大陆收台的时间及步骤,近日华盛顿智库主导的一场兵棋推演,就假设了2027年台海倘若生变,美国该如何应对。据环球网报道我的爱人,我可以亲吻你吗?不要踮起脚尖,我可以弯下腰苏爆了))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))一夜情温柔男女各有所需!不要幻想男女关系!男女夫妻只是有缘!九十年代,我们几乎什么没那么多现实!广东打工,晚上两人拍拖一份炒米粉,一瓶可乐!一张投影票!一切温馨浪漫的卿卿我我。那年厂里来了一渤海属于内海,外国的船无权擅入,多亏山东一座岛和毛主席一句话文整点科普渤海黄海东海南海是我国四大海域,总面积超过473万平方公里,根据联合国海洋法公约规定和我国的专属经济区和大陆架法,其中约有300万平方公里的海域属于我国管辖。其中,位于南罗体若佩里西奇离队,国米计划求购热那亚小将坎比亚索直播吧5月18日讯据罗马体育报报道,若佩里西奇离队,国米将追求热那亚小将安德雷亚坎比亚索。佩里西奇与国米的合同将在今夏到期,从目前的情况来看,双方似乎越来越不可能达成续约协议。不过小米三款新机通过认证,骁龙8Gen1Plus加持虽然暂时还没有确切的消息出现,但小米旗下新品的相关爆料正在大量出现。按照其中显示的内容,接下来小米将推动多款旗舰定位设备上市。现在,网络上也再次出现了更多的产品推进信息。知名博主数
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网