想问一下,式源openbim到底是什么意思?
openBIM是一种软件开发商中立的协作方式,它通过使用开放的代码数据标准来定义建筑信息模型(BIM)数据,以实现软件开发者的式源独立性。
开放的代码数据标准指的是所有人都可以公开访问和使用的标准。例如IFC和DXF格式的式源文件,任何软件都可以打开并共享数据,代码而如RVT和DWG文件则需要特定软件才能访问内部信息。式源这使BIM变得更为开放和自由,代码避免数据被锁定在某一特定生态圈中,式源同时提高互操作性、可扩展性和可持续性。
“open”这个词在不同领域有不同的含义,源自于Free Software(自由软件)的概念,并逐渐扩展到其他领域,如OpenBIM和OpenGIS等表示开放的BIM和GIS。
值得注意的是,“开放”与“开源”虽密切相关但并非完全相同。开源指的是软件的源代码可访问和使用,而开放标准仍然可能受到版权保护。
至于“openBIM”的正确写法,通常推荐使用小写开头的“openBIM”。然而,若习惯使用大写,使用“OpenBIM”也是可以接受的。
如何新建django项目(djangoadminstartproject创建)
导读:本篇文章首席CTO笔记来给大家介绍有关如何新建django项目的相关内容,希望对大家有所帮助,一起来看看吧。pycharm怎么建django打开PyCharm官网,选择Download,进入下载页面。
这时会出现2个版本,新版驾校源码左边的那个是购买版,可以试用天;右边那个是社区版,免费的,我们一般选择右边社区版。
下载完后进行安装,一直选择下一步就可以了,我就不详细介绍了。安装完后运行PyCharm,新建项目。此时建的项目并不是Django项目,这个还需要我们自己设置。
安装Django,使用命令安装,我这里是用的cmder,非常好用的控制台命令窗口,替代了cmd。进入到Python的目录下,使用命令pipinstallDjango==1.8.3,执行完就OK了。
新建Django项目,我这里是使用命令创建项目的。
django-adminstartprojectHelloDjango创建HelloDjango项目
然后进入到HelloDjango项目根目录下,运行命令创建hello模块
pythonmanage.pystartapphello
此时PyCharm中就有一个HelloDjango项目了。
现在我们来搭建一个简单的web服务。
修改views.py文件
修改urls.py文件
两个文件修改完后,就可以启动项目了,执行命令
pythonmanage.pymigrate
pythonmanage.pyrunserver
此时项目已经启动起来了,它会告诉我们访问地址,按照地址进行访问就OK了。
Django源码阅读(一)项目的生成与启动
诚实的说,直到目前为止,我并不欣赏django。在我的认知它并不是多么精巧的设计。只是由功能堆积起来的"成熟方案"。但每一样东西的崛起都是时代的选择。无论你多么不喜欢,爱中医源码但它被需要。希望有一天,python能有更多更丰富的成熟方案,且不再被诟病性能和可维护性。(屁话结束)
取其精华去其糟粕,django的优点是方便,我们这次源码阅读的目的是探究其方便的本质。计划上本次源码阅读不会精细到每一处,而是大体以功能为单位进行解读。
django-adminstartprojectHelloWorld即可生成django项目,命令行是exe格式的。
manage.py把参数交给命令行解析。
execute_from_command_line()通过命令行参数,创建一个管理类。然后运行他的execute()。
如果设置了reload,将会在启动前先check_errors。
check_errors()是个闭包,所以上文结尾是(django.setup)()。
直接看最后一句settings.INSTALLED_APPS。从settings中抓取app
注意,这个settings还不是我们项目中的settings.py。而是一个对象,位于django\conf\__init__.py
这是个Settings类的懒加载封装类,直到__getattr__取值时才开始初始化。然后从Settings类的实例中取值。且会讲该值赋值到自己的__dict__上(下次会直接在自己身上找到,因为__getattr__优先级较低)
为了方便debug,我们直接写个run.py。不用命令行的方式。
项目下建个run.py,模拟runserver命令
debug抓一下setting_module
回到setup()中的最后一句apps.populate(settings.INSTALLED_APPS)
开始看apps.populate()
首先看这段
这些App最后都会封装成为AppConfig。且会装载到self.app_configs字典中
随后,分别调用每个appConfig的import_models()和ready()方法。
App的装载部分大体如此
为了方便debug我们改写下最后一句
res的类型是Commanddjango.contrib.staticfiles.management.commands.runserver.Commandobjectat0xEDA0
重点是第二句,让我们跳到run_from_argv()方法,实线指标源码这里对参数进行了若干处理。
用pycharm点这里的handle会进入基类的方法,无法得到正确的走向。实际上子类Commond重写了这个方法。
这里分为两种情况,如果是reload重载时,会直接执行inner_run(),而项目启动需要先执行其他逻辑。
django项目启动时,实际上会启动两次,如果我们在项目入口(manage.py)中设置个print,会发现它会打印两次。
第一次启动时,DJANGO_AUTORELOAD_ENV为None,无法进入启动逻辑。会进入restart_with_reloader()。
在这里会将DJANGO_AUTORELOAD_ENV置为True,随后重启。
第二次时,可以进入启动逻辑了。
这里创建了一个django主线程,将inner_run()传入。
随后本线程通过reloader.run(django_main_thread),创建一个轮询守护进程。
我们接下来看django的主线程inner_run()。
当我们看到wsgi时,django负责的启动逻辑,就此结束了。接下来的工作交由wsgi服务器了
这相当于我们之前在fastapi中说到的,将fastapi的app交由asgi服务器。(asgi也是django提出来的,两者本质同源)
那么这个wsgi是从哪来的?让我们来稍微回溯下
这个settings是一个对象,在之前的操作中已经从settings.py配置文件中获得了自身的属性。所以我们只需要去settings.py配置文件中寻找。
我们来寻找这个get_wsgi_application()。
它会再次调用setup(),网上拜年源码重要的是,返回一个WSGIHandler类的实例。
这就是wsgiapp本身。
load_middleware()为构建中间件堆栈,这也是wsgiapp获取setting信息的唯一途径。导入settings.py,生成中间件堆栈。
如果看过我之前那篇fastapi源码的,应该对中间件堆栈不陌生。
app入口→中间件堆栈→路由→路由节点→endpoint
所以,wsgiapp就此构建完毕,服务器传入请求至app入口,即可经过中间件到达路由进行分发。
社区版pycharm创建django项目的一些问题1.cannotimportview
解决:项目名称——右键——设为Sourcesroot
2.cannotfindtemplates
解决:在setting.py里把空的'DIRS’改成
'DIRS':[os.path.join(BASE_DIR,'templates')],
3.pagenotfound
老师课上url路径设置为path(r'^app/',include('app.urls')),当只有一个项目时可以运行,然而多项目时报错,此时需要把^都去掉。
4.社区版在tools里找不到runmanage.pytask
解决:运行项目,会报错,此处错误原因是Django项目版本与mysql驱动版本不匹配的问题,点链接进去把版本的两行注释掉,然后在settings.py里把项目名称加进去,运行pythonmanage.pymakemigrations以及pythonmanage.pymigrate
5.社区版连接mysql出现报错:Theservertimezonevalue'ú±ê×?±?'isunrecognizedorrepresentsmorethanonetimezone.YoumustconfigureeithertheserverorJDBCdriver(viatheserverTimezoneconfigurationproperty)touseamorespecifctimezonevalueifyouwanttoutilizetimezonesupport.
解决:
6.双击表单选择nofilter就看到表单内容了。
结语:以上就是首席CTO笔记为大家整理的关于如何新建django项目的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于如何新建django项目的相关内容别忘了在本站进行查找喔。
3D模型格式全解|含RVT、3DS、DWG、FBX、IFC、OSGB、OBJ等余种
本文整理自老子云平台公众号。老子云平台提供全行业+三维模型格式展示、转格式、轻量化服务。本文将对已开放的3D模型格式进行统一梳理说明。
以下是按照字母顺序排列的三维格式描述:
3dm:Rhino 3D Model文件,由Rhinoceros开发,用于保存二维和三维图形。
3ds:3D Studio场景文件,由Autodesk开发,用于3D建模、动画和渲染。
3dxml:Dassault Systemes的3D XML文件格式,由Dassault Systèmes开发,包含丰富的3D图像模型信息。
amrt:老子云自研的国产3D格式,由老子云开发,特点为存储体量小、加载速度快,支持多种三维格式转换为统一标准格式。
arc:Norton Backup Archive文件,由Symantec Corporation开发,可用CAD软件打开。
asm:Assembly Language Source Code File,由Microsoft Corporation开发,用于低级语言源代码。
catpart:CATIA V5 Part File,由Dassault Systèmes开发,用于3D部分文件存储。
catproduct:CATIA V5 Assembly File,由Dassault Systèmes开发,用于组件制造过程的3D装配文件。
cgr:CATIA Graphical Representation File,由Dassault Systèmes开发,用于CAD文件的可视化存储。
dae:Digital Asset Exchange File,由Sony开发,用于交互式3D应用程序的协作设计活动。
dlv:CATIA 4 Export File,由Dassault Systèmes开发,用于设计数据导出。
dwf:Autodesk Design Web Format File,由Autodesk开发,用于2D/3D图形文件格式,旨在丰富设计数据。
dwg:AutoCAD Drawing Database File,由Autodesk开发,用于AutoCAD中的二维或三维图数据库。
dxf:Drawing Exchange Format,由Autodesk开发,用于CAD矢量图像文件。
exp:CATIA 4 Export File,由Dassault Systèmes开发,用于设计数据导出。
fbx:ArcView Spatial Index File For Read-Only Datasets,由ESRI和Kaydara(Autodesk)开发,用于**界和视频游戏开发的流行专有文件格式。
glb:STK Globe File,由Analytical Graphics开发,与STK程序相关,用于3D模型的建模和任务。
gltf:GL Transmission Format File,由Trimble Inc.开发,用于3D数据保存在glTF(三维)模型文件。
iam:Inventor Assembly File,由Autodesk开发,用于3D CAD装配文件。
ifc:Industry Foundation Classes File,由buildingSMART开发,用于3D图形、CAD-CAM-CAE文件的开放文件格式。
ifczip:Industry Foundation Classes (zipped),由buildingSMART开发,IFC文件的压缩版本。
iges:IGES Exchange Format,由Redway3d和其他开发者开发,用于国际标准的3D线框模型交换。
igs:Initial Graphics Exchange Specification Drawing File,由美国空军开发,基于IGES的图形文件格式,用于保存2D和3D图形。
ipt:Inventor Part File,由Autodesk开发,用于Autodesk Inventor软件中的零件或物体。
jt:JT Open CAD File,由Siemens PLM Software开发,用于数据共享、产品协作和可视化的开放高性能存储格式。
mfl:ModFit LT Analysis Report File,由Verity Software House开发,用于MODFIT LT程序分析的DNA模式。
model:Dassault Systèmes开发的CATIA软件的3D建模格式。
neu:Pro/ENGINEER Neutral File,由Parametric Technology Corporation开发,用于Pro / ENGINEER程序创建的CAD文件。
obj:Wavefront 3D Object File,由Wavefront Technologies开发,用于通用的3D图像文件格式。
osgb:Open Scene Gragh Binary,由OpenSceneGraph开发,用于地图缓存文件和实景三维倾斜摄影模型。
par:Solid Edge Part File,由Siemens PLM Software开发,用于Solid Edge三维建模软件的文件。
pkg:Midtown Madness 3D Model,由Rockstar Games开发,用于游戏的3D模型和图形数据。
prc:Product Representation Compact File,由Adobe Systems Incorporated开发,用于表示三维模型和装配结构。
prt:Pro/ENGINEER Part File,由PTC开发,用于Pro / ENGINEER CAD程序的文件。
psm:Solid Edge Document Format,由Siemens PLM Software开发,用于Solid Edge创建的3D零件。
pts:PointCloud 3D File,由Exelis Inc.开发,用于点云三维数据。
ptx:PageMaker Template File,由Adobe Systems Incorporated开发,用于PageMaker的7.0模板。
pwd:Solid Edge Weldment Document,由Siemens PLM Software开发,用于三维CAD制造程序Solid Edge的CAD文件。
rvt:Revit Project File,由Autodesk开发,用于建筑信息模型(BIM)软件。
sab:ACIS SAB Model File,由Spatial Corp开发,用于ACIS建模软件的三维模型。
sat:ACIS SAT 3D Model File,与空间3D ACIS建模软件相关的CAD文件类型。
session:CATIA 4 Session File,由Dassault Systèmes开发,用于CATIA软件的会话文件。
sldasm:SolidWorks Assembly File,由Dassault Systèmes开发,用于SolidWorks 3D CAD软件的装配文件。
sldprt:SolidWorks CAD Part File,由Dassault Systèmes开发,用于SolidWorks的关联文件。
step:STEP 3D Model,用于3D模型文件的ISO格式,由未知开发者开发。
stl:Stereolithography File,用于保存标准形式的CAD文件,由3D Systems开发。
stp:STEP 3D CAD File,用于表示和工业产品数据交换的ISO标准,由未知开发者开发。
stpz:压缩的STEP文件。
u3d:Universal 3D File,由Universal 3D File开发的通用3D文件格式。
unv:I-DEAS Data File,由Siemens AG开发,用于Windows和Unix操作系统的数据保存。
vda:Targa Bitmap Image File,由Microsoft Corporation开发的Raster光栅图像文件。
vrml:Virtual Reality Modeling Language 3D World,由开源开发者开发的虚拟现实建模语言相关的3D世界文件。
wrl:VRML World,由未知开发者开发的虚拟现实建模语言创造的虚拟世界文件。
x_b:Parasolid Model (binary),由Siemens PLM Software开发的Parasolid 3D CAD应用程序。
x_t:Siemens PLM Software开发的与Parasolid软件相关的文件,用于存储几何形状、拓扑和彩色三维模型数据。
xas:PTC Pro/Engineer Assembly File,由Parametric Technology Corporation开发的用于Microsoft Windows平台的3D设计解决方案。
xmt:Binary Data,用于ug软件的三维格式。
xmt_bin:Parasolid 3D图像文件。
xmt_txt:Parasolid CAD Format,包含存储在简单的ASCII文本格式的文件。
xpr:Pro/ENGINEER Part Instance Accelerator File,由Parametric Technology Corporation开发的用于加速3D产品设计应用中零件加载的文件。
xyz:Cartesian Chemical Modeller Input,由Hypercube, Inc.开发的化学分子建模软件的文件扩展名。
以上格式的PDF文档可以免费在老子云平台公众号后台留言获取。
2024-12-28 23:43
2024-12-28 23:34
2024-12-28 23:13
2024-12-28 22:28
2024-12-28 22:07