# 虚拟墙 Item 示例 ::: details 目录 [[toc]] ::: ## 源代码 <GitCode fileUrl="/persagy-web-big/src/items/floor/SVirtualWallItem.ts" /> ## 代码说明 ### 数据说明 ``` json5 VirtualWalls:[ { Location: {X:0,Y:0,Z:0}, // 位置 ModelId: '', // 模型id Name: '', // 名称 OutLine: [ [{X:0,Y:0,Z:0},...], // 外轮廓 ... // 内轮廓 ], // 轮廓线 SourceId: '', // 对应Revit模型id }, ... ] ``` ::: tip 注 1、虚拟墙是一段一段组成的 <br/> 2、<font color=red> outline </font>是二维代表是由多段虚拟墙组成 <br/> 3、<font color=red> outline </font>无排序要求 <br/> 4、轮廓数据单位均为毫米 ::: ### 计算边界矩阵 不能在绘制的时候计算,因为绘制是高频调用方法,尽量不要在绘制方法中做大量计算工作;<br/> 计算方法一般在数据变化的时候做,如果只是展示的话,则<font color=orange>只需要在构造函数中计算一次</font>; ### Y轴取反 <font color=orange>revit 使用的坐标系与 canvas 使用的坐标系 Y 轴是相反的</font>; revit 坐标使用的是数学坐标系, Y 轴方向是向上的, canvas 坐标使用的绘图坐标系, Y 轴方向是向下的;<br/> 数据是通过 revit 模型导出 ## 绘制示例 <big-items-virtualWall /> ::: details 查看代码 <<< @/docs/.vuepress/components/big/items/virtualWall.vue :::