span8
span4
你好,我有几个问题,我会尽量详细说明。我正在将DGN单元转换为CityGML。
1)我如何确保外环是逆时针的,内环是顺时针的?我使用了定位器,并设置了手动规则,然而,在表面上,我仍然可以看到(通过对CityGML使用检查器)多边形是右手规则。
2)在检查器中查看生成的CityGML时,它显示的墙壁表面相当奇怪……有些以外部(实线)表示,有些以内部(虚线)表示。
FME用这种方式表示它有关系吗?或者它真的意味着什么?与point1有关吗?这些显示为右手规则(我想要左手规则)。
谢谢,
史蒂夫
Orienter基于自顶向下视图设置左/右方向,主要用于GIS类型的多边形。在墙壁上发现的垂直面上的结果可能是不可预测的。
测试表面的一个更好的方法可能是观察它们的表面法线,以确保它们指向正确的方向。表面法线将从脸的正面指向外。我在FME轮毂上创建了自定义transformer SurfaceNormalExtractor来提取每个面的法向几何特征(https://hub.亚搏在线safe.com/transformers/surfacenormalextractor)。GeometryPropertyExtractor可以将这些特征提取到属性中进行测试。
虚线表示的是单面的背面。您可以使用具有反向方向类型的定向变压器来反转表面。您可以将其转换为一个双面,通过设置外观,在前面和后面都有一个外观排字机或几何调色变压器。然而,许多3D观众并不关心表面是否单面,他们会很高兴地呈现两边。
对于这样一个简单的模型,使用SolidBuilder转换器可能会有好运气。这将建立一个Brep固体从你的表面,只要没有差距。作为构建实体的一部分,它重新定位所有的表面来指出。在SolidBuilder之后,可以使用geometrycoer将实体转换回复合表面。
要保留每个原始表面的属性,请在构建实体之前使用GeometryPropertySetter将它们转换为traits。在使用完geometrycoer之后,可以使用GeometryPropertyExtractor将特征提取回属性。
你好戴夫,
关于这一点,我已经做了更多的工作,举了几个例子。
我可以确认源DGN的顶点的顺序是正确的,请看这张图,把焦点放在前面的墙,和突出显示的左边的墙。多边形方向正确:
当我运行工作台,然后在输出CityGML上使用检查器时,有一个不同的表示,虚线外观,直接与多边形的方向相关。如果它是一致的,那么我可以定向或“反向”,但因为它对一些人来说是可以的,但对另一些人却不行,所以我不能使用这个选项:
我在屋顶和地面上使用orientor LHR或RHR,效果很好。
以上图片暂时忽略内墙(内墙与DGN多边形方向一致)。但是可以看到,经过fme处理后的前脸,与上面的DGN相比,左侧的墙有不一致的地方。我可以在inspector里确认,正面是顺时针的,即使在DGN里是逆时针的。
我不确定我能做什么来迫使FME的期望行为。
谢谢,
史蒂夫
©2019安全亚搏在线软件公司法律