添加项目文件。
This commit is contained in:
296
RebarMsAddins/ElementExtensions.cs
Normal file
296
RebarMsAddins/ElementExtensions.cs
Normal file
@@ -0,0 +1,296 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using Bentley.DgnPlatformNET;
|
||||
using Bentley.DgnPlatformNET.DgnEC;
|
||||
using Bentley.DgnPlatformNET.Elements;
|
||||
using Bentley.ECObjects.Instance;
|
||||
using Bentley.GeometryNET;
|
||||
using Bentley.MstnPlatformNET;
|
||||
|
||||
namespace RebarMsAddins
|
||||
{
|
||||
/// <summary>
|
||||
/// 元素扩展类
|
||||
/// </summary>
|
||||
public static class ElementExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// 通过属性名获取钢筋的属性值
|
||||
/// </summary>
|
||||
/// <param name="elem">元素</param>
|
||||
/// <param name="propName">属性名</param>
|
||||
/// <returns>属性值,可根据情况进行转换数据类型</returns>
|
||||
public static object GetRebarPropertyValue(this Element elem, string propName)
|
||||
{
|
||||
var instances = new CustomItemHost(elem, false).CustomItems;
|
||||
|
||||
object value = default;
|
||||
foreach (var instance in instances)
|
||||
{
|
||||
if ((instance.ClassDefinition.DisplayLabel == "钢筋" || instance.ClassDefinition.DisplayLabel == "纵向钢筋") && instance.ContainsValues)
|
||||
{
|
||||
foreach (var propValue in instance)
|
||||
{
|
||||
if (propValue.Property.DisplayLabel == propName && propValue.TryGetNativeValue(out value))
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
/// <summary>
|
||||
/// 元素之间传递ItemTypes及值
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <param name="target"></param>
|
||||
public static void DeliverItemTypesTo(this Element source, Element target)
|
||||
{
|
||||
CustomItemHost host = new CustomItemHost(source, true);//声明元素的CustomItemHost
|
||||
var instances = host.CustomItems;
|
||||
//List<ItemType> list = new List<ItemType>();
|
||||
|
||||
foreach (var instance in instances)
|
||||
{
|
||||
var ecClass = instance.ClassDefinition;//ItemTypes
|
||||
var lib = ecClass.Schema;//ItemTypesLibrary
|
||||
|
||||
target.AttachItemType(lib.DisplayLabel, ecClass.DisplayLabel);
|
||||
|
||||
if (instance.ContainsValues)
|
||||
{
|
||||
foreach (var propValue in instance)
|
||||
{
|
||||
if (propValue.TryGetNativeValue(out var value))
|
||||
{
|
||||
var prop = propValue.Property;
|
||||
target.SetECPropertyValues(prop.DisplayLabel, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 通过属性名设置属性值,多个同名属性会同时设置
|
||||
/// </summary>
|
||||
/// <param name="elem">元素</param>
|
||||
/// <param name="propName">属性名</param>
|
||||
/// <returns></returns>
|
||||
public static void SetECPropertyValues(this Element elem, string propName, object value)
|
||||
{
|
||||
var instances = new CustomItemHost(elem, false).CustomItems;
|
||||
try
|
||||
{
|
||||
foreach (var instance in instances)
|
||||
{
|
||||
instance.SetValue(propName, value);
|
||||
instance.WriteChanges();
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取ItemType,包含多个CustomProperty
|
||||
/// </summary>
|
||||
/// <param name="itemLibName"></param>
|
||||
/// <param name="itemTypeName"></param>
|
||||
/// <returns></returns>
|
||||
public static ItemType GetItemType(string itemLibName, string itemTypeName)
|
||||
{
|
||||
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();
|
||||
//根据声明名称获取对应的ItemTypeLibrary
|
||||
ItemTypeLibrary itemTypeLibrary = ItemTypeLibrary.FindByName(itemLibName, dgnFile);
|
||||
return itemTypeLibrary?.GetItemTypeByName(itemTypeName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 挂接ItemType到元素
|
||||
/// </summary>
|
||||
/// <param name="elem"></param>
|
||||
/// <param name="itemLibName"></param>
|
||||
/// <param name="itemTypeName"></param>
|
||||
public static void AttachItemType(this Element elem, string itemLibName, string itemTypeName)
|
||||
{
|
||||
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的文件
|
||||
DgnModel dgnModel = Session.Instance.GetActiveDgnModel();
|
||||
//根据声明名称获取对应的ItemType
|
||||
ItemType itemType = GetItemType(itemLibName, itemTypeName);
|
||||
|
||||
CustomItemHost host = new CustomItemHost(elem, true);//声明元素的CustomItemHost
|
||||
//实例化
|
||||
IDgnECInstance item = host.ApplyCustomItem(itemType, true);//对CustomItemHost添加ItemType得到EC实例
|
||||
|
||||
EditParameterDefinitions defs = EditParameterDefinitions.GetForModel(dgnModel);//获得模型中的参数定义
|
||||
DgnECInstanceEnabler enabler = DgnECManager.Manager.ObtainInstanceEnabler(dgnFile, itemType.ECClass);//获得文件中使用指定EC类的EC实例
|
||||
if (null != enabler && enabler.SupportsCreateInstanceOnElement)//判断是否是否支持对元素挂接EC实例
|
||||
defs.SetDomainParameters(enabler.SharedWipInstance);//对参数定义设置域参数
|
||||
|
||||
item.ScheduleChanges(elem);//对元素更新ItemType信息
|
||||
elem.ReplaceInModel(elem);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设置元素图层
|
||||
/// </summary>
|
||||
/// <param name="element"></param>
|
||||
/// <param name="leveName"></param>
|
||||
/// <remarks>图层名不存在时,则创建</remarks>
|
||||
/// <returns></returns>
|
||||
public static Element SetLevel(this Element element, string leveName)
|
||||
{
|
||||
Element oldElem = Element.GetFromElementRef(element.GetNativeElementRef());
|
||||
if (string.IsNullOrEmpty(leveName))
|
||||
{
|
||||
return element;
|
||||
}
|
||||
//获取指定名层
|
||||
DgnFile dgnfile = Session.Instance.GetActiveDgnFile();
|
||||
FileLevelCache lvlCache = dgnfile.GetLevelCache();
|
||||
LevelHandle lvlHandle = lvlCache.GetLevelByName(leveName);
|
||||
if (!lvlHandle.IsValid)//当前文件中不存在时创建
|
||||
{
|
||||
lvlCache.CreateLevel(leveName);
|
||||
lvlCache.Write();
|
||||
lvlHandle = lvlCache.GetLevelByName(leveName);
|
||||
}
|
||||
//设置元素的层属性写入模型中
|
||||
ElementPropertiesSetter eleSet = new ElementPropertiesSetter();
|
||||
eleSet.SetLevel(lvlHandle.LevelId);
|
||||
eleSet.Apply(element);
|
||||
element.ReplaceInModel(oldElem);
|
||||
return element;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取元素的长度
|
||||
/// </summary>
|
||||
/// <param name="elem">元素</param>
|
||||
/// <returns>长度值,单位m,保留两位小数</returns>
|
||||
public static double GetLength(this Element elem)
|
||||
{
|
||||
var uorMeter = Session.Instance.GetActiveDgnModel().GetModelInfo().UorPerMeter;
|
||||
double length = default;
|
||||
|
||||
if (elem is LineElement line)
|
||||
{
|
||||
length = line.GetCurveVector().SumOfLengths();
|
||||
}
|
||||
if (elem is ComplexStringElement complexString)
|
||||
{
|
||||
length = complexString.GetCurveVector().SumOfLengths();
|
||||
}
|
||||
if (elem is LineStringBaseElement lineStringBase)
|
||||
{
|
||||
length = lineStringBase.GetCurveVector().SumOfLengths();
|
||||
}
|
||||
if (elem is EllipseElement ellipseElement)
|
||||
{
|
||||
length = ellipseElement.GetCurveVector().SumOfLengths();
|
||||
}
|
||||
//if (elem is LineStringElement lineString)
|
||||
//{
|
||||
// curve = lineString.GetCurveVector().SumOfLengths();
|
||||
// //GetFilteredECPropValue(lineString, "ID-100-名称");
|
||||
//}
|
||||
//if (elem is ShapeElement shape)
|
||||
//{
|
||||
// curve = shape.GetCurveVector().SumOfLengths();
|
||||
//}
|
||||
if (elem is ComplexShapeElement complexShape)
|
||||
{
|
||||
length = complexShape.GetCurveVector().SumOfLengths();
|
||||
}
|
||||
if (elem is BSplineCurveElement bSplineCurve)
|
||||
{
|
||||
length = bSplineCurve.GetCurveVector().SumOfLengths();
|
||||
}
|
||||
return Math.Round(length / uorMeter, 3, MidpointRounding.AwayFromZero);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取元素的CurveVector
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static CurveVector GetCurveVector(this Element elem)
|
||||
{
|
||||
CurveVector curve = default;
|
||||
|
||||
if (elem is LineElement line)
|
||||
{
|
||||
curve = line.GetCurveVector();
|
||||
}
|
||||
if (elem is ComplexStringElement complexString)
|
||||
{
|
||||
curve = complexString.GetCurveVector();
|
||||
}
|
||||
if (elem is LineStringBaseElement lineStringBase)
|
||||
{
|
||||
curve = lineStringBase.GetCurveVector();
|
||||
}
|
||||
if (elem is EllipseElement ellipseElement)
|
||||
{
|
||||
curve = ellipseElement.GetCurveVector();
|
||||
}
|
||||
//if (elem is LineStringElement lineString)
|
||||
//{
|
||||
// curve = lineString.GetCurveVector();
|
||||
// //GetFilteredECPropValue(lineString, "ID-100-名称");
|
||||
//}
|
||||
//if (elem is ShapeElement shape)
|
||||
//{
|
||||
// curve = shape.GetCurveVector();
|
||||
//}
|
||||
if (elem is ComplexShapeElement complexShape)
|
||||
{
|
||||
curve = complexShape.GetCurveVector();
|
||||
|
||||
}
|
||||
if (elem is BSplineCurveElement bSplineCurve)
|
||||
{
|
||||
curve = bSplineCurve.GetCurveVector();
|
||||
}
|
||||
|
||||
return curve;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取元素中的圆弧
|
||||
/// </summary>
|
||||
/// <param leveName="elem"></param>
|
||||
/// <returns>若没有,则返回空列表</returns>
|
||||
public static List<DEllipse3d> GetArcs(this Element elem)
|
||||
{
|
||||
var list = new List<DEllipse3d>();
|
||||
foreach (var child in elem.GetCurveVector())
|
||||
{
|
||||
if (child.GetCurvePrimitiveType() == CurvePrimitive.CurvePrimitiveType.Arc)
|
||||
{
|
||||
child.TryGetArc(out var arc);
|
||||
list.Add(arc);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取元素中线
|
||||
/// </summary>
|
||||
/// <param leveName="elem"></param>
|
||||
/// <returns></returns>
|
||||
public static List<DSegment3d> GetLines(this Element elem)
|
||||
{
|
||||
var list = new List<DSegment3d>();
|
||||
foreach (var child in elem.GetCurveVector())
|
||||
{
|
||||
if (child.GetCurvePrimitiveType() == CurvePrimitive.CurvePrimitiveType.Arc)
|
||||
{
|
||||
child.TryGetLine(out var line);
|
||||
list.Add(line);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
33
RebarMsAddins/Properties/AssemblyInfo.cs
Normal file
33
RebarMsAddins/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("RebarMsAddins")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("RebarMsAddins")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2024")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("4421ef72-cd7e-4618-beb6-4873fba33950")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
208
RebarMsAddins/RebarHelpers.cs
Normal file
208
RebarMsAddins/RebarHelpers.cs
Normal file
@@ -0,0 +1,208 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using Bentley.DgnPlatformNET;
|
||||
using Bentley.DgnPlatformNET.Elements;
|
||||
using Bentley.GeometryNET;
|
||||
using Bentley.MstnPlatformNET;
|
||||
|
||||
namespace RebarMsAddins
|
||||
{
|
||||
/// <summary>
|
||||
/// 钢筋帮助类
|
||||
/// </summary>
|
||||
internal static class RebarHelpers
|
||||
{
|
||||
public static void CreateRebarSolid(List<Rebar> rebars, string levelName = null)
|
||||
{
|
||||
var dgnModel = Session.Instance.GetActiveDgnModel();
|
||||
|
||||
if (rebars == null || rebars.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
double uorMeter = Session.Instance.GetActiveDgnModel().GetModelInfo().UorPerMeter;//米与分辨率单位的比值,绝对长度,不随主、子单位设置而改变
|
||||
var modelRef = Session.Instance.GetActiveDgnModelRef();
|
||||
var model = Session.Instance.GetActiveDgnModel();
|
||||
var layer = model.GetLevelCache().GetLevelByName("JG_EC_ZXJ");
|
||||
|
||||
foreach (var rebar in rebars)
|
||||
{
|
||||
var host = new CustomItemHost(rebar.Element, false);
|
||||
CurveVector pathCurve = null;
|
||||
CurveVector profile = null;
|
||||
var d = rebar.Diameter / 1000 * uorMeter;
|
||||
//"纵向筋"需要自己定义轮廓和放样线
|
||||
if (rebar.Element.LevelId == layer.LevelId)
|
||||
{
|
||||
var arcs = rebar.Element.GetArcs();
|
||||
if (arcs.Count > 0)
|
||||
{
|
||||
//获取圆弧
|
||||
var arc = arcs.FirstOrDefault();
|
||||
//得到圆弧平面的法向
|
||||
if (!arc.Vector0.CrossProduct(arc.Vector90).TryNormalize(out var normal))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var vector = normal * (rebar.Length / 1000 * uorMeter) * 0.5;
|
||||
//拿到以元素平面为中心的两侧点,作为放样线起终点
|
||||
var startPoint = arc.Center - vector;
|
||||
var endPoint = arc.Center + vector;
|
||||
//创建路径
|
||||
List<DPoint3d> pos = new List<DPoint3d>() { startPoint, endPoint };
|
||||
//ElementCreationHelpers.CreateLine(startPoint, endPoint);
|
||||
pathCurve = CurveVector.CreateLinear(pos, CurveVector.BoundaryType.Open, false);
|
||||
//截面
|
||||
DEllipse3d dEllipse3D = DEllipse3d.FromCenterRadiusNormal(startPoint, d / 2, normal);
|
||||
profile = CurveVector.CreateDisk(dEllipse3D, CurveVector.BoundaryType.Outer);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pathCurve = rebar.Element.GetCurveVector();
|
||||
//起点和起点的切向
|
||||
pathCurve.GetStartEnd(out var p1, out _, out var t1, out _);
|
||||
//在起点创建截面
|
||||
DEllipse3d ellipse = DEllipse3d.FromCenterRadiusNormal(p1, d / 2, t1);
|
||||
EllipseElement ellipseElem = new EllipseElement(dgnModel, null, ellipse);//使用椭圆几何创建椭圆元素
|
||||
profile = ellipseElem.GetCurveVector();
|
||||
}
|
||||
|
||||
if (profile == null || pathCurve == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
Create.BodyFromSweep(
|
||||
out var entity,
|
||||
profile,
|
||||
pathCurve,
|
||||
modelRef,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null);
|
||||
|
||||
if (entity != null)
|
||||
{
|
||||
BentleyStatus result = Convert1.BodyToElement(out Element eeh, entity, null, dgnModel);//将SolidKernelEntity转换为元素
|
||||
eeh.AddToModel();//将元素写入模型
|
||||
if (!string.IsNullOrEmpty(levelName))
|
||||
{
|
||||
eeh.SetLevel(levelName);
|
||||
}
|
||||
rebar.Element.DeliverItemTypesTo(eeh);
|
||||
//eeh.AttachItemType()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按图层获取钢筋的数据
|
||||
/// </summary>
|
||||
/// <param name="levelName"></param>
|
||||
/// <returns>钢筋的数据集合</returns>
|
||||
public static List<Rebar> GetRebarDataByLevelName(string levelName)
|
||||
{
|
||||
//获取当前激活的模型
|
||||
DgnModel model = Session.Instance.GetActiveDgnModel();
|
||||
//获取图层
|
||||
var layer = model.GetLevelCache().GetLevelByName(levelName);
|
||||
//拿到图层上的元素
|
||||
var elems = model.GetGraphicElements().Where(e => e.LevelId == layer.LevelId).ToList();
|
||||
List<Rebar> rebars = new List<Rebar>();
|
||||
foreach (var elem in elems)
|
||||
{
|
||||
//整理钢筋数据
|
||||
Rebar rebar = new Rebar()
|
||||
{
|
||||
Function = elem.GetRebarPropertyValue("ID-100-名称")?.ToString(),
|
||||
Number = elem.GetRebarPropertyValue("ID-100-编号")?.ToString(),
|
||||
StrengthRating = elem.GetRebarPropertyValue("TC-100-钢筋强度等级")?.ToString(),
|
||||
Diameter = Convert.ToDouble(elem.GetRebarPropertyValue("TC-100-直径")),
|
||||
Element = elem,
|
||||
Length = elem.GetLength()
|
||||
};
|
||||
//纵向筋通过读属性获取
|
||||
if (levelName == "JG_EC_ZXJ")
|
||||
{
|
||||
rebar.Length = Convert.ToDouble(elem.GetRebarPropertyValue("TC-100-长度"));
|
||||
}
|
||||
rebars.Add(rebar);
|
||||
}
|
||||
return rebars;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 如何使用
|
||||
/// </summary>
|
||||
internal static class Using
|
||||
{
|
||||
public static void Command(string unparsed)
|
||||
{
|
||||
DgnModel dgnModel = Session.Instance.GetActiveDgnModel();
|
||||
var dgnModelRef = Session.Instance.GetActiveDgnModelRef();
|
||||
|
||||
//二衬结构附加筋
|
||||
var fjj = RebarHelpers.GetRebarDataByLevelName("JG_EC_FJJ");
|
||||
//二衬结构箍筋
|
||||
var guj = RebarHelpers.GetRebarDataByLevelName("JG_EC_GuJ");
|
||||
//二衬结构拉筋
|
||||
var laj = RebarHelpers.GetRebarDataByLevelName("JG_EC_LaJ");
|
||||
//二衬结构主筋
|
||||
var zj = RebarHelpers.GetRebarDataByLevelName("JG_EC_ZJ");
|
||||
//二衬结构纵向筋
|
||||
var zxj = RebarHelpers.GetRebarDataByLevelName("JG_EC_ZXJ");
|
||||
List<Rebar> list = new List<Rebar>();
|
||||
|
||||
RebarHelpers.CreateRebarSolid(fjj, "JG_EC_GJMX");
|
||||
RebarHelpers.CreateRebarSolid(guj, "JG_EC_GJMX");
|
||||
RebarHelpers.CreateRebarSolid(laj, "JG_EC_GJMX");
|
||||
RebarHelpers.CreateRebarSolid(zxj, "JG_EC_GJMX");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 钢筋
|
||||
/// </summary>
|
||||
internal class Rebar
|
||||
{
|
||||
|
||||
public override string ToString() { return $"功能:{Function},编号:{Number},直径:{Diameter},长度:{Length}"; }
|
||||
|
||||
/// <summary>
|
||||
/// 钢筋直径,mm
|
||||
/// </summary>
|
||||
public double Diameter { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联的元素
|
||||
/// </summary>
|
||||
public Element Element { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 钢筋类型 拉筋,箍筋,主筋,纵向筋、附加筋等
|
||||
/// </summary>
|
||||
public string Function { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 钢筋长度
|
||||
/// </summary>
|
||||
public double Length { get; set; }
|
||||
/// <summary>
|
||||
/// 编号N
|
||||
/// </summary>
|
||||
public string Number { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 钢筋强度等级HPB
|
||||
/// </summary>
|
||||
public string StrengthRating { get; set; }
|
||||
}
|
||||
}
|
||||
50
RebarMsAddins/RebarMsAddins.csproj
Normal file
50
RebarMsAddins/RebarMsAddins.csproj
Normal file
@@ -0,0 +1,50 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net48</TargetFramework>
|
||||
<OutputType>Library</OutputType>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
<Platforms>AnyCPU;x64</Platforms>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
|
||||
<Reference Include="Bentley.Platform">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\dlls\Bentley.Platform.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Bentley.DgnDisplayNet" HintPath="..\dlls\Bentley.DgnDisplayNet.dll" SpecificVersion="False" Private="False" />
|
||||
|
||||
<!--<Reference Include="Bentley.MicroStation" HintPath="$(MSAssemblies)Bentley.MicroStation.dll" Private="False" />-->
|
||||
|
||||
<Reference Include="Bentley.DgnPlatformNET" SpecificVersion="False" HintPath="..\dlls\Bentley.DgnPlatformNET.dll" Private="False" />
|
||||
<Reference Include="Bentley.ECObjects3">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath><!--$(MSAssemblies)-->..\dlls\Bentley.ECObjects3.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Bentley.ECObjects.MixedMode3">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath><!--$(MSAssemblies)-->..\dlls\Bentley.ECObjects.MixedMode3.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Bentley.GeometryNET">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<Private>False</Private>
|
||||
<HintPath><!--$(BentleyReferencePath)-->..\dlls\Bentley.GeometryNET.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Bentley.GeometryNET.Structs">
|
||||
<Private>False</Private>
|
||||
<HintPath><!--$(BentleyReferencePath)-->..\dlls\Bentley.GeometryNET.Structs.dll</HintPath>
|
||||
</Reference>
|
||||
<!--<Reference Include="MstnMixedAssistant">
|
||||
<HintPath>..\dlls\MstnMixedAssistant.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>-->
|
||||
<Reference Include="ustation">
|
||||
<HintPath><!--$(BentleyReferencePath)-->..\dlls\ustation.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Reference in New Issue
Block a user