# 业务空间 Item 示例 ::: details 目录 [[toc]] ::: ## 源代码 ::: details 查看代码 <<< @/docs/guides/big/items/src/SZoneItem.ts ::: ## 代码说明 ### 数据说明 ``` json5 Zone: { xxx: xxx, // 等业务空间属性 OutLine: [ [ [{X:0,Y:0,Z:0},...], // 第一个空间的外轮廓 ... // 第一个空间的内轮廓 ], [ [{X:0,Y:0,Z:0},...], // 第二个空间的外轮廓 ... // 第二个空间的内轮廓 ], ... // ... ], // 轮廓线 } ``` ::: tip 注 1、业务空间由多个空间组成
2、每个空间可能挖洞,所以 outline 是三维数组
3、外轮廓数据顺时针排序,内轮廓为逆时针排序
4、轮廓数据单位均为毫米 ::: ### 计算边界矩阵 不能在绘制的时候计算,因为绘制是高频调用方法,尽量不要在绘制方法中做大量计算工作;
计算方法一般在数据变化的时候做,如果只是展示的话,则只需要在构造函数中计算一次; ### Y轴取反 业务空间轮廓线由空间轮廓线直接组成或者由空间轮廓线计算而来
revit 使用的坐标系与 canvas 使用的坐标系 Y 轴是相反的; revit 坐标使用的是数学坐标系, Y 轴方向是向上的, canvas 坐标使用的绘图坐标系, Y 轴方向是向下的;
数据是通过 revit 模型导出 ## 绘制示例 ::: details 查看代码 <<< @/docs/.vuepress/components/big/items/zone.vue :::