diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ad9e6da..9ce74dd 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -32,6 +32,8 @@ jobs:
run: dotnet run --project ClaudeRevit.McpTests -c Release
- name: Subscription CLI checks (isolated fake processes, no account)
run: dotnet run --project ClaudeRevit.CliTests -c Release
+ - name: ModPlus adapter checks (isolated Revit contracts, no installed ModPlus)
+ run: dotnet run --project ClaudeRevit.ModPlusTests -c Release
- name: Compile installer detection check
uses: Minionguyjpro/Inno-Setup-Action@v1.2.2
with:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 70f81c1..aed995d 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -49,6 +49,8 @@ jobs:
if ($LASTEXITCODE -ne 0) { throw "MCP transport checks failed" }
dotnet run --project ClaudeRevit.CliTests -c Release
if ($LASTEXITCODE -ne 0) { throw "Subscription CLI checks failed" }
+ dotnet run --project ClaudeRevit.ModPlusTests -c Release
+ if ($LASTEXITCODE -ne 0) { throw "ModPlus adapter checks failed" }
# One add-in DLL cannot load into every Revit: 2025/2026 host .NET 8, 2027 hosts
# .NET 10. Build each supported version against its matching Revit API reference
diff --git a/ClaudeRevit.ModPlusTests/ClaudeRevit.ModPlusTests.csproj b/ClaudeRevit.ModPlusTests/ClaudeRevit.ModPlusTests.csproj
new file mode 100644
index 0000000..33567c4
--- /dev/null
+++ b/ClaudeRevit.ModPlusTests/ClaudeRevit.ModPlusTests.csproj
@@ -0,0 +1,17 @@
+
+
+ Exenet8.0
+ enableenableMajor
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ClaudeRevit.ModPlusTests/Contracts.cs b/ClaudeRevit.ModPlusTests/Contracts.cs
new file mode 100644
index 0000000..a495396
--- /dev/null
+++ b/ClaudeRevit.ModPlusTests/Contracts.cs
@@ -0,0 +1,85 @@
+// Only Revit is replaced: the production tools, catalog, DTO reader and Anthropic schemas run
+// unchanged. These contracts never ship in the add-in and cannot execute ModPlus assemblies.
+using System.Text.Json;
+using Anthropic.Models.Beta.Messages;
+namespace Autodesk.Revit.DB
+{
+ public sealed record ElementId(long Value);
+ public class Element { }
+ public class Document
+ {
+ public string Title => "isolated";
+ public Element? GetElement(ElementId id) => id.Value is 1 or 2 ? new Element() : null;
+ }
+}
+namespace Autodesk.Revit.ApplicationServices { public class Application { public string VersionNumber { get; set; } = "2027"; } }
+namespace Autodesk.Revit.Exceptions { public class ArgumentException : System.ArgumentException { } }
+namespace Autodesk.Revit.UI.Selection
+{
+ public class Selection
+ {
+ private List _ids = [new(1)];
+ public ICollection GetElementIds() => _ids.ToArray();
+ public void SetElementIds(ICollection ids) => _ids = ids.ToList();
+ }
+}
+namespace Autodesk.Revit.UI
+{
+ public class UIDocument
+ {
+ public Autodesk.Revit.DB.Document Document { get; set; } = new();
+ public Selection.Selection Selection { get; } = new();
+ }
+ public class UIApplication
+ {
+ public Autodesk.Revit.ApplicationServices.Application Application { get; } = new();
+ public UIDocument? ActiveUIDocument { get; set; } = new();
+ public List Panels { get; } = new();
+ public List Posted { get; } = new();
+ public bool AllowPost { get; set; } = true;
+ public bool FailPost { get; set; }
+ public List GetRibbonPanels(string tab) => tab == "ModPlus" ? Panels : [];
+ public bool CanPostCommand(RevitCommandId id) => AllowPost;
+ public void PostCommand(RevitCommandId id) { if(FailPost)throw new InvalidOperationException("Simulated posting failure."); Posted.Add(id.Name); }
+ }
+ public sealed record RevitCommandId(string Name) { public static RevitCommandId? LookupCommandId(string id) => string.IsNullOrEmpty(id) ? null : new(id); }
+ public class RibbonItem { public string Name { get; set; } = ""; public string ItemText { get; set; } = ""; }
+ public class PushButton : RibbonItem { public string ClassName { get; set; } = ""; }
+ public class RibbonPanel
+ {
+ public string Name { get; set; } = "Utilities";
+ public List Items { get; } = new();
+ public List GetItems() => Items;
+ }
+ public class PulldownButton : RibbonItem { public List Items { get; } = new(); public List GetItems() => Items; }
+ public class SplitButton : RibbonItem { public List Items { get; } = new(); public List GetItems() => Items; }
+}
+namespace ClaudeRevit.Services
+{
+ public static class DocumentSessions { public static bool Same(Autodesk.Revit.DB.Document? a, Autodesk.Revit.DB.Document? b) => a != null && ReferenceEquals(a, b); }
+}
+namespace ClaudeRevit.Tools
+{
+ public static class ToolDispatcher { public static bool ForceSuppress; }
+ public static class ToolContext
+ {
+ public static Autodesk.Revit.UI.UIDocument? Bound;
+ public static Autodesk.Revit.UI.UIDocument? UiDocument(Autodesk.Revit.UI.UIApplication app) => Bound ?? app.ActiveUIDocument;
+ public static void ThrowIfCancelled() { }
+ }
+ public static class NativeToolUtil
+ {
+ public static JsonElement Field(string type, string description) => JsonSerializer.SerializeToElement(new { type, description });
+ public static JsonElement Array(string type, string description) => JsonSerializer.SerializeToElement(new { type="array", items=new { type }, description });
+ public static InputSchema Schema(Dictionary fields, params string[] required) => new() { Properties=fields, Required=required.ToList() };
+ public static string Text(IReadOnlyDictionary input, string key, string fallback="") => input.TryGetValue(key,out var v) && v.ValueKind==JsonValueKind.String ? v.GetString()??fallback : fallback;
+ public static bool Preview(IReadOnlyDictionary input) => !input.ContainsKey("preview") || !input.TryGetValue("preview",out var v) || v.ValueKind==JsonValueKind.Null || ToolInput.Flag(input,"preview");
+ public static List Ids(JsonElement value,int max)
+ {
+ var ids=value.EnumerateArray().Select(x=>new Autodesk.Revit.DB.ElementId(x.GetInt64())).Distinct().ToList();
+ if(ids.Count<1||ids.Count>max)throw new ToolInputException("Invalid element_ids count.");
+ return ids;
+ }
+ public static Autodesk.Revit.DB.Element Element(Autodesk.Revit.DB.Document doc,long id) => doc.GetElement(new(id))??throw new ToolInputException("Missing element.");
+ }
+}
diff --git a/ClaudeRevit.ModPlusTests/Program.cs b/ClaudeRevit.ModPlusTests/Program.cs
new file mode 100644
index 0000000..2cdc9c0
--- /dev/null
+++ b/ClaudeRevit.ModPlusTests/Program.cs
@@ -0,0 +1,72 @@
+using System.Text.Json;
+using ClaudeRevit.Services;
+using ClaudeRevit.Tools;
+using Autodesk.Revit.UI;
+
+var checks=0;
+void Check(bool condition,string name) { if(!condition)throw new Exception(name); checks++; }
+Dictionary Args(string json)=>JsonSerializer.Deserialize>(json)!;
+JsonElement Call(IRevitTool tool,string json,UIApplication app)=>JsonSerializer.Deserialize(tool.Execute(Args(json),app));
+void Reject(Action action,string name) { try{action();}catch(ToolInputException){checks++;return;} throw new Exception("Not rejected: "+name); }
+var data=Path.Combine(Path.GetTempPath(),"ClaudeRevit-ModPlus-contracts-"+Guid.NewGuid());
+var previous=Environment.GetEnvironmentVariable("CLAUDEREVIT_MODPLUS_DATA");
+Environment.SetEnvironmentVariable("CLAUDEREVIT_MODPLUS_DATA",data);
+try
+{
+ var app=new UIApplication();
+ var panel=new RibbonPanel();
+ var pull=new PulldownButton();
+ pull.Items.Add(new PushButton { Name="Sum", ItemText="Сумма параметров", ClassName="mprSumParameters.Command" });
+ panel.Items.Add(pull); app.Panels.Add(panel);
+ var list=new GetModPlusTools(); var algorithm=new GetModPlusAlgorithm(); var run=new RunModPlusCommand(); var sum=new ModPlusSumParameters();
+ foreach(var tool in new IRevitTool[]{list,algorithm,run,sum})
+ {
+ Check(!tool.RequiresTransaction,tool.Name+" transaction contract");
+ Check(!tool.RequiresCodeExecutionOptIn,tool.Name+" fixed native adapter");
+ var schema=JsonSerializer.SerializeToElement(tool.InputSchema);
+ Check(schema.GetProperty("type").GetString()=="object",tool.Name+" real MCP object schema");
+ }
+ var catalog=Call(list,"{\"module\":\"mprSumParameters\"}",app);
+ Check(catalog.GetProperty("modules")[0].GetProperty("installed")[0].GetProperty("className").GetString()=="mprSumParameters.Command","nested ribbon matching");
+ for(int offset=0;offset<86;offset+=10)
+ {
+ var result=list.Execute(Args("{\"offset\":"+offset+"}"),app);
+ Check(result.Length<40000,"catalog pages stay below transport cap");
+ }
+ var metadata=Call(algorithm,"{\"module\":\"mprSumParameters\",\"class_query\":\"Services\",\"method_query\":\"GetSelectElements\"}",app);
+ Check(!metadata.GetProperty("source_available").GetBoolean(),"metadata without local source");
+ Check(metadata.GetProperty("algorithmClasses")[0].GetProperty("methods")[0].GetProperty("name").GetString()=="GetSelectElements","public service mapping");
+ Directory.CreateDirectory(Path.Combine(data,"source"));
+ File.WriteAllLines(Path.Combine(data,"source","mprSumParameters_2027.decompiled.cs"),["// fixture one","// fixture two","// fixture three"]);
+ var excerpt=Call(algorithm,"{\"module\":\"mprSumParameters\",\"start_line\":2,\"line_count\":1}",app);
+ Check(excerpt.GetProperty("source").GetString()=="2: // fixture two","local source paging");
+ Reject(()=>algorithm.Execute(Args("{\"module\":\"../outside\"}"),app),"unknown module");
+ Reject(()=>algorithm.Execute(Args("{\"module\":\"mprSumParameters\",\"execute\":true}"),app),"executable argument");
+ Reject(()=>algorithm.Execute(Args("{\"module\":\"mprSumParameters\",\"line_count\":301}"),app),"source range");
+ var preview=Call(run,"{\"command\":\"mprSumParameters.Command\",\"element_ids\":[2]}",app);
+ Check(preview.GetProperty("preview").GetBoolean()&&!preview.GetProperty("posted").GetBoolean()&&app.Posted.Count==0,"preview never posts");
+ Check(app.ActiveUIDocument!.Selection.GetElementIds().Single().Value==1,"preview preserves selection");
+ Reject(()=>run.Execute(Args("{\"command\":\"mprSumParameters.Command\",\"command_id\":\"CustomCtrl_%CustomCtrl_%BIM-STARTER%Utilities%Sum\"}"),app),"foreign command ID");
+ Reject(()=>run.Execute(Args("{\"command\":\"mprSumParameters.Command\",\"element_ids\":[999]}"),app),"missing selection ID");
+ ToolDispatcher.ForceSuppress=true;
+ Reject(()=>run.Execute(Args("{\"command\":\"mprSumParameters.Command\",\"preview\":false}"),app),"unattended posting");
+ ToolDispatcher.ForceSuppress=false;
+ ToolContext.Bound=new UIDocument();
+ Reject(()=>run.Execute(Args("{\"command\":\"mprSumParameters.Command\"}"),app),"another document");
+ Reject(()=>sum.Execute(Args("{}"),app),"sum in another document");
+ ToolContext.Bound=null;
+ app.Application.VersionNumber="2026";
+ Reject(()=>sum.Execute(Args("{}"),app),"unsupported Revit execution");
+ Check(Call(list,"{}",app).GetProperty("currentRevit").GetString()=="2026","cross-version catalog inspection");
+ app.Application.VersionNumber="2027";
+ Reject(()=>sum.Execute(Args("{}"),app),"unloaded module");
+ app.FailPost=true;
+ try { run.Execute(Args("{\"command\":\"mprSumParameters.Command\",\"element_ids\":[2],\"preview\":false}"),app); throw new Exception("Expected posting failure."); }
+ catch(InvalidOperationException){ Check(app.ActiveUIDocument.Selection.GetElementIds().Single().Value==1,"failed posting restores selection"); }
+ app.FailPost=false;
+ var posted=Call(run,"{\"command\":\"mprSumParameters.Command\",\"element_ids\":[2],\"preview\":false}",app);
+ Check(posted.GetProperty("posted").GetBoolean()&&!posted.GetProperty("completed").GetBoolean()&&app.Posted.Count==1,"posted is not completed");
+ Check(app.ActiveUIDocument.Selection.GetElementIds().Single().Value==2,"selection passed to posted command");
+ Console.WriteLine(JsonSerializer.Serialize(new { checks, status="passed", nativeRevitExecution="not tested", scope="production tools with isolated Revit contracts and real Anthropic schemas" }));
+}
+finally { Environment.SetEnvironmentVariable("CLAUDEREVIT_MODPLUS_DATA",previous); ToolContext.Bound=null; ToolDispatcher.ForceSuppress=false; if(Directory.Exists(data))Directory.Delete(data,true); }
diff --git a/ClaudeRevit.Tests/ClaudeRevit.Tests.csproj b/ClaudeRevit.Tests/ClaudeRevit.Tests.csproj
index e16dcc0..24a2483 100644
--- a/ClaudeRevit.Tests/ClaudeRevit.Tests.csproj
+++ b/ClaudeRevit.Tests/ClaudeRevit.Tests.csproj
@@ -48,6 +48,9 @@
+
+
+
diff --git a/ClaudeRevit.Tests/ModPlusTests.cs b/ClaudeRevit.Tests/ModPlusTests.cs
new file mode 100644
index 0000000..471370b
--- /dev/null
+++ b/ClaudeRevit.Tests/ModPlusTests.cs
@@ -0,0 +1,128 @@
+using System.Text.Json;
+using ClaudeRevit.Services;
+using Xunit;
+
+namespace ClaudeRevit.Tests;
+
+public class ModPlusTests
+{
+ private static JsonElement Catalog()
+ {
+ var root = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..", "..", "..", ".."));
+ return ModPlusCatalog.Parse(File.ReadAllText(Path.Combine(root, "ClaudeRevit", "Standards", "ModPlus2027.json")));
+ }
+ [Fact]
+ public void SnapshotIncludesEveryMappedModuleAndKeepsUnavailableVersionsExplicit()
+ {
+ var catalog = Catalog();
+ var modules = catalog.GetProperty("modules").EnumerateArray().ToArray();
+ Assert.Equal(86, modules.Length);
+ Assert.Equal(84, modules.Count(m => m.GetProperty("available2027").GetBoolean()));
+ Assert.Equal(215, modules.Sum(m => m.GetProperty("externalCommands").GetArrayLength()));
+ Assert.False(ModPlusCatalog.Module(catalog, "mprCopyParameterValues").GetProperty("available2027").GetBoolean());
+ var sum = ModPlusCatalog.Module(catalog, "mprSumParameters");
+ Assert.Equal("2e58211f115267ae5bc629c4bf9669ec9dccb0879c0f04100d6830250fe3ebfd", sum.GetProperty("sha256").GetString());
+ Assert.Contains(sum.GetProperty("algorithmClasses").EnumerateArray(), c => c.GetProperty("class").GetString() == "mprSumParameters.Services");
+ }
+ [Theory]
+ [InlineData("сумма параметров", "mprSumParameters")]
+ [InlineData("mprsumparameters", "mprSumParameters")]
+ [InlineData("армирование балок", "mprBeamsReinforcement")]
+ public void SearchFindsRussianTitlesAndModuleIds(string query, string expected) =>
+ Assert.Contains(ModPlusCatalog.Search(Catalog(), query), m => m.GetProperty("module").GetString() == expected);
+ [Fact]
+ public void UnknownModuleCannotTurnIntoAFilePath() => Assert.Throws(() => ModPlusCatalog.Module(Catalog(), "../outside"));
+ [Theory]
+ [InlineData("../secret.cs")]
+ [InlineData("source/../secret.cs")]
+ [InlineData("source\\..\\secret.cs")]
+ [InlineData("C:\\secret.cs")]
+ [InlineData("source/file.cs:stream")]
+ [InlineData("source/file.dll")]
+ public void SourcePathsCannotEscapeTheLocalBundle(string relative) =>
+ Assert.Throws(() => ModPlusCatalog.SourcePath(Path.GetTempPath(), relative));
+ [Fact]
+ public void SourceExcerptHasExactLineNumbersAndBoundedSize()
+ {
+ var file = Path.Combine(Path.GetTempPath(), Guid.NewGuid() + ".cs");
+ try
+ {
+ File.WriteAllLines(file, ["one", "two", new string('x', 30000)]);
+ Assert.Equal("2: two", ModPlusCatalog.Excerpt(file, 2, 1));
+ Assert.True(ModPlusCatalog.Excerpt(file, 3, 1).Length < 12100);
+ Assert.Throws(() => ModPlusCatalog.Excerpt(file, 4, 1));
+ Assert.Throws(() => ModPlusCatalog.Excerpt(file, 0, 1));
+ Assert.Throws(() => ModPlusCatalog.Excerpt(file, 1, 301));
+ }
+ finally { File.Delete(file); }
+ }
+ [Fact]
+ public void WrongCatalogVersionAndDuplicateModulesAreRejected()
+ {
+ var root = System.Text.Json.Nodes.JsonNode.Parse(Catalog().GetRawText())!;
+ root["targetRevit"] = 2026;
+ Assert.Throws(() => ModPlusCatalog.Parse(root.ToJsonString()));
+ root["targetRevit"] = 2027;
+ root["modules"]!.AsArray().Add(root["modules"]![0]!.DeepClone());
+ Assert.Throws(() => ModPlusCatalog.Parse(root.ToJsonString()));
+ }
+ [Fact]
+ public void CommandIdMustMatchTheActualTabPanelAndButton()
+ {
+ var id = ModPlusCatalog.CommandId("Utilities", "Sum");
+ Assert.True(ModPlusCatalog.MatchesCommandId(id, "Utilities", "Sum"));
+ Assert.False(ModPlusCatalog.MatchesCommandId(id, "Other", "Sum"));
+ Assert.False(ModPlusCatalog.MatchesCommandId(id.Replace("ModPlus", "BIM-STARTER"), "Utilities", "Sum"));
+ }
+ [Fact]
+ public void OnlyTheExactPreparedExtensionIsSuperseded()
+ {
+ const string legacy = "f3ce15434c9a20fbecbda059f6800345e0c52d329245fba1b7a5ff101ce64edb";
+ Assert.True(ModPlusCatalog.IsPreparedExtension("ModPlusTools.cs", legacy.ToUpperInvariant()));
+ Assert.False(ModPlusCatalog.IsPreparedExtension("EditedModPlus.cs", legacy));
+ Assert.False(ModPlusCatalog.IsPreparedExtension("ModPlusTools.cs", new string('0', 64)));
+ }
+ public sealed class Item
+ {
+ public string Name { get; init; } = "Length";
+ public string StorageType => "Double";
+ public bool IsText { get; init; }
+ public string Unit => "m";
+ public string DisplayValue { get; init; } = "";
+ public double SumRoundedValue { get; init; }
+ }
+ [Fact]
+ public void ServiceRowsKeepRawTotalsAndApplyRoundingAfterTheCoefficient()
+ {
+ var page = ModPlusTotals.Read(new[] { new Item { SumRoundedValue = 1.23456 }, new Item { Name = "Mark", IsText = true, DisplayValue = "A, B" } }, "", 0, 25, 3, 2);
+ Assert.Equal(1.23456, page.Rows[0].Sum);
+ Assert.Equal(1.235, page.Rows[0].Rounded);
+ Assert.Equal(2.469, page.Rows[0].ScaledRounded);
+ Assert.Equal("1.23456", page.Rows[0].SumExact);
+ Assert.Equal("1.235", page.Rows[0].RoundedExact);
+ Assert.Equal("2.469", page.Rows[0].ScaledRoundedExact);
+ Assert.Null(page.Rows[1].Sum);
+ Assert.Equal("A, B", page.Rows[1].DisplayValue);
+ Assert.Null(page.NextOffset);
+ }
+ [Fact]
+ public void FilteredPagingCountsAllMatchesAndBoundsModelText()
+ {
+ var items = Enumerable.Range(0, 5).Select(i => new Item { Name = i == 0 ? "Mark" : "Length " + i, DisplayValue = new string('x', 10000) }).ToArray();
+ var page = ModPlusTotals.Read(items, "length", 1, 2, 3, 1);
+ Assert.Equal(4, page.Total);
+ Assert.Equal(3, page.NextOffset);
+ Assert.Equal("Length 2", page.Rows[0].Name);
+ Assert.All(page.Rows, r => { Assert.True(r.TextTruncated); Assert.True(r.DisplayValue.Length <= 257); });
+ }
+ [Fact]
+ public void ChangedServiceContractNonfiniteResultsAndCancellationDoNotBecomeSuccess()
+ {
+ Assert.Throws(() => ModPlusTotals.Read(new[] { new object() }, "", 0, 25, 3, 1));
+ Assert.Throws(() => ModPlusTotals.Read(new[] { new Item { SumRoundedValue = double.NaN } }, "", 0, 25, 3, 1));
+ Assert.Throws(() => ModPlusTotals.Read(Array.Empty- (), "", 0, 25, 3, double.PositiveInfinity));
+ Assert.Throws(() => ModPlusTotals.Read(new[] { new Item() }, "", 0, 25, 3, 1, () => throw new OperationCanceledException()));
+ }
+ [Fact]
+ public void RussianModPlusRequestsPrewarmItsDeferredGroup() => Assert.Contains("ModPlus", ToolSearchLogic.Prewarm("Модплюс: сумма параметров"));
+}
diff --git a/ClaudeRevit.sln b/ClaudeRevit.sln
index 09f2f0a..6cc6c99 100644
--- a/ClaudeRevit.sln
+++ b/ClaudeRevit.sln
@@ -1,20 +1,46 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClaudeRevit", "ClaudeRevit\ClaudeRevit.csproj", "{D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClaudeRevit.ModPlusTests", "ClaudeRevit.ModPlusTests\ClaudeRevit.ModPlusTests.csproj", "{BB623D61-F7C0-4CBE-8680-534517EEC8E6}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}.Debug|x64.Build.0 = Debug|Any CPU
+ {D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}.Debug|x86.Build.0 = Debug|Any CPU
{D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}.Release|x64.ActiveCfg = Release|Any CPU
+ {D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}.Release|x64.Build.0 = Release|Any CPU
+ {D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}.Release|x86.ActiveCfg = Release|Any CPU
+ {D8E4F2A6-9C7B-4E15-8A3D-2F6B5C8E1A4D}.Release|x86.Build.0 = Release|Any CPU
+ {BB623D61-F7C0-4CBE-8680-534517EEC8E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BB623D61-F7C0-4CBE-8680-534517EEC8E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BB623D61-F7C0-4CBE-8680-534517EEC8E6}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {BB623D61-F7C0-4CBE-8680-534517EEC8E6}.Debug|x64.Build.0 = Debug|Any CPU
+ {BB623D61-F7C0-4CBE-8680-534517EEC8E6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {BB623D61-F7C0-4CBE-8680-534517EEC8E6}.Debug|x86.Build.0 = Debug|Any CPU
+ {BB623D61-F7C0-4CBE-8680-534517EEC8E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BB623D61-F7C0-4CBE-8680-534517EEC8E6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BB623D61-F7C0-4CBE-8680-534517EEC8E6}.Release|x64.ActiveCfg = Release|Any CPU
+ {BB623D61-F7C0-4CBE-8680-534517EEC8E6}.Release|x64.Build.0 = Release|Any CPU
+ {BB623D61-F7C0-4CBE-8680-534517EEC8E6}.Release|x86.ActiveCfg = Release|Any CPU
+ {BB623D61-F7C0-4CBE-8680-534517EEC8E6}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/ClaudeRevit/App.cs b/ClaudeRevit/App.cs
index 52b7a7d..77fe926 100644
--- a/ClaudeRevit/App.cs
+++ b/ClaudeRevit/App.cs
@@ -315,6 +315,10 @@ public Result OnStartup(UIControlledApplication application)
ToolRegistry.Instance.Register(new SnapshotModel());
ToolRegistry.Instance.Register(new CompareModelVersions());
ToolRegistry.Instance.Register(new CheckModelPackage());
+ ToolRegistry.Instance.Register(new GetModPlusTools());
+ ToolRegistry.Instance.Register(new GetModPlusAlgorithm());
+ ToolRegistry.Instance.Register(new ModPlusSumParameters());
+ ToolRegistry.Instance.Register(new RunModPlusCommand());
ToolDispatcher.Initialize(ToolRegistry.Instance);
// Self-extension: load persistent custom tools written to %AppData%\ClaudeRevit\
diff --git a/ClaudeRevit/ClaudeRevit.csproj b/ClaudeRevit/ClaudeRevit.csproj
index db85572..7384cb7 100644
--- a/ClaudeRevit/ClaudeRevit.csproj
+++ b/ClaudeRevit/ClaudeRevit.csproj
@@ -59,6 +59,7 @@
+
diff --git a/ClaudeRevit/Services/ModPlusCatalog.cs b/ClaudeRevit/Services/ModPlusCatalog.cs
new file mode 100644
index 0000000..9338314
--- /dev/null
+++ b/ClaudeRevit/Services/ModPlusCatalog.cs
@@ -0,0 +1,101 @@
+using System.IO;
+using System.Reflection;
+using System.Text.Json;
+
+namespace ClaudeRevit.Services;
+
+// Metadata ships with ClaudeRevit; decompiled sources stay in the user's local analysis bundle.
+// Nothing in this catalog is compiled, loaded as an assembly, or used as an executable argument.
+public static class ModPlusCatalog
+{
+ private static readonly Lazy Bundled = new(() =>
+ {
+ using var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ClaudeRevit.Standards.ModPlus2027.json")
+ ?? throw new InvalidOperationException("Bundled ModPlus catalog is missing.");
+ using var reader = new StreamReader(stream);
+ return Parse(reader.ReadToEnd());
+ });
+ private static readonly object Gate = new();
+ private static string? _cachedFile;
+ private static DateTime _cachedWrite;
+ private static long _cachedLength;
+ private static JsonElement _cached;
+
+ public static string DataDirectory => Path.GetFullPath(
+ Environment.GetEnvironmentVariable("CLAUDEREVIT_MODPLUS_DATA") ?? Path.Combine(
+ Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "ClaudeRevit", "tools", "modplus-revit-2027"));
+
+ public static JsonElement Source
+ {
+ get
+ {
+ var file = new FileInfo(Path.Combine(DataDirectory, "catalog.json"));
+ if (!file.Exists) return Bundled.Value;
+ lock (Gate)
+ {
+ if (_cachedFile == file.FullName && _cachedWrite == file.LastWriteTimeUtc && _cachedLength == file.Length) return _cached;
+ if (file.Length > 8_000_000) throw new InvalidDataException("ModPlus catalog exceeds 8 MB.");
+ var parsed = Parse(File.ReadAllText(file.FullName));
+ _cached = parsed; _cachedFile = file.FullName; _cachedWrite = file.LastWriteTimeUtc; _cachedLength = file.Length;
+ return parsed;
+ }
+ }
+ }
+
+ public static JsonElement Parse(string json)
+ {
+ using var doc = JsonDocument.Parse(json);
+ var root = doc.RootElement;
+ if (root.GetProperty("schemaVersion").GetInt32() != 1 || root.GetProperty("targetRevit").GetInt32() != 2027)
+ throw new InvalidDataException("Expected ModPlus catalog schema 1 for Revit 2027.");
+ var names = new HashSet(StringComparer.Ordinal);
+ foreach (var module in root.GetProperty("modules").EnumerateArray())
+ {
+ var name = module.GetProperty("module").GetString();
+ if (string.IsNullOrWhiteSpace(name) || !names.Add(name)) throw new InvalidDataException("ModPlus module IDs must be unique and nonempty.");
+ if (!module.GetProperty("available2027").GetBoolean()) continue;
+ var hash = module.GetProperty("sha256").GetString();
+ if (hash?.Length != 64 || !hash.All(Uri.IsHexDigit)) throw new InvalidDataException($"Invalid module SHA-256: {name}.");
+ SourcePath(Path.Combine(Path.GetTempPath(), "ClaudeRevit-ModPlus-validation"), module.GetProperty("source").GetString() ?? "");
+ }
+ return root.Clone();
+ }
+
+ public static JsonElement Module(JsonElement catalog, string id) =>
+ catalog.GetProperty("modules").EnumerateArray().FirstOrDefault(m => m.GetProperty("module").GetString() == id) is { ValueKind: JsonValueKind.Object } found
+ ? found : throw new ArgumentException($"Unknown ModPlus module '{id}'. Use get_modplus_tools for exact IDs.");
+
+ public static JsonElement[] Search(JsonElement catalog, string query) => catalog.GetProperty("modules").EnumerateArray()
+ .Where(m => query.Length == 0 || new[] { "module", "title", "description", "groups" }
+ .Any(key => m.TryGetProperty(key, out var v) && v.ToString().Contains(query, StringComparison.OrdinalIgnoreCase))).ToArray();
+
+ public static string SourcePath(string root, string relative)
+ {
+ // Portable checks before Path.GetFullPath: reject both Windows and Unix traversal syntax.
+ var parts = relative.Replace('\\', '/').Split('/');
+ if (parts.Length != 2 || parts[0] != "source" || parts.Any(p => p is "" or "." or ".." || p.Contains(':')) || !parts[1].EndsWith(".cs", StringComparison.OrdinalIgnoreCase))
+ throw new InvalidDataException("Invalid source path in ModPlus catalog.");
+ return Path.GetFullPath(Path.Combine(root, "source", parts[1]));
+ }
+
+ public static string Excerpt(string file, int start, int count, int maxChars = 12_000)
+ {
+ if (start < 1 || count is < 1 or > 300) throw new ArgumentException("Source range: start_line >= 1, line_count 1..300.");
+ var info = new FileInfo(file);
+ if (!info.Exists) throw new FileNotFoundException("Install the local ModPlus analysis bundle to read this source. Catalog metadata is available without it.", file);
+ if (info.Length > 20_000_000) throw new InvalidDataException("Source file exceeds 20 MB.");
+ var lines = File.ReadLines(file).Skip(start - 1).Take(count).ToArray();
+ if (lines.Length == 0) throw new ArgumentException("start_line exceeds the source line count.");
+ var text = string.Join("\n", lines.Select((line, i) => $"{start + i}: {line}"));
+ return text.Length <= maxChars ? text : text[..maxChars] + "\n… narrow the requested range";
+ }
+
+ public static string CommandId(string panel, string button) => $"CustomCtrl_%CustomCtrl_%ModPlus%{panel}%{button}";
+ public static bool MatchesCommandId(string id, string panel, string button) => id == CommandId(panel, button);
+
+ // Supersede only the unchanged extension from the supplied archive. Edited overrides keep
+ // their normal user-defined-tool behavior and the code-execution switch.
+ public static bool IsPreparedExtension(string filename, string sha256) =>
+ filename.Equals("ModPlusTools.cs", StringComparison.OrdinalIgnoreCase) &&
+ sha256.Equals("f3ce15434c9a20fbecbda059f6800345e0c52d329245fba1b7a5ff101ce64edb", StringComparison.OrdinalIgnoreCase);
+}
diff --git a/ClaudeRevit/Services/ModPlusTotals.cs b/ClaudeRevit/Services/ModPlusTotals.cs
new file mode 100644
index 0000000..fb01531
--- /dev/null
+++ b/ClaudeRevit/Services/ModPlusTotals.cs
@@ -0,0 +1,46 @@
+using System.Collections;
+using System.Globalization;
+using System.Reflection;
+
+namespace ClaudeRevit.Services;
+
+// Reads the fixed public DTO returned by the inspected ModPlus service. No user-selected type,
+// method, DLL path or executable source is accepted. Archive I/O and Revit context stay outside.
+public static class ModPlusTotals
+{
+ public sealed record Row(string Name, string StorageType, bool IsText, string Unit, string DisplayValue,
+ double? Sum, double? Rounded, double? ScaledRounded, string? SumExact, string? RoundedExact, string? ScaledRoundedExact, bool TextTruncated);
+ public sealed record Page(int Total, int Offset, List
Rows, int? NextOffset);
+
+ public static Page Read(IEnumerable items, string query, int offset, int limit, int precision, double coefficient, Action? checkCancelled = null)
+ {
+ if (offset < 0 || limit is < 1 or > 50 || precision is < 0 or > 15 || !double.IsFinite(coefficient))
+ throw new ArgumentException("Totals require offset >= 0, limit 1..50, precision 0..15 and a finite coefficient.");
+ var rows = new List(); var matching = 0;
+ foreach (var item in items)
+ {
+ checkCancelled?.Invoke();
+ if (item == null) throw new InvalidOperationException("ModPlus returned a null parameter row.");
+ object? Read(string name) => (item.GetType().GetProperty(name, BindingFlags.Instance | BindingFlags.Public)
+ ?? throw new InvalidOperationException($"ModPlus DTO contract changed: missing {name}.")).GetValue(item);
+ var name = Convert.ToString(Read("Name"), CultureInfo.InvariantCulture) ?? "";
+ if (!name.Contains(query, StringComparison.OrdinalIgnoreCase)) continue;
+ var position = matching++;
+ if (position < offset || rows.Count >= limit) continue;
+ var text = Convert.ToBoolean(Read("IsText"), CultureInfo.InvariantCulture);
+ double? sum = text ? null : Convert.ToDouble(Read("SumRoundedValue"), CultureInfo.InvariantCulture);
+ if (sum is { } value && (!double.IsFinite(value) || !double.IsFinite(value * coefficient)))
+ throw new InvalidOperationException("Non-finite parameter total: " + name);
+ var display = Convert.ToString(Read("DisplayValue"), CultureInfo.InvariantCulture) ?? "";
+ var unit = Convert.ToString(Read("Unit"), CultureInfo.InvariantCulture) ?? "";
+ var storage = Convert.ToString(Read("StorageType"), CultureInfo.InvariantCulture) ?? "";
+ string Bound(string s, int n) => s.Length <= n ? s : s[..n] + "…";
+ var rounded = sum.HasValue ? (double?)Math.Round(sum.Value, precision) : null;
+ var scaled = sum.HasValue ? (double?)Math.Round(sum.Value * coefficient, precision) : null;
+ rows.Add(new(Bound(name, 160), Bound(storage, 40), text, Bound(unit, 160), Bound(display, 256), sum,
+ rounded, scaled, sum?.ToString("R", CultureInfo.InvariantCulture), rounded?.ToString("R", CultureInfo.InvariantCulture), scaled?.ToString("R", CultureInfo.InvariantCulture),
+ name.Length > 160 || display.Length > 256 || unit.Length > 160 || storage.Length > 40));
+ }
+ return new(matching, offset, rows, offset + rows.Count < matching ? offset + rows.Count : null);
+ }
+}
diff --git a/ClaudeRevit/Services/ToolSearchLogic.cs b/ClaudeRevit/Services/ToolSearchLogic.cs
index c39f9a1..bcd31ea 100644
--- a/ClaudeRevit/Services/ToolSearchLogic.cs
+++ b/ClaudeRevit/Services/ToolSearchLogic.cs
@@ -43,6 +43,7 @@ public sealed record SearchResult(List Categories, string Message);
// message, so the common cases ("добавь арматуру", "make a section") skip the find_tools round.
private static readonly (string Category, string[] Keys)[] GroupKeywords =
{
+ ("ModPlus", new[] { "modplus", "mod plus", "модплюс", "мод плюс", "mprsumparameters", "сумма параметров" }),
("Rebar", new[] { "rebar", "reinforc", "stirrup", "арматур", "армир", "хомут", "стержн", "сетк", "fabric", "mesh", "ведомость детал", "bending" }),
("MEP", new[] { "duct", "pipe", "hvac", "воздуховод", "труб", "инженерн" }),
("Schedules", new[] { "schedule", "quantit", "специфик", "ведомост", "расписан", "таблиц" }),
diff --git a/ClaudeRevit/Standards/ModPlus2027.json b/ClaudeRevit/Standards/ModPlus2027.json
new file mode 100644
index 0000000..dd91d75
--- /dev/null
+++ b/ClaudeRevit/Standards/ModPlus2027.json
@@ -0,0 +1,74506 @@
+{
+ "schemaVersion": 1,
+ "targetRevit": 2027,
+ "capturedAt": "2026-10-12T01:59:09.6308624+03:00",
+ "scope": "All locally installed Revit module folders. This catalog maps source, not completed headless ports.",
+ "revitApiVersion": "27.0.4.412",
+ "decompiler": "ILSpyCmd 11.1.0.9782",
+ "analysisLimits": [
+ "Dependency markers and service candidates are static heuristics, not proof of a safe headless entrypoint.",
+ "Decompiler source is for analysis and is not guaranteed to build unchanged.",
+ "Only the sum-parameters read-only adapter is prepared; all runtime execution remains unverified."
+ ],
+ "summary": {
+ "folders": 86,
+ "available2027": 84,
+ "declaredExternalCommands": 215,
+ "types": 7019,
+ "methods": 47735,
+ "candidateClasses": 802,
+ "modulesWithInteractiveSelection": 44,
+ "modulesWithTransactions": 77
+ },
+ "modules": [
+ {
+ "module": "mprAlignViews",
+ "title": "Выравнивание видов",
+ "description": "Выравнивание видов по листам проекта",
+ "groups": [
+ "Оформление"
+ ],
+ "available2027": true,
+ "installedVersions": [
+ "2020",
+ "2024",
+ "2026",
+ "2027"
+ ],
+ "subcommands": [
+ {
+ "index": "1",
+ "title": "Выравнивание видов",
+ "description": "Выравнивание видов по листам проекта"
+ },
+ {
+ "index": "2",
+ "title": "Выравнивание основных надписей",
+ "description": "Установка основной надписи на листе в координату (0,0)"
+ },
+ {
+ "index": "3",
+ "title": "Выравнивание заголовков",
+ "description": "Выравнивание заголовков видов"
+ }
+ ],
+ "assembly": "mprAlignViews_2027",
+ "fileVersion": "2.0.0.0",
+ "sha256": "09f27f623d3a76c4eb70ca520a7e13c08b2540e7e61c73430aa69397829798c3",
+ "decompiler": "ILSpyCmd 11.1.0.9782",
+ "framework": [
+ ".NETCoreApp,Version=v10.0"
+ ],
+ "source": "source/mprAlignViews_2027.decompiled.cs",
+ "sourceLines": 1810,
+ "references": [
+ {
+ "name": "System.Runtime",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "WindowsBase",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "RevitAPI",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "RevitAPIUI",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "System.Collections",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "PresentationCore",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "ModPlusAPI",
+ "version": "1.0.0.0"
+ },
+ {
+ "name": "ModPlus_Revit_2027",
+ "version": "11.0.0.0"
+ },
+ {
+ "name": "System.Linq",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.ObjectModel",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "ModPlusStyle",
+ "version": "1.0.0.0"
+ },
+ {
+ "name": "System.Xaml",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "PresentationFramework",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Runtime.InteropServices",
+ "version": "10.0.0.0"
+ }
+ ],
+ "typeCount": 40,
+ "methodCount": 217,
+ "externalCommands": [
+ {
+ "class": "mprAlignViews.LabelCommand",
+ "sourceLines": [
+ 88
+ ],
+ "registration": "declared IExternalCommand; use live ribbon to verify availability"
+ },
+ {
+ "class": "mprAlignViews.TitleBlockCommand",
+ "sourceLines": [
+ 240
+ ],
+ "registration": "declared IExternalCommand; use live ribbon to verify availability"
+ },
+ {
+ "class": "mprAlignViews.ViewCommand",
+ "sourceLines": [
+ 285
+ ],
+ "registration": "declared IExternalCommand; use live ribbon to verify availability"
+ }
+ ],
+ "connectorMainCommands": [],
+ "connectorSubCommands": [],
+ "connectorButtonNames": [],
+ "algorithmClasses": [
+ {
+ "class": "mprAlignViews.LabelCommand",
+ "kind": "algorithm_in_command",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "commandData",
+ "message",
+ "elements"
+ ],
+ "declarations": [
+ {
+ "line": 90,
+ "signature": "public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprAlignViews.TitleBlockCommand",
+ "kind": "algorithm_in_command",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "commandData",
+ "message",
+ "elements"
+ ],
+ "declarations": [
+ {
+ "line": 242,
+ "signature": "public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprAlignViews.ViewCommand",
+ "kind": "algorithm_in_command",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "commandData",
+ "message",
+ "elements"
+ ],
+ "declarations": [
+ {
+ "line": 287,
+ "signature": "public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "dependencyMarkers": {
+ "interactiveSelection": [
+ "PickObject"
+ ],
+ "usesCurrentSelection": true,
+ "dialogs": [
+ "ShowModal"
+ ],
+ "transactionTypes": [
+ "Autodesk.Revit.DB.Transaction"
+ ],
+ "modplusGlobalContext": true,
+ "externalEvents": false,
+ "fileOperations": []
+ },
+ "decompilerWarnings": {},
+ "sourceSyntaxErrors": 0,
+ "adapterStatus": "source_and_entrypoints_mapped_adapter_required",
+ "runtimeVerified": false
+ },
+ {
+ "module": "mprApartmentBuildingLayout",
+ "title": "Квартирография",
+ "description": "Комплексное выполнение квартирографии",
+ "groups": [
+ "Архитектура"
+ ],
+ "available2027": true,
+ "installedVersions": [
+ "2020",
+ "2024",
+ "2026",
+ "2027"
+ ],
+ "subcommands": [
+ {
+ "index": "1",
+ "title": "Авто расчет",
+ "description": "Автоматический пересчет площадей квартиры при изменении размеров помещений"
+ }
+ ],
+ "assembly": "mprApartmentBuildingLayout_2027",
+ "fileVersion": "4.1.15.0",
+ "sha256": "4227cd0e41cbd1f929b391250e61a4d082caf8c0de6223c0f073e3086ec882a0",
+ "decompiler": "ILSpyCmd 11.1.0.9782",
+ "framework": [
+ ".NETCoreApp,Version=v10.0"
+ ],
+ "source": "source/mprApartmentBuildingLayout_2027.decompiled.cs",
+ "sourceLines": 16828,
+ "references": [
+ {
+ "name": "System.Runtime",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "WindowsBase",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "ModPlus_Revit_2027",
+ "version": "11.0.0.0"
+ },
+ {
+ "name": "System.Collections",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "RevitAPIUI",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "RevitAPI",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "System.Xml.XDocument",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "ModPlusAPI",
+ "version": "1.0.0.0"
+ },
+ {
+ "name": "ModPlusStyle",
+ "version": "1.0.0.0"
+ },
+ {
+ "name": "System.Xaml",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "PresentationFramework",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "PresentationCore",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.ObjectModel",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Text.RegularExpressions",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "ModPlus.Xaml.Behaviors.Wpf",
+ "version": "1.1.39.0"
+ },
+ {
+ "name": "System.Linq",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.ComponentModel.TypeConverter",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "AdWindows",
+ "version": "5.2.0.2"
+ },
+ {
+ "name": "System.Data.Common",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Xml.ReaderWriter",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Xml.XmlSerializer",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "RevitAPIIFC",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "System.Runtime.InteropServices",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Windows.Extensions",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "ModPlus.Newtonsoft.Json",
+ "version": "11.0.0.0"
+ },
+ {
+ "name": "System.Threading",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Memory",
+ "version": "10.0.0.0"
+ }
+ ],
+ "typeCount": 365,
+ "methodCount": 2476,
+ "externalCommands": [
+ {
+ "class": "mprApartmentBuildingLayout.AutoCalculationCommand",
+ "sourceLines": [
+ 475
+ ],
+ "registration": "declared IExternalCommand; use live ribbon to verify availability"
+ },
+ {
+ "class": "mprApartmentBuildingLayout.CheckRoundCommand",
+ "sourceLines": [
+ 502
+ ],
+ "registration": "declared IExternalCommand; use live ribbon to verify availability"
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Command",
+ "sourceLines": [
+ 632
+ ],
+ "registration": "declared IExternalCommand; use live ribbon to verify availability"
+ },
+ {
+ "class": "mprApartmentBuildingLayout.MigrateUserDataCommand",
+ "sourceLines": [
+ 692
+ ],
+ "registration": "declared IExternalCommand; use live ribbon to verify availability"
+ }
+ ],
+ "connectorMainCommands": [
+ "mprApartmentBuildingLayout.Command"
+ ],
+ "connectorSubCommands": [],
+ "connectorButtonNames": [],
+ "algorithmClasses": [
+ {
+ "class": "mprApartmentBuildingLayout.AutoCalculationCommand",
+ "kind": "algorithm_in_command",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "commandData",
+ "message",
+ "elements"
+ ],
+ "declarations": [
+ {
+ "line": 477,
+ "signature": "public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.CheckRoundCommand",
+ "kind": "algorithm_in_command",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "commandData",
+ "message",
+ "elements"
+ ],
+ "declarations": [
+ {
+ "line": 504,
+ "signature": "public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)"
+ }
+ ]
+ },
+ {
+ "name": "PrintRoomCalculation",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "uiDocument"
+ ],
+ "declarations": [
+ {
+ "line": 510,
+ "signature": "private void PrintRoomCalculation(UIDocument uiDocument)"
+ }
+ ]
+ },
+ {
+ "name": "CheckRound",
+ "attributes": "Private, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 607,
+ "signature": "private void CheckRound()"
+ }
+ ]
+ },
+ {
+ "name": "PrintRounded",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "number",
+ "roundType",
+ "mustBe"
+ ],
+ "declarations": [
+ {
+ "line": 621,
+ "signature": "private string PrintRounded(double number, RoundType roundType, double mustBe)"
+ }
+ ]
+ },
+ {
+ "name": "ChangeUnits",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "uiDoc"
+ ],
+ "declarations": [
+ {
+ "line": 626,
+ "signature": "private void ChangeUnits(UIDocument uiDoc)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Command",
+ "kind": "algorithm_in_command",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "commandData",
+ "message",
+ "elements"
+ ],
+ "declarations": [
+ {
+ "line": 636,
+ "signature": "public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.MigrateUserDataCommand",
+ "kind": "algorithm_in_command",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "commandData",
+ "message",
+ "elements"
+ ],
+ "declarations": [
+ {
+ "line": 694,
+ "signature": "public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Utils.Constants",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetOptions",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "computeReference",
+ "includeNonVisibleObjects"
+ ],
+ "declarations": [
+ {
+ "line": 2973,
+ "signature": "public static Options GetOptions(bool computeReference, bool includeNonVisibleObjects)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Utils.CurveSelectionFilter",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "AllowElement",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "elem"
+ ],
+ "declarations": [
+ {
+ "line": 2984,
+ "signature": "public bool AllowElement(Element elem)"
+ }
+ ]
+ },
+ {
+ "name": "AllowReference",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "reference",
+ "position"
+ ],
+ "declarations": [
+ {
+ "line": 2993,
+ "signature": "public bool AllowReference(Autodesk.Revit.DB.Reference reference, XYZ position)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Utils.FlatGeometryUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetHelpLines",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "roomSeparator"
+ ],
+ "declarations": [
+ {
+ "line": 3000,
+ "signature": "public static IEnumerable GetHelpLines(RoomSeparatorWrapper roomSeparator)"
+ }
+ ]
+ },
+ {
+ "name": "IsIntersectCurve",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "room",
+ "curve",
+ "checkByClosedShell"
+ ],
+ "declarations": [
+ {
+ "line": 3013,
+ "signature": "public static bool IsIntersectCurve(RoomWrapper room, Curve curve, bool checkByClosedShell = false)"
+ }
+ ]
+ },
+ {
+ "name": "IsIntersect",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "room",
+ "opening"
+ ],
+ "declarations": [
+ {
+ "line": 3036,
+ "signature": "public static bool IsIntersect(RoomWrapper room, OpeningWrapper opening)"
+ }
+ ]
+ },
+ {
+ "name": "GetIntersectedLines",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "room",
+ "lines"
+ ],
+ "declarations": [
+ {
+ "line": 3048,
+ "signature": "public static IEnumerable GetIntersectedLines(RoomWrapper room, List lines)"
+ }
+ ]
+ },
+ {
+ "name": "IsIntersectAnyLine",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "room",
+ "lines"
+ ],
+ "declarations": [
+ {
+ "line": 3059,
+ "signature": "public static bool IsIntersectAnyLine(RoomWrapper room, IEnumerable lines)"
+ }
+ ]
+ },
+ {
+ "name": "GetGeometryGeneratingElementIds",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "hostObject",
+ "transform"
+ ],
+ "declarations": [
+ {
+ "line": 3071,
+ "signature": "public static IEnumerable GetGeometryGeneratingElementIds(HostObject hostObject, Autodesk.Revit.DB.Transform transform)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Utils.GeometryExtensions",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "PutTogetherCurveEnds",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "curves",
+ "tolerance"
+ ],
+ "declarations": [
+ {
+ "line": 3111,
+ "signature": "public static void PutTogetherCurveEnds(this List curves, double tolerance)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Utils.NumeratePickRoomSelectionFilter",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "AllowElement",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "elem"
+ ],
+ "declarations": [
+ {
+ "line": 3159,
+ "signature": "public bool AllowElement(Element elem)"
+ }
+ ]
+ },
+ {
+ "name": "AllowReference",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "reference",
+ "position"
+ ],
+ "declarations": [
+ {
+ "line": 3184,
+ "signature": "public bool AllowReference(Autodesk.Revit.DB.Reference reference, XYZ position)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Utils.ParameterExtensions",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetParameterValueString",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element",
+ "usedParameter"
+ ],
+ "declarations": [
+ {
+ "line": 3191,
+ "signature": "public static string GetParameterValueString(this Element element, UsedParameter usedParameter)"
+ },
+ {
+ "line": 3200,
+ "signature": "public static string GetParameterValueString(this Element element, ParameterKeyName keyName)"
+ },
+ {
+ "line": 3206,
+ "signature": "public static string GetParameterValueString(this Element element, string parameterName)"
+ },
+ {
+ "line": 3212,
+ "signature": "public static string GetParameterValueString(this Element element, BuiltInParameter builtInParameter)"
+ },
+ {
+ "line": 3289,
+ "signature": "private static string GetParameterValueString(Parameter parameter)"
+ }
+ ]
+ },
+ {
+ "name": "GetParameterValueString",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element",
+ "keyName"
+ ],
+ "declarations": [
+ {
+ "line": 3191,
+ "signature": "public static string GetParameterValueString(this Element element, UsedParameter usedParameter)"
+ },
+ {
+ "line": 3200,
+ "signature": "public static string GetParameterValueString(this Element element, ParameterKeyName keyName)"
+ },
+ {
+ "line": 3206,
+ "signature": "public static string GetParameterValueString(this Element element, string parameterName)"
+ },
+ {
+ "line": 3212,
+ "signature": "public static string GetParameterValueString(this Element element, BuiltInParameter builtInParameter)"
+ },
+ {
+ "line": 3289,
+ "signature": "private static string GetParameterValueString(Parameter parameter)"
+ }
+ ]
+ },
+ {
+ "name": "GetParameterValueString",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element",
+ "parameterName"
+ ],
+ "declarations": [
+ {
+ "line": 3191,
+ "signature": "public static string GetParameterValueString(this Element element, UsedParameter usedParameter)"
+ },
+ {
+ "line": 3200,
+ "signature": "public static string GetParameterValueString(this Element element, ParameterKeyName keyName)"
+ },
+ {
+ "line": 3206,
+ "signature": "public static string GetParameterValueString(this Element element, string parameterName)"
+ },
+ {
+ "line": 3212,
+ "signature": "public static string GetParameterValueString(this Element element, BuiltInParameter builtInParameter)"
+ },
+ {
+ "line": 3289,
+ "signature": "private static string GetParameterValueString(Parameter parameter)"
+ }
+ ]
+ },
+ {
+ "name": "GetParameterValueString",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element",
+ "builtInParameter"
+ ],
+ "declarations": [
+ {
+ "line": 3191,
+ "signature": "public static string GetParameterValueString(this Element element, UsedParameter usedParameter)"
+ },
+ {
+ "line": 3200,
+ "signature": "public static string GetParameterValueString(this Element element, ParameterKeyName keyName)"
+ },
+ {
+ "line": 3206,
+ "signature": "public static string GetParameterValueString(this Element element, string parameterName)"
+ },
+ {
+ "line": 3212,
+ "signature": "public static string GetParameterValueString(this Element element, BuiltInParameter builtInParameter)"
+ },
+ {
+ "line": 3289,
+ "signature": "private static string GetParameterValueString(Parameter parameter)"
+ }
+ ]
+ },
+ {
+ "name": "GetParameterDoubleValue",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element",
+ "keyName"
+ ],
+ "declarations": [
+ {
+ "line": 3218,
+ "signature": "public static double GetParameterDoubleValue(this Element element, ParameterKeyName keyName)"
+ },
+ {
+ "line": 3223,
+ "signature": "public static double GetParameterDoubleValue(this Element element, string identifier)"
+ }
+ ]
+ },
+ {
+ "name": "GetParameterDoubleValue",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element",
+ "identifier"
+ ],
+ "declarations": [
+ {
+ "line": 3218,
+ "signature": "public static double GetParameterDoubleValue(this Element element, ParameterKeyName keyName)"
+ },
+ {
+ "line": 3223,
+ "signature": "public static double GetParameterDoubleValue(this Element element, string identifier)"
+ }
+ ]
+ },
+ {
+ "name": "GetParameterBooleanValue",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element",
+ "keyName"
+ ],
+ "declarations": [
+ {
+ "line": 3229,
+ "signature": "public static bool GetParameterBooleanValue(this Element element, ParameterKeyName keyName)"
+ }
+ ]
+ },
+ {
+ "name": "GetParameterByKeyName",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element",
+ "keyName"
+ ],
+ "declarations": [
+ {
+ "line": 3235,
+ "signature": "public static Parameter GetParameterByKeyName(this Element element, ParameterKeyName keyName)"
+ }
+ ]
+ },
+ {
+ "name": "GetParameter",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element",
+ "identifier"
+ ],
+ "declarations": [
+ {
+ "line": 3241,
+ "signature": "public static Parameter GetParameter(this Element element, string identifier)"
+ }
+ ]
+ },
+ {
+ "name": "FindByGuidWithIteration",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "element",
+ "guid"
+ ],
+ "declarations": [
+ {
+ "line": 3277,
+ "signature": "private static Parameter FindByGuidWithIteration(this Element element, Guid guid)"
+ }
+ ]
+ },
+ {
+ "name": "GetParameterValueString",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "parameter"
+ ],
+ "declarations": [
+ {
+ "line": 3191,
+ "signature": "public static string GetParameterValueString(this Element element, UsedParameter usedParameter)"
+ },
+ {
+ "line": 3200,
+ "signature": "public static string GetParameterValueString(this Element element, ParameterKeyName keyName)"
+ },
+ {
+ "line": 3206,
+ "signature": "public static string GetParameterValueString(this Element element, string parameterName)"
+ },
+ {
+ "line": 3212,
+ "signature": "public static string GetParameterValueString(this Element element, BuiltInParameter builtInParameter)"
+ },
+ {
+ "line": 3289,
+ "signature": "private static string GetParameterValueString(Parameter parameter)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Utils.RevitInterop",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Init",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "uiApplication"
+ ],
+ "declarations": [
+ {
+ "line": 3328,
+ "signature": "public static void Init(UIApplication uiApplication)"
+ }
+ ]
+ },
+ {
+ "name": "UiApplicationOnViewActivated",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "sender",
+ "e"
+ ],
+ "declarations": [
+ {
+ "line": 3339,
+ "signature": "private static void UiApplicationOnViewActivated(object sender, ViewActivatedEventArgs e)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Utils.RoomExtensions",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Lock",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "room"
+ ],
+ "declarations": [
+ {
+ "line": 3354,
+ "signature": "public static void Lock(this Room room)"
+ }
+ ]
+ },
+ {
+ "name": "Unlock",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "room"
+ ],
+ "declarations": [
+ {
+ "line": 3362,
+ "signature": "public static void Unlock(this Room room)"
+ }
+ ]
+ },
+ {
+ "name": "IsLocked",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "room"
+ ],
+ "declarations": [
+ {
+ "line": 3370,
+ "signature": "public static bool IsLocked(this Room room)"
+ }
+ ]
+ },
+ {
+ "name": "DeleteLockMark",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "room"
+ ],
+ "declarations": [
+ {
+ "line": 3376,
+ "signature": "public static void DeleteLockMark(this Room room)"
+ }
+ ]
+ },
+ {
+ "name": "GetName",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "room"
+ ],
+ "declarations": [
+ {
+ "line": 3384,
+ "signature": "public static string GetName(this Room room)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Utils.RoomSelectionFilter",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "AllowElement",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "elem"
+ ],
+ "declarations": [
+ {
+ "line": 3391,
+ "signature": "public bool AllowElement(Element elem)"
+ }
+ ]
+ },
+ {
+ "name": "AllowReference",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "reference",
+ "position"
+ ],
+ "declarations": [
+ {
+ "line": 3396,
+ "signature": "public bool AllowReference(Autodesk.Revit.DB.Reference reference, XYZ position)"
+ }
+ ]
+ },
+ {
+ "name": "IsValid",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "room",
+ "filter"
+ ],
+ "declarations": [
+ {
+ "line": 3401,
+ "signature": "public static bool IsValid(Room room, ElementApplyFilter filter)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Utils.RoomTypeUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetLocalized",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "roomType"
+ ],
+ "declarations": [
+ {
+ "line": 3432,
+ "signature": "public static string GetLocalized(this RoomType roomType)"
+ }
+ ]
+ },
+ {
+ "name": "GetFromString",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "value"
+ ],
+ "declarations": [
+ {
+ "line": 3444,
+ "signature": "public static RoomType GetFromString(string value)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Utils.SourceTableNameValidationRule",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Validate",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "value",
+ "cultureInfo"
+ ],
+ "declarations": [
+ {
+ "line": 3480,
+ "signature": "public override ValidationResult Validate(object value, CultureInfo cultureInfo)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Utils.UnitUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "ToM2",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "ft2"
+ ],
+ "declarations": [
+ {
+ "line": 3500,
+ "signature": "public static double ToM2(double ft2)"
+ }
+ ]
+ },
+ {
+ "name": "ToFt2",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "m2"
+ ],
+ "declarations": [
+ {
+ "line": 3505,
+ "signature": "public static double ToFt2(double m2)"
+ }
+ ]
+ },
+ {
+ "name": "GetRoundedArea",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "valueFt",
+ "roundType"
+ ],
+ "declarations": [
+ {
+ "line": 3510,
+ "signature": "public static double GetRoundedArea(this double valueFt, RoundType roundType)"
+ }
+ ]
+ },
+ {
+ "name": "GetRounded",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "value",
+ "roundType"
+ ],
+ "declarations": [
+ {
+ "line": 3521,
+ "signature": "public static double GetRounded(this double value, RoundType roundType)"
+ }
+ ]
+ },
+ {
+ "name": "RoundToStep",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "number",
+ "step",
+ "mode"
+ ],
+ "declarations": [
+ {
+ "line": 3526,
+ "signature": "private static double RoundToStep(double number, double step, MidpointRounding mode = MidpointRounding.AwayFromZero)"
+ }
+ ]
+ },
+ {
+ "name": "GetRoundStep",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "roundType"
+ ],
+ "declarations": [
+ {
+ "line": 3532,
+ "signature": "private static double GetRoundStep(RoundType roundType)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Services.DataStorageService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Save",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "doc",
+ "mappedParameters"
+ ],
+ "declarations": [
+ {
+ "line": 3565,
+ "signature": "public void Save(Document doc, List mappedParameters)"
+ }
+ ]
+ },
+ {
+ "name": "Load",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "doc"
+ ],
+ "declarations": [
+ {
+ "line": 3576,
+ "signature": "public List Load(Document doc)"
+ }
+ ]
+ },
+ {
+ "name": "GetSchema",
+ "attributes": "Private, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3590,
+ "signature": "private Schema GetSchema()"
+ }
+ ]
+ },
+ {
+ "name": "GetDataStorage",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "doc"
+ ],
+ "declarations": [
+ {
+ "line": 3610,
+ "signature": "private DataStorage GetDataStorage(Document doc)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Services.ElementSelectorService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetGuidsOfExistSharedParameters",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3806,
+ "signature": "public static IEnumerable GetGuidsOfExistSharedParameters()"
+ }
+ ]
+ },
+ {
+ "name": "GetExistSharedParameters",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3812,
+ "signature": "public static IEnumerable GetExistSharedParameters()"
+ }
+ ]
+ },
+ {
+ "name": "GetRooms",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "scope",
+ "skipInvalid",
+ "roomFilter"
+ ],
+ "declarations": [
+ {
+ "line": 3817,
+ "signature": "public static IEnumerable GetRooms(ViewOrModel scope, bool skipInvalid, ElementApplyFilter roomFilter = null)"
+ }
+ ]
+ },
+ {
+ "name": "GetTypicalFloorRooms",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "typicalFloorDescriptions"
+ ],
+ "declarations": [
+ {
+ "line": 3836,
+ "signature": "public static IEnumerable GetTypicalFloorRooms(List typicalFloorDescriptions)"
+ }
+ ]
+ },
+ {
+ "name": "GetRoomsForFlat",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "flatId",
+ "except"
+ ],
+ "declarations": [
+ {
+ "line": 3856,
+ "signature": "public static IEnumerable GetRoomsForFlat(int flatId, ICollection except)"
+ }
+ ]
+ },
+ {
+ "name": "GetRoomIdsForFlat",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "flatId",
+ "except"
+ ],
+ "declarations": [
+ {
+ "line": 3867,
+ "signature": "public static IEnumerable GetRoomIdsForFlat(int flatId, ICollection except)"
+ }
+ ]
+ },
+ {
+ "name": "GetUsedFlatIds",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "except"
+ ],
+ "declarations": [
+ {
+ "line": 3878,
+ "signature": "public static HashSet GetUsedFlatIds(ICollection except)"
+ }
+ ]
+ },
+ {
+ "name": "GetAllLevels",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3891,
+ "signature": "public static IEnumerable GetAllLevels()"
+ }
+ ]
+ },
+ {
+ "name": "GetRoomParameters",
+ "attributes": "Assembly, Static, HideBySig",
+ "parameters": [
+ "parameterType"
+ ],
+ "declarations": [
+ {
+ "line": 3899,
+ "signature": "internal static IEnumerable GetRoomParameters(ConditionalRoomParameters parameterType)"
+ },
+ {
+ "line": 3921,
+ "signature": "private static CategoryParameterNamesItem GetRoomParameters(Room room, ConditionalRoomParameters parameterType)"
+ }
+ ]
+ },
+ {
+ "name": "GetRoomParameters",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "room",
+ "parameterType"
+ ],
+ "declarations": [
+ {
+ "line": 3899,
+ "signature": "internal static IEnumerable GetRoomParameters(ConditionalRoomParameters parameterType)"
+ },
+ {
+ "line": 3921,
+ "signature": "private static CategoryParameterNamesItem GetRoomParameters(Room room, ConditionalRoomParameters parameterType)"
+ }
+ ]
+ },
+ {
+ "name": "GetCollector",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "scope"
+ ],
+ "declarations": [
+ {
+ "line": 3934,
+ "signature": "private static FilteredElementCollector GetCollector(ViewOrModel scope)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Services.FlatComputeService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "CopyParametersFromTypicalFloorFlats",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "flats",
+ "typicalFloorRooms",
+ "typicalFloorTable"
+ ],
+ "declarations": [
+ {
+ "line": 3975,
+ "signature": "public void CopyParametersFromTypicalFloorFlats(List flats, List typicalFloorRooms, TypicalFloorTable typicalFloorTable)"
+ }
+ ]
+ },
+ {
+ "name": "FillByMatrix",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "flat",
+ "roomMatrix"
+ ],
+ "declarations": [
+ {
+ "line": 4031,
+ "signature": "public void FillByMatrix(Flat flat, ICollection roomMatrix)"
+ }
+ ]
+ },
+ {
+ "name": "ComputeAreas",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "flat"
+ ],
+ "declarations": [
+ {
+ "line": 4124,
+ "signature": "public void ComputeAreas(Flat flat)"
+ }
+ ]
+ },
+ {
+ "name": "ComputeRoundedArea",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "room"
+ ],
+ "declarations": [
+ {
+ "line": 4242,
+ "signature": "public void ComputeRoundedArea(RoomWrapper room)"
+ }
+ ]
+ },
+ {
+ "name": "SetType",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "flat",
+ "flatTypes"
+ ],
+ "declarations": [
+ {
+ "line": 4249,
+ "signature": "public void SetType(Flat flat, ICollection flatTypes)"
+ }
+ ]
+ },
+ {
+ "name": "GetFormattedNumber",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "room",
+ "number",
+ "settings"
+ ],
+ "declarations": [
+ {
+ "line": 4288,
+ "signature": "private string GetFormattedNumber(RoomWrapper room, int number, RoomNumberingSettings settings)"
+ }
+ ]
+ },
+ {
+ "name": "ClearByLevelData",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flat",
+ "byLevelRoomData",
+ "settings"
+ ],
+ "declarations": [
+ {
+ "line": 4320,
+ "signature": "private void ClearByLevelData(Flat flat, ByLevelRoomData byLevelRoomData, FlatByLevelParametersSettings settings)"
+ }
+ ]
+ },
+ {
+ "name": "FillByLevelData",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flat",
+ "byLevelRoomData",
+ "settings"
+ ],
+ "declarations": [
+ {
+ "line": 4353,
+ "signature": "private void FillByLevelData(Flat flat, ByLevelRoomData byLevelRoomData, FlatByLevelParametersSettings settings)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Services.FlatComputeUpdater",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 4395,
+ "signature": "public void Execute(UpdaterData data)"
+ }
+ ]
+ },
+ {
+ "name": "GetUpdaterId",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 4499,
+ "signature": "public UpdaterId GetUpdaterId()"
+ }
+ ]
+ },
+ {
+ "name": "GetChangePriority",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 4504,
+ "signature": "public ChangePriority GetChangePriority()"
+ }
+ ]
+ },
+ {
+ "name": "GetUpdaterName",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 4509,
+ "signature": "public string GetUpdaterName()"
+ }
+ ]
+ },
+ {
+ "name": "GetAdditionalInformation",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 4514,
+ "signature": "public string GetAdditionalInformation()"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Services.FlatCopyUpdater",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 4528,
+ "signature": "public void Execute(UpdaterData data)"
+ }
+ ]
+ },
+ {
+ "name": "GetUpdaterId",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 4591,
+ "signature": "public UpdaterId GetUpdaterId()"
+ }
+ ]
+ },
+ {
+ "name": "GetChangePriority",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 4596,
+ "signature": "public ChangePriority GetChangePriority()"
+ }
+ ]
+ },
+ {
+ "name": "GetUpdaterName",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 4601,
+ "signature": "public string GetUpdaterName()"
+ }
+ ]
+ },
+ {
+ "name": "GetAdditionalInformation",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 4606,
+ "signature": "public string GetAdditionalInformation()"
+ }
+ ]
+ },
+ {
+ "name": "SetParameterValue",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "room",
+ "keyName",
+ "value"
+ ],
+ "declarations": [
+ {
+ "line": 4611,
+ "signature": "private static void SetParameterValue(Room room, ParameterKeyName keyName, int value)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Services.NumerateService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Numerate",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "allFlats",
+ "pickedRooms"
+ ],
+ "declarations": [
+ {
+ "line": 4650,
+ "signature": "public void Numerate(IReadOnlyCollection allFlats, IDictionary> pickedRooms)"
+ },
+ {
+ "line": 4763,
+ "signature": "public void Numerate(IReadOnlyCollection allFlats, Curve curve)"
+ }
+ ]
+ },
+ {
+ "name": "Numerate",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "allFlats",
+ "curve"
+ ],
+ "declarations": [
+ {
+ "line": 4650,
+ "signature": "public void Numerate(IReadOnlyCollection allFlats, IDictionary> pickedRooms)"
+ },
+ {
+ "line": 4763,
+ "signature": "public void Numerate(IReadOnlyCollection allFlats, Curve curve)"
+ }
+ ]
+ },
+ {
+ "name": "OrderFlats",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flats",
+ "startFlat"
+ ],
+ "declarations": [
+ {
+ "line": 4855,
+ "signature": "private List OrderFlats(List flats, Flat startFlat)"
+ },
+ {
+ "line": 4869,
+ "signature": "private List OrderFlats(List flats, Flat startFlat, bool sortByZero, bool matchByDistanceToFirstStartFlat)"
+ }
+ ]
+ },
+ {
+ "name": "OrderFlats",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flats",
+ "startFlat",
+ "sortByZero",
+ "matchByDistanceToFirstStartFlat"
+ ],
+ "declarations": [
+ {
+ "line": 4855,
+ "signature": "private List OrderFlats(List flats, Flat startFlat)"
+ },
+ {
+ "line": 4869,
+ "signature": "private List OrderFlats(List flats, Flat startFlat, bool sortByZero, bool matchByDistanceToFirstStartFlat)"
+ }
+ ]
+ },
+ {
+ "name": "GetStartFlat",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flats",
+ "pickedRooms",
+ "housing",
+ "section"
+ ],
+ "declarations": [
+ {
+ "line": 4938,
+ "signature": "private Flat GetStartFlat(IList flats, IDictionary> pickedRooms, string housing, string section)"
+ }
+ ]
+ },
+ {
+ "name": "GetGroupParameterValue",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flat",
+ "numerateGroupParameter",
+ "parameterName"
+ ],
+ "declarations": [
+ {
+ "line": 4996,
+ "signature": "private string GetGroupParameterValue(Flat flat, NumerateGroupParameter numerateGroupParameter, string parameterName)"
+ },
+ {
+ "line": 5006,
+ "signature": "private string GetGroupParameterValue(Flat flat, string parameterName)"
+ }
+ ]
+ },
+ {
+ "name": "GetGroupParameterValue",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flat",
+ "parameterName"
+ ],
+ "declarations": [
+ {
+ "line": 4996,
+ "signature": "private string GetGroupParameterValue(Flat flat, NumerateGroupParameter numerateGroupParameter, string parameterName)"
+ },
+ {
+ "line": 5006,
+ "signature": "private string GetGroupParameterValue(Flat flat, string parameterName)"
+ }
+ ]
+ },
+ {
+ "name": "GetEntranceDoor",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flat",
+ "doorsAndWindowsStorage",
+ "problems"
+ ],
+ "declarations": [
+ {
+ "line": 5016,
+ "signature": "private EntranceDoor GetEntranceDoor(Flat flat, DoorsAndWindowsStorage doorsAndWindowsStorage, out List problems)"
+ }
+ ]
+ },
+ {
+ "name": "IsOpposite",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flat1",
+ "flat2"
+ ],
+ "declarations": [
+ {
+ "line": 5066,
+ "signature": "private bool IsOpposite(Flat flat1, Flat flat2)"
+ }
+ ]
+ },
+ {
+ "name": "IsCoDirected",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flat1",
+ "flat2"
+ ],
+ "declarations": [
+ {
+ "line": 5071,
+ "signature": "private bool IsCoDirected(Flat flat1, Flat flat2)"
+ }
+ ]
+ },
+ {
+ "name": "IsPerpendicular",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flat1",
+ "flat2"
+ ],
+ "declarations": [
+ {
+ "line": 5076,
+ "signature": "private bool IsPerpendicular(Flat flat1, Flat flat2)"
+ }
+ ]
+ },
+ {
+ "name": "DotProductEntranceDoorOutDirection",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flat1",
+ "flat2"
+ ],
+ "declarations": [
+ {
+ "line": 5081,
+ "signature": "private double DotProductEntranceDoorOutDirection(Flat flat1, Flat flat2)"
+ }
+ ]
+ },
+ {
+ "name": "IsClockwise",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "vertices"
+ ],
+ "declarations": [
+ {
+ "line": 5091,
+ "signature": "private bool IsClockwise(IList vertices)"
+ }
+ ]
+ },
+ {
+ "name": "GetMinDistance",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flat",
+ "zeroPlanePoint"
+ ],
+ "declarations": [
+ {
+ "line": 5103,
+ "signature": "private double GetMinDistance(Flat flat, XYZ zeroPlanePoint)"
+ }
+ ]
+ },
+ {
+ "name": "GetMinDistanceBetween",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flat1",
+ "flat2"
+ ],
+ "declarations": [
+ {
+ "line": 5118,
+ "signature": "private double GetMinDistanceBetween(Flat flat1, Flat flat2)"
+ }
+ ]
+ },
+ {
+ "name": "GetOutsideLines",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "roomSolid",
+ "line"
+ ],
+ "declarations": [
+ {
+ "line": 5159,
+ "signature": "private List GetOutsideLines(Solid roomSolid, Line line)"
+ }
+ ]
+ },
+ {
+ "name": "GetOutsideLine",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "roomSolid",
+ "line",
+ "wasException"
+ ],
+ "declarations": [
+ {
+ "line": 5185,
+ "signature": "private Line GetOutsideLine(Solid roomSolid, Line line, out bool wasException)"
+ }
+ ]
+ },
+ {
+ "name": "GetPathIntersectionCount",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "flats"
+ ],
+ "declarations": [
+ {
+ "line": 5207,
+ "signature": "private int GetPathIntersectionCount(IList flats)"
+ }
+ ]
+ },
+ {
+ "name": "GetProjectedCurve",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "curve",
+ "plane"
+ ],
+ "declarations": [
+ {
+ "line": 5258,
+ "signature": "private Curve GetProjectedCurve(Curve curve, Plane plane)"
+ }
+ ]
+ },
+ {
+ "name": "GetNumber",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "initNumber",
+ "format"
+ ],
+ "declarations": [
+ {
+ "line": 5281,
+ "signature": "private int GetNumber(string initNumber, out string format)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Services.ParametersCreateService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "CreateParameters",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "parameters"
+ ],
+ "declarations": [
+ {
+ "line": 5294,
+ "signature": "public static void CreateParameters(IEnumerable parameters)"
+ },
+ {
+ "line": 5305,
+ "signature": "private static void CreateParameters(Action createAction)"
+ },
+ {
+ "line": 5325,
+ "signature": "private static void CreateParameters(IEnumerable parameters, DefinitionGroup definitionGroup, InstanceBinding instanceBinding)"
+ }
+ ]
+ },
+ {
+ "name": "CreateParameters",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "createAction"
+ ],
+ "declarations": [
+ {
+ "line": 5294,
+ "signature": "public static void CreateParameters(IEnumerable parameters)"
+ },
+ {
+ "line": 5305,
+ "signature": "private static void CreateParameters(Action createAction)"
+ },
+ {
+ "line": 5325,
+ "signature": "private static void CreateParameters(IEnumerable parameters, DefinitionGroup definitionGroup, InstanceBinding instanceBinding)"
+ }
+ ]
+ },
+ {
+ "name": "CreateParameters",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "parameters",
+ "definitionGroup",
+ "instanceBinding"
+ ],
+ "declarations": [
+ {
+ "line": 5294,
+ "signature": "public static void CreateParameters(IEnumerable parameters)"
+ },
+ {
+ "line": 5305,
+ "signature": "private static void CreateParameters(Action createAction)"
+ },
+ {
+ "line": 5325,
+ "signature": "private static void CreateParameters(IEnumerable parameters, DefinitionGroup definitionGroup, InstanceBinding instanceBinding)"
+ }
+ ]
+ },
+ {
+ "name": "SetAllowVaryBetweenGroups",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "parameterName"
+ ],
+ "declarations": [
+ {
+ "line": 5356,
+ "signature": "private static void SetAllowVaryBetweenGroups(string parameterName)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Services.SelectFlatService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Start",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 5422,
+ "signature": "public static void Start()"
+ }
+ ]
+ },
+ {
+ "name": "SelectionMonitorOnOnSelectionChanged",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "sender",
+ "e"
+ ],
+ "declarations": [
+ {
+ "line": 5431,
+ "signature": "private static void SelectionMonitorOnOnSelectionChanged(object sender, ElementSelectionChangedEventArgs e)"
+ }
+ ]
+ },
+ {
+ "name": "OnSelectionChanged",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "doc",
+ "selectedIds"
+ ],
+ "declarations": [
+ {
+ "line": 5439,
+ "signature": "private static void OnSelectionChanged(Document doc, IEnumerable selectedIds)"
+ }
+ ]
+ },
+ {
+ "name": "TimerOnElapsed",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "sender",
+ "e"
+ ],
+ "declarations": [
+ {
+ "line": 5468,
+ "signature": "private static void TimerOnElapsed(object sender, ElapsedEventArgs e)"
+ }
+ ]
+ },
+ {
+ "name": "RemovePanel",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 5501,
+ "signature": "private static void RemovePanel()"
+ }
+ ]
+ },
+ {
+ "name": "AddButton",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 5522,
+ "signature": "private static Autodesk.Windows.RibbonButton AddButton()"
+ }
+ ]
+ },
+ {
+ "name": "GetLargeIcon",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "name"
+ ],
+ "declarations": [
+ {
+ "line": 5543,
+ "signature": "private static BitmapImage GetLargeIcon(string name)"
+ }
+ ]
+ },
+ {
+ "name": "GetIconBaseUri",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 5548,
+ "signature": "private static string GetIconBaseUri()"
+ }
+ ]
+ },
+ {
+ "name": "IsDarkTheme",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 5553,
+ "signature": "private static bool IsDarkTheme()"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Models.ConditionTableColumns.UiBuildHelper",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetDataTemplateForStringCell",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "columnName",
+ "isReadOnly"
+ ],
+ "declarations": [
+ {
+ "line": 11000,
+ "signature": "public static DataTemplate GetDataTemplateForStringCell(string columnName, bool isReadOnly)"
+ }
+ ]
+ },
+ {
+ "name": "GetDataTemplateForIntegerCell",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "columnName",
+ "isReadOnly"
+ ],
+ "declarations": [
+ {
+ "line": 11007,
+ "signature": "public static DataTemplate GetDataTemplateForIntegerCell(string columnName, bool isReadOnly)"
+ }
+ ]
+ },
+ {
+ "name": "GetDataTemplateForAreaCell",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "columnName",
+ "isReadOnly"
+ ],
+ "declarations": [
+ {
+ "line": 11014,
+ "signature": "public static DataTemplate GetDataTemplateForAreaCell(string columnName, bool isReadOnly)"
+ }
+ ]
+ },
+ {
+ "name": "GetDataTemplateForErrorCell",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "columnName"
+ ],
+ "declarations": [
+ {
+ "line": 11021,
+ "signature": "public static DataTemplate GetDataTemplateForErrorCell(string columnName)"
+ }
+ ]
+ },
+ {
+ "name": "GetClassificationResultColumn",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "columnName"
+ ],
+ "declarations": [
+ {
+ "line": 11029,
+ "signature": "public static DataGridTemplateColumn GetClassificationResultColumn(string columnName)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Services.FlatComputeService+ByLevelRoomData",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Add",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "level",
+ "parameter",
+ "area"
+ ],
+ "declarations": [
+ {
+ "line": 3945,
+ "signature": "public void Add(LevelWrapper level, ParameterKeyName parameter, double area)"
+ }
+ ]
+ },
+ {
+ "name": "GetData",
+ "attributes": "Public, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3962,
+ "signature": "public Dictionary> GetData()"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentBuildingLayout.Services.SelectFlatService+SelectFlatCommandHandler",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "CanExecute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "parameter"
+ ],
+ "declarations": [
+ {
+ "line": 5383,
+ "signature": "public bool CanExecute(object parameter)"
+ }
+ ]
+ },
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "parameter"
+ ],
+ "declarations": [
+ {
+ "line": 5388,
+ "signature": "public void Execute(object parameter)"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "dependencyMarkers": {
+ "interactiveSelection": [
+ "PickObject",
+ "PickObjects"
+ ],
+ "usesCurrentSelection": true,
+ "dialogs": [
+ "ShowDialog",
+ "ShowModal",
+ "ShowModeless"
+ ],
+ "transactionTypes": [
+ "Autodesk.Revit.DB.Transaction",
+ "Autodesk.Revit.DB.TransactionGroup"
+ ],
+ "modplusGlobalContext": true,
+ "externalEvents": true,
+ "fileOperations": [
+ "System.IO.Directory.Delete",
+ "System.IO.Directory.Exists",
+ "System.IO.File.Exists",
+ "System.IO.File.WriteAllText",
+ "System.IO.Path.Combine",
+ "System.IO.Path.GetFileNameWithoutExtension",
+ "System.IO.Path.GetInvalidFileNameChars",
+ "System.IO.Path.GetTempFileName",
+ "System.IO.Path.GetTempPath"
+ ]
+ },
+ "decompilerWarnings": {},
+ "sourceSyntaxErrors": 0,
+ "adapterStatus": "source_and_entrypoints_mapped_adapter_required",
+ "runtimeVerified": false
+ },
+ {
+ "module": "mprApartmentViews",
+ "title": "Виды квартир",
+ "description": "Создание видов квартир",
+ "groups": [
+ "Архитектура"
+ ],
+ "available2027": true,
+ "installedVersions": [
+ "2020",
+ "2024",
+ "2026",
+ "2027"
+ ],
+ "subcommands": [],
+ "assembly": "mprApartmentViews_2027",
+ "fileVersion": "1.0.0.0",
+ "sha256": "92a79e1d0e596a3abf859007b525b317b3614b70b8b642339d31df997aea3434",
+ "decompiler": "ILSpyCmd 11.1.0.9782",
+ "framework": [
+ ".NETCoreApp,Version=v10.0"
+ ],
+ "source": "source/mprApartmentViews_2027.decompiled.cs",
+ "sourceLines": 3839,
+ "references": [
+ {
+ "name": "System.Runtime",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "WindowsBase",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "RevitAPI",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "RevitAPIUI",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "System.Collections",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "ModPlusAPI",
+ "version": "1.0.0.0"
+ },
+ {
+ "name": "ModPlus_Revit_2027",
+ "version": "11.0.0.0"
+ },
+ {
+ "name": "ModPlusStyle",
+ "version": "1.0.0.0"
+ },
+ {
+ "name": "System.Xaml",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "PresentationFramework",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "PresentationCore",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.ObjectModel",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Linq",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Text.RegularExpressions",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Xml.ReaderWriter",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.ComponentModel.TypeConverter",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Threading",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Runtime.InteropServices",
+ "version": "10.0.0.0"
+ }
+ ],
+ "typeCount": 62,
+ "methodCount": 477,
+ "externalCommands": [
+ {
+ "class": "mprApartmentViews.Command",
+ "sourceLines": [
+ 301
+ ],
+ "registration": "declared IExternalCommand; use live ribbon to verify availability"
+ }
+ ],
+ "connectorMainCommands": [
+ "mprApartmentViews.Command"
+ ],
+ "connectorSubCommands": [],
+ "connectorButtonNames": [],
+ "algorithmClasses": [
+ {
+ "class": "mprApartmentViews.Command",
+ "kind": "algorithm_in_command",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "commandData",
+ "message",
+ "elements"
+ ],
+ "declarations": [
+ {
+ "line": 307,
+ "signature": "public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentViews.FailureProcessor",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "PreprocessFailures",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "failuresAccessor"
+ ],
+ "declarations": [
+ {
+ "line": 356,
+ "signature": "public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentViews.Services.ApartmentViewCreationService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "CreateViews",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "doc",
+ "apartments",
+ "viewTemplateId",
+ "viewNameMask"
+ ],
+ "declarations": [
+ {
+ "line": 1341,
+ "signature": "public void CreateViews(Document doc, IList apartments, ElementId viewTemplateId, string viewNameMask)"
+ }
+ ]
+ },
+ {
+ "name": "BuildViewName",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "apartment",
+ "viewNameMask"
+ ],
+ "declarations": [
+ {
+ "line": 1376,
+ "signature": "public static string BuildViewName(Apartment apartment, string viewNameMask)"
+ },
+ {
+ "line": 1600,
+ "signature": "private static string BuildViewName(Apartment apartment, Room room, string viewNameMask)"
+ }
+ ]
+ },
+ {
+ "name": "IsViewNameMaskValid",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "viewNameMask"
+ ],
+ "declarations": [
+ {
+ "line": 1381,
+ "signature": "public static bool IsViewNameMaskValid(string viewNameMask)"
+ }
+ ]
+ },
+ {
+ "name": "ResolveUniqueViewName",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "baseViewName",
+ "usedViewNames"
+ ],
+ "declarations": [
+ {
+ "line": 1391,
+ "signature": "public static string ResolveUniqueViewName(string baseViewName, ISet usedViewNames)"
+ }
+ ]
+ },
+ {
+ "name": "GetExistingViews",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "doc"
+ ],
+ "declarations": [
+ {
+ "line": 1404,
+ "signature": "public static Dictionary GetExistingViews(Document doc)"
+ }
+ ]
+ },
+ {
+ "name": "CreateApartmentViews",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "document",
+ "apartment",
+ "viewFamilyTypeId",
+ "viewTemplateId",
+ "viewNameMask",
+ "existingViews",
+ "usedViewNames"
+ ],
+ "declarations": [
+ {
+ "line": 1414,
+ "signature": "private void CreateApartmentViews(Document document, Apartment apartment, ElementId viewFamilyTypeId, ElementId viewTemplateId, string viewNameMask, Dictionary existingViews, ISet usedViewNames)"
+ }
+ ]
+ },
+ {
+ "name": "TryCreateCropLoop",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "document",
+ "room",
+ "roomSolid",
+ "error"
+ ],
+ "declarations": [
+ {
+ "line": 1532,
+ "signature": "private bool TryCreateCropLoop(Document document, Room room, out Solid roomSolid, out string error)"
+ }
+ ]
+ },
+ {
+ "name": "ConfigureViewCrop",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "view",
+ "cropLoop"
+ ],
+ "declarations": [
+ {
+ "line": 1574,
+ "signature": "private void ConfigureViewCrop(View view, CurveLoop cropLoop)"
+ }
+ ]
+ },
+ {
+ "name": "ApplyViewTemplate",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "view",
+ "document",
+ "viewTemplateId"
+ ],
+ "declarations": [
+ {
+ "line": 1592,
+ "signature": "private static void ApplyViewTemplate(View view, Document document, ElementId viewTemplateId)"
+ }
+ ]
+ },
+ {
+ "name": "BuildViewName",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "apartment",
+ "room",
+ "viewNameMask"
+ ],
+ "declarations": [
+ {
+ "line": 1376,
+ "signature": "public static string BuildViewName(Apartment apartment, string viewNameMask)"
+ },
+ {
+ "line": 1600,
+ "signature": "private static string BuildViewName(Apartment apartment, Room room, string viewNameMask)"
+ }
+ ]
+ },
+ {
+ "name": "SanitizeViewName",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "viewName"
+ ],
+ "declarations": [
+ {
+ "line": 1608,
+ "signature": "private static string SanitizeViewName(string viewName)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentViews.Services.DataCache",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetViewTemplateItems",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "doc"
+ ],
+ "declarations": [
+ {
+ "line": 1622,
+ "signature": "public IList GetViewTemplateItems(Document doc)"
+ }
+ ]
+ },
+ {
+ "name": "GetRoomCategoryParameterNames",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "doc"
+ ],
+ "declarations": [
+ {
+ "line": 1638,
+ "signature": "public IList GetRoomCategoryParameterNames(Document doc)"
+ }
+ ]
+ },
+ {
+ "name": "SaveApartments",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "docHash",
+ "entry"
+ ],
+ "declarations": [
+ {
+ "line": 1648,
+ "signature": "public void SaveApartments(int docHash, ApartmentsCacheEntry entry)"
+ }
+ ]
+ },
+ {
+ "name": "TryGetApartments",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "docHash",
+ "entry"
+ ],
+ "declarations": [
+ {
+ "line": 1653,
+ "signature": "public bool TryGetApartments(int docHash, out ApartmentsCacheEntry entry)"
+ }
+ ]
+ },
+ {
+ "name": "ClearApartments",
+ "attributes": "Public, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 1658,
+ "signature": "public void ClearApartments()"
+ }
+ ]
+ },
+ {
+ "name": "RemoveDocumentData",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "docHash"
+ ],
+ "declarations": [
+ {
+ "line": 1663,
+ "signature": "public void RemoveDocumentData(int docHash)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentViews.Services.RoomContourHealingService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Heal",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "curves"
+ ],
+ "declarations": [
+ {
+ "line": 1674,
+ "signature": "public void Heal(List curves)"
+ }
+ ]
+ },
+ {
+ "name": "TryFindSelfIntersection",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curves",
+ "intersection"
+ ],
+ "declarations": [
+ {
+ "line": 1700,
+ "signature": "private static bool TryFindSelfIntersection(List curves, out SelfIntersection intersection)"
+ }
+ ]
+ },
+ {
+ "name": "TryGetSegmentsIntersection",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "first",
+ "second",
+ "tolerance",
+ "point",
+ "isOverlap"
+ ],
+ "declarations": [
+ {
+ "line": 1723,
+ "signature": "private static bool TryGetSegmentsIntersection(PlanSegment first, PlanSegment second, double tolerance, out XYZ point, out bool isOverlap)"
+ }
+ ]
+ },
+ {
+ "name": "TryGetLinesIntersection",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "firstStart",
+ "firstEnd",
+ "secondStart",
+ "secondEnd",
+ "tolerance",
+ "point",
+ "isOverlap"
+ ],
+ "declarations": [
+ {
+ "line": 1753,
+ "signature": "private static bool TryGetLinesIntersection(XYZ firstStart, XYZ firstEnd, XYZ secondStart, XYZ secondEnd, double tolerance, out XYZ point, out bool isOverlap)"
+ }
+ ]
+ },
+ {
+ "name": "TryGetOverlapMiddlePoint",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "firstStart",
+ "firstDirection",
+ "firstLength",
+ "secondStart",
+ "secondEnd",
+ "tolerance",
+ "point"
+ ],
+ "declarations": [
+ {
+ "line": 1787,
+ "signature": "private static bool TryGetOverlapMiddlePoint(XYZ firstStart, XYZ firstDirection, double firstLength, XYZ secondStart, XYZ secondEnd, double tolerance, out XYZ point)"
+ }
+ ]
+ },
+ {
+ "name": "IsSharedEndPoint",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "point",
+ "firstStart",
+ "firstEnd",
+ "secondStart",
+ "secondEnd",
+ "tolerance"
+ ],
+ "declarations": [
+ {
+ "line": 1809,
+ "signature": "private static bool IsSharedEndPoint(XYZ point, XYZ firstStart, XYZ firstEnd, XYZ secondStart, XYZ secondEnd, double tolerance)"
+ }
+ ]
+ },
+ {
+ "name": "IsCommonPoint",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "point",
+ "firstPoint",
+ "secondPoint",
+ "tolerance"
+ ],
+ "declarations": [
+ {
+ "line": 1814,
+ "signature": "private static bool IsCommonPoint(XYZ point, XYZ firstPoint, XYZ secondPoint, double tolerance)"
+ }
+ ]
+ },
+ {
+ "name": "IsParameterOnSegment",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "parameter",
+ "tolerance"
+ ],
+ "declarations": [
+ {
+ "line": 1819,
+ "signature": "private static bool IsParameterOnSegment(double parameter, double tolerance)"
+ }
+ ]
+ },
+ {
+ "name": "RemoveSmallerLoop",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curves",
+ "firstIndex",
+ "secondIndex",
+ "point"
+ ],
+ "declarations": [
+ {
+ "line": 1824,
+ "signature": "private static void RemoveSmallerLoop(List curves, int firstIndex, int secondIndex, XYZ point)"
+ }
+ ]
+ },
+ {
+ "name": "CleanUpContour",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curves"
+ ],
+ "declarations": [
+ {
+ "line": 1871,
+ "signature": "private static void CleanUpContour(List curves)"
+ }
+ ]
+ },
+ {
+ "name": "SnapCorner",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curves",
+ "firstIndex",
+ "secondIndex"
+ ],
+ "declarations": [
+ {
+ "line": 1905,
+ "signature": "private static void SnapCorner(List curves, int firstIndex, int secondIndex)"
+ }
+ ]
+ },
+ {
+ "name": "RemoveSpurCurves",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curves"
+ ],
+ "declarations": [
+ {
+ "line": 1913,
+ "signature": "private static void RemoveSpurCurves(List curves)"
+ }
+ ]
+ },
+ {
+ "name": "IsSpurCurve",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "previous",
+ "curve",
+ "next",
+ "tolerance"
+ ],
+ "declarations": [
+ {
+ "line": 1929,
+ "signature": "private static bool IsSpurCurve(Curve previous, Curve curve, Curve next, double tolerance)"
+ }
+ ]
+ },
+ {
+ "name": "GetPlanDirection",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "line"
+ ],
+ "declarations": [
+ {
+ "line": 1954,
+ "signature": "private static XYZ GetPlanDirection(Line line)"
+ }
+ ]
+ },
+ {
+ "name": "GetDistanceToLine",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "point",
+ "origin",
+ "direction"
+ ],
+ "declarations": [
+ {
+ "line": 1960,
+ "signature": "private static double GetDistanceToLine(XYZ point, XYZ origin, XYZ direction)"
+ }
+ ]
+ },
+ {
+ "name": "RemoveCurve",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curves",
+ "index"
+ ],
+ "declarations": [
+ {
+ "line": 1965,
+ "signature": "private static void RemoveCurve(List curves, int index)"
+ }
+ ]
+ },
+ {
+ "name": "CloseCorner",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curves",
+ "firstIndex"
+ ],
+ "declarations": [
+ {
+ "line": 1974,
+ "signature": "private static int CloseCorner(List curves, int firstIndex)"
+ }
+ ]
+ },
+ {
+ "name": "GetContourOrientation",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curves"
+ ],
+ "declarations": [
+ {
+ "line": 1997,
+ "signature": "private static int GetContourOrientation(List curves)"
+ }
+ ]
+ },
+ {
+ "name": "GetShortestCurveIndex",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curves",
+ "firstIndex",
+ "secondIndex"
+ ],
+ "declarations": [
+ {
+ "line": 2012,
+ "signature": "private static int GetShortestCurveIndex(List curves, int firstIndex, int secondIndex)"
+ }
+ ]
+ },
+ {
+ "name": "IsAdjacent",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "firstIndex",
+ "secondIndex",
+ "count"
+ ],
+ "declarations": [
+ {
+ "line": 2017,
+ "signature": "private static bool IsAdjacent(int firstIndex, int secondIndex, int count)"
+ }
+ ]
+ },
+ {
+ "name": "TryTrimCurve",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curves",
+ "index",
+ "end",
+ "point"
+ ],
+ "declarations": [
+ {
+ "line": 2022,
+ "signature": "private static bool TryTrimCurve(List curves, int index, CurveEnd end, XYZ point)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentViews.Services.RoomContourService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetRoomContour",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "doc",
+ "room"
+ ],
+ "declarations": [
+ {
+ "line": 2038,
+ "signature": "public List GetRoomContour(Document doc, Room room)"
+ }
+ ]
+ },
+ {
+ "name": "GetValidCurveLoops",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "planarFace"
+ ],
+ "declarations": [
+ {
+ "line": 2069,
+ "signature": "public IList GetValidCurveLoops(PlanarFace planarFace)"
+ }
+ ]
+ },
+ {
+ "name": "OffsetWallSegmentOutward",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "boundarySegment",
+ "roomVerticalExtent",
+ "document"
+ ],
+ "declarations": [
+ {
+ "line": 2096,
+ "signature": "private static void OffsetWallSegmentOutward(BoundarySegmentWrapper boundarySegment, VerticalExtent? roomVerticalExtent, Document document)"
+ }
+ ]
+ },
+ {
+ "name": "TryBuildOuterFaceCurve",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "layer",
+ "segmentCurve",
+ "shortCurveTolerance",
+ "faceCurve"
+ ],
+ "declarations": [
+ {
+ "line": 2117,
+ "signature": "private static bool TryBuildOuterFaceCurve(WallWrapper layer, Curve segmentCurve, double shortCurveTolerance, out Curve faceCurve)"
+ }
+ ]
+ },
+ {
+ "name": "ComputeOutwardOffset",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "boundaryWall",
+ "segmentCurve",
+ "roomVerticalExtent",
+ "doc",
+ "outermostLayer"
+ ],
+ "declarations": [
+ {
+ "line": 2143,
+ "signature": "private static double ComputeOutwardOffset(WallWrapper boundaryWall, Curve segmentCurve, VerticalExtent? roomVerticalExtent, Document doc, out WallWrapper outermostLayer)"
+ }
+ ]
+ },
+ {
+ "name": "TryGetNextOuterLayer",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "frontier",
+ "basePoint",
+ "outwardNormal",
+ "segmentCurve",
+ "coveredFarFace",
+ "referenceVerticalExtent",
+ "document",
+ "visited",
+ "nextLayer",
+ "nextFarFace"
+ ],
+ "declarations": [
+ {
+ "line": 2168,
+ "signature": "private static bool TryGetNextOuterLayer(WallWrapper frontier, XYZ basePoint, XYZ outwardNormal, Curve segmentCurve, double coveredFarFace, VerticalExtent? referenceVerticalExtent, Document document, HashSet visited, out WallWrapper nextLayer, out double nextFarFace)"
+ }
+ ]
+ },
+ {
+ "name": "TryGetOuterLayerFarFace",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "candidate",
+ "basePoint",
+ "outwardNormal",
+ "segmentCurve",
+ "coveredFarFace",
+ "referenceVerticalExtent",
+ "farFace"
+ ],
+ "declarations": [
+ {
+ "line": 2183,
+ "signature": "private static bool TryGetOuterLayerFarFace(WallWrapper candidate, XYZ basePoint, XYZ outwardNormal, Curve segmentCurve, double coveredFarFace, VerticalExtent? referenceVerticalExtent, out double farFace)"
+ }
+ ]
+ },
+ {
+ "name": "GetRoomVerticalExtent",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "room"
+ ],
+ "declarations": [
+ {
+ "line": 2219,
+ "signature": "private static VerticalExtent? GetRoomVerticalExtent(Room room)"
+ }
+ ]
+ },
+ {
+ "name": "IsContourSegment",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "segment"
+ ],
+ "declarations": [
+ {
+ "line": 2224,
+ "signature": "private static bool IsContourSegment(BoundarySegmentWrapper segment)"
+ }
+ ]
+ },
+ {
+ "name": "ResolveWall",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "wrapper"
+ ],
+ "declarations": [
+ {
+ "line": 2255,
+ "signature": "private static WallWrapper ResolveWall(BoundarySegmentWrapper wrapper)"
+ }
+ ]
+ },
+ {
+ "name": "ResolveLinkedWall",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "wrapper"
+ ],
+ "declarations": [
+ {
+ "line": 2265,
+ "signature": "private static WallWrapper ResolveLinkedWall(BoundarySegmentWrapper wrapper)"
+ }
+ ]
+ },
+ {
+ "name": "ApproximateArcSegments",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curves"
+ ],
+ "declarations": [
+ {
+ "line": 2278,
+ "signature": "private static void ApproximateArcSegments(List curves)"
+ }
+ ]
+ },
+ {
+ "name": "ApproximateArcAsLines",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "arc",
+ "shortCurveTolerance"
+ ],
+ "declarations": [
+ {
+ "line": 2298,
+ "signature": "private static List ApproximateArcAsLines(Arc arc, double shortCurveTolerance)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentViews.Services.ViewCropLoopHealingService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Heal",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "cropLoop"
+ ],
+ "declarations": [
+ {
+ "line": 2347,
+ "signature": "public CurveLoop Heal(CurveLoop cropLoop)"
+ }
+ ]
+ },
+ {
+ "name": "TryGetVertices",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "cropLoop",
+ "points"
+ ],
+ "declarations": [
+ {
+ "line": 2397,
+ "signature": "private static bool TryGetVertices(CurveLoop cropLoop, out List points)"
+ }
+ ]
+ },
+ {
+ "name": "TryHealSpike",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "points",
+ "spikeCosine"
+ ],
+ "declarations": [
+ {
+ "line": 2412,
+ "signature": "private static bool TryHealSpike(List points, double spikeCosine)"
+ }
+ ]
+ },
+ {
+ "name": "TryHealPinch",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "points",
+ "pinchTolerance",
+ "maxTongueWidth"
+ ],
+ "declarations": [
+ {
+ "line": 2430,
+ "signature": "private static bool TryHealPinch(List points, double pinchTolerance, double maxTongueWidth)"
+ }
+ ]
+ },
+ {
+ "name": "TryRemoveTongue",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "points",
+ "first",
+ "second",
+ "maxTongueWidth"
+ ],
+ "declarations": [
+ {
+ "line": 2450,
+ "signature": "private static bool TryRemoveTongue(List points, int first, int second, double maxTongueWidth)"
+ }
+ ]
+ },
+ {
+ "name": "IsTongue",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "chain",
+ "area",
+ "maxTongueWidth"
+ ],
+ "declarations": [
+ {
+ "line": 2483,
+ "signature": "private static bool IsTongue(IList chain, double area, double maxTongueWidth)"
+ }
+ ]
+ },
+ {
+ "name": "GetClosedChainPerimeter",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "chain"
+ ],
+ "declarations": [
+ {
+ "line": 2489,
+ "signature": "private static double GetClosedChainPerimeter(IList chain)"
+ }
+ ]
+ },
+ {
+ "name": "CleanUpVertices",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "points",
+ "minEdgeLength",
+ "collinearTolerance"
+ ],
+ "declarations": [
+ {
+ "line": 2499,
+ "signature": "private static void CleanUpVertices(List points, double minEdgeLength, double collinearTolerance)"
+ }
+ ]
+ },
+ {
+ "name": "GetDistanceToSegment",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "point",
+ "segmentStart",
+ "segmentEnd"
+ ],
+ "declarations": [
+ {
+ "line": 2524,
+ "signature": "private static double GetDistanceToSegment(XYZ point, XYZ segmentStart, XYZ segmentEnd)"
+ }
+ ]
+ },
+ {
+ "name": "TryCreateLoop",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "points",
+ "minEdgeLength"
+ ],
+ "declarations": [
+ {
+ "line": 2537,
+ "signature": "private static CurveLoop TryCreateLoop(List points, double minEdgeLength)"
+ }
+ ]
+ },
+ {
+ "name": "GetNextIndex",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "index",
+ "count"
+ ],
+ "declarations": [
+ {
+ "line": 2564,
+ "signature": "private static int GetNextIndex(int index, int count)"
+ }
+ ]
+ },
+ {
+ "name": "GetPreviousIndex",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "index",
+ "count"
+ ],
+ "declarations": [
+ {
+ "line": 2569,
+ "signature": "private static int GetPreviousIndex(int index, int count)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentViews.Helpers.BindingProxy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "CreateInstanceCore",
+ "attributes": "Family, Virtual, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3113,
+ "signature": "protected override Freezable CreateInstanceCore()"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentViews.Helpers.DataGridColumnsAutoFit",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetIsEnabled",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "dataGrid",
+ "value"
+ ],
+ "declarations": [
+ {
+ "line": 3124,
+ "signature": "public static void SetIsEnabled(DataGrid dataGrid, bool value)"
+ }
+ ]
+ },
+ {
+ "name": "GetIsEnabled",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "dataGrid"
+ ],
+ "declarations": [
+ {
+ "line": 3129,
+ "signature": "public static bool GetIsEnabled(DataGrid dataGrid)"
+ }
+ ]
+ },
+ {
+ "name": "SetFillWeight",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "column",
+ "value"
+ ],
+ "declarations": [
+ {
+ "line": 3134,
+ "signature": "public static void SetFillWeight(DataGridColumn column, double value)"
+ }
+ ]
+ },
+ {
+ "name": "GetFillWeight",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "column"
+ ],
+ "declarations": [
+ {
+ "line": 3139,
+ "signature": "public static double GetFillWeight(DataGridColumn column)"
+ }
+ ]
+ },
+ {
+ "name": "OnIsEnabledChanged",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "d",
+ "e"
+ ],
+ "declarations": [
+ {
+ "line": 3144,
+ "signature": "private static void OnIsEnabledChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)"
+ }
+ ]
+ },
+ {
+ "name": "Fit",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "dataGrid"
+ ],
+ "declarations": [
+ {
+ "line": 3169,
+ "signature": "private static void Fit(DataGrid dataGrid)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentViews.Helpers.GeometryHelper",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetExtendedCurve",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "curve",
+ "end",
+ "extensionValue"
+ ],
+ "declarations": [
+ {
+ "line": 3186,
+ "signature": "public static Curve GetExtendedCurve(Curve curve, CurveEnd end, double extensionValue = 1.0)"
+ }
+ ]
+ },
+ {
+ "name": "GetArcTrimmedOrExtended",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "arc",
+ "targetPoint"
+ ],
+ "declarations": [
+ {
+ "line": 3206,
+ "signature": "public static Arc GetArcTrimmedOrExtended(Arc arc, XYZ targetPoint)"
+ }
+ ]
+ },
+ {
+ "name": "IsPointInsideCurveLoop",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "point",
+ "loop"
+ ],
+ "declarations": [
+ {
+ "line": 3237,
+ "signature": "public static bool IsPointInsideCurveLoop(XYZ point, CurveLoop loop)"
+ }
+ ]
+ },
+ {
+ "name": "ExtendLine",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "line",
+ "end",
+ "extension"
+ ],
+ "declarations": [
+ {
+ "line": 3252,
+ "signature": "private static Line ExtendLine(Line line, CurveEnd end, double extension)"
+ }
+ ]
+ },
+ {
+ "name": "ExtendArc",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "arc",
+ "end",
+ "extension"
+ ],
+ "declarations": [
+ {
+ "line": 3260,
+ "signature": "private static Arc ExtendArc(Arc arc, CurveEnd end, double extension)"
+ }
+ ]
+ },
+ {
+ "name": "GetOutwardNormal",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "curve"
+ ],
+ "declarations": [
+ {
+ "line": 3284,
+ "signature": "public static XYZ GetOutwardNormal(Curve curve)"
+ }
+ ]
+ },
+ {
+ "name": "AreCurvesParallel",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "curve1",
+ "curve2"
+ ],
+ "declarations": [
+ {
+ "line": 3292,
+ "signature": "public static bool AreCurvesParallel(Curve curve1, Curve curve2)"
+ }
+ ]
+ },
+ {
+ "name": "GetOutwardCenterOffset",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "segmentCurve",
+ "basePoint",
+ "outwardNormal",
+ "candidateCurve"
+ ],
+ "declarations": [
+ {
+ "line": 3308,
+ "signature": "public static double GetOutwardCenterOffset(Curve segmentCurve, XYZ basePoint, XYZ outwardNormal, Curve candidateCurve)"
+ }
+ ]
+ },
+ {
+ "name": "FlattenToElevation",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "curve",
+ "elevation"
+ ],
+ "declarations": [
+ {
+ "line": 3319,
+ "signature": "public static Curve FlattenToElevation(Curve curve, double elevation)"
+ }
+ ]
+ },
+ {
+ "name": "TryTrimLineToRunOverlap",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "faceLine",
+ "segmentLine",
+ "shortCurveTolerance",
+ "trimmed"
+ ],
+ "declarations": [
+ {
+ "line": 3333,
+ "signature": "public static bool TryTrimLineToRunOverlap(Line faceLine, Line segmentLine, double shortCurveTolerance, out Curve trimmed)"
+ }
+ ]
+ },
+ {
+ "name": "TryBuildTrimmedConcentricFaceArc",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "segmentArc",
+ "wallArc",
+ "halfWidth",
+ "outwardNormal",
+ "shortCurveTolerance",
+ "trimmed"
+ ],
+ "declarations": [
+ {
+ "line": 3354,
+ "signature": "public static bool TryBuildTrimmedConcentricFaceArc(Arc segmentArc, Arc wallArc, double halfWidth, XYZ outwardNormal, double shortCurveTolerance, out Curve trimmed)"
+ }
+ ]
+ },
+ {
+ "name": "GetPlanVector",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "startPoint",
+ "endPoint"
+ ],
+ "declarations": [
+ {
+ "line": 3404,
+ "signature": "public static XYZ GetPlanVector(XYZ startPoint, XYZ endPoint)"
+ }
+ ]
+ },
+ {
+ "name": "GetDoubledSignedArea",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "points"
+ ],
+ "declarations": [
+ {
+ "line": 3409,
+ "signature": "public static double GetDoubledSignedArea(IList points)"
+ }
+ ]
+ },
+ {
+ "name": "RunsOverlap",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "a",
+ "b"
+ ],
+ "declarations": [
+ {
+ "line": 3421,
+ "signature": "public static bool RunsOverlap(Curve a, Curve b)"
+ }
+ ]
+ },
+ {
+ "name": "TryCloseCorner",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "first",
+ "second",
+ "newFirst",
+ "newSecond"
+ ],
+ "declarations": [
+ {
+ "line": 3439,
+ "signature": "public static bool TryCloseCorner(Curve first, Curve second, out Curve newFirst, out Curve newSecond)"
+ }
+ ]
+ },
+ {
+ "name": "TryBridgeParallelCorner",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "first",
+ "second",
+ "contourOrientation",
+ "newFirst",
+ "newSecond",
+ "bridge"
+ ],
+ "declarations": [
+ {
+ "line": 3473,
+ "signature": "public static bool TryBridgeParallelCorner(Curve first, Curve second, int contourOrientation, out Curve newFirst, out Curve newSecond, out Line bridge)"
+ }
+ ]
+ },
+ {
+ "name": "TrySetCurveEnd",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "curve",
+ "end",
+ "point",
+ "result"
+ ],
+ "declarations": [
+ {
+ "line": 3513,
+ "signature": "public static bool TrySetCurveEnd(Curve curve, CurveEnd end, XYZ point, out Curve result)"
+ }
+ ]
+ },
+ {
+ "name": "ReCreate",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "curveLoops"
+ ],
+ "declarations": [
+ {
+ "line": 3531,
+ "signature": "public static List ReCreate(IEnumerable curveLoops)"
+ },
+ {
+ "line": 3603,
+ "signature": "private static CurveLoop ReCreate(CurveLoop curveLoop)"
+ }
+ ]
+ },
+ {
+ "name": "ProjectOntoDirection",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "line",
+ "origin",
+ "direction"
+ ],
+ "declarations": [
+ {
+ "line": 3536,
+ "signature": "private static (double Min, double Max) ProjectOntoDirection(Line line, XYZ origin, XYZ direction)"
+ }
+ ]
+ },
+ {
+ "name": "TryTrimParallelRunOverlap",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "first",
+ "second",
+ "shortCurveTolerance",
+ "trimmedFirst",
+ "trimmedSecond"
+ ],
+ "declarations": [
+ {
+ "line": 3543,
+ "signature": "private static bool TryTrimParallelRunOverlap(Line first, Line second, double shortCurveTolerance, out Curve trimmedFirst, out Curve trimmedSecond)"
+ }
+ ]
+ },
+ {
+ "name": "TrySquareParallelBridge",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "first",
+ "second",
+ "contourOrientation",
+ "shortCurveTolerance",
+ "newFirst",
+ "newSecond",
+ "bridge"
+ ],
+ "declarations": [
+ {
+ "line": 3560,
+ "signature": "private static bool TrySquareParallelBridge(Line first, Line second, int contourOrientation, double shortCurveTolerance, out Curve newFirst, out Curve newSecond, out Line bridge)"
+ }
+ ]
+ },
+ {
+ "name": "ReCreate",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curveLoop"
+ ],
+ "declarations": [
+ {
+ "line": 3531,
+ "signature": "public static List ReCreate(IEnumerable curveLoops)"
+ },
+ {
+ "line": 3603,
+ "signature": "private static CurveLoop ReCreate(CurveLoop curveLoop)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprApartmentViews.Helpers.RevitUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetJoinSegments",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "segments"
+ ],
+ "declarations": [
+ {
+ "line": 3628,
+ "signature": "public static List GetJoinSegments(List segments)"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "dependencyMarkers": {
+ "interactiveSelection": [],
+ "usesCurrentSelection": false,
+ "dialogs": [
+ "ShowModeless"
+ ],
+ "transactionTypes": [
+ "Autodesk.Revit.DB.SubTransaction",
+ "Autodesk.Revit.DB.Transaction"
+ ],
+ "modplusGlobalContext": true,
+ "externalEvents": true,
+ "fileOperations": []
+ },
+ "decompilerWarnings": {},
+ "sourceSyntaxErrors": 139,
+ "adapterStatus": "source_and_entrypoints_mapped_adapter_required",
+ "runtimeVerified": false
+ },
+ {
+ "module": "mprBaseLevel",
+ "title": "Базовый уровень",
+ "description": "Изменение зависимостей (привязки) для элементов",
+ "groups": [
+ "Изменить"
+ ],
+ "available2027": true,
+ "installedVersions": [
+ "2020",
+ "2024",
+ "2026",
+ "2027"
+ ],
+ "subcommands": [],
+ "assembly": "mprBaseLevel_2027",
+ "fileVersion": "1.13.8.0",
+ "sha256": "4d0a09e2779697d71bbc9df9cb987f809b05849bc58344f759e8db41d9beb782",
+ "decompiler": "ILSpyCmd 11.1.0.9782",
+ "framework": [
+ ".NETCoreApp,Version=v10.0"
+ ],
+ "source": "source/mprBaseLevel_2027.decompiled.cs",
+ "sourceLines": 2041,
+ "references": [
+ {
+ "name": "System.Runtime",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "RevitAPI",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "RevitAPIUI",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "ModPlusAPI",
+ "version": "1.0.0.0"
+ },
+ {
+ "name": "ModPlus_Revit_2027",
+ "version": "11.0.0.0"
+ },
+ {
+ "name": "System.Collections",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "ModPlusStyle",
+ "version": "1.0.0.0"
+ },
+ {
+ "name": "System.Xaml",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.ObjectModel",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Xml.ReaderWriter",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "PresentationFramework",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Linq",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Runtime.InteropServices",
+ "version": "10.0.0.0"
+ }
+ ],
+ "typeCount": 52,
+ "methodCount": 222,
+ "externalCommands": [
+ {
+ "class": "mprBaseLevel.Command",
+ "sourceLines": [
+ 64
+ ],
+ "registration": "declared IExternalCommand; use live ribbon to verify availability"
+ }
+ ],
+ "connectorMainCommands": [
+ "mprBaseLevel.Command"
+ ],
+ "connectorSubCommands": [],
+ "connectorButtonNames": [],
+ "algorithmClasses": [
+ {
+ "class": "mprBaseLevel.Command",
+ "kind": "algorithm_in_command",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "commandData",
+ "message",
+ "elements"
+ ],
+ "declarations": [
+ {
+ "line": 66,
+ "signature": "public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.GetElementService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetElements",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "scopeType",
+ "filter"
+ ],
+ "declarations": [
+ {
+ "line": 489,
+ "signature": "public List GetElements(ScopeType scopeType, ElementApplyFilter filter)"
+ }
+ ]
+ },
+ {
+ "name": "GetLevelsInModel",
+ "attributes": "Public, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 497,
+ "signature": "public List GetLevelsInModel()"
+ }
+ ]
+ },
+ {
+ "name": "GetVisibleLevelIds",
+ "attributes": "Public, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 508,
+ "signature": "public HashSet GetVisibleLevelIds()"
+ }
+ ]
+ },
+ {
+ "name": "GetClosestLevelModel",
+ "attributes": "Public, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 514,
+ "signature": "public LevelModel GetClosestLevelModel()"
+ }
+ ]
+ },
+ {
+ "name": "GetClosestBelowLevelModel",
+ "attributes": "Public, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 524,
+ "signature": "public LevelModel GetClosestBelowLevelModel()"
+ }
+ ]
+ },
+ {
+ "name": "GetClosestAboveLevelModel",
+ "attributes": "Public, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 534,
+ "signature": "public LevelModel GetClosestAboveLevelModel()"
+ }
+ ]
+ },
+ {
+ "name": "GetFakeLevelModel",
+ "attributes": "Public, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 544,
+ "signature": "public LevelModel GetFakeLevelModel()"
+ }
+ ]
+ },
+ {
+ "name": "GetNoBindLevelModel",
+ "attributes": "Public, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 554,
+ "signature": "public LevelModel GetNoBindLevelModel()"
+ }
+ ]
+ },
+ {
+ "name": "GetFilteredElementCollector",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "scopeType"
+ ],
+ "declarations": [
+ {
+ "line": 564,
+ "signature": "private FilteredElementCollector GetFilteredElementCollector(ScopeType scopeType)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetLevels",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "scopeType",
+ "configuration",
+ "resultService",
+ "levels",
+ "visibleLevelIds"
+ ],
+ "declarations": [
+ {
+ "line": 625,
+ "signature": "public Tuple, List> SetLevels(ScopeType scopeType, Configuration configuration, ResultService resultService, List levels, HashSet visibleLevelIds = null)"
+ }
+ ]
+ },
+ {
+ "name": "CanProcessFamily",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "familyInstance"
+ ],
+ "declarations": [
+ {
+ "line": 700,
+ "signature": "private bool CanProcessFamily(FamilyInstance familyInstance)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.StrategyFactory",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetStrategy",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "element",
+ "resultService"
+ ],
+ "declarations": [
+ {
+ "line": 723,
+ "signature": "public BaseStrategy GetStrategy(Element element, ResultService resultService)"
+ }
+ ]
+ },
+ {
+ "name": "IsLineElement",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "element"
+ ],
+ "declarations": [
+ {
+ "line": 800,
+ "signature": "private bool IsLineElement(Element element)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.BaseFamilyLevelStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 818,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.BaseLevelStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 871,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.BaseStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig, VtableLayoutMask, Abstract",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 911,
+ "signature": "public abstract bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ },
+ {
+ "name": "GetNewLevel",
+ "attributes": "Family, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel",
+ "isTopLevel"
+ ],
+ "declarations": [
+ {
+ "line": 913,
+ "signature": "protected Level GetNewLevel(Element element, LevelModel levelModel, bool isTopLevel = false)"
+ }
+ ]
+ },
+ {
+ "name": "TryGetCurrentLevel",
+ "attributes": "Family, HideBySig",
+ "parameters": [
+ "element",
+ "oldLevel",
+ "levelParam"
+ ],
+ "declarations": [
+ {
+ "line": 933,
+ "signature": "protected bool TryGetCurrentLevel(Element element, out Level oldLevel, BuiltInParameter levelParam = BuiltInParameter.INVALID)"
+ }
+ ]
+ },
+ {
+ "name": "SetOffSetParam",
+ "attributes": "Family, HideBySig",
+ "parameters": [
+ "element",
+ "parameter",
+ "newOffset"
+ ],
+ "declarations": [
+ {
+ "line": 958,
+ "signature": "protected void SetOffSetParam(Element element, BuiltInParameter parameter, double newOffset)"
+ }
+ ]
+ },
+ {
+ "name": "GetNewOffset",
+ "attributes": "Family, HideBySig",
+ "parameters": [
+ "element",
+ "parameter",
+ "newLevel",
+ "oldLevel"
+ ],
+ "declarations": [
+ {
+ "line": 967,
+ "signature": "protected double GetNewOffset(Element element, BuiltInParameter parameter, Level newLevel, Level oldLevel)"
+ }
+ ]
+ },
+ {
+ "name": "SetLevelParam",
+ "attributes": "Family, HideBySig",
+ "parameters": [
+ "element",
+ "builtInParameter",
+ "newLevel"
+ ],
+ "declarations": [
+ {
+ "line": 974,
+ "signature": "protected void SetLevelParam(Element element, BuiltInParameter builtInParameter, Level newLevel)"
+ }
+ ]
+ },
+ {
+ "name": "IsSameLevelInParam",
+ "attributes": "Family, HideBySig",
+ "parameters": [
+ "element",
+ "builtInParameter",
+ "newLevel"
+ ],
+ "declarations": [
+ {
+ "line": 988,
+ "signature": "protected bool IsSameLevelInParam(Element element, BuiltInParameter builtInParameter, Level newLevel)"
+ }
+ ]
+ },
+ {
+ "name": "GetClosestLevel",
+ "attributes": "Family, HideBySig",
+ "parameters": [
+ "referenceZ",
+ "minElevation",
+ "direction"
+ ],
+ "declarations": [
+ {
+ "line": 1006,
+ "signature": "protected Level GetClosestLevel(double referenceZ, double? minElevation, LevelSearchDirection direction)"
+ },
+ {
+ "line": 1044,
+ "signature": "private Level GetClosestLevel(Element element, bool isTopLevel, LevelSearchDirection direction)"
+ }
+ ]
+ },
+ {
+ "name": "GetClosestLevel",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "element",
+ "isTopLevel",
+ "direction"
+ ],
+ "declarations": [
+ {
+ "line": 1006,
+ "signature": "protected Level GetClosestLevel(double referenceZ, double? minElevation, LevelSearchDirection direction)"
+ },
+ {
+ "line": 1044,
+ "signature": "private Level GetClosestLevel(Element element, bool isTopLevel, LevelSearchDirection direction)"
+ }
+ ]
+ },
+ {
+ "name": "GetNearest",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "below",
+ "above",
+ "referenceZ"
+ ],
+ "declarations": [
+ {
+ "line": 1054,
+ "signature": "private static Level GetNearest(Level below, Level above, double referenceZ)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.CeilingsStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1080,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.ColumnStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1123,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ },
+ {
+ "name": "SetNewTopLevel",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "element",
+ "topLevelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1147,
+ "signature": "public bool SetNewTopLevel(Element element, LevelModel topLevelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.DefaultNonLineNoHostStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1190,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ },
+ {
+ "name": "SetNewTopLevel",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "element",
+ "topLevelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1214,
+ "signature": "public bool SetNewTopLevel(Element element, LevelModel topLevelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.DefaultNonLineStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1251,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.FloorStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1288,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.GroupLevelStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1325,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.INoTopBind",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNoBind",
+ "attributes": "Public, Virtual, HideBySig, VtableLayoutMask, Abstract",
+ "parameters": [
+ "element"
+ ],
+ "declarations": [
+ {
+ "line": 1351,
+ "signature": "bool SetNoBind(Element element)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.ITopLevel",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewTopLevel",
+ "attributes": "Public, Virtual, HideBySig, VtableLayoutMask, Abstract",
+ "parameters": [
+ "element",
+ "topLevelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1355,
+ "signature": "bool SetNewTopLevel(Element element, LevelModel topLevelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.LevelStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1370,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.OpeningStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1407,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.RailingsStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1444,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.RoofStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1481,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.RoomStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1515,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ },
+ {
+ "name": "SetNewTopLevel",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "element",
+ "topLevelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1539,
+ "signature": "public bool SetNewTopLevel(Element element, LevelModel topLevelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.StairsStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1582,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ },
+ {
+ "name": "SetNewTopLevel",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "element",
+ "topLevelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1606,
+ "signature": "public bool SetNewTopLevel(Element element, LevelModel topLevelModel)"
+ }
+ ]
+ },
+ {
+ "name": "SetNoBind",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "element"
+ ],
+ "declarations": [
+ {
+ "line": 1648,
+ "signature": "public bool SetNoBind(Element element)"
+ }
+ ]
+ },
+ {
+ "name": "GetClosestTopLevel",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "element",
+ "direction"
+ ],
+ "declarations": [
+ {
+ "line": 1654,
+ "signature": "private Level GetClosestTopLevel(Element element, LevelSearchDirection direction)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.StructuralFramingStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1669,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBaseLevel.Services.SetLevelStrategies.WallStrategy",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetNewLevel",
+ "attributes": "Public, Virtual, HideBySig",
+ "parameters": [
+ "element",
+ "levelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1725,
+ "signature": "public override bool SetNewLevel(Element element, LevelModel levelModel)"
+ }
+ ]
+ },
+ {
+ "name": "SetNewTopLevel",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "element",
+ "topLevelModel"
+ ],
+ "declarations": [
+ {
+ "line": 1749,
+ "signature": "public bool SetNewTopLevel(Element element, LevelModel topLevelModel)"
+ }
+ ]
+ },
+ {
+ "name": "SetNoBind",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "element"
+ ],
+ "declarations": [
+ {
+ "line": 1785,
+ "signature": "public bool SetNoBind(Element element)"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "dependencyMarkers": {
+ "interactiveSelection": [
+ "PickObjects"
+ ],
+ "usesCurrentSelection": true,
+ "dialogs": [
+ "ShowModal"
+ ],
+ "transactionTypes": [
+ "Autodesk.Revit.DB.Transaction",
+ "Autodesk.Revit.DB.TransactionGroup"
+ ],
+ "modplusGlobalContext": true,
+ "externalEvents": false,
+ "fileOperations": []
+ },
+ "decompilerWarnings": {},
+ "sourceSyntaxErrors": 0,
+ "adapterStatus": "source_and_entrypoints_mapped_adapter_required",
+ "runtimeVerified": false
+ },
+ {
+ "module": "mprBeamsReinforcement",
+ "title": "Армирование балок",
+ "description": "Анализ, группировка и армирование балок по заданным условиям",
+ "groups": [
+ "Конструкции"
+ ],
+ "available2027": true,
+ "installedVersions": [
+ "2020",
+ "2024",
+ "2026",
+ "2027"
+ ],
+ "subcommands": [],
+ "assembly": "mprBeamsReinforcement_2027",
+ "fileVersion": "2.3.14.0",
+ "sha256": "1fe11e2bab4d8402737e7cf05ec5238621ecca59d95dfc5c4b0923779eb9fb65",
+ "decompiler": "ILSpyCmd 11.1.0.9782",
+ "framework": [
+ ".NETCoreApp,Version=v10.0"
+ ],
+ "source": "source/mprBeamsReinforcement_2027.decompiled.cs",
+ "sourceLines": 17730,
+ "references": [
+ {
+ "name": "System.Runtime",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "WindowsBase",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "PresentationFramework",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Xaml",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "PresentationCore",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "ModPlus.Xaml.Behaviors.Wpf",
+ "version": "1.1.39.0"
+ },
+ {
+ "name": "System.Collections",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.ObjectModel",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "RevitAPI",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "ModPlusAPI",
+ "version": "1.0.0.0"
+ },
+ {
+ "name": "ModPlus_Revit_2027",
+ "version": "11.0.0.0"
+ },
+ {
+ "name": "ModPlusStyle",
+ "version": "1.0.0.0"
+ },
+ {
+ "name": "System.Xml.XmlSerializer",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Xml.XDocument",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Xml.ReaderWriter",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Linq",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "RevitAPIUI",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "System.Threading",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Runtime.InteropServices",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "RevitAPIIFC",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "System.Memory",
+ "version": "10.0.0.0"
+ }
+ ],
+ "typeCount": 277,
+ "methodCount": 2265,
+ "externalCommands": [
+ {
+ "class": "mprBeamsReinforcement.Application.Command",
+ "sourceLines": [
+ 17440
+ ],
+ "registration": "declared IExternalCommand; use live ribbon to verify availability"
+ }
+ ],
+ "connectorMainCommands": [
+ "mprBeamsReinforcement.Application.Command"
+ ],
+ "connectorSubCommands": [],
+ "connectorButtonNames": [],
+ "algorithmClasses": [
+ {
+ "class": "Reinforcement.Common.Utils.UnionRebarService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "AddItems",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "items"
+ ],
+ "declarations": [
+ {
+ "line": 1066,
+ "signature": "public void AddItems(IEnumerable items)"
+ }
+ ]
+ },
+ {
+ "name": "Union",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "resultService"
+ ],
+ "declarations": [
+ {
+ "line": 1071,
+ "signature": "public void Union(ResultService resultService)"
+ }
+ ]
+ },
+ {
+ "name": "InternalUnion",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "resultService"
+ ],
+ "declarations": [
+ {
+ "line": 1091,
+ "signature": "private void InternalUnion(ResultService resultService)"
+ }
+ ]
+ },
+ {
+ "name": "HasIntersection",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "unionRebarItems",
+ "unionRebarItem"
+ ],
+ "declarations": [
+ {
+ "line": 1211,
+ "signature": "private static bool HasIntersection(IEnumerable unionRebarItems, UnionRebarItem unionRebarItem)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Utils.CreateRebarUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetCenterLineCurves",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "rebar"
+ ],
+ "declarations": [
+ {
+ "line": 1218,
+ "signature": "public static IList GetCenterLineCurves(this Rebar rebar)"
+ },
+ {
+ "line": 1223,
+ "signature": "public static IList GetCenterLineCurves(this RebarInSystem rebar)"
+ }
+ ]
+ },
+ {
+ "name": "GetCenterLineCurves",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "rebar"
+ ],
+ "declarations": [
+ {
+ "line": 1218,
+ "signature": "public static IList GetCenterLineCurves(this Rebar rebar)"
+ },
+ {
+ "line": 1223,
+ "signature": "public static IList GetCenterLineCurves(this RebarInSystem rebar)"
+ }
+ ]
+ },
+ {
+ "name": "GetRebarShapeDefinitionSafe",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "rebarShape"
+ ],
+ "declarations": [
+ {
+ "line": 1228,
+ "signature": "public static RebarShapeDefinition GetRebarShapeDefinitionSafe(this RebarShape rebarShape)"
+ }
+ ]
+ },
+ {
+ "name": "GetModelDiameterInMm",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "rebar"
+ ],
+ "declarations": [
+ {
+ "line": 1240,
+ "signature": "public static double GetModelDiameterInMm(this Rebar rebar)"
+ }
+ ]
+ },
+ {
+ "name": "GetRadiusForPshapedRebarInFt",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "rebarBarType"
+ ],
+ "declarations": [
+ {
+ "line": 1246,
+ "signature": "public static double GetRadiusForPshapedRebarInFt(RebarBarType rebarBarType)"
+ }
+ ]
+ },
+ {
+ "name": "CreateRebar",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "namedShape",
+ "rebarBarTypeWrapper",
+ "data",
+ "resultService",
+ "rebarBarType",
+ "cShapedHookOnLeft"
+ ],
+ "declarations": [
+ {
+ "line": 1256,
+ "signature": "public static Rebar CreateRebar(RebarNamedShape namedShape, RebarBarTypeWrapper rebarBarTypeWrapper, RebarCreationData data, ResultService resultService, RebarBarType rebarBarType = null, bool cShapedHookOnLeft = false)"
+ }
+ ]
+ },
+ {
+ "name": "MoveOnOtherSide",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "rebar",
+ "inversedNormal",
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 1305,
+ "signature": "private static void MoveOnOtherSide(Rebar rebar, bool inversedNormal, RebarCreationData data)"
+ }
+ ]
+ },
+ {
+ "name": "GetDefaultHookAngle",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "namedShape"
+ ],
+ "declarations": [
+ {
+ "line": 1313,
+ "signature": "private static double GetDefaultHookAngle(RebarNamedShape namedShape)"
+ }
+ ]
+ },
+ {
+ "name": "HookPostProcessing",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "rebar",
+ "data",
+ "namedShape",
+ "cShapedHookOnLeft"
+ ],
+ "declarations": [
+ {
+ "line": 1322,
+ "signature": "private static void HookPostProcessing(Rebar rebar, RebarCreationData data, RebarNamedShape namedShape, bool cShapedHookOnLeft)"
+ }
+ ]
+ },
+ {
+ "name": "GetVectorFromPoint",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "arc",
+ "basePoint"
+ ],
+ "declarations": [
+ {
+ "line": 1447,
+ "signature": "private static XYZ GetVectorFromPoint(Autodesk.Revit.DB.Arc arc, XYZ basePoint)"
+ }
+ ]
+ },
+ {
+ "name": "GetNearestArc",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "arcs",
+ "point"
+ ],
+ "declarations": [
+ {
+ "line": 1459,
+ "signature": "private static Autodesk.Revit.DB.Arc GetNearestArc(IEnumerable arcs, XYZ point)"
+ }
+ ]
+ },
+ {
+ "name": "GetSimilarLine",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "curves",
+ "line"
+ ],
+ "declarations": [
+ {
+ "line": 1469,
+ "signature": "private static Autodesk.Revit.DB.Line GetSimilarLine(IList curves, Autodesk.Revit.DB.Line line)"
+ }
+ ]
+ },
+ {
+ "name": "IsBecomeNearAfterMirror",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "arc",
+ "reflectionPlane",
+ "checkPoint"
+ ],
+ "declarations": [
+ {
+ "line": 1477,
+ "signature": "private static bool IsBecomeNearAfterMirror(Autodesk.Revit.DB.Arc arc, Plane reflectionPlane, XYZ checkPoint)"
+ }
+ ]
+ },
+ {
+ "name": "RotateHook",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "rebar",
+ "endIndex"
+ ],
+ "declarations": [
+ {
+ "line": 1485,
+ "signature": "private static void RotateHook(Rebar rebar, int endIndex)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Utils.ElementUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetValidElementIds",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "doc",
+ "advancedElements"
+ ],
+ "declarations": [
+ {
+ "line": 1499,
+ "signature": "public static List GetValidElementIds(Document doc, IEnumerable advancedElements)"
+ }
+ ]
+ },
+ {
+ "name": "ElementExists",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "advancedElement"
+ ],
+ "declarations": [
+ {
+ "line": 1518,
+ "signature": "public static bool ElementExists(this IAdvancedElement advancedElement)"
+ },
+ {
+ "line": 1530,
+ "signature": "public static bool ElementExists(this Element element)"
+ }
+ ]
+ },
+ {
+ "name": "ElementExists",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element"
+ ],
+ "declarations": [
+ {
+ "line": 1518,
+ "signature": "public static bool ElementExists(this IAdvancedElement advancedElement)"
+ },
+ {
+ "line": 1530,
+ "signature": "public static bool ElementExists(this Element element)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Utils.GeomUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "IsPointBelongs",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "line",
+ "point"
+ ],
+ "declarations": [
+ {
+ "line": 1557,
+ "signature": "public static bool IsPointBelongs(this Autodesk.Revit.DB.Line line, XYZ point)"
+ },
+ {
+ "line": 1562,
+ "signature": "public static bool IsPointBelongs(this Autodesk.Revit.DB.Line line, XYZ point, bool includeEndPoints)"
+ }
+ ]
+ },
+ {
+ "name": "IsPointBelongs",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "line",
+ "point",
+ "includeEndPoints"
+ ],
+ "declarations": [
+ {
+ "line": 1557,
+ "signature": "public static bool IsPointBelongs(this Autodesk.Revit.DB.Line line, XYZ point)"
+ },
+ {
+ "line": 1562,
+ "signature": "public static bool IsPointBelongs(this Autodesk.Revit.DB.Line line, XYZ point, bool includeEndPoints)"
+ }
+ ]
+ },
+ {
+ "name": "IsPointInside",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "polygon",
+ "point"
+ ],
+ "declarations": [
+ {
+ "line": 1591,
+ "signature": "public static bool IsPointInside(List polygon, XYZ point)"
+ }
+ ]
+ },
+ {
+ "name": "GetCenterPoint",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "points"
+ ],
+ "declarations": [
+ {
+ "line": 1609,
+ "signature": "public static XYZ GetCenterPoint(this List points)"
+ },
+ {
+ "line": 1617,
+ "signature": "public static XYZ GetCenterPoint(this CurveLoop curveLoop)"
+ },
+ {
+ "line": 1627,
+ "signature": "public static XYZ GetCenterPoint(this PlanarFace planarFace)"
+ }
+ ]
+ },
+ {
+ "name": "GetCenterPoint",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "curveLoop"
+ ],
+ "declarations": [
+ {
+ "line": 1609,
+ "signature": "public static XYZ GetCenterPoint(this List points)"
+ },
+ {
+ "line": 1617,
+ "signature": "public static XYZ GetCenterPoint(this CurveLoop curveLoop)"
+ },
+ {
+ "line": 1627,
+ "signature": "public static XYZ GetCenterPoint(this PlanarFace planarFace)"
+ }
+ ]
+ },
+ {
+ "name": "GetCenterPoint",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "planarFace"
+ ],
+ "declarations": [
+ {
+ "line": 1609,
+ "signature": "public static XYZ GetCenterPoint(this List points)"
+ },
+ {
+ "line": 1617,
+ "signature": "public static XYZ GetCenterPoint(this CurveLoop curveLoop)"
+ },
+ {
+ "line": 1627,
+ "signature": "public static XYZ GetCenterPoint(this PlanarFace planarFace)"
+ }
+ ]
+ },
+ {
+ "name": "CreateWithZeroZ",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "lineFrom"
+ ],
+ "declarations": [
+ {
+ "line": 1642,
+ "signature": "public static Autodesk.Revit.DB.Line CreateWithZeroZ(this Autodesk.Revit.DB.Line lineFrom)"
+ }
+ ]
+ },
+ {
+ "name": "CreateWithZ",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "lineFrom",
+ "z"
+ ],
+ "declarations": [
+ {
+ "line": 1647,
+ "signature": "public static Autodesk.Revit.DB.Line CreateWithZ(this Autodesk.Revit.DB.Line lineFrom, double z)"
+ }
+ ]
+ },
+ {
+ "name": "GetWithZ",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "point",
+ "z"
+ ],
+ "declarations": [
+ {
+ "line": 1658,
+ "signature": "public static XYZ GetWithZ(this XYZ point, double z)"
+ }
+ ]
+ },
+ {
+ "name": "GetMinDistanceBetweenEndPoints",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "line1",
+ "line2"
+ ],
+ "declarations": [
+ {
+ "line": 1663,
+ "signature": "public static double GetMinDistanceBetweenEndPoints(Autodesk.Revit.DB.Line line1, Autodesk.Revit.DB.Line line2)"
+ }
+ ]
+ },
+ {
+ "name": "GetFurthestPoint",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "fromPoint",
+ "line"
+ ],
+ "declarations": [
+ {
+ "line": 1678,
+ "signature": "public static XYZ GetFurthestPoint(XYZ fromPoint, Autodesk.Revit.DB.Line line)"
+ },
+ {
+ "line": 1689,
+ "signature": "public static XYZ GetFurthestPoint(this IEnumerable points, XYZ fromPoint)"
+ }
+ ]
+ },
+ {
+ "name": "GetFurthestPoint",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "points",
+ "fromPoint"
+ ],
+ "declarations": [
+ {
+ "line": 1678,
+ "signature": "public static XYZ GetFurthestPoint(XYZ fromPoint, Autodesk.Revit.DB.Line line)"
+ },
+ {
+ "line": 1689,
+ "signature": "public static XYZ GetFurthestPoint(this IEnumerable points, XYZ fromPoint)"
+ }
+ ]
+ },
+ {
+ "name": "AddIfNotSimilar",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "points",
+ "point",
+ "tolerance"
+ ],
+ "declarations": [
+ {
+ "line": 1705,
+ "signature": "public static void AddIfNotSimilar(this List points, XYZ point, double? tolerance = null)"
+ }
+ ]
+ },
+ {
+ "name": "IsParallelTo",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element1",
+ "element2"
+ ],
+ "declarations": [
+ {
+ "line": 1717,
+ "signature": "public static bool IsParallelTo(this BaseLinearAdvancedElement element1, BaseLinearAdvancedElement element2)"
+ },
+ {
+ "line": 1722,
+ "signature": "public static bool IsParallelTo(this BaseLinearAdvancedElement element1, Element element2)"
+ }
+ ]
+ },
+ {
+ "name": "IsParallelTo",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element1",
+ "element2"
+ ],
+ "declarations": [
+ {
+ "line": 1717,
+ "signature": "public static bool IsParallelTo(this BaseLinearAdvancedElement element1, BaseLinearAdvancedElement element2)"
+ },
+ {
+ "line": 1722,
+ "signature": "public static bool IsParallelTo(this BaseLinearAdvancedElement element1, Element element2)"
+ }
+ ]
+ },
+ {
+ "name": "Divide",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "curve",
+ "step"
+ ],
+ "declarations": [
+ {
+ "line": 1727,
+ "signature": "public static IEnumerable Divide(this Curve curve, double step)"
+ }
+ ]
+ },
+ {
+ "name": "GetInsideLine",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "solid",
+ "line",
+ "accountForGaps"
+ ],
+ "declarations": [
+ {
+ "line": 1753,
+ "signature": "public static Autodesk.Revit.DB.Line GetInsideLine(this Solid solid, Autodesk.Revit.DB.Line line, bool accountForGaps = false)"
+ }
+ ]
+ },
+ {
+ "name": "HasIntersection",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "curves",
+ "curve"
+ ],
+ "declarations": [
+ {
+ "line": 1807,
+ "signature": "public static bool HasIntersection(this List curves, Curve curve)"
+ }
+ ]
+ },
+ {
+ "name": "GetSolid",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "element",
+ "transform"
+ ],
+ "declarations": [
+ {
+ "line": 1819,
+ "signature": "public static Solid GetSolid(Element element, Autodesk.Revit.DB.Transform transform = null)"
+ }
+ ]
+ },
+ {
+ "name": "CreateLongerLineFromTwoLines",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "line1",
+ "line2"
+ ],
+ "declarations": [
+ {
+ "line": 1831,
+ "signature": "public static Autodesk.Revit.DB.Line CreateLongerLineFromTwoLines(Autodesk.Revit.DB.Line line1, Autodesk.Revit.DB.Line line2)"
+ }
+ ]
+ },
+ {
+ "name": "IsLieOnAnyPlanarFace",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "curve",
+ "planarFaces"
+ ],
+ "declarations": [
+ {
+ "line": 1873,
+ "signature": "public static bool IsLieOnAnyPlanarFace(this Curve curve, IEnumerable planarFaces)"
+ }
+ ]
+ },
+ {
+ "name": "IsEqualTo",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "line",
+ "checkedLine"
+ ],
+ "declarations": [
+ {
+ "line": 1892,
+ "signature": "public static bool IsEqualTo(this Autodesk.Revit.DB.Line line, Autodesk.Revit.DB.Line checkedLine)"
+ }
+ ]
+ },
+ {
+ "name": "HasEqualLine",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "lines",
+ "line"
+ ],
+ "declarations": [
+ {
+ "line": 1905,
+ "signature": "public static bool HasEqualLine(this List lines, Autodesk.Revit.DB.Line line)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Utils.IntersectionUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetElementsIntersectedWithCurveByEnd",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "linearAdvancedElement",
+ "allSelectedElements",
+ "end"
+ ],
+ "declarations": [
+ {
+ "line": 1912,
+ "signature": "public static List GetElementsIntersectedWithCurveByEnd(BaseLinearAdvancedElement linearAdvancedElement, IEnumerable allSelectedElements, int end)"
+ }
+ ]
+ },
+ {
+ "name": "GetIntersectionPoint",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "firstElementLocationLine",
+ "secondElementLocationLine"
+ ],
+ "declarations": [
+ {
+ "line": 1929,
+ "signature": "public static XYZ GetIntersectionPoint(Autodesk.Revit.DB.Line firstElementLocationLine, Autodesk.Revit.DB.Line secondElementLocationLine)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsDataForCornerIntersection",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 1947,
+ "signature": "public static void CreateDetailsDataForCornerIntersection(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsDataForTShapedIntersection",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 1971,
+ "signature": "public static void CreateDetailsDataForTShapedIntersection(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsDataForCrossIntersection",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 1992,
+ "signature": "public static void CreateDetailsDataForCrossIntersection(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsDataForIntersectionCornerTypeA",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 2002,
+ "signature": "private static void CreateDetailsDataForIntersectionCornerTypeA(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsDataForIntersectionCornerTypeB",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 2026,
+ "signature": "private static void CreateDetailsDataForIntersectionCornerTypeB(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsDataForIntersectionCornerTypeC",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 2055,
+ "signature": "private static void CreateDetailsDataForIntersectionCornerTypeC(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsDataForIntersectionCornerTypeD",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 2091,
+ "signature": "private static void CreateDetailsDataForIntersectionCornerTypeD(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsDataForIntersectionCornerTypeE",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 2126,
+ "signature": "private static void CreateDetailsDataForIntersectionCornerTypeE(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsDataForIntersectionTShapedTypeA",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 2158,
+ "signature": "private static void CreateDetailsDataForIntersectionTShapedTypeA(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsDataForIntersectionTShapedTypeB",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 2173,
+ "signature": "private static void CreateDetailsDataForIntersectionTShapedTypeB(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsDataForIntersectionTshapedTypeC",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 2200,
+ "signature": "private static void CreateDetailsDataForIntersectionTshapedTypeC(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsDataForIntersectionTShapedTypeD",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 2231,
+ "signature": "private static void CreateDetailsDataForIntersectionTShapedTypeD(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "CreateDetailsForIntersectionCrossTypeA",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 2267,
+ "signature": "private static void CreateDetailsForIntersectionCrossTypeA(IntersectionsDetailData data)"
+ }
+ ]
+ },
+ {
+ "name": "GetCurvesForLShapedRebar",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "basePoint",
+ "firstEndDirection",
+ "firstEndLength",
+ "firstElementEndCoverInMm",
+ "secondEndDirection",
+ "secondEndLength",
+ "secondElementEndCoverInMm",
+ "unionSolid"
+ ],
+ "declarations": [
+ {
+ "line": 2315,
+ "signature": "private static List GetCurvesForLShapedRebar(XYZ basePoint, XYZ firstEndDirection, double firstEndLength, int firstElementEndCoverInMm, XYZ secondEndDirection, double secondEndLength, int secondElementEndCoverInMm, Solid unionSolid)"
+ }
+ ]
+ },
+ {
+ "name": "GetCurvesForLinearRebar",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "basePoint",
+ "elementVector",
+ "leftLength",
+ "rightLength",
+ "endCoverInMm",
+ "unionSolid"
+ ],
+ "declarations": [
+ {
+ "line": 2332,
+ "signature": "private static List GetCurvesForLinearRebar(XYZ basePoint, XYZ elementVector, double leftLength, double rightLength, int endCoverInMm, Solid unionSolid)"
+ }
+ ]
+ },
+ {
+ "name": "GetCurvesForBowRebar",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "basePoint",
+ "firstEndDirection",
+ "inFirstWallLeftLength",
+ "inFirstWallRightLength",
+ "secondEndDirection",
+ "inSecondWallLeftLength",
+ "inSecondWallRightLength",
+ "firstElementEndCoverInMm",
+ "secondElementEndCoverInMm",
+ "unionSolid"
+ ],
+ "declarations": [
+ {
+ "line": 2357,
+ "signature": "private static List GetCurvesForBowRebar(XYZ basePoint, XYZ firstEndDirection, double inFirstWallLeftLength, double inFirstWallRightLength, XYZ secondEndDirection, double inSecondWallLeftLength, double inSecondWallRightLength, int firstElementEndCoverInMm, int secondElementEndCoverInMm, Solid unionSolid)"
+ }
+ ]
+ },
+ {
+ "name": "GetCurvesForUShapedRebar",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "basePoint",
+ "endDirection",
+ "outsidePoint",
+ "leftLengthInFt",
+ "rightLengthInFt",
+ "detailWidthInFt",
+ "linearAdvancedElement",
+ "rebarBarType",
+ "angleInRad",
+ "unionSolid"
+ ],
+ "declarations": [
+ {
+ "line": 2383,
+ "signature": "private static List GetCurvesForUShapedRebar(XYZ basePoint, XYZ endDirection, XYZ outsidePoint, double leftLengthInFt, double rightLengthInFt, double detailWidthInFt, BaseLinearAdvancedElement linearAdvancedElement, RebarBarType rebarBarType, double angleInRad, Solid unionSolid)"
+ },
+ {
+ "line": 2413,
+ "signature": "public static List GetCurvesForUShapedRebar(XYZ basePoint, XYZ endDirection, double centerLengthInFt, Autodesk.Revit.DB.Line outsideBasePointLine, double detailWidthInFt, BaseLinearAdvancedElement linearAdvancedElement, RebarBarType rebarBarType)"
+ }
+ ]
+ },
+ {
+ "name": "GetCurvesForUShapedRebar",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "basePoint",
+ "endDirection",
+ "centerLengthInFt",
+ "outsideBasePointLine",
+ "detailWidthInFt",
+ "linearAdvancedElement",
+ "rebarBarType"
+ ],
+ "declarations": [
+ {
+ "line": 2383,
+ "signature": "private static List GetCurvesForUShapedRebar(XYZ basePoint, XYZ endDirection, XYZ outsidePoint, double leftLengthInFt, double rightLengthInFt, double detailWidthInFt, BaseLinearAdvancedElement linearAdvancedElement, RebarBarType rebarBarType, double angleInRad, Solid unionSolid)"
+ },
+ {
+ "line": 2413,
+ "signature": "public static List GetCurvesForUShapedRebar(XYZ basePoint, XYZ endDirection, double centerLengthInFt, Autodesk.Revit.DB.Line outsideBasePointLine, double detailWidthInFt, BaseLinearAdvancedElement linearAdvancedElement, RebarBarType rebarBarType)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Utils.MathUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetBigger",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "d1",
+ "d2"
+ ],
+ "declarations": [
+ {
+ "line": 2449,
+ "signature": "public static double GetBigger(double d1, double d2)"
+ },
+ {
+ "line": 2454,
+ "signature": "public static double GetBigger(int d1, int d2)"
+ }
+ ]
+ },
+ {
+ "name": "GetBigger",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "d1",
+ "d2"
+ ],
+ "declarations": [
+ {
+ "line": 2449,
+ "signature": "public static double GetBigger(double d1, double d2)"
+ },
+ {
+ "line": 2454,
+ "signature": "public static double GetBigger(int d1, int d2)"
+ }
+ ]
+ },
+ {
+ "name": "GetSmaller",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "d1",
+ "d2"
+ ],
+ "declarations": [
+ {
+ "line": 2459,
+ "signature": "public static double GetSmaller(double d1, double d2)"
+ },
+ {
+ "line": 2464,
+ "signature": "public static double GetSmaller(int d1, int d2)"
+ }
+ ]
+ },
+ {
+ "name": "GetSmaller",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "d1",
+ "d2"
+ ],
+ "declarations": [
+ {
+ "line": 2459,
+ "signature": "public static double GetSmaller(double d1, double d2)"
+ },
+ {
+ "line": 2464,
+ "signature": "public static double GetSmaller(int d1, int d2)"
+ }
+ ]
+ },
+ {
+ "name": "GetArcLength",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "radius",
+ "angleDegree"
+ ],
+ "declarations": [
+ {
+ "line": 2469,
+ "signature": "public static double GetArcLength(double radius, double angleDegree)"
+ }
+ ]
+ },
+ {
+ "name": "GetAngleDegreeFromArcLength",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "arcLength",
+ "radius"
+ ],
+ "declarations": [
+ {
+ "line": 2474,
+ "signature": "public static double GetAngleDegreeFromArcLength(double arcLength, double radius)"
+ }
+ ]
+ },
+ {
+ "name": "GetCircleLength",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "radius"
+ ],
+ "declarations": [
+ {
+ "line": 2479,
+ "signature": "public static double GetCircleLength(double radius)"
+ }
+ ]
+ },
+ {
+ "name": "GetCatheter",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "hypotenuse"
+ ],
+ "declarations": [
+ {
+ "line": 2484,
+ "signature": "public static double GetCatheter(this double hypotenuse)"
+ }
+ ]
+ },
+ {
+ "name": "Rotate",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "vector",
+ "radians"
+ ],
+ "declarations": [
+ {
+ "line": 2489,
+ "signature": "public static Vector Rotate(this Vector vector, double radians)"
+ }
+ ]
+ },
+ {
+ "name": "GetRounded",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "point",
+ "digits"
+ ],
+ "declarations": [
+ {
+ "line": 2494,
+ "signature": "public static System.Windows.Point GetRounded(this System.Windows.Point point, int digits = 0)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Utils.RebarCoverUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "SetZeroRebarCover",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "floor"
+ ],
+ "declarations": [
+ {
+ "line": 2503,
+ "signature": "public static void SetZeroRebarCover(this Floor floor)"
+ }
+ ]
+ },
+ {
+ "name": "SetRebarCover",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "familyInstance",
+ "coverInMm",
+ "coverTop",
+ "coverBottom",
+ "coverOther"
+ ],
+ "declarations": [
+ {
+ "line": 2511,
+ "signature": "public static void SetRebarCover(this FamilyInstance familyInstance, double coverInMm, bool coverTop = true, bool coverBottom = true, bool coverOther = true)"
+ },
+ {
+ "line": 2537,
+ "signature": "public static void SetRebarCover(this Floor floor, double coverInMm, bool coverTop = true, bool coverBottom = true, bool coverOther = true)"
+ },
+ {
+ "line": 2563,
+ "signature": "public static void SetRebarCover(this Floor floor, double topCoverInMm, double bottomCoverInMm, double otherCoverInMm)"
+ },
+ {
+ "line": 2585,
+ "signature": "public static void SetRebarCover(this Wall wall, double coverInMm, bool coverExterior = true, bool coverInterior = true, bool coverOther = true)"
+ }
+ ]
+ },
+ {
+ "name": "SetRebarCover",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "floor",
+ "coverInMm",
+ "coverTop",
+ "coverBottom",
+ "coverOther"
+ ],
+ "declarations": [
+ {
+ "line": 2511,
+ "signature": "public static void SetRebarCover(this FamilyInstance familyInstance, double coverInMm, bool coverTop = true, bool coverBottom = true, bool coverOther = true)"
+ },
+ {
+ "line": 2537,
+ "signature": "public static void SetRebarCover(this Floor floor, double coverInMm, bool coverTop = true, bool coverBottom = true, bool coverOther = true)"
+ },
+ {
+ "line": 2563,
+ "signature": "public static void SetRebarCover(this Floor floor, double topCoverInMm, double bottomCoverInMm, double otherCoverInMm)"
+ },
+ {
+ "line": 2585,
+ "signature": "public static void SetRebarCover(this Wall wall, double coverInMm, bool coverExterior = true, bool coverInterior = true, bool coverOther = true)"
+ }
+ ]
+ },
+ {
+ "name": "SetRebarCover",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "floor",
+ "topCoverInMm",
+ "bottomCoverInMm",
+ "otherCoverInMm"
+ ],
+ "declarations": [
+ {
+ "line": 2511,
+ "signature": "public static void SetRebarCover(this FamilyInstance familyInstance, double coverInMm, bool coverTop = true, bool coverBottom = true, bool coverOther = true)"
+ },
+ {
+ "line": 2537,
+ "signature": "public static void SetRebarCover(this Floor floor, double coverInMm, bool coverTop = true, bool coverBottom = true, bool coverOther = true)"
+ },
+ {
+ "line": 2563,
+ "signature": "public static void SetRebarCover(this Floor floor, double topCoverInMm, double bottomCoverInMm, double otherCoverInMm)"
+ },
+ {
+ "line": 2585,
+ "signature": "public static void SetRebarCover(this Wall wall, double coverInMm, bool coverExterior = true, bool coverInterior = true, bool coverOther = true)"
+ }
+ ]
+ },
+ {
+ "name": "SetRebarCover",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "wall",
+ "coverInMm",
+ "coverExterior",
+ "coverInterior",
+ "coverOther"
+ ],
+ "declarations": [
+ {
+ "line": 2511,
+ "signature": "public static void SetRebarCover(this FamilyInstance familyInstance, double coverInMm, bool coverTop = true, bool coverBottom = true, bool coverOther = true)"
+ },
+ {
+ "line": 2537,
+ "signature": "public static void SetRebarCover(this Floor floor, double coverInMm, bool coverTop = true, bool coverBottom = true, bool coverOther = true)"
+ },
+ {
+ "line": 2563,
+ "signature": "public static void SetRebarCover(this Floor floor, double topCoverInMm, double bottomCoverInMm, double otherCoverInMm)"
+ },
+ {
+ "line": 2585,
+ "signature": "public static void SetRebarCover(this Wall wall, double coverInMm, bool coverExterior = true, bool coverInterior = true, bool coverOther = true)"
+ }
+ ]
+ },
+ {
+ "name": "GetOrCreateCoverType",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "coverInMm"
+ ],
+ "declarations": [
+ {
+ "line": 2611,
+ "signature": "private static RebarCoverType GetOrCreateCoverType(double coverInMm)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Utils.RebarSketchUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "CreateReinforcementDataFromParallelLines",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "rebarLines",
+ "layoutDirection",
+ "host",
+ "oneLinePerRebar"
+ ],
+ "declarations": [
+ {
+ "line": 2628,
+ "signature": "public static List CreateReinforcementDataFromParallelLines(List rebarLines, XYZ layoutDirection, Element host, bool oneLinePerRebar)"
+ }
+ ]
+ },
+ {
+ "name": "CreateReinforcementDataFromShapeLists",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "shapeHolders",
+ "layoutDirection",
+ "host",
+ "setExtDataAction"
+ ],
+ "declarations": [
+ {
+ "line": 2695,
+ "signature": "public static List CreateReinforcementDataFromShapeLists(List shapeHolders, XYZ layoutDirection, Element host, Action setExtDataAction = null)"
+ }
+ ]
+ },
+ {
+ "name": "GetSpecifiedShapeRebarSortedDataFromPoints",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "points",
+ "layoutDirection",
+ "displacement",
+ "host",
+ "shapeCreateFunc"
+ ],
+ "declarations": [
+ {
+ "line": 2789,
+ "signature": "public static List GetSpecifiedShapeRebarSortedDataFromPoints(IReadOnlyList points, XYZ layoutDirection, double displacement, Element host, Func> shapeCreateFunc)"
+ }
+ ]
+ },
+ {
+ "name": "IsDetailGeometryEqual",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "curvesOfFirst",
+ "curvesOfSecond",
+ "helpPlane"
+ ],
+ "declarations": [
+ {
+ "line": 2861,
+ "signature": "public static bool IsDetailGeometryEqual(List curvesOfFirst, List curvesOfSecond, Plane helpPlane)"
+ }
+ ]
+ },
+ {
+ "name": "GetLineIntersectedWithSolid",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "checkedLine",
+ "constPoint",
+ "solid",
+ "coverInMm"
+ ],
+ "declarations": [
+ {
+ "line": 2894,
+ "signature": "public static Autodesk.Revit.DB.Line GetLineIntersectedWithSolid(Autodesk.Revit.DB.Line checkedLine, XYZ constPoint, Solid solid, int coverInMm)"
+ },
+ {
+ "line": 2931,
+ "signature": "public static Autodesk.Revit.DB.Line GetLineIntersectedWithSolid(Autodesk.Revit.DB.Line checkedLine, Solid solid, int coverInMm)"
+ }
+ ]
+ },
+ {
+ "name": "GetLineIntersectedWithSolid",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "checkedLine",
+ "solid",
+ "coverInMm"
+ ],
+ "declarations": [
+ {
+ "line": 2894,
+ "signature": "public static Autodesk.Revit.DB.Line GetLineIntersectedWithSolid(Autodesk.Revit.DB.Line checkedLine, XYZ constPoint, Solid solid, int coverInMm)"
+ },
+ {
+ "line": 2931,
+ "signature": "public static Autodesk.Revit.DB.Line GetLineIntersectedWithSolid(Autodesk.Revit.DB.Line checkedLine, Solid solid, int coverInMm)"
+ }
+ ]
+ },
+ {
+ "name": "DivideByHeightWithThickening",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "firstBottomZ",
+ "elementFullHeight",
+ "firstRebarOffset",
+ "lastRebarOffset",
+ "mainStepInFt",
+ "bottomThickening",
+ "bottomThickeningHeight",
+ "bottomThickeningStepInFt",
+ "topThickening",
+ "topThickeningHeight",
+ "topThickeningStepInFt",
+ "processZAction"
+ ],
+ "declarations": [
+ {
+ "line": 2983,
+ "signature": "public static void DivideByHeightWithThickening(double firstBottomZ, double elementFullHeight, double firstRebarOffset, double lastRebarOffset, double mainStepInFt, bool bottomThickening, double bottomThickeningHeight, double bottomThickeningStepInFt, bool topThickening, double topThickeningHeight, double topThickeningStepInFt, Action processZAction)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Utils.TransverseShapeUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "ToNamedShape",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "imageName",
+ "hookType"
+ ],
+ "declarations": [
+ {
+ "line": 3180,
+ "signature": "public static RebarNamedShape ToNamedShape(this TransverseShapeImageName imageName, TransverseShapeHookType hookType)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Services.RebarBendRuleService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "ClearShowedErrors",
+ "attributes": "Public, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3294,
+ "signature": "public void ClearShowedErrors()"
+ }
+ ]
+ },
+ {
+ "name": "CheckAndFixRebarBend",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "rebarBarType",
+ "showMessage"
+ ],
+ "declarations": [
+ {
+ "line": 3299,
+ "signature": "public void CheckAndFixRebarBend(RebarBarType rebarBarType, bool showMessage)"
+ }
+ ]
+ },
+ {
+ "name": "GetNormativeBendRadiusInMm",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "rebarBarType"
+ ],
+ "declarations": [
+ {
+ "line": 3332,
+ "signature": "public double GetNormativeBendRadiusInMm(RebarBarType rebarBarType)"
+ },
+ {
+ "line": 3339,
+ "signature": "public double GetNormativeBendRadiusInMm(RebarBarTypeWrapper rebarBarTypeWrapper, RebarNamedShape namedShape)"
+ },
+ {
+ "line": 3344,
+ "signature": "public double GetNormativeBendRadiusInMm(RebarBarTypeWrapper rebarBarTypeWrapper, RebarDeformationType deformationType)"
+ },
+ {
+ "line": 3349,
+ "signature": "public double GetNormativeBendRadiusInMm(double diameterInMm, RebarDeformationType rebarDeformationType)"
+ }
+ ]
+ },
+ {
+ "name": "GetNormativeBendRadiusInMm",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "rebarBarTypeWrapper",
+ "namedShape"
+ ],
+ "declarations": [
+ {
+ "line": 3332,
+ "signature": "public double GetNormativeBendRadiusInMm(RebarBarType rebarBarType)"
+ },
+ {
+ "line": 3339,
+ "signature": "public double GetNormativeBendRadiusInMm(RebarBarTypeWrapper rebarBarTypeWrapper, RebarNamedShape namedShape)"
+ },
+ {
+ "line": 3344,
+ "signature": "public double GetNormativeBendRadiusInMm(RebarBarTypeWrapper rebarBarTypeWrapper, RebarDeformationType deformationType)"
+ },
+ {
+ "line": 3349,
+ "signature": "public double GetNormativeBendRadiusInMm(double diameterInMm, RebarDeformationType rebarDeformationType)"
+ }
+ ]
+ },
+ {
+ "name": "GetNormativeBendRadiusInMm",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "rebarBarTypeWrapper",
+ "deformationType"
+ ],
+ "declarations": [
+ {
+ "line": 3332,
+ "signature": "public double GetNormativeBendRadiusInMm(RebarBarType rebarBarType)"
+ },
+ {
+ "line": 3339,
+ "signature": "public double GetNormativeBendRadiusInMm(RebarBarTypeWrapper rebarBarTypeWrapper, RebarNamedShape namedShape)"
+ },
+ {
+ "line": 3344,
+ "signature": "public double GetNormativeBendRadiusInMm(RebarBarTypeWrapper rebarBarTypeWrapper, RebarDeformationType deformationType)"
+ },
+ {
+ "line": 3349,
+ "signature": "public double GetNormativeBendRadiusInMm(double diameterInMm, RebarDeformationType rebarDeformationType)"
+ }
+ ]
+ },
+ {
+ "name": "GetNormativeBendRadiusInMm",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "diameterInMm",
+ "rebarDeformationType"
+ ],
+ "declarations": [
+ {
+ "line": 3332,
+ "signature": "public double GetNormativeBendRadiusInMm(RebarBarType rebarBarType)"
+ },
+ {
+ "line": 3339,
+ "signature": "public double GetNormativeBendRadiusInMm(RebarBarTypeWrapper rebarBarTypeWrapper, RebarNamedShape namedShape)"
+ },
+ {
+ "line": 3344,
+ "signature": "public double GetNormativeBendRadiusInMm(RebarBarTypeWrapper rebarBarTypeWrapper, RebarDeformationType deformationType)"
+ },
+ {
+ "line": 3349,
+ "signature": "public double GetNormativeBendRadiusInMm(double diameterInMm, RebarDeformationType rebarDeformationType)"
+ }
+ ]
+ },
+ {
+ "name": "ShowMessage",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "rebarBarTypeName",
+ "currentBendDiameterInMm",
+ "docName",
+ "armType",
+ "diameterInMm",
+ "multiplyFactor"
+ ],
+ "declarations": [
+ {
+ "line": 3355,
+ "signature": "private static void ShowMessage(string rebarBarTypeName, double currentBendDiameterInMm, string docName, string armType, double diameterInMm, double multiplyFactor)"
+ }
+ ]
+ },
+ {
+ "name": "GetSourceDocumentName",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "sourceDocument"
+ ],
+ "declarations": [
+ {
+ "line": 3360,
+ "signature": "private static string GetSourceDocumentName(RebarBendRuleSourceDocument sourceDocument)"
+ }
+ ]
+ },
+ {
+ "name": "GetMultiplyFactor",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "diameterInMm",
+ "deformationType",
+ "armType"
+ ],
+ "declarations": [
+ {
+ "line": 3370,
+ "signature": "private double GetMultiplyFactor(double diameterInMm, RebarDeformationType deformationType, out string armType)"
+ }
+ ]
+ },
+ {
+ "name": "NeedFix",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "rebarBarType",
+ "multiplyFactor"
+ ],
+ "declarations": [
+ {
+ "line": 3396,
+ "signature": "private static bool NeedFix(RebarBarType rebarBarType, double multiplyFactor)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Services.RebarShapeCleanService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Collect",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3418,
+ "signature": "public static void Collect()"
+ }
+ ]
+ },
+ {
+ "name": "Clean",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3423,
+ "signature": "public static void Clean()"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Services.RebarShapeSearchService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "ClearCache",
+ "attributes": "Public, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3475,
+ "signature": "public void ClearCache()"
+ }
+ ]
+ },
+ {
+ "name": "GetRebarShapes",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "rebarNamedShape"
+ ],
+ "declarations": [
+ {
+ "line": 3481,
+ "signature": "public List GetRebarShapes(RebarNamedShape rebarNamedShape)"
+ }
+ ]
+ },
+ {
+ "name": "IsValidByCurvesCount",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "rebarShape",
+ "lineCount",
+ "arcCount"
+ ],
+ "declarations": [
+ {
+ "line": 3490,
+ "signature": "private bool IsValidByCurvesCount(RebarShape rebarShape, int lineCount, int arcCount)"
+ }
+ ]
+ },
+ {
+ "name": "IsBottle",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "rebarShape"
+ ],
+ "declarations": [
+ {
+ "line": 3496,
+ "signature": "private bool IsBottle(RebarShape rebarShape)"
+ }
+ ]
+ },
+ {
+ "name": "IsLShaped",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "rebarShape"
+ ],
+ "declarations": [
+ {
+ "line": 3527,
+ "signature": "private bool IsLShaped(RebarShape rebarShape)"
+ }
+ ]
+ },
+ {
+ "name": "IsLShapedWithBigBend",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "rebarShape"
+ ],
+ "declarations": [
+ {
+ "line": 3541,
+ "signature": "private bool IsLShapedWithBigBend(RebarShape rebarShape)"
+ }
+ ]
+ },
+ {
+ "name": "IsUShaped",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "rebarShape"
+ ],
+ "declarations": [
+ {
+ "line": 3560,
+ "signature": "private bool IsUShaped(RebarShape rebarShape)"
+ }
+ ]
+ },
+ {
+ "name": "IsTriangularShaped",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "rebarShape"
+ ],
+ "declarations": [
+ {
+ "line": 3574,
+ "signature": "private bool IsTriangularShaped(RebarShape rebarShape)"
+ }
+ ]
+ },
+ {
+ "name": "IsRhombusShaped",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "rebarShape"
+ ],
+ "declarations": [
+ {
+ "line": 3592,
+ "signature": "private bool IsRhombusShaped(RebarShape rebarShape)"
+ }
+ ]
+ },
+ {
+ "name": "GetAllShapes",
+ "attributes": "Private, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3606,
+ "signature": "private Dictionary> GetAllShapes()"
+ }
+ ]
+ },
+ {
+ "name": "GetShapesByName",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "rebarNamedShape"
+ ],
+ "declarations": [
+ {
+ "line": 3612,
+ "signature": "private IEnumerable GetShapesByName(RebarNamedShape rebarNamedShape)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Services.RebarTypeService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "ClearCache",
+ "attributes": "Public, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3760,
+ "signature": "public void ClearCache()"
+ }
+ ]
+ },
+ {
+ "name": "CreateRebarBarType",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "diameterInMm",
+ "rebarDeformationType"
+ ],
+ "declarations": [
+ {
+ "line": 3775,
+ "signature": "public RebarBarType CreateRebarBarType(double diameterInMm, RebarDeformationType rebarDeformationType)"
+ }
+ ]
+ },
+ {
+ "name": "GetRebarBarType",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "rebarBarTypeName",
+ "diameterInMm",
+ "showMessageIfFixRebarBend"
+ ],
+ "declarations": [
+ {
+ "line": 3796,
+ "signature": "public RebarBarType GetRebarBarType(string rebarBarTypeName, double diameterInMm, bool showMessageIfFixRebarBend)"
+ },
+ {
+ "line": 3938,
+ "signature": "private RebarBarType GetRebarBarType(string rebarBarTypeName, double nominalDiameterInMm)"
+ }
+ ]
+ },
+ {
+ "name": "GetOrCreateRebarBarType",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "rebarBarTypeName",
+ "diameterInMm",
+ "rebarDeformationType",
+ "showMessageIfFixRebarBend"
+ ],
+ "declarations": [
+ {
+ "line": 3815,
+ "signature": "public RebarBarType GetOrCreateRebarBarType(string rebarBarTypeName, double diameterInMm, RebarDeformationType rebarDeformationType, bool showMessageIfFixRebarBend)"
+ }
+ ]
+ },
+ {
+ "name": "GetOrCreateRebarHookType",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "rebar",
+ "rebarHookTypeHolder",
+ "hookAngle",
+ "isRebarShapeSpecified",
+ "maxStraightLineMultiplier"
+ ],
+ "declarations": [
+ {
+ "line": 3855,
+ "signature": "public RebarHookType GetOrCreateRebarHookType(Rebar rebar, RebarHookTypeHolder rebarHookTypeHolder, double hookAngle, bool isRebarShapeSpecified, double maxStraightLineMultiplier = 3.0)"
+ }
+ ]
+ },
+ {
+ "name": "GetRebarHookTypes",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "anglesInDegrees",
+ "rebarStyle"
+ ],
+ "declarations": [
+ {
+ "line": 3888,
+ "signature": "public IEnumerable GetRebarHookTypes(IList anglesInDegrees, RebarStyle rebarStyle)"
+ },
+ {
+ "line": 3953,
+ "signature": "private List GetRebarHookTypes()"
+ }
+ ]
+ },
+ {
+ "name": "HasRebarBarType",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "rebarBarTypeName",
+ "nominalDiameterMm"
+ ],
+ "declarations": [
+ {
+ "line": 3906,
+ "signature": "public bool HasRebarBarType(string rebarBarTypeName, out double nominalDiameterMm)"
+ },
+ {
+ "line": 3924,
+ "signature": "public bool HasRebarBarType(double nominalDiameterMm, out string rebarBarTypeName)"
+ }
+ ]
+ },
+ {
+ "name": "HasRebarBarType",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "nominalDiameterMm",
+ "rebarBarTypeName"
+ ],
+ "declarations": [
+ {
+ "line": 3906,
+ "signature": "public bool HasRebarBarType(string rebarBarTypeName, out double nominalDiameterMm)"
+ },
+ {
+ "line": 3924,
+ "signature": "public bool HasRebarBarType(double nominalDiameterMm, out string rebarBarTypeName)"
+ }
+ ]
+ },
+ {
+ "name": "GetRebarBarType",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "rebarBarTypeName",
+ "nominalDiameterInMm"
+ ],
+ "declarations": [
+ {
+ "line": 3796,
+ "signature": "public RebarBarType GetRebarBarType(string rebarBarTypeName, double diameterInMm, bool showMessageIfFixRebarBend)"
+ },
+ {
+ "line": 3938,
+ "signature": "private RebarBarType GetRebarBarType(string rebarBarTypeName, double nominalDiameterInMm)"
+ }
+ ]
+ },
+ {
+ "name": "GetRebarHookTypes",
+ "attributes": "Private, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3888,
+ "signature": "public IEnumerable GetRebarHookTypes(IList anglesInDegrees, RebarStyle rebarStyle)"
+ },
+ {
+ "line": 3953,
+ "signature": "private List GetRebarHookTypes()"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Services.RebarKeyScheduleService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "ClearCache",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3962,
+ "signature": "public static void ClearCache()"
+ }
+ ]
+ },
+ {
+ "name": "GetRebarKeySchedules",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3967,
+ "signature": "public static List GetRebarKeySchedules()"
+ }
+ ]
+ },
+ {
+ "name": "GetRebarKeySchedulesInternal",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 3972,
+ "signature": "private static IEnumerable GetRebarKeySchedulesInternal()"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "Reinforcement.Common.Services.ReinforcementDataStorageService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "Save",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "data",
+ "win"
+ ],
+ "declarations": [
+ {
+ "line": 3993,
+ "signature": "public static void Save(T data, ModPlusWindow win)"
+ }
+ ]
+ },
+ {
+ "name": "Load",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "win",
+ "loadAction"
+ ],
+ "declarations": [
+ {
+ "line": 4042,
+ "signature": "public static void Load(ModPlusWindow win, Action loadAction)"
+ }
+ ]
+ },
+ {
+ "name": "LoadDefault",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "note"
+ ],
+ "declarations": [
+ {
+ "line": 4069,
+ "signature": "public static T LoadDefault(string note = null)"
+ }
+ ]
+ },
+ {
+ "name": "SaveAsDefault",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 4076,
+ "signature": "public static void SaveAsDefault(T data)"
+ }
+ ]
+ },
+ {
+ "name": "GetFiles",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "dir"
+ ],
+ "declarations": [
+ {
+ "line": 4088,
+ "signature": "private static IEnumerable GetFiles(string dir)"
+ }
+ ]
+ },
+ {
+ "name": "SelectFile",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 4118,
+ "signature": "private static string SelectFile()"
+ }
+ ]
+ },
+ {
+ "name": "GetFromFile",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "file",
+ "createNew"
+ ],
+ "declarations": [
+ {
+ "line": 4128,
+ "signature": "private static T GetFromFile(string file, bool createNew)"
+ }
+ ]
+ },
+ {
+ "name": "SaveToFile",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "data"
+ ],
+ "declarations": [
+ {
+ "line": 4155,
+ "signature": "private static void SaveToFile(T data)"
+ },
+ {
+ "line": 4171,
+ "signature": "private static void SaveToFile(T data, string file)"
+ }
+ ]
+ },
+ {
+ "name": "SaveToFile",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "data",
+ "file"
+ ],
+ "declarations": [
+ {
+ "line": 4155,
+ "signature": "private static void SaveToFile(T data)"
+ },
+ {
+ "line": 4171,
+ "signature": "private static void SaveToFile(T data, string file)"
+ }
+ ]
+ },
+ {
+ "name": "MoveOldData",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 4185,
+ "signature": "private static void MoveOldData()"
+ }
+ ]
+ },
+ {
+ "name": "GetDefaultReinforcementFileName",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "reinforcementType",
+ "note"
+ ],
+ "declarations": [
+ {
+ "line": 4252,
+ "signature": "private static string GetDefaultReinforcementFileName(string reinforcementType, string note)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBeamsReinforcement.Utils.ElementCollectorUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "PickBeams",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 12940,
+ "signature": "public static List PickBeams()"
+ }
+ ]
+ },
+ {
+ "name": "GetAllBeamsInView",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 12945,
+ "signature": "public static List GetAllBeamsInView()"
+ }
+ ]
+ },
+ {
+ "name": "GetAllBeamsInModel",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 12950,
+ "signature": "public static List GetAllBeamsInModel()"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBeamsReinforcement.Utils.MathUtils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetBigger",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "d1",
+ "d2"
+ ],
+ "declarations": [
+ {
+ "line": 12969,
+ "signature": "public static double GetBigger(double d1, double d2)"
+ },
+ {
+ "line": 12974,
+ "signature": "public static double GetBigger(int d1, int d2)"
+ }
+ ]
+ },
+ {
+ "name": "GetBigger",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "d1",
+ "d2"
+ ],
+ "declarations": [
+ {
+ "line": 12969,
+ "signature": "public static double GetBigger(double d1, double d2)"
+ },
+ {
+ "line": 12974,
+ "signature": "public static double GetBigger(int d1, int d2)"
+ }
+ ]
+ },
+ {
+ "name": "GetSmaller",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "d1",
+ "d2"
+ ],
+ "declarations": [
+ {
+ "line": 12979,
+ "signature": "public static double GetSmaller(double d1, double d2)"
+ },
+ {
+ "line": 12984,
+ "signature": "public static double GetSmaller(int d1, int d2)"
+ }
+ ]
+ },
+ {
+ "name": "GetSmaller",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "d1",
+ "d2"
+ ],
+ "declarations": [
+ {
+ "line": 12979,
+ "signature": "public static double GetSmaller(double d1, double d2)"
+ },
+ {
+ "line": 12984,
+ "signature": "public static double GetSmaller(int d1, int d2)"
+ }
+ ]
+ },
+ {
+ "name": "GetArcLength",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "radius",
+ "angleDegree"
+ ],
+ "declarations": [
+ {
+ "line": 12989,
+ "signature": "public static double GetArcLength(double radius, double angleDegree)"
+ }
+ ]
+ },
+ {
+ "name": "GetAngleDegreeFromArcLength",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "arcLength",
+ "radius"
+ ],
+ "declarations": [
+ {
+ "line": 12994,
+ "signature": "public static double GetAngleDegreeFromArcLength(double arcLength, double radius)"
+ }
+ ]
+ },
+ {
+ "name": "GetCircleLength",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "radius"
+ ],
+ "declarations": [
+ {
+ "line": 12999,
+ "signature": "public static double GetCircleLength(double radius)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBeamsReinforcement.Utils.ReinforcementCalculationService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "GetDataForCreateLongitudinalReinforcementWithoutJoints",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "advancedColumn"
+ ],
+ "declarations": [
+ {
+ "line": 13017,
+ "signature": "public static List GetDataForCreateLongitudinalReinforcementWithoutJoints(AdvancedBeam advancedColumn)"
+ }
+ ]
+ },
+ {
+ "name": "GetDataForCreateLongitudinalReinforcementWithStraightJoints",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "advancedBeam"
+ ],
+ "declarations": [
+ {
+ "line": 13025,
+ "signature": "public static List GetDataForCreateLongitudinalReinforcementWithStraightJoints(AdvancedBeam advancedBeam)"
+ }
+ ]
+ },
+ {
+ "name": "GetTransverseLayoutPoints",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "advancedBeam"
+ ],
+ "declarations": [
+ {
+ "line": 13251,
+ "signature": "public static List GetTransverseLayoutPoints(AdvancedBeam advancedBeam)"
+ }
+ ]
+ },
+ {
+ "name": "GetDataForCreateTransverseReinforcement",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "advancedBeam",
+ "points",
+ "transverseShape"
+ ],
+ "declarations": [
+ {
+ "line": 13409,
+ "signature": "public static List GetDataForCreateTransverseReinforcement(AdvancedBeam advancedBeam, List points, TransverseShape transverseShape)"
+ }
+ ]
+ },
+ {
+ "name": "IsIntersectShapeGeometry",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "firstShape",
+ "secondShape",
+ "advancedBeam"
+ ],
+ "declarations": [
+ {
+ "line": 13420,
+ "signature": "public static bool IsIntersectShapeGeometry(TransverseShape firstShape, TransverseShape secondShape, AdvancedBeam advancedBeam)"
+ }
+ ]
+ },
+ {
+ "name": "ConvertToRevitCurve",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "shapeDrawingItem",
+ "profileCenterPoint",
+ "profileHorizontalVector",
+ "profileVerticalVector"
+ ],
+ "declarations": [
+ {
+ "line": 13441,
+ "signature": "public static Curve ConvertToRevitCurve(ShapeDrawingItem shapeDrawingItem, XYZ profileCenterPoint, XYZ profileHorizontalVector, XYZ profileVerticalVector)"
+ }
+ ]
+ },
+ {
+ "name": "ConvertToRevitCurves",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "drawingItems",
+ "profileCenterPoint",
+ "profileHorizontalVector",
+ "profileVerticalVector"
+ ],
+ "declarations": [
+ {
+ "line": 13454,
+ "signature": "private static IEnumerable ConvertToRevitCurves(IEnumerable drawingItems, XYZ profileCenterPoint, XYZ profileHorizontalVector, XYZ profileVerticalVector)"
+ }
+ ]
+ },
+ {
+ "name": "ConvertToModel",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "point",
+ "profileCenterPoint",
+ "profileHorizontalVector",
+ "profileVerticalVector"
+ ],
+ "declarations": [
+ {
+ "line": 13459,
+ "signature": "private static XYZ ConvertToModel(this System.Windows.Point point, XYZ profileCenterPoint, XYZ profileHorizontalVector, XYZ profileVerticalVector)"
+ }
+ ]
+ },
+ {
+ "name": "GetOneLineLongitudinalRebarsCreationData",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "advancedBeam",
+ "modifyLineAction"
+ ],
+ "declarations": [
+ {
+ "line": 13464,
+ "signature": "private static IEnumerable GetOneLineLongitudinalRebarsCreationData(AdvancedBeam advancedBeam, Func modifyLineAction)"
+ }
+ ]
+ },
+ {
+ "name": "GroupWorkRebarsByHorizontal",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "rebarsData"
+ ],
+ "declarations": [
+ {
+ "line": 13525,
+ "signature": "private static IEnumerable> GroupWorkRebarsByHorizontal(IEnumerable rebarsData)"
+ }
+ ]
+ },
+ {
+ "name": "GetSpans",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "advancedBeam"
+ ],
+ "declarations": [
+ {
+ "line": 13532,
+ "signature": "private static List GetSpans(AdvancedBeam advancedBeam)"
+ }
+ ]
+ },
+ {
+ "name": "PreviousSpanSkiped",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "spans",
+ "currentSpanIndex"
+ ],
+ "declarations": [
+ {
+ "line": 13617,
+ "signature": "private static bool PreviousSpanSkiped(this List spans, int currentSpanIndex)"
+ }
+ ]
+ },
+ {
+ "name": "NextSpanSkipped",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "spans",
+ "currentSpanIndex"
+ ],
+ "declarations": [
+ {
+ "line": 13622,
+ "signature": "private static bool NextSpanSkipped(this List spans, int currentSpanIndex)"
+ }
+ ]
+ },
+ {
+ "name": "GetPoints",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "advancedBeam",
+ "relativeElements"
+ ],
+ "declarations": [
+ {
+ "line": 13627,
+ "signature": "private static IEnumerable GetPoints(AdvancedBeam advancedBeam, IEnumerable relativeElements)"
+ },
+ {
+ "line": 13651,
+ "signature": "private static IEnumerable GetPoints(AdvancedBeam advancedBeam, Solid solid, ElementId elementId)"
+ }
+ ]
+ },
+ {
+ "name": "GetPoints",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "advancedBeam",
+ "solid",
+ "elementId"
+ ],
+ "declarations": [
+ {
+ "line": 13627,
+ "signature": "private static IEnumerable GetPoints(AdvancedBeam advancedBeam, IEnumerable relativeElements)"
+ },
+ {
+ "line": 13651,
+ "signature": "private static IEnumerable GetPoints(AdvancedBeam advancedBeam, Solid solid, ElementId elementId)"
+ }
+ ]
+ },
+ {
+ "name": "IsStartUnderlyingElement",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "solid",
+ "beamCentroidLine",
+ "upDirection"
+ ],
+ "declarations": [
+ {
+ "line": 13676,
+ "signature": "private static bool IsStartUnderlyingElement(Solid solid, Autodesk.Revit.DB.Line beamCentroidLine, XYZ upDirection)"
+ }
+ ]
+ },
+ {
+ "name": "IsEndUnderlyingElement",
+ "attributes": "Private, Static, HideBySig",
+ "parameters": [
+ "solid",
+ "beamCentroidLine",
+ "upDirection"
+ ],
+ "declarations": [
+ {
+ "line": 13683,
+ "signature": "private static bool IsEndUnderlyingElement(Solid solid, Autodesk.Revit.DB.Line beamCentroidLine, XYZ upDirection)"
+ }
+ ]
+ },
+ {
+ "name": "CalculateDataForCornerIntersectionDetails",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "intersection",
+ "firstRebarBarType",
+ "secondRebarBarType"
+ ],
+ "declarations": [
+ {
+ "line": 13690,
+ "signature": "public static IntersectionDetailsRebarsData CalculateDataForCornerIntersectionDetails(BeamsIntersection intersection, RebarBarType firstRebarBarType, RebarBarType secondRebarBarType)"
+ }
+ ]
+ },
+ {
+ "name": "CalculationDataForTShapedIntersectionDetails",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "intersection",
+ "firstRebarBarType",
+ "secondRebarBarType"
+ ],
+ "declarations": [
+ {
+ "line": 13722,
+ "signature": "public static IntersectionDetailsRebarsData CalculationDataForTShapedIntersectionDetails(BeamsIntersection intersection, RebarBarType firstRebarBarType, RebarBarType secondRebarBarType)"
+ }
+ ]
+ },
+ {
+ "name": "CalculationDataForCrossIntersectionDetails",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "intersection",
+ "firstRebarBarType",
+ "secondRebarBarType"
+ ],
+ "declarations": [
+ {
+ "line": 13752,
+ "signature": "public static IntersectionDetailsRebarsData CalculationDataForCrossIntersectionDetails(BeamsIntersection intersection, RebarBarType firstRebarBarType, RebarBarType secondRebarBarType)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBeamsReinforcement.Application.Command",
+ "kind": "algorithm_in_command",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "commandData",
+ "message",
+ "elements"
+ ],
+ "declarations": [
+ {
+ "line": 17446,
+ "signature": "public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)"
+ }
+ ]
+ },
+ {
+ "name": "GetAnchoringWithChangeTopMost",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "includeAnchoring",
+ "includeOverlap",
+ "rebarBarTypeWrapper"
+ ],
+ "declarations": [
+ {
+ "line": 17478,
+ "signature": "public static double GetAnchoringWithChangeTopMost(bool includeAnchoring, bool includeOverlap, RebarBarTypeWrapper rebarBarTypeWrapper)"
+ }
+ ]
+ },
+ {
+ "name": "IsDarkTheme",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 17483,
+ "signature": "public static bool IsDarkTheme()"
+ }
+ ]
+ },
+ {
+ "name": "RemoveModelLines",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [],
+ "declarations": [
+ {
+ "line": 17488,
+ "signature": "public static void RemoveModelLines()"
+ }
+ ]
+ },
+ {
+ "name": "ShowIntersections",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "intersections"
+ ],
+ "declarations": [
+ {
+ "line": 17506,
+ "signature": "public static void ShowIntersections(List intersections)"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "dependencyMarkers": {
+ "interactiveSelection": [
+ "PickObjects"
+ ],
+ "usesCurrentSelection": false,
+ "dialogs": [
+ "ShowDialog",
+ "ShowModeless"
+ ],
+ "transactionTypes": [
+ "Autodesk.Revit.DB.Transaction",
+ "Autodesk.Revit.DB.TransactionGroup"
+ ],
+ "modplusGlobalContext": true,
+ "externalEvents": true,
+ "fileOperations": [
+ "System.IO.Directory.CreateDirectory",
+ "System.IO.Directory.Delete",
+ "System.IO.Directory.Exists",
+ "System.IO.Directory.GetFiles",
+ "System.IO.File.Delete",
+ "System.IO.File.Exists",
+ "System.IO.File.Move",
+ "System.IO.Path.Combine",
+ "System.IO.Path.GetFileNameWithoutExtension",
+ "System.IO.Path.GetInvalidFileNameChars"
+ ]
+ },
+ "decompilerWarnings": {},
+ "sourceSyntaxErrors": 150,
+ "adapterStatus": "source_and_entrypoints_mapped_adapter_required",
+ "runtimeVerified": false
+ },
+ {
+ "module": "mprBreakLayers",
+ "title": "Разбивка слоев",
+ "description": "Разбивка многослойных стен и плит на отдельные элементы",
+ "groups": [
+ "Изменить"
+ ],
+ "available2027": true,
+ "installedVersions": [
+ "2020",
+ "2024",
+ "2026",
+ "2027"
+ ],
+ "subcommands": [],
+ "assembly": "mprBreakLayers_2027",
+ "fileVersion": "1.5.8.0",
+ "sha256": "ed0a5c9602c6d41ce2a963348033d90ee1b5ed5553c272562a9c155650c4a97c",
+ "decompiler": "ILSpyCmd 11.1.0.9782",
+ "framework": [
+ ".NETCoreApp,Version=v10.0"
+ ],
+ "source": "source/mprBreakLayers_2027.decompiled.cs",
+ "sourceLines": 2463,
+ "references": [
+ {
+ "name": "System.Runtime",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "RevitAPI",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "ModPlusAPI",
+ "version": "1.0.0.0"
+ },
+ {
+ "name": "System.Collections",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Linq",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "ModPlus_Revit_2027",
+ "version": "11.0.0.0"
+ },
+ {
+ "name": "RevitAPIUI",
+ "version": "26.0.4.0"
+ },
+ {
+ "name": "System.ObjectModel",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "ModPlusStyle",
+ "version": "1.0.0.0"
+ },
+ {
+ "name": "System.Xaml",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "System.Runtime.InteropServices",
+ "version": "10.0.0.0"
+ },
+ {
+ "name": "PresentationFramework",
+ "version": "10.0.0.0"
+ }
+ ],
+ "typeCount": 57,
+ "methodCount": 365,
+ "externalCommands": [
+ {
+ "class": "mprBreakLayers.Command",
+ "sourceLines": [
+ 1124
+ ],
+ "registration": "declared IExternalCommand; use live ribbon to verify availability"
+ }
+ ],
+ "connectorMainCommands": [
+ "mprBreakLayers.Command"
+ ],
+ "connectorSubCommands": [],
+ "connectorButtonNames": [],
+ "algorithmClasses": [
+ {
+ "class": "mprBreakLayers.BreakLayerService",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "BreakWallLayers",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "walls",
+ "linkWalls",
+ "breakVariant",
+ "insertsRestorePosition",
+ "pinWalls"
+ ],
+ "declarations": [
+ {
+ "line": 68,
+ "signature": "public void BreakWallLayers(List walls, List linkWalls, BreakVariant breakVariant, InsertsRestorePosition insertsRestorePosition, bool pinWalls)"
+ }
+ ]
+ },
+ {
+ "name": "BreakFloorLayers",
+ "attributes": "Public, HideBySig",
+ "parameters": [
+ "floors",
+ "linkFloors",
+ "breakVariant",
+ "insertsRestorePosition",
+ "pinFloors"
+ ],
+ "declarations": [
+ {
+ "line": 90,
+ "signature": "public void BreakFloorLayers(List floors, List linkFloors, BreakVariant breakVariant, InsertsRestorePosition insertsRestorePosition, bool pinFloors)"
+ }
+ ]
+ },
+ {
+ "name": "BreakWalls",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "walls",
+ "breakVariant",
+ "insertsRestorePosition",
+ "deleteOriginWalls",
+ "pinWalls"
+ ],
+ "declarations": [
+ {
+ "line": 112,
+ "signature": "private void BreakWalls(List walls, BreakVariant breakVariant, InsertsRestorePosition insertsRestorePosition, bool deleteOriginWalls, bool pinWalls)"
+ }
+ ]
+ },
+ {
+ "name": "BreakFloors",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "floors",
+ "breakVariant",
+ "insertsRestorePosition",
+ "deleteOriginFloors",
+ "pinFloors"
+ ],
+ "declarations": [
+ {
+ "line": 232,
+ "signature": "private void BreakFloors(List floors, BreakVariant breakVariant, InsertsRestorePosition insertsRestorePosition, bool deleteOriginFloors, bool pinFloors)"
+ }
+ ]
+ },
+ {
+ "name": "CopyLinkedElements",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "linkedHostObjects"
+ ],
+ "declarations": [
+ {
+ "line": 342,
+ "signature": "private List CopyLinkedElements(List linkedHostObjects)"
+ }
+ ]
+ },
+ {
+ "name": "RestoreInserts",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "walls"
+ ],
+ "declarations": [
+ {
+ "line": 374,
+ "signature": "private void RestoreInserts(List walls)"
+ },
+ {
+ "line": 418,
+ "signature": "private void RestoreInserts(List floors)"
+ }
+ ]
+ },
+ {
+ "name": "RestoreInserts",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "floors"
+ ],
+ "declarations": [
+ {
+ "line": 374,
+ "signature": "private void RestoreInserts(List walls)"
+ },
+ {
+ "line": 418,
+ "signature": "private void RestoreInserts(List floors)"
+ }
+ ]
+ },
+ {
+ "name": "RestoreFamilyInsert",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "originalFamilyInsertWrapper",
+ "hostObject"
+ ],
+ "declarations": [
+ {
+ "line": 458,
+ "signature": "private void RestoreFamilyInsert(BaseFamilyInsertWrapper originalFamilyInsertWrapper, HostObject hostObject)"
+ }
+ ]
+ },
+ {
+ "name": "LayerWallsPostProcess",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "walls"
+ ],
+ "declarations": [
+ {
+ "line": 480,
+ "signature": "private void LayerWallsPostProcess(List walls)"
+ }
+ ]
+ },
+ {
+ "name": "LayerFloorsPostProcess",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "floors"
+ ],
+ "declarations": [
+ {
+ "line": 619,
+ "signature": "private void LayerFloorsPostProcess(List floors)"
+ }
+ ]
+ },
+ {
+ "name": "GetParts",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "baseHostWrapper",
+ "breakVariant"
+ ],
+ "declarations": [
+ {
+ "line": 654,
+ "signature": "private IEnumerable GetParts(BaseHostWrapper baseHostWrapper, BreakVariant breakVariant)"
+ }
+ ]
+ },
+ {
+ "name": "GetElementTypeWrappers",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "type"
+ ],
+ "declarations": [
+ {
+ "line": 668,
+ "signature": "private IEnumerable GetElementTypeWrappers(Type type)"
+ }
+ ]
+ },
+ {
+ "name": "GetElementTypeWrapper",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "elementType"
+ ],
+ "declarations": [
+ {
+ "line": 675,
+ "signature": "private ElementTypeWrapper GetElementTypeWrapper(HostObjAttributes elementType)"
+ }
+ ]
+ },
+ {
+ "name": "GetNewType",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "element",
+ "elementTypeWrappers",
+ "layers",
+ "endCap",
+ "newTypeAction"
+ ],
+ "declarations": [
+ {
+ "line": 697,
+ "signature": "private T GetNewType(Element element, List elementTypeWrappers, List layers, EndCapCondition endCap, Action newTypeAction)"
+ }
+ ]
+ },
+ {
+ "name": "CreateTypeByCoreEdges",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "originTypeWrapper",
+ "elementTypeWrappers",
+ "category",
+ "endCap"
+ ],
+ "declarations": [
+ {
+ "line": 757,
+ "signature": "private ElementTypeWrapper CreateTypeByCoreEdges(ElementTypeWrapper originTypeWrapper, List elementTypeWrappers, BuiltInCategory category, EndCapCondition endCap)"
+ }
+ ]
+ },
+ {
+ "name": "DeterminateLayerForRestoreInserts",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "originalHost",
+ "insertsRestorePosition"
+ ],
+ "declarations": [
+ {
+ "line": 821,
+ "signature": "private void DeterminateLayerForRestoreInserts(BaseHostWrapper originalHost, InsertsRestorePosition insertsRestorePosition)"
+ }
+ ]
+ },
+ {
+ "name": "MatchEnds",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "layerWall1",
+ "layerWall2",
+ "onlyWall1"
+ ],
+ "declarations": [
+ {
+ "line": 898,
+ "signature": "private void MatchEnds(LayerWall layerWall1, LayerWall layerWall2, bool onlyWall1)"
+ }
+ ]
+ },
+ {
+ "name": "HasSameEnd",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "curve1",
+ "curve2",
+ "end1",
+ "end2"
+ ],
+ "declarations": [
+ {
+ "line": 948,
+ "signature": "private bool HasSameEnd(Curve curve1, Curve curve2, out int end1, out int end2)"
+ }
+ ]
+ },
+ {
+ "name": "GetSideIntersectedFaces",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "partWrapper",
+ "wall"
+ ],
+ "declarations": [
+ {
+ "line": 979,
+ "signature": "private List GetSideIntersectedFaces(PartWrapper partWrapper, OriginalWall wall)"
+ }
+ ]
+ },
+ {
+ "name": "GetCurvesForLinearWallProfile",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "partWrapper",
+ "originalWall"
+ ],
+ "declarations": [
+ {
+ "line": 1050,
+ "signature": "private IEnumerable GetCurvesForLinearWallProfile(PartWrapper partWrapper, OriginalWall originalWall)"
+ }
+ ]
+ },
+ {
+ "name": "GetArcForArcWallLocationCurve",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "partWrapper",
+ "originalWall"
+ ],
+ "declarations": [
+ {
+ "line": 1064,
+ "signature": "private Arc GetArcForArcWallLocationCurve(PartWrapper partWrapper, OriginalWall originalWall)"
+ }
+ ]
+ },
+ {
+ "name": "Delete",
+ "attributes": "Private, HideBySig",
+ "parameters": [
+ "ids"
+ ],
+ "declarations": [
+ {
+ "line": 1097,
+ "signature": "private void Delete(ICollection ids)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBreakLayers.Command",
+ "kind": "algorithm_in_command",
+ "methods": [
+ {
+ "name": "Execute",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "commandData",
+ "message",
+ "elements"
+ ],
+ "declarations": [
+ {
+ "line": 1128,
+ "signature": "public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBreakLayers.DuplicateTypeNamesHandler",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "OnDuplicateTypeNamesFound",
+ "attributes": "Public, Final, Virtual, HideBySig, VtableLayoutMask",
+ "parameters": [
+ "args"
+ ],
+ "declarations": [
+ {
+ "line": 1166,
+ "signature": "public DuplicateTypeAction OnDuplicateTypeNamesFound(DuplicateTypeNamesHandlerArgs args)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "class": "mprBreakLayers.Utils",
+ "kind": "service_candidate",
+ "methods": [
+ {
+ "name": "IsFirstWallIntersectSecondWallByEnd",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "wall1",
+ "wall2"
+ ],
+ "declarations": [
+ {
+ "line": 1586,
+ "signature": "public static bool IsFirstWallIntersectSecondWallByEnd(LayerWall wall1, LayerWall wall2)"
+ }
+ ]
+ },
+ {
+ "name": "GetTopFace",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "floor"
+ ],
+ "declarations": [
+ {
+ "line": 1609,
+ "signature": "public static PlanarFace GetTopFace(this Floor floor)"
+ }
+ ]
+ },
+ {
+ "name": "GetMergedArc",
+ "attributes": "Public, Static, HideBySig",
+ "parameters": [
+ "arcs",
+ "originStart"
+ ],
+ "declarations": [
+ {
+ "line": 1615,
+ "signature": "public static Arc GetMergedArc(List