Судя по всему, для метода ImportStockSubassembly нужно чтобы конструкция содержалась в файле APC (Т.к. "под капотом" этот метод использует загрузку из файла методом ImportSubassembly, внимание на строки 32 и 36):
public unsafe ObjectId ImportStockSubassembly(string subassemblyName, string className, Point3d location)
{
        //IL_009a: Unknown result type (might be due to invalid IL or missing references)
        //IL_009b: Unknown result type (might be due to invalid IL or missing references)
        //IL_00a0: Unknown result type (might be due to invalid IL or missing references)
        //IL_00cf: Unknown result type (might be due to invalid IL or missing references)
        //IL_00fb: Unknown result type (might be due to invalid IL or missing references)
        checkSubassemblyNameValid(subassemblyName);
        string paramName = "className";
        if (null == className)
        {
                throw new ArgumentNullException(paramName);
        }
        byte b = (className.Trim().Length > 0) ? ((byte)1) : ((byte)0);
        string message = "className should be at least one character.";
        if (0 == b)
        {
                throw new ArgumentException(message);
        }
        string stockSubassemblyFolder = getStockSubassemblyFolder();
        AecRmCString aecRmCString;
        ObjectId result;
        if (stockSubassemblyFolder != (string)null && stockSubassemblyFolder.Length > 0)
        {
                global::<Module>.AecRmCString.{ctor}(&aecRmCString);
                AecRmCString aecRmCString2;
                try
                {
                        global::<Module>.AecRmCString.{ctor}(&aecRmCString2);
                        try
                        {
                                if (getAtcFilePathAndItemId(stockSubassemblyFolder, className, &aecRmCString, &aecRmCString2)) // <--- !!!!
                                {
                                        char* value = global::<Module>.ATL.CSimpleStringT<wchar_t,1>.GetString((CSimpleStringT<wchar_t,1>*)(&aecRmCString2));
                                        char* value2 = global::<Module>.ATL.CSimpleStringT<wchar_t,1>.GetString((CSimpleStringT<wchar_t,1>*)(&aecRmCString));
                                        result = ImportSubassembly(subassemblyName, new string(value2), new string(value), location); // <--- !!!
                                // .... итд
  У себя нашёл, что BasicLane описана тут: C:\ProgramData\Autodesk\C3D 2018\rus\Tool Catalogs\Road Catalog\C3D Metric Basic Subassembly Catalog.atc
Подозреваю, что надо туда внести и BasicLane2.
Если используются "имперские" единицы, то изменения надо вносить в этот файл: C:\ProgramData\Autodesk\C3D 2018\rus\Tool Catalogs\Road Catalog\C3D Imperial Basic Subassembly Catalog.atc
[return: MarshalAs(UnmanagedType.U1)]
private unsafe bool getAtcFilePathAndItemId(string stockSubassemblyFolderPath, string className, AecRmCString* strActFilePath, AecRmCString* strItemId)
{
        AeccUnitBase.SettingsUnits settingsUnits = global::<Module>.AeccUnitBase.GetDrawingUnit(GetImpObj(), 0);
        bool flag = global::<Module>.AeccUnitBase.IsMetric(settingsUnits);
        bool flag2 = global::<Module>.AeccUnitBase.IsImperial(settingsUnits);
        string[] files = Directory.GetFiles(stockSubassemblyFolderPath, "*.atc", SearchOption.TopDirectoryOnly);
        int num = 0;
        if (0L < (long)(IntPtr)(void*)files.LongLength)
        {
                do
                {
                        string text = files[num];
                        string fileName = Path.GetFileName(text);
                        if ((flag && fileName.StartsWith("C3D Metric")) || (flag2 && fileName.StartsWith("C3D Imperial"))) // <--- !!!!
                        {
                                XmlDocument xmlDocument = global::<Module>.?A0x671e1822.loadXmlDocument(text);
                                if (xmlDocument != null)
                                {
                                // ... итд
Фрагмент файла ATC (Imperial):
<Tool>
        <ItemID idValue="{32BCCC1B-5F68-4B1A-A0E6-B8CB9C37034D}"/>
        <Properties>
        <ItemName resource="501" src="AeccStockSubassemblyScriptsRC.dll"/>
                <Images>
                        <Image cx="64" cy="64" src=".\Images\AeccBasicLane.png"/>
                </Images>
        <Description resource="502" src="AeccStockSubassemblyScriptsRC.dll"/>
                <Keywords>_lane subassembly</Keywords>
                <Help>
                        <HelpFile>WBH</HelpFile>
                        <HelpCommand>HELP_HHWND_TOPIC</HelpCommand>
                        <HelpData>SA_BasicLane</HelpData>
                </Help>
                <Time createdUniversalDateTime="2002-04-05T21:58:00" modifiedUniversalDateTime="2002-04-05T21:58:00"/>
        </Properties>
        <Source/>
        <StockToolRef idValue="{7F55AAC0-0256-48D7-BFA5-914702663FDE}"/>
        <Data>
                <AeccDbSubassembly>
                        <GeometryGenerateMode>UseDotNet</GeometryGenerateMode>
                <DotNetClass Assembly="%AECCCONTENT_DIR%\C3DStockSubassemblies.dll">Subassembly.BasicLane</DotNetClass>
            <Resource Module="AeccStockSubassemblyScriptsRC.dll"/>
                        <Params>
                                <Version DataType="String" DisplayName="503" Description="504">R2017</Version>
                                <Side DataType="Long" DisplayName="505" Description="506">0
                    <Enum>
                                                <Right DisplayName="507">0</Right>
                                                <Left DisplayName="508">1</Left>
                                        </Enum>
                                </Side>
                                <Width DataType="Double" TypeInfo="16" DisplayName="509" Description="510">12.0</Width>
                                <Depth DataType="Double" TypeInfo="16" DisplayName="511" Description="512">0.67</Depth>
                                <Slope DataType="Double" TypeInfo="9"  DisplayName="513" Description="514">-0.02</Slope>
                        </Params>
                </AeccDbSubassembly>
                <Units>foot</Units>
        </Data>
</Tool>
 
 Update 19.09.2019 11:40Проверил идею. После того как я добавил данные о новом классе в ATC-файл, код отработал без ошибок и конструкция добавилась в чертёж.