Change value diagram calculator

This commit is contained in:
Evgeny Redikultsev
2025-11-16 21:03:57 +05:00
parent f7e60e0bb3
commit 215f631bb0
170 changed files with 2108 additions and 387 deletions

View File

@@ -2,6 +2,7 @@
using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperCommon.Models.Shapes;
using StructureHelperCommon.Services.Exports;
using StructureHelperLogics.Models.Primitives;
namespace StructureHelperLogics.NdmCalculations.Primitives
{
@@ -31,6 +32,10 @@ namespace StructureHelperLogics.NdmCalculations.Primitives
{
primitives.Add(GetCirclePrimitive(circle));
}
else if (dxfEntity is Point point)
{
primitives.Add(GetPointPrimitive(point));
}
else
{
// just skip all types of primitives
@@ -39,6 +44,31 @@ namespace StructureHelperLogics.NdmCalculations.Primitives
}
}
private INdmPrimitive GetPointPrimitive(Point point)
{
INdmPrimitive primitive = null;
double area = 0.000314;
if (point.Layer.Name == layerLogic.GetLayerName(LayerNames.StructuralRebars))
{
RebarNdmPrimitive rebar = new(Guid.NewGuid())
{
Name = "Imported rebar",
Area = area
};
primitive = rebar;
}
else
{
PointNdmPrimitive pointPrimitive = new(Guid.NewGuid())
{
Name = "Imported point",
Area = area
};
primitive = pointPrimitive;
}
return primitive;
}
private INdmPrimitive GetCirclePrimitive(Circle circle)
{
INdmPrimitive primitive = null;

View File

@@ -27,8 +27,8 @@ namespace StructureHelperLogics.NdmCalculations.Primitives
}
public void Update(IEllipseNdmPrimitive targetObject, IEllipseNdmPrimitive sourceObject)
{
CheckObject.IsNull(sourceObject, "source object");
CheckObject.IsNull(targetObject, "target object");
CheckObject.ThrowIfNull(sourceObject, "source object");
CheckObject.ThrowIfNull(targetObject, "target object");
if (ReferenceEquals(targetObject, sourceObject)) { return; }
basePrimitiveUpdateStrategy.Update(targetObject, sourceObject);
divisionPropsUpdateStrategy.Update(targetObject.DivisionSize, sourceObject.DivisionSize);

View File

@@ -18,9 +18,9 @@ namespace StructureHelperLogics.NdmCalculations.Primitives.Logics
public void Update(IHasPrimitives targetObject, IHasPrimitives sourceObject)
{
CheckObject.IsNull(cloningStrategy);
CheckObject.IsNull(sourceObject);
CheckObject.IsNull(targetObject);
CheckObject.ThrowIfNull(cloningStrategy);
CheckObject.ThrowIfNull(sourceObject);
CheckObject.ThrowIfNull(targetObject);
if (ReferenceEquals(targetObject, sourceObject)) { return; }
targetObject.Primitives.Clear();
foreach (var primitive in sourceObject.Primitives)

View File

@@ -12,7 +12,7 @@ namespace StructureHelperLogics.NdmCalculations.Primitives.Logics
{
public void Update(IHasPrimitives targetObject, IHasPrimitives sourceObject)
{
CheckObject.IsNull(targetObject, sourceObject);
CheckObject.ThrowIfNull(targetObject, sourceObject);
if (ReferenceEquals(targetObject, sourceObject)) { return; }
targetObject.Primitives.Clear();
targetObject.Primitives.AddRange(sourceObject.Primitives);

View File

@@ -24,7 +24,7 @@ namespace StructureHelperLogics.NdmCalculations.Primitives.Logics
/// <inheritdoc/>
public void Update(INdmElement targetObject, INdmElement sourceObject)
{
CheckObject.IsNull(targetObject, sourceObject);
CheckObject.ThrowIfNull(targetObject, sourceObject);
if (ReferenceEquals(targetObject, sourceObject)) { return; }
targetObject.Triangulate = sourceObject.Triangulate;
tupleUpdateStrategy.Update(targetObject.UsersPrestrain, sourceObject.UsersPrestrain);

View File

@@ -16,7 +16,7 @@ namespace StructureHelperLogics.NdmCalculations.Primitives
public void Update(INdmPrimitive targetObject, INdmPrimitive sourceObject)
{
CheckObject.IsNull(targetObject, sourceObject);
CheckObject.ThrowIfNull(targetObject, sourceObject);
if (ReferenceEquals(targetObject, sourceObject)) { return; }
InitializeStrategies();
targetObject.Name = sourceObject.Name;

View File

@@ -28,8 +28,8 @@ namespace StructureHelperLogics.NdmCalculations.Primitives
public void Update(IRectangleNdmPrimitive targetObject, IRectangleNdmPrimitive sourceObject)
{
CheckObject.IsNull(sourceObject, "source object");
CheckObject.IsNull(targetObject, "target object");
CheckObject.ThrowIfNull(sourceObject, "source object");
CheckObject.ThrowIfNull(targetObject, "target object");
if (ReferenceEquals(targetObject, sourceObject)) { return; }
basePrimitiveUpdateStrategy.Update(targetObject, sourceObject);
divisionPropsUpdateStrategy.Update(targetObject.DivisionSize, sourceObject.DivisionSize);

View File

@@ -32,7 +32,7 @@ namespace StructureHelperLogics.NdmCalculations.Primitives
public void Update(IShapeNdmPrimitive targetObject, IShapeNdmPrimitive sourceObject)
{
CheckObject.IsNull(targetObject, sourceObject);
CheckObject.ThrowIfNull(targetObject, sourceObject);
if (ReferenceEquals(targetObject, sourceObject)) { return; }
InitializeStrategies();
basePrimitiveUpdateStrategy.Update(targetObject, sourceObject);